manual de robotica aplicada con arduino

Upload: hiper2710

Post on 02-Apr-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    1/33

    1

    x

    Mdulo

    Educativode construccin de robotspara estudiantes

    Autor:Ingeniero

    Jos

    LuisSusa

    Rincn

    Gobernacin de Arauca Secretara de EducacinDepartamental de Arauca

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    2/33

    2Mdulo educativode construccin de robots para estudiantes

    Agradecimientos:

    Agradezco al doctor Luis Eduardo Ataya Arias Gobernador de Arauca. Y al doctor Jos OrlandoCespedes Garca Secretario de Educacin Departamental por apoyar el programa USO YAPROVECHAMIENTO DE NUEVAS TECNOLOGAS EN ROBTICA Y RECICLAJE TECNOLGICO.

    Igualmente al director del proyecto Jos Flix Susa Lizarazo por sus valiosos consejos y porcompartir su gran experiencia conmigo, sin la cual no se hubiera logrado obtener los buenosresultados del programa en general.

    A todas las dems personas que de una u otra manera colaboraron con el desarrollo exitosodel programa. Finalmente a la ingeniera Paola Fernanda Santos le agradezco por sus acertadas

    opiniones y correcciones hechas a la cartilla. Gracias por poner un poquito de ella misma paraque todos apreciaran an ms este trabajo.

    Gobernador de Arauca: Luis Eduardo Ataya AriasSecretario de Educacin de Arauca: Orlando Cespedes GarciaGerente de Nuevas Tecnologas: Roberto Antonio Melo Padilla

    Autor: Jos Luis Susa RincnContratista: Fundaset

    Diseo Y Diagramacin: Silvia VargasIlustraciones: Jos Luis Susa Rincn

    Revisin de Estilo: Ingeniera Paola Fernanda SantosDirector del proyecto: Jos Flix Susa Lizarazo

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    3/33

    3

    Acerca de la Cartilla: 4

    Introduccin: 5

    TALLER 1: QU ES LA ROBTICA, PARA QU SIRVE, Y QU ES UN ROBOT? 6

    TALLER 2: RECONOCIENDO LOS ELEMENTOS CON LOS QUE CONTAMOS 8

    Experimento 1: Conectando elementos, Primer Circuito: 9

    Experimento 2: Prendiendo un LED con un interruptor NA: 9

    Experimento 3: Prendiendo un LED con un interruptor NC: 9

    Experimento 4: Prendiendo un LED con un potencimetro de 10k ohm: 10

    TALLER 3: JUGUEMOS CON ARDUINO 12

    APRENDIENDO A USAR LA TARJETA ARDUINO: 12

    Experimento 5: Conectando la tarjeta Arduino al computador con ayuda del cable USB: 12

    PROCEDIMIENTO DE INSTALACIN DE ARDUINO EN WINDOWS XP: 13

    Experimento 6: En este experimento vamos a comenzar a utilizarla tarjeta Arduino para encender un LED o un mini parlante: 14

    Experimento 7: Presionando un pulsador se activan varias luces: 17

    Experimento 8: Prender 4 LEDs con la ayuda de un potencimetro de 10 K ohm: 18

    TALLER 4: BIENVENIDOS AL MUNDO DE LA ROBTICA,

    JUGUEMOS CON LOS SENTIDOS DE UN ROBOT. 19

    Experimento 9: Sensor de luz, cul es su utilidad en robtica? 19

    Experimento 10: Sensor de choque o n de carrera, cul es su utilidad en robtica? 20

    Experimento 11: Sensor distancia, cul es su utilidad en robtica? 21

    Experimento 12: Sensor proximidad, cul es su utilidad en robtica? 22

    TALLER 5: BIENVENIDOS AL MUNDO DE LA ROBTICA,

    JUGUEMOS CON LOS MOTORES DE UN ROBOT. 24

    Experimento 13: Controlando 1 motor: 24

    Experimento 14: Controlando 2 motores: 25

    TALLER 6: A DIVERTIRNOS CONSTRUYENDO UN VERDADERO ROBOT! 27

    Experimento 15: Construir un robot que se mantenga separa de un objeto: 27

    Experimento 16: Construir un robot seguidor de muro: 29

    Experimento 17: Construir un robot que avance cuando detecte luz: 30

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    4/33

    4Mdulo educativode construccin de robots para estudiantesMdulo Educativo de Construccion de Robots para estudiantes

    Acerca de la cartilla

    Esta cartilla fue desarrollada por el ingeniero Jos Luis Susa Rincn, basado en su experienciaobtenida durante el programa USO Y APROVECHAMIENTO DE NUEVAS TECNOLOGAS ENROBTICA Y RECICLAJE TECNOLGICO, el cual fue coordinado por l mismo y dirigido porel doctor Jos Flix Susa Lizarazo.

    En esta cartilla encontrarn la manera fcil y rpida de ingresar al mundo de la robtica,contiene informacin til para desarrollar una serie de experimentos divertidos einteresantes sobre los robots y sus partes, igualmente ser una gua didctica para eldesarrollo del curso de robtica que podrn dirigir los docentes especializados en el temaque participaron en el programa.

    Los componentes conceptuales de la cartilla pueden ser divididos en 4 mdulos deaprendizaje:

    1. Mdulo de Electrnica digital

    2. Mdulo de Programacin

    3. Modulo Conociendo Arduino4. Robtica

    Cada mdulo ira desarrollndose a medida que se realicen los juegos y los experimentosque soportan toda esta cartilla y que han sido pensados y probados para alcanzar la metade que un nio entre los 13 y 17 aos aprenda de robtica mvil fcilmente. Al nallos nios y jvenes habrn aprendido como construir un robot, entendiendo y usandotodas sus partes, podrn luego disear por ellos mismos cualquier tipo de robot posible, ocualquier aplicacin o invento novedoso que en su mente creen usando los conocimientos

    adquiridos y los materiales con lo que ya disponen. Es importante contar el apoyo de undocente que haya participado en el programa, ya que es necesario hacer complementostericos en algunos de los experimentos.

    La cartilla est divida en talleres, y experimentos, cada taller consta de una teora bsica yuna serie de experimentos dirigidos y creados para aprender robtica. En la cartilla habrnindicaciones como esta: donde deber hacerse una complementacin terica del tematratado. Igualmente si el smbolo es el siguiente: se deber complementar la teora conayuda de exposiciones o ejercicios adicionales.

    Finalmente tendremos en la cartilla una serie de experimentos a realizar para aanzar los

    conocimientos en robtica. Se identicarn de la siguiente manera: cada experimento tendrun nmero para hacer ms fcil su ejecucin a la hora de trabajar en clase con los alumnos.

    No queda ms que decirles BIENVENIDOS al mundo de la robtica, sern participes de

    la ltima tecnologa en el mundo y ms adelante con esfuerzo y estudio podrn liderarproyectos que cambien el mundo y lo conviertan en un mejor lugar para vivir.

    x

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    5/33

    5

    Introduccin

    Echemos una muy rpida mirada al pasado en el que utilizbamos piedras, ramas, pielesy otros materiales para desarrollar pequeos y bsicos utensilios para ayudarnos ennuestras tareas diarias, se pueden imaginar viviendo en esa poca?...cogiendo una piedrapara cortar, unindola a un palito para cazar y poder comer?...solo imaginen

    El mundo fue bueno y nosotros como humanos empezamos a mejorar nuestras primerasinvenciones, poco a poco fuimos creando herramientas ms complejas, con el vapor,la plvora, la mecnica y nalmente con la energa elctrica, convertimos un palito yuna piedra en mquinas para volar, para nadar como los peces, hasta para ir al espacio!igualmente creamos aparatos para entretenernos, el televisor, el cine, las cmaras, el Xbox,el play station, etc. Finalmente inventamos el computador, el invento moderno que mueveal mundo actual y que junto con nuestra mente nos ha llevado a sobrepasar los lmiteshumanos. Se dan cuenta que siempre buscamos crear nuevas cosas, las inventamos y lasconstruimos para beneciarnos y ayudarnos?, siempre desde que usbamos solo palitos y

    piedras, Se dan cuenta que desde ese tiempo deseamos lo mismo?

    Nuestra imaginacin se ha dejado llevar y la necesidad de crear ms y mejores cosas pararealizar nuestros sueos ha sido tan alta que en nuestros das tenemos mquinas y aparatosque en tiempos pasados parecan sacados de un cuento. La magia no es que no exista, sinoque an no la hemos descubierto o inventado, todo es posible en este mundo, solo se necesitapaciencia, estudio, mucho tiempo para pensar y permitirnos inventar. La electricidad fue

    magia en sus primeros das, nadie entenda cmo, ni por qu sala, y mucho menos alguien seimagin algo semejante antes, por eso es razonable pensar que hay cosas an desconocidaspor nosotros, que tarde o temprano descubriremos, ser esa magia que ahora nos pareceirreal, debemos prepararnos entonces podamos gozar de ella en el futuro y aprovecharla paraque todos estemos mejor con los dems y con el medio ambiente.

    Alguna vez han pensado cmo participar activamente en esta corriente de invenciones?tommonos un tiempoSi su respuesta es No Se tranquilos les dir cmo hacerlo, eso s espero que nadiehaya dicho No se puede, porque esa respuesta elimina cualquier solucin y bloqueainmediatamente todo. Entonces creamos en que todo es posible y haremos maravillas. La

    manera como ustedes comenzarn a inventar es con algo que llaman robots! Y aprendiendola ciencia que los estudia: La robtica.

    Pongmonos cmodosy empecemos a aprender

    y a jugar para luego poderINVENTAR!

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    6/33

    6Mdulo educativode construccin de robots para estudiantes

    Taller 1: Qu es la robtica, paraqu sirve, y qu es un robot?

    Para comenzar es importante preguntarnos: qu es la

    robtica?. Su denicin es la siguiente:La robtica es la ciencia y la tecnologa de los robots. Se

    ocupa del diseo, manufactura y aplicaciones de estos.

    Esto nos lleva a una nueva pregunta, qu es un robot?

    Un robot es una entidad virtual o mecnica artifcial,

    que generalmente realiza alguna tarea.

    Ok, ya tenemos algo ms claro, pero qu exactamentehacemos con un robot? La respuesta es la misma que sipensamos en lo que hacamos con una palito y una piedra,ayudarnos a hacer nuestras tareas diarias, facilitarnos lavida y ayudarnos a investigar y a aprender nuevas cosas(por ejemplo cuando son enviados al espacio).

    Como pueden imaginarse hay muchos tipos de robots,hay pequeos que se pueden desplazar llamados robotsmviles: Hay robots que tratan de parecerse a nosotrosllamados humanoides:y los robots que construyen carrosy trabajan en fbricas se llaman robots industriales:Finalmente los ltimos tipos de robots que podemosencontrar no son tangibles, no son aparatos reales en estemundo sino programas y simulaciones en computadores,se denominan robots virtuales, en esta categora podemosencontrar igual a los virus de computador, ya que enla actualidad se han vuelto tan complejos que algunospueden llamarse robots virtuales.

    Robots mviles

    Humanoides

    Industriales

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    7/337

    Pero bueno, todos estos robots, que tienen en comn para que sean llamados a todos as?Qu los compone y caracteriza?

    SENSORES

    INTELIGENCIA

    ARTIFICIAL

    ACTUADORESPROCESADOR

    O MICROCONTROLADOR

    Todos los robots tienen todas o la mayora de las partes mostradas en el grco de arriba.

    Complemento Terico:

    El profesor deber hacer una breve explicacin de cada uno de estos elementos, ayudndosecon el ejemplo del cuerpo humano, los sensores son sentidos, los actuadores nuestros

    msculos, la inteligencia articial nuestra inteligencia, y nuestro cerebro es nuestro

    procesador que controla todo. Qu es un Sensor y qu tipos hay, Qu es un actuador y

    qu tipos hay?, y Qu es la inteligencia articial?Ejercicios aconsejados:

    1. Por grupos hacer exposiciones cortas acerca de los diferentes tipos de robot, quecada grupo elija un robot e identifque las partes que lo componen, mostrar videosde ejemplo de cada uno y explicar cul es su utilidad de ellos para las personas opara el mundo.

    2. Hacer una discusin sobre los siguientes temas y reconocer la importancia de larobtica y su aprendizaje:

    Qu es la robtica, qu es un robot, para qu sirve? Qu robots simples podramos imaginar para resolver problemas en la vida real?, buscar

    personas? Recolectar comida? Detectar intrusos? Qu elementos deberan tener estos robots? Es importante la robtica para el mundo? Para la gente? Puede ayudar a mejorar nuestra vida?

    Luego de entender que es la robtica y que tipos de robots hay y para qu sirven ahora sipasemos a la prctica y empecemos a aprender a construirlos.

    Animoque el camino

    apenas comienza!

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    8/33

    8Mdulo educativode construccin de robots para estudiantes

    Taller 2: Reconociendo loselementos con los que contamos

    A continuacin vamos a hacer un reconocimiento de los

    materiales con los que debemos contar para comenzarcon la construccin de robots.

    Ejercicios aconsejados:

    Identicar los elementos con ayuda de las imgenes e

    informacin que se encuentra seguidamente.

    Los primeros componentes que tenemos son de electrnica:

    Protoboard Adaptador 9vCables

    de ProtoboardRegulador

    de volte

    Leds Resistencias

    Este elementopermite conectarlas paticas de loselementos electrnicospara formarcircuitos.

    Este es el elementoque le proporcionarenerga a nuestrorobot.

    Son alambres quevienen en diferentescolores y tamaospara interconectarlos elementos en elprotoboard.

    Potencimetro Mini parlante

    Este elemento es unaresistencia que varasu valor al girar laperilla que tiene.

    Es un pequeoparlante, emitesonidos y tienepolaridad.

    Son componenteselectrnicos quereducen la cantidadde corriente que otroselementos recibenen el circuito.

    Son pequeosbombillos que emitenluces de diferentescolores segun el led.

    Se conecta a una delas terminales deladaptador de 9v,reduce su voltajea 5v para quepuedanfuncionarlos motores.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    9/33

    9

    Experimento 1: Conectando elementos, Primer Circuito:

    En este experimento vamos a conectar una pila de 1.5voltios AA a un LED y vamos a encenderlo pero vamos aguiarnos por el siguiente diagrama electrnico del circuito:

    Montar el siguiente circuito en el protoboard:

    Complemento Terico:

    Se deber explicar que es un protoboard, cmo funcionay para qu lo usaremos ms adelante.

    En este experimento conectamos una pila a una resistenciade 1 kilo ohm cuyos colores son caf negro y rojo.

    Complemento Terico:Explicar el cdigo de colores de las resistencias, cmo sesabe qu valor tienen segn los colores que tienen pintados.

    Experimento 2: Prendiendo un LED con un interruptor NA:

    En este experimento vamos a aadir un interruptornormalmente abierto NA al circuito anterior como lovemos en el siguiente diagrama del circuito:

    Vemos que cuando presionamos el interruptor el LEDse enciende, ya que estamos cerrando el camino dela corriente para permitir que llegue hasta el LED. Elinterruptor como est normalmente abierto solo permiteel paso de corriente cuando se oprima y se cierre.

    Experimento 3: Prendiendo un LED con un interruptor NC:

    En este experimento podemos cambiar el interruptor NAque usamos en el experimento 3 y lo cambiaremos por uninterruptor normalmente cerrado NC.

    Vemos que el LED siempre esta prendido, y si oprimimosel interruptor se apagar ya que el interruptor se abrir yno permitir ms el paso de corriente al LED. El interruptorcomo est normalmente cerrado siempre permite el paso

    de corriente pero cuando se oprime este interrumpe elpaso abriendo el circuito.

    l ll i

    li il

    il l l

    l ii i

    l i

    l i

    l ii

    l il i i

    Interruptor NCInterruptor NA

    Es un interruptor queesta normalmenteabierto, cuando sepresiona se cierra,dejando pasarcorriente.

    Es un interruptor queesta normalmentecerrado, cuando sepresiona se abre, ydetiene el pasocorriente.

    ill i

    l il l l

    l i l l

    l

    il

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    10/33

    10Mdulo educativode construccin de robots para estudiantes

    Experimento 4: Prendiendo un LED con un potencimetro de 10k ohm:

    En este experimento vamos a variar la intensidad de luz del LED, para esto usaremosun potencimetro, el cual al girar variar su resistencia interna y cambiara por tanto lacantidad de corriente que llega al LED. Para este montaje se debe conectar la patica centraldel potencimetro y una de sus dos patas de los extremos a la resistencia de 1k ohm comolo muestra el siguiente circuito:

    Ejercicios aconsejados:

    Hacer girar el potencimetro y descubrir como la intensidad de luz del LED cambia. Cambiarel potencimetro de 10k ohmios por el de 250k ohmios y hacer nuevamente la prueba.Luego de repasar los elementos de electrnica bsica ahora veremos los sensores usadoscomnmente en robtica, pero los aprenderemos a manejar en los experimentos del taller 4:

    CNY70Sensorde distancia infrarrojo

    Es el sensor encargadode medir distancias yarrojar un voltajesegn la distanciaque mida.

    El sensor de proximidadsirve para detectarobjetos cercanos a l,si detecta objetoarroja voltaje, sinoarroja 0 voltios.

    Fin de carreraFotocelda

    La fotocelda ofotoresistencia es unaresistencia que varasu valor segn lacantidad de luzque reciba.

    El fin de carrera es unsensor para detectarcuando un objetochoca al sensor. Secierra o se abre elcircuito interno.

    l i

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    11/33

    11

    La cabeza de nuestro robot, el microcontrolador es quien recibe las seales de los sensoresy ejecuta rdenes para que nuestro robot haga lo que nosotros deseemos:

    li i

    i il l

    i li

    l i

    li li i i

    Cable usbTarjeta Arduino

    Esta es la tarjetadonde est elmicrocontrolador quese programa para quefuncione nuestrorobot.

    Con este cableconectaremos nuestratarjeta Arduino alcomputador.

    il l

    ll

    l i i

    i l l

    i il l

    l

    i li

    Pero nuestro robot no se mover sin estos elementos, los aprenderemos a usar en el taller 5:

    li i

    i il l

    i li

    l i

    li li i i

    ll

    i l

    i

    l

    i l

    MotoresChasis de robot

    En este chasis semontarn los elementosdel robot y este podrmoverse segn loprogramemos.

    El chasis contiene dosmotores DC que hacengirar las ruedas delrobot.

    Controladorde motores

    Este chip sirve paramanejar los voltajesde los motores, ya queno se pueden conectardirectamente a latarjeta arduino.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    12/33

    12Mdulo educativode construccin de robots para estudiantes

    Taller 3: Juguemos con Arduino

    Aprendiendo a usar la tarjeta Arduino:

    Lo primero que vamos a aprender es a manejar la tarjetaArduino, pero qu es? Y para qu nos sirve?

    Arduino es una tarjeta electrnica que est basada en unmicrocontrolador (le diremos desde ahora MICRO), comovimos anteriormente un micro es el cerebro de nuestrorobot y por tanto debemos ensearle cosas y darlerdenes para que se ejecuten. Entonces nuestra tarjetaArduino es el camino para poder conectar el mundo dela electrnica con nuestro computador, en el computadorescribiremos las ordenes que debe ejecutar nuestro roboty luego debemos grabar esas rdenes en el micro paraque se hagan realidad. La tarjeta posee pines, o puntos

    donde conectaremos diferentes elementos electrnicosy estn marcados con nmeros en la tarjeta. Hay pinesdigitales, anlogos, y de alimentacin donde podremossacar energa para conectar otros elementos.

    Complemento Terico:Con el profesor identicar y denir que son los puertos

    digitales, anlogos, y de alimentacin. Qu sale por unpuerto digital?, Qu recibe un puerto anlogo?, Cmo

    se transforma una seal real en un valor numrico que

    podemos usar en nuestro micro para hacer nuestrosprogramas?, Qu es poner un voltaje en un pin de la

    tarjeta, poner en HIGH, enviar un 1 a un pin?. Dndeestn los pines de alimentacin 5v y GND?

    Igual que nosotros como seres humanos para entendernosdebemos hablar un idioma, algunos hablamos espaol,otros hablan ingls, y otros hasta usan sus manos parahablar, igualmente debemos hablarle a nuestro micropara que nos entienda y nos haga caso, pero para estodebemos usar un lenguaje especco y decirle las cosas

    de una manera especial. Le decimos las cosas medianteun cdigo o programa es decir, un texto escrito coninstrucciones que entender nuestro micro, y as podr hacerlo que le queremos. En el transcurso de los experimentosiremos aprendiendo a darle rdenes a nuestro micro.

    Vericar que tenemosla carpeta drivers.

    Para hacer menos confuso el aprendizaje vamos a hablarde ahora en adelante de programar la tarjeta Arduinoo programar el micro indistintamente, pero entendiendobien que el nico que se programa es el microcontrolador.

    Experimento 5: Conectando la tarjeta Arduino alcomputador con ayuda del cable USB.

    Lo primero que debemos hacer es tener a la mano elprograma de Arduino que podemos descargar desde lapgina, usaremos la versin 0018 en este caso:

    http://arduino.cc/es/Main/Software1

    O si tienen el programa ya en cd o en algn otro lugarbuscaremos en su interior una carpeta con el nombreDRIVERS, en esta carpeta es donde estn ubicados loscontroladores para que funcione la tarjeta con el computador.

    1 En esta pgina encontrarn tutoriales, ejemplos y muchas ayudas para aprender ms sobre Ardui-no, no duden en ir a visitarla

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    13/33

    13

    Si poseen una buena conexin a internet y tiene elcomputador actualizado con solo conectar la tarjeta elsistema operativo Windows buscar el controlador y seinstalar el Arduino automticamente, si no es el casoveremos el procedimiento a realizar para instalar losdrivers en un sistema operativo Windows XP, si requierenms ayuda de como instalar los drivers en otros sistemas

    vayan a la siguiente direccin:http://arduino.cc/es/Guide/HomePage

    Procedimiento de instalacin de Arduino en Windows XP:

    Tomamos nuestro cable USB y lo conectamos tanto ala tarjeta Arduino como al computador. Inicialmenteempezar el sistema operativo a buscar los drivers de latarjeta:

    Luego nos pedir buscar el controlador en internetdesde Windows update, pero le diremos que No por elmomento y damos clic en siguiente:

    Le decimos Instalar desde una lista o ubicacin especica(avanzado) y damos clic en siguiente:

    Seleccionamos la casilla Incluir esta ubicacin en labsqueda: y damos clic en el botn examinar, donde

    buscaremos la carpeta FTDI USB Drivers que se encuentradentro de la carpeta Driver del programa Arduino:

    Finalmente para vericar que todo est en orden, hacemos

    clic derecho en el icono de mi PC que generalmenteest en el escritorio, seleccionamos propiedades luego

    seleccionamos la pestaa Hardware y luego damos clicdonde dice Administrador de Dispositivos:

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    14/33

    14Mdulo educativode construccin de robots para estudiantes

    Hacer doble clic (para abrir)

    Hacemos click en el signo mas (+) donde dice controladoresde bus serie universal (USB), y vericamos que el iconodonde dice USB Serial Converter esta tal como muestrala imagen siguiente:

    Si todo est en orden podemos empezar a utilizarArduino en nuestro Pc sin inconvenientes. En caso tal

    que aparezca un icono con un smbolo amarillo encimadebemos reinstalar los drivers:

    Para la reinstalacin debemos hacer clic derecho dondese presenta el icono con el conicto y hacemos clic en

    propiedades, luego en actualizar controlador y hacemosnuevamente los pasos iniciales que acabamos de mostrar.

    Experimento 6: En este experimento vamos a comenzara ulizar la tarjeta Arduino para encender un LED o un mini

    parlante.

    Vamos a hacerlo funcionar por primera vez. Que se hagala luz!...prendiendo un LED.Lo primero que debemos hacer es abrir el programa deArduino que podemos descargar desde la pgina:

    http://arduino.cc/es/Main/Software2

    O si tienen el programa ya en cd o en algn otro lugarpodemos abrirlo:

    Abrir el programa y tendremos que seleccionar el tipo detarjeta con la que estamos trabajando, debemos seguireste proceso:

    2 En esta pgina encontraran tutoriales, ejemplos y muchas ayudas para aprender mssobre Arduino, no duden en ir a visitarla

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    15/33

    15

    1. Ir a Menu tools en la parte superior del programa queacabamos de abrir

    2. Pasar el mouse donde dice board y de desplegar unalista

    3. Hacer clic donde dice Arduino Diecimila, Duelminanove, orNano w/ AT Mega 168

    4. Ir a Men tools -> Serial port -> Elegir Puerto activo(ejemplo: COM5)

    En caso tal que no aparezcan puertos COM es posible que latarjeta Arduino haya quedado mal instalada.

    5. Men File ->Examples -> Digital-> Blink

    6. Luego de que automticamente se abra una nuevaventana se debe vericar que el cdigo est bien escritohaciendo clic en la echa Verify (compilacin del cdigoo vericacin de sintaxis)

    7. Vamos a grabar el cdigo en el micro hacer clic enUpload

    8. Vericar que se haya programado correctamente:

    9. Se debe conectar un LED tal como muestra la siguienteimagen :

    10.Y eso es todo! vemos como el LED prende y apagasucesivamente, podemos cambiar el LED por un miniparlante para escuchar un sonido intermitente.

    11.Pueden cambiar el valor que est en la funcindelay(1000) por un valor ms grande como 4000, y

    luego por uno ms pequeo como 200. Qu pasa? Quehace esta funcin delay?

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    16/33

    16Mdulo educativode construccin de robots para estudiantes

    Complemento Terico:

    En este punto es necesario que el profesor haga laintroduccin terica sobre programacin con la ayuda delcdigo Blink para prender un LED. Deber ensearsesobre qu es un algoritmo y un programa, cuales son las 3partes fundamentales de un programa (variables, funciones

    y funcin principal main que en Arduino es Loop), explicarque es la Sintaxis de un cdigo, que es un comentario yque tipos de variables podemos usar.

    Anlisis del cdigo:

    Como puede verse en este cdigo, hay tres partesfundamentales, que todo cdigo debe tener SIEMPRE, laprimera de ellas es la declaracin de variables:int ledPin = 13; // LED conectado al pin digital 13En esta parte vamos a denir los pines que usaremos

    de nuestra tarjeta, e igualmente todas las variables quenecesitemos usar.

    El siguiente componente es la funcin conguracin

    setup(), todo lo que est encerrado dentro los 2corchetes de la funcin es parte de esta conguracin:void setup(){// Inicializar el pin digital ledPin como salida:pinMode(ledPin, OUTPUT);}

    En esta parte le decimos a la tarjeta como vamos a utilizarsus pines, si va a salir voltaje de ellos (OUTPUT) o si vana recibir voltajes o seales (INPUT), para esto usamosla funcin pinMode(nmero de pin, INPUT u OUTPUT). Porltimo tenemos la funcin principal main que llamamosen Arduino loop(), al igual que la funcin setup() la funcion

    loop() debe encerrar todo el cdigo entre 2 corchetes quese abren apenas se escribe loop() y se cierran al nal detodo el cdigo. Esta funcin se llama loop (en espaolclico) ya que repetir indenida una y otra vez lo que

    escribamos entre sus corchetes:

    void loop(){// Prender el led enviando// 5 volios por el pin 13 ledPIN

    digitalWrite(ledPin, HIGH);

    delay(1000); // esperar un segundo

    // Apagar el led enviando

    //0 voltios por el pin 13 ledPINdigitalWrite(ledPin, LOW);

    delay(1000); // esperar un segundo}

    En este cdigo vemos funciones especiales que usaArduino para poner voltaje en sus pines como la funcindigitalWrite(nmero de pin, LOW/HIGH, ), para poner 5 voltiosen un pin y prender el LED que tenemos conectadoescribimos digitalWrite(ledPin, HIGH); La funcin delay()si sedieron cuenta sirve para hacer una pausa en el programa,es decir, se congela el programa y no se ejecutan msinstrucciones, por eso en el cdigo de Blink cuando

    prendemos el LED y hacemos una espera de 1 segundoel LED permanece en ese estado, cuando acaba la esperay la nueva instruccin se ejecuta, el LED se apaga y lodejamos en este estado por 1 segundo ms, antes devolver a encenderlo. Como se mencion hace un momentola funcin Loop() repite el cdigo indenidamente, en

    este ejemplo prende y apaga el LED repetidamente.

    A medida que vayamos realizando ms experimentosveremos algunas otras funciones especiales de Arduino.

    Ejercicios aconsejados:Los nios deben desarrollar un algoritmo para hacer queuno de sus compaeros que debe hacer de robot, puedallegar a un lugar del saln partiendo de otro punto. Denir

    las reglas y las rdenes para que el robot pueda llegar allugar deseado.

    Hacer que los nios respondan las siguientes preguntasluego de la clase terica, uno responde y otro lo corrige:

    Qu es un programa, para que sirve, en que lo vamos a utilizar? Cmo se escribe un programa, y Qu es un lenguaje de

    programacin? Qu es un algoritmo? Para qu sirve crear un algoritmo? Las partes de un programa: Qu es y para qu sirve una

    variable, en qu forma la usaremos, qu es un tipo devariable?, Qu operaciones podemos hacer con los datos o

    variables, sumar, restar, multiplicar, operaciones lgicas,comparativas, etc.?

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    17/33

    17

    Las partes de un programa: Qu es y para qu sirve unafuncin, en qu forma la usaremos?

    Las partes de un programa: Qu es y para qu sirve lafuncin principal, en qu forma la usaremos?

    Qu usamos para programar: las herramientas con las quedisponemos son, FOR, WHILE, IF, IF ELSE, SWITCH, paraqu nos sirven en nuestros programas?

    Experimento 7: Presionando un pulsador se acvanvarias luces:

    Vemos a continuacin la imagen del montaje en protoboard,se usan 4 LEDs (Representados como semicrculos con unsigno + y -), 4 resistencias de 330 ohm (naranja naranja caf)conectadas a los 4 LEDs, un interruptor NA y su resistencia de1K ohm (caf negro rojo).

    El siguiente Cdigo es con el que se programar la tarjeta Arduino, se debe copiar en unanueva ventana de programa, compilar (tringulo izquierdo verify) y programar (echaderecha upload):

    Cdigo:

    /**************************************************************/// Creado por Jos Luis Susa - 2010

    /*variable que guarda los 4 nmeros dondeestarn conectados los 4 LEDs */int cadenaLeds[ ]={6,7,8,9};

    /*Declaracin de la variable que guarda el n del PIN al que se conecta el pulsador*/int puls=5;

    /*tiempo es la variable que guarda el valor de la esperaque usaremos con la funcin delay*/

    int tiempo=200;

    /*La variable n es el contador en el FOR*/int n=0;

    void setup (){for(n=0;n

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    18/33

    18Mdulo educativode construccin de robots para estudiantes

    Complemento Terico:

    Se debe analizar y entender cmo acta la variable

    cadenaLed[], explicar cmo actan las variables tipo

    arreglo como esta. Cmo se usa la variable cadenaLed[]

    en la sentencia FOR.

    Se debe analizar y entender cmo acta la funcin ash,

    cmo se usa la funcin en el programa, para que usamos

    una sentencia FOR y la condicin IF, cmo es la sintaxis

    te estas sentencias?

    Cmo se relacionan las tablas de verdad, con la electrnica

    fsica, los 1 y 0 con las tablas de verdad, para qu me

    sirven (generacin condiciones IF y ejecucin de acciones

    dependientes de estas).

    Qu hace la funcin digitalRead? Para que la usamos en

    este cdigo?

    Ejercicios aconsejados:Hacer que las luces se prendan y apaguen de maneraintercalada cuando se oprima el pulsador (estilo autofantstico).

    Experimento 8: Prender 4 LEDs con la ayuda de unpotencimetro de 10 K ohm:

    En este montaje usamos los mismos 4 LEDs y susrespectivas resistencias de 330 ohmios, usamos unpotencimetro conectando a una de sus 3 patas a 5v, laotra a una resistencia de 1k ohmios y la pata central seconecta al pin anlogo 10 de la tarjeta Arduino.Imagen montaje:

    Cdigo:

    /**************************************************************/// Creado por Jos Luis Susa - 2010

    /*variable que guarda los 4 nmeros dondeestarn conectados los 4 LEDs*/int cadenaLeds[ ]={6,7,8,9};

    /*n de la entrada analgica a la que va conectado el potencimetro*/

    int pot=0;/*La variable n es el contador en el FOR*/int n=0;

    /*variable que guarda la lectura de la seal en la entrada*/int medida=0;

    /*no es necesario congurar las entradas analgicas, siempre son entradas*/

    void setup(){for(n=0;n

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    19/33

    19

    Explicacin:

    En este experimento se aprecia cmo puede incluirseun componente anlogo (potencimetro) para controlarsegn su valor cual debe ser la accin a ejecutar. En estecaso el valor mximo de 5 voltios encender todos losLEDs en cambio de este voltaje mximo solo encender

    1, a medida que aumente el voltaje se irn encendiendocada uno de los LEDs hasta que todos estn prendidos.

    Complemento Terico:Cmo hacemos la lectura del valor del potencimetro?

    Para qu sirve la funcin analogRead().

    Taller 4: Bienvenidos al mundo de larobtica, juguemos con los sentidos deun robot.

    A partir de este momento vamos a aprender sobre laspartes de un robot, iniciaremos con sensores y luegopasaremos al manejo de los motores. Haremos 4experimentos para manejar los 4 sensores ms utilizadosen robtica. Los sensores son los sentidos de nuestrorobot, con ellos podrn tocar y saber quin est cerca,si hay luz o no, luego de saber cmo usarlos podemosponerlos en un robot y hacer grandes e interesantescosasAs que comencemos!

    Experimento 9: Sensor de luz, cul es su ulidad

    en robca?

    El sensor de luz o fotocelda es el primer sensor con el quejugaremos, este sensor es una resistencia variable quedepende de la cantidad de luz que reciba en su supercie,

    entre ms luz reciba menos resistencia tendr y viceversa.En el circuito que montaremos veremos como cambiando laluz, cambiar el voltaje que recibe la tarjeta Arduino.

    Las aplicaciones de este sensor son muy diversas, sepuede agregar este sensor a un robot y programar uncomportamiento tal que si hay luz el robot avance o de locontrario permanezca en su sitio, igualmente podramos

    hacer que un robot al detectar luz genere una seal sonora,o ejecute una serie de movimientos determinados.

    En el montaje usamos una resistencia de 330 ohmios (naranja naranja cafe), una fotocelday entre estas sacaremos un cable para llevar el voltaje variable de la fotocelda al pin anlogo0 de la tarjeta Arduino:

    Cdigo:

    /**************************************************************/

    //Creado por Jos Luis Susa - 2010

    //Entrada donde se conecta el sensorint sensorPin = 0;

    //Salida digital donde se conecta un LED o una bocinaint ledPin = 13;

    //Variable para guardar el valor medido del sensorint sensorValue = 0;

    void setup() {// declare the ledPin as an OUTPUT:pinMode(ledPin, OUTPUT);

    //inicializacin serial para mostrar datos en la pantallaSerial.begin(9600);}

    void loop() {

    int distanciaCm;// la lectura del sensor va de 0 a 500 aproximadamentesensorValue = analogRead(sensorPin);

    if(sensorValue>80){ //si el valor medido es > 80 detecta luz// se enciende la salida ledPindigitalWrite(ledPin, HIGH);

    }else{// se pone a cero la salida ledPindigitalWrite(ledPin, LOW);

    }//imprimimos en pantalla el valor medidoSerial.print (\nValor Medido:);Serial.print (sensorValue);

    }/**************************************************************/

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    20/33

    20Mdulo educativode construccin de robots para estudiantes

    Explicacin:

    En este montaje se recibe una seal anloga por el pin 0de Arduino, y se visualiza una salida digital por el pin 13.El rango para que encienda o apague el LED depender delas necesidades de uno como programador, dependiendo dela cantidad de luz captada, modicaremos a conveniencia el

    valor 80 que est en el IF por cualquier otro que deseemosque se ajuste a lo que queremos, el voltaje de salida enviadopor la fotocelda ser menor si la esta no recibe luz, ya quesu resistencia interna aumenta tanto que se aproxima a uncircuito abierto donde no conduce corriente.

    Se usa una funcin Serial.print que sirve para visualizaren pantalla lo que deseemos, en este caso imprimimosen pantalla la frase Valor Medido y luego imprimimosel valor que tiene la variable sensorValue, el signo \nsirve para generar una nueva lnea, como cuando damosEnter en un teclado. Para ver estos valores en la pantalladel computador, damos clic en el icono monitor del puertoserial (serial monitor):

    Ejercicios aconsejados:

    Imprimir en pantalla el valor medido multiplicado por 2,Cmo haramos que la funcin Serial.print() muestre estenuevo valor?.

    Experimento 10: Sensor de choque o fn de carrera,cul es su ulidad en

    El sensor que usaremos a continuacin es llamado n de

    carrera, se puede decir que son dos interruptores en uno,hay un interruptor NA y otro NC, cuando se preciosa elinterruptor NA se cierra y el NC se abre, de esta maneraes posible enviar dos seales a nuestra tarjeta Arduino almismo tiempo si queremos. Por ejemplo, si le ponemoseste sensor en la parte frontal de nuestro robot si estese chocara de frente oprimira el sensor, si se oprimeenviaria una seal digital (5 voltios) a una de las entradasde la tarjeta, podemos programar nuestro robot para que

    cuando esto suceda retroceda y haga un giro de 180 gradospara alejarse del lugar donde se choc.

    Podemos usar los dos interruptores al tiempo, por ejemplosi conectamos un LED al interruptor NC, este permanecerencendido siempre, a menos que el interruptor sea oprimido,si queremos que el robot retroceda apenas reciba una sealcuando el NA se cierre, estaremos logrando dos efectos

    diferentes presionando el sensor, apagaremos el LED yharemos que nuestro robot retroceda de forma simultnea.

    Igualmente los nes de carrera son altamente utilizadospara controlar los movimientos de algunos motores, si unmotor tiene unido una pequea barra, cuando este girela barra girara, as si se coloca un n de carrera de talmanera que luego de cierto giro del motor se toque elsensor con la barra, es posible programar nuestra tarjetapara que detengamos el motor cuando esto suceda ycambiarle el sentido de giro, si colocamos un segundosensor n de carrera al otro lado, y hacemos lo mismo,

    lograremos que el motor se encienda haga girar la barra aun lado hasta tocar el primer sensor y luego regrese hastaque choque con el segundo y vuelva a cambiar el giro. Deesta manera lograremos controlar el movimiento de unmotor al controlar su giro mximo.

    El experimento siguiente veremos como es el funcionamientode este sensor, conectando dos LED como muestra elsiguiente diagrama:

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    21/33

    21

    Cdigo:

    /*****************************************************/// Creado por Jos Luis Susa - 2010

    int nCarrera=7; //Declaracin de la variable que guarda el n delPIN al que se //conecta el n de carreraint pinLed =13;

    void setup (){

    //pin donde se conecta el LEDpinMode(pinLed,OUTPUT);

    //Conguracin del PIN cuyo n guarda la variable//nCarrera como salida digital

    pinMode(nCarrera,INPUT); }

    void loop(){//Condicional que se ejecuta cuando//detecta el nCarrera presionado

    if(digitalRead(nCarrera)==HIGH){

    // se activa la salida ledPin encendiendo el LEDdigitalWrite(pinLed, HIGH);

    }else{// se desactiva la salida ledPin apagando el LED

    digitalWrite(pinLed, LOW);}

    }/*****************************************************/

    Explicacin:

    En este ejemplo se puede ver inicialmente el LED de la derecha esta encendido sin que eln de carrera este presionado, ya que este LED est conectado al pin NC (normalmente

    cerrado) y por tanto el circuito conduce, pero cuando el n de carrera es presionado el LEDde la derecha se apaga y es el de la izquierda quien se prende, ya que el interruptor NA(normalmente abierto) cierra el circuito que enciende este segundo LED. Al tiempo que seenciende este segundo LED se enva una seal digital a la tarjeta Arduino por el pin digital7 y que segn nuestro programa provoca que se encienda un tercer LED conectado al pindigital 13 de salida.

    Ejercicios aconsejados:

    Hacer que cuando se oprima el n de carrera a parte de encender el LED en el pin 13 de

    la tarjeta Arduino, apaguemos un cuarto LED conectado a otro pin digital. OJO! El nuevo

    LED debe conectarse con una resistencia de mnimo 330 ohmios entre este y GND, no sedebe conectar directamente el LED entre el pin digital y GND porque quemaramos el LED.

    Experimento 11: Sensor distancia, cul es suulidad en robca?

    Este es quizs el sensor ms usado de todos, el sensorinfrarrojo de distancia es muy til para diversas aplicacionesen robtica, ese sensor enva un haz de luz infrarroja (novisible) que al rebotar en algn objeto es recibida por un

    receptor especial llamado sensor lineal que determina quetan lejos est el objeto, el sensor enva un voltaje por unade sus terminales correspondiente a la distancia medida,entre ms lejos est el objeto ms pequeo el voltaje yentre ms cerca est mayor es el voltaje.

    Con la tarjeta Arduino leemos el voltaje y determinamosque tan lejos o cerca est el objeto y que queremos quehaga nuestro robot, por ejemplo si queremos que eviteobstculos le diremos que si el objeto se detect a menosde 15 cm debe parar y girar a la derecha para no estrellarse.

    A continuacin vamos a hacer el montaje para hacerfuncionar el sensor, en este momento ya deben tener bien

    claro cmo usar el protoboard para conectar el sensorcomo indica el siguiente diagrama, deben tener cuidadoconectando 5v, si se conecta errneamente se daa elsensor, por eso tomen el sensor tal y como muestra eldiagrama, el hueco largo hacia la derecha, identicar

    el cable de la derecha como 5v, el de la mitad como 0v(GND) y el de la izquierda como la salida propia del sensorque ir a la tarjeta Arduino (voltaje de salida):

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    22/33

    22Mdulo educativode construccin de robots para estudiantes

    Cdigo:

    /**************************************************************/// Creado por Jos Luis Susa - 2010

    //Entrada donde se conectar el sensorint sensorPin = 0;

    // Salida digital donde se conecta un LED o una bocina

    int ledPin = 13;// Variable para guardar el valor medido del sensorint sensorValue = 0;

    //variable donde guardaremos las distancia en cm,//luego de hacer la conversin necesaria con la frmula de abajoint distanciaCm;

    void setup() {// declarar el ledPin como OUTPUT:pinMode(ledPin, OUTPUT);

    //inicializacin serial para mostrar datos en la pantallaSerial.begin(9600);

    }void loop() {//lectura del voltaje arrojado por el sensor//que va aproximadamente de 0 a 600.//este valor debe ser convertido luego a centmetrossensorValue = analogRead(sensorPin);

    //Se enciende la salida ledPindigitalWrite(ledPin, HIGH);

    //Tiempo de espera de millisegundos:delay(sensorValue);

    //Se desactiva la salida ledPindigitalWrite(ledPin, LOW);

    //Tiempo de espera de millisegundos:delay(sensorValue);

    //imprimimos en pantalla el valor medidoSerial.print (\nValor Medido:);Serial.print (sensorValue);

    //clculo de la distancia en centmetros//a partir del voltaje medido anteriormentedistanciaCm = (2914 / (sensorValue + 5)) - 1;

    /* Como la variable distanciaCm tiene el valor en centmetros queel sensor midi, se puede usar esta variable para hacer las condiciones*/Serial.print (\n Distancia en Cm:); //imprimimos en pantalla la distancia en cmSerial.print (distanciaCm);}

    /**************************************************************/

    Explicacin:

    En este experimento se puede ver como la velocidad enque prende y apaga el LED vara de manera inversa a ladistancia medida por el sensor. Entre ms lejos el sensordetecte un objeto ms rpido prende y apaga el LED.

    La distancia es medida mediante la salida de voltaje

    del sensor, a mayor distancia menor voltaje de salida eviceversa, este voltaje es recibido por la tarjeta Arduinoy convertido con su conversor anlogo-digital y guardadoen una variable llamada sensorValue.

    Ejercicios aconsejados:

    Modicar el cdigo para que se encienda el LED solo si

    la distancia medida es menor a 15 cm, si es mayor debeestar apagado el LED. Borrar lo que no necesitaremos,usar la variable sensorValue, la frmula de conversina cm, la variable distanciaCm y una condicin IF ELSE.

    Experimento 12: Sensor proximidad, cul es su

    ulidad en robca?Este sensor se usa generalmente para detectar colorescomo negro y blanco, ya que como el blanco reeja la luz

    totalmente el sensor enva una seal de 5v, cuando sepone frente a un color negro, este no permite que hayarebote de la luz infrarroja y por tanto el sensor enva unaseal de 0v. Este efecto es til para hacer robot que siganlneas, si se ubican dos sensores a los costados de unalnea negra, cada vez que se salga un poco de la l nea solobasta hacer girar un poco el robot en sentido contrariopara alinearlo nuevamente y seguir la lnea.

    Hay que tener en cuenta que la luz ambiente puede modicar

    fuertemente las lecturas del sensor, as que es mejor dejarlosiempre oculto de la luz, si es posible debajo del robot ycubierto por los lados, otra solucin es mantener a sualrededor una luz constante rodendolo por ejemplo de LEDs.

    Lo primero que debemos hacer es clasicar las 4 patas delsensor con ayuda del siguiente grco:

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    23/33

    23

    El sensor tiene una especie de bombillito de color azul,si ubicamos este, segn el diagrama cada patica vamosa identicarla con una letra, estas letras son importantes

    para montar correctamente el siguiente diagrama:

    Nota: El bombillo azul esta en la parte superior de la imagen

    Cdigo:

    /***********************************************************///Creado por Jos Luis Susa 2010

    int sensorPin = 0; // entrada donde se conectara el sensorint ledPin = 13; // salida digital donde se conecta un LED o una bocina

    int sensorValue = 0; // variable para guardar el valor medido del sensor

    void setup() {// declare the ledPin as an OUTPUT:pinMode(ledPin, OUTPUT);Serial.begin(9600); //inicializacin serial para mostrar datos en la pantalla

    }

    void loop() {// la lectura del sensor que ser fuertemente afectada//por la cantidad de luz ambientesensorValue = analogRead(sensorPin);

    //si el valor medido es > 80 detecta color blanco

    // se enciende la salida ledPinif(sensorValue>80){digitalWrite(ledPin, HIGH);

    }else{// se pone a cero la salida ledPindigitalWrite(ledPin, LOW);

    }//imprimimos en pantalla el valor medido

    Serial.print (\nValor Medido:);Serial.print (sensorValue);}/***********************************************************/

    Ejercicios aconsejados:

    Poner el sensor en la luz del sol y visualizar como afecta la luz ambiente las medidas obtenidas.

    Arreglar el cdigo para que funciones bajo estas nuevas condiciones ambientales.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    24/33

    24Mdulo educativode construccin de robots para estudiantes

    Para el trabajo que se realizar se va a usar el puente H de referencia L293D:

    1 Habilitar motor12 Entrada1 motor13 Salida 1 motor14, 5 Negativo alimentacin motores y driver6 Salida2 motor17 Entrada2 motor18 Positivo alimentacin motores (5v a 36v)9 Habilitar motor 210 Entrada2 motor211 Salida2 motor212,13 Negativo alimentacin motores y driver14 Salida1 motor215 Entrada1 motor216 Positivo alimentacin chip (5v)

    El cierre y apertura de los interruptores estar a cargo del micro que est conectado a estepuente H mediante los pines de entrada Input 1, 2, 3 y 4.

    En el pin 8 (alimentacin de los motores) se conectar el cable que sale del regulador devoltaje amarillo que tenemos, el cual que a su vez estar conectado al adaptador de 9v (9voltios). El regulador reducir los 9v a 5v para no daar los motores con exceso de voltaje:

    VSS

    VS

    INPUT 4INPUT 1

    INPUT 3INPUT 2

    ENABLE 2

    ENABLE 1

    OUTPUT 4OUTPUT 1

    OUTPUT 3OUTPUT 2

    GND

    GND

    GND

    GND

    1

    2

    3

    4

    5

    6

    7

    8

    16

    15

    14

    13

    12

    11

    10

    9

    i i

    Taller 5: Bienvenidos al mundode la robtica, juguemos conlos motores de un robot.

    En los siguiente dos talleres vamos a aprender a controlar

    2 motores de corriente directa llamados motores DC, ysern quienes hagan andar nuestro robot. Inicialmenteharemos el experimento para manejar un solo motor luegopartiendo de este aprenderemos cmo poder usar unsegundo motor, controlando su velocidad y su direccin,para hacer giros, andar en lnea recta o retroceder.Comencemos entonces!

    Experimento 13: Controlando 1 motor.

    Para comenzar este montaje es necesario aprendersobre un dispositivo llamado puente H, el objetivo deeste dispositivo es servir como interface entre el microy un motor, ya que no es conveniente conectarlos

    directamente porque el motor maneja corrientes muyaltas para el micro y esto lo daara inminentemente.Un puente H generalmente es conocido como driver(controlador, conductor, manejador) de un motor, yaque este dispositivo es quien alimenta al motor, dene

    su direccin, y controla su velocidad mediante una salidaPWM (obtenida del micro).

    Un puente H es un conjunto de interruptores que se cierrany abren para controlar la direccin del motor. Si se quierehacer girar el robot es necesario cerrar los interruptoresS1 y S4 o bien S2 y S3 para que circule la corriente porel motor:

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    25/33

    25

    Cdigo:

    /***********************************************************///Creado por Jos Luis Susa 2010

    int motor1A = 6; // salida de pwm al motorint motor1B = 9; // salida2 de pwm al motor

    void setup() {// PWM del motorpinMode(motor1A, OUTPUT);pinMode(motor1B, OUTPUT);

    }

    void loop() {//con analogWrite enviamos un PWM de 100 al pin 6

    analogWrite(motor1A,100);analogWrite(motor1B,0);

    delay(3000); //esperar 3 segundos

    //cambio de sentido de giroanalogWrite(motor1A,0);analogWrite(motor1B,100);delay(3000);

    }

    /***********************************************************/

    Explicacin:

    En este montaje usamos el integrado (chip) L293 para controlar un motor, este gira en unsentido y en otro alternadamente.

    En cuanto al montaje, lo primero que se debe notar es que el chip 293 necesita de 2 voltajesdiferentes, el primero es el voltaje VSS (pin 16), que es el mismo con el que trabaja latarjeta Arduino de 5v y el segundo es el voltaje VS del motor (pin 8), que como ya dijimos

    sale del regulador, NUNCA DEBE USARSE EL VOLTAJE DE LA TARJETA PARA ALIMENTAR LOSMOTORES, SIEMPRE USAR EL REGULADOR EXTERNO. Al pin 8 se pueden conectar voltajes demnimo 5v hasta 36 voltios, segn la capacidad del motor, para nuestro caso los motores quetenemos reciben mximo 6 voltios.

    Hay dos lneas que llegan al chip desde la tarjeta Arduino, estas son las seales PWM queenviamos desde Arduino para controlar la velocidad del motor, en el cdigo escribimos lafuncin analogWrite(nmero de pin, valor PWM), entre los parntesis ponemos el nmero depinpor el que enviaremos el valor PWMque deseamos. El valor del PWM va de 0 a 255.La razn por la que hay dos PWM para un motor es para poder controlar el sentido de giro,enviando por un pin un PWM y por el otro 0, el motor girar, si queremos que vaya en sentidocontrario invertiremos lo que enviamos en los dos pines, en el primer pin enviaremos ahora 0y en la segundo el PWM que queramos, si queremos detenerlo debemos enviar 0 por ambospines. Por eso en el cdigo enviamos primero un PWM de 100 por un pin y 0 por el otro, yal cambiar de sentido de giro enviamos 0 al primero y 100 al segundo.

    Usamos la funcin delay()para que nuestra tarjeta noejecute ms instrucciones y por tanto el chip recibir elmismo valor PWM durante estos 3 segundos ya que no sehace ningn cambio, al pasar los 3 segundos se modican

    los PWM que se envan y se vuelve a detener todo en esteestado para que los motores giren en el nuevo sentido de

    giro 3 segundos igualmente.

    Ejercicios aconsejados:Hacer que el motor gire durante 4 segundos y luego parepor otros 2 segundos, hacerlo girar hacia el otro lado por 4segundos y parar otros 2 segundos.

    Experimento 14: Controlando 2 motores.

    Para conectar 2 motores vamos a usar el mismo montajeanterior pero aadiremos algunos cables ms para poderusar un segundo motor:

    Las conexiones para el segundo motor son similares a lasdel primero, las mismas conexiones que se hicieron en laparte superior del chip se hacen abajo para controlar elsegundo motor. En el primer montaje usbamos los pinesPWM 6 y 9 del Arduino, en este caso usamos los pines 9 y11 para el motor de arriba y los pines 5 y 6 para el motorde abajo. Hay que jarse bien que se conecten los cables

    en los pines marcados como PWM en la tarjeta Arduino

    (pin 3, 5, 6, 9, 10, y 11), hay pines que no son PWM y portanto no nos servirn.

    Voltaje motor

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    26/33

    26Mdulo educativode construccin de robots para estudiantes

    Cdigo:

    /***********************************************************///Creado por Jos Luis Susa 2010

    int motor1A = 11; // salida de pwm al motorint motor1B = 9; // salida2 de pwm al motorint motor2A = 5; // salida de pwm al motor 2

    int motor2B = 6; // salida2 de pwm al motor 2

    void setup() {// PWM del primer motorpinMode(motor1A, OUTPUT);pinMode(motor1B, OUTPUT);// PWM del segundo motorpinMode(motor2A, OUTPUT);pinMode(motor2B, OUTPUT);

    }

    void loop() {//girar primer motor

    analogWrite(motor1A,100);

    analogWrite(motor1B,0);//girar segundo motor

    analogWrite(motor2A,100);analogWrite(motor2B,0);

    delay(3000); //esperar 3 segundos

    //cambio de sentido de giro primer motoranalogWrite(motor1A,0);analogWrite(motor1B,100);

    //cambio de sentido de giro segundo motoranalogWrite(motor2A,0);analogWrite(motor2B,100);

    delay(3000); //esperar 3 segundos}

    /***********************************************************/

    Explicacin:

    Al igual que en anterior experimento hacemos que ambosmotores giren en un sentido y luego en otro, invirtiendo lasseales PWM que enviamos desde la tarjeta Arduino. Estavez tenemos 4 pines PWM para manejar los 2 motores,debemos congurar los 4 pines como salidas en la funcin

    SETUP y luego en la funcin LOOP enviar por ellos lasseales PWM que deseamos, primero ponemos a girar elprimer motor, luego el segundo y hacemos una espera de3 segundos para que giren as durante este tiempo, luegocambiamos las seales de ambos motores y esperamosotros 3 segundos girando en este nuevo sentido antes devolver a invertir el giro.

    Cuando programemos nuestro robot para que vaya alfrente, nos encontraremos que quizs las llantas no girancomo deseamos, una puede girar en sentido inverso acmo queremos, y en vez de ir de frente el robot gira, lasolucin es invertir los cables de PWM, o los cables delmotor, poniendo uno de los cables donde est el otro,lograremos que ambos motores giren de la misma formacon la misma programacin.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    27/33

    27

    Taller 6: A divertirnos construyendoun verdadero robot!

    Cuando pensamos en construir un robot siempre vamos apensar en dos sencillas cosas antes de empezar:

    1. Defnir qu debe hacer nuestro robot?2. Pensar en la Programacin

    El primer paso es aunque parezca muy simple, el msimportante. Debemos saber que queremos hacer, debemospensar en cmo vamos a hacerlo, qu algoritmo usaremospara que haga lo que queremos, qu informacin recibirdel exterior y cules sensores tendra nuestro robot,nalmente tendremos que pensar en las salidas que

    tendr nuestro robot, se mover? Utilizar motores?,parlantes, luces?

    El segundo paso parte del primero, como vimos un

    programa comienza con la declaracin de variables as quesegn los sensores que denimos en el paso 1 debemosdenir las variables donde vamos a guardar los valores de

    los sensores. Luego de esto sigue la conguracin de la

    tarjeta Arduino, mediante la funcin setup(),debemosdenir cules son pines de salida y entrada, si utilizaremos

    la comunicacin serial para ver datos en pantalla quenecesitemos para probar nuestros cdigos (Serial.begin,Serial.print). Los pines de entrada sern los pines dondeconectamos los sensores, los pines de salida sernlos pines para sacar una seal PWM, prender LEDs, oParlantes. Solo nos resta empezar a programar nuestroalgoritmo, nuestras condiciones, nuestras acciones, etc.

    Estas instrucciones irn como vimos anteriormente en lafuncin loop().

    Complemento Terico:Hacer el ejercicio mental de pensar en varios tipos derobot simples, reconocer sus objetivos, y pensar encmo hacerlo funcionar (el algoritmo), luego pensar enlas variables a utilizar, la conguracin y el desarrollo

    del cdigo del algoritmo para lograr lo que queremos.Por ejemplo si queremos hacer un robot que huya, si seacerca una mano a un sensor de distancia el robot debealejarse y hacer sonar un parlante para dar una alerta.Qu tipo de programacin usaramos? Qu variables y queacciones efectuar nuestro robot. Entradas? Salidas?

    Experimento 15: Construir un robot que se mantenga separa de un objeto:

    El primer robot que vamos a construir es el robot que mantenga una distancia especca

    a un objeto. Si el objeto se aleja el robot debe acercarse, si el objeto se acerca ms dellimite el robot debe alejarse.Como ya sabemos que queremos hacer, ahora debemos pensar en los elementos quenecesitaremos para construir el robot:

    1. Sensor de distancia frente al robot2. Dos motores3. Chasis de robot para acoplar los motores

    Para la construccin del robot vamos a tener que montar en el protoboard el sensor dedistancia, el puente h L293 para manejar los dos motores como vimos anteriormente, yconectar la tarjeta Arduino con nuestro adaptador de 9v y el regulador para alimentar losmotores con 5 voltios. Pidmosle ayuda a nuestro profesor gua para montar todos estos

    elementos correctamente para seguidamente empezar a programar.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    28/33

    28Mdulo educativode construccin de robots para estudiantes

    Cdigo:

    /**********************************//*El robot que implementa este cdigo, es capaz de manteneruna distancia de 12 cm de un objeto en frente de l.Este es un control IA basado en reglas.

    Creado por Jose Luis Susa 2010*/

    int sensorPin = 0; // entrada donde se conectara el sensorint ledPin = 13; // salida digital dondese conecta un led o una bocinaint sensorValue = 0; // variable paraguardar el valor medido del sensorint distanciaDeseada = 12; //el robot queremos que este a 12cmint pwm1=255;

    int motor1A = 5; // salida de pwm al motor 1int motor1B = 6; // salida2 de pwm al motor 1int motor2A = 9; // salida de pwm al motor 2

    int motor2B = 11; // salida2 de pwm al motor 2

    void setup() {//conguracion motor 1pinMode(motor1A, OUTPUT);pinMode(motor1B, OUTPUT);

    //conguracion motor 2pinMode(motor2A, OUTPUT);pinMode(motor2B, OUTPUT);

    pinMode(ledPin, OUTPUT);

    Serial.begin(9600); //inicializacin serial

    para mostrar datos en la pantalla}

    void loop() {int distanciaCmMedida;

    // la lectura del sensor va de 0 a 600 aproxsensorValue = analogRead(sensorPin);

    //clculo del valor medido en centmetrosdistanciaCmMedida = (2914 / (sensorValue + 5)) - 1;

    Serial.print (\n Distancia en Cm:); //

    imprimimos en pantalla la distancia en cmSerial.print (distanciaCmMedida);

    if (distanciaCmMedida>12){ //el robot debe acercarce al objeto

    //motor 1 adelanteanalogWrite(motor1A,pwm1);delay(100);analogWrite(motor1B,0);

    //motor 2 adelante

    analogWrite(motor2A,pwm1);delay(100);analogWrite(motor2B,0);

    digitalWrite(ledPin, HIGH); //cuando

    vaya hacia adelante prenda el ledSerial.print (\nValor Medido:);Serial.print (pwm1);

    }else if (distanciaCmMedida

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    29/33

    29

    Complemento Terico:Es necesario analizar el cdigo completo, entender bienlas 2 condiciones que se escribieron, para ir hacia adelantesi la distancia medida es mayor a 12cm, e ir hacia atrs sila distancia es menor de 12cm.

    Ejercicios aconsejados:Hacer que el robot se detenga si el objeto est a unadistancia entre 12 y 14. Si est a menos de 12 centmetrosalejarse, y si est a ms de 14 cm acercarse al objeto.

    Experimento 16: Construir un robot seguidor de muro:

    El segundo robot que vamos a realizar es el robot quesigue contornos de objetos, normalmente se llama a estetipo de robots seguidor de muro, queremos que el robotpueda andar al lado de una pared sin estrellarse ni alejarsede ella. Para esto vamos a utilizar el cdigo del anteriorrobot para hacer este, ya que solo debemos modicar

    un poco las condiciones y las acciones y obtendremos elcomportamiento que queremos.Vamos a analizar lo que debe hacer el robot, si queremosque permanezca cerca al muro, debemos medir ladistancia a la que se encuentra, para esto debemos ponerun sensor de distancia al costado del robot, si la distanciaque medimos se vuelve mayor, por ejemplo a 5 cm, esporque el robot se est alejando del muro, por lo tantodebemos hacer que gire en direccin hacia el muro paraacercarse nuevamente, cuando vuelva a conseguir ladistancia inferior a 5 cm deber corregir su movimientoy girar nuevamente en el otro sentido para separarse delmuro. De esta manera el robot se mover siempre al lado

    del muro como deseamos. Aunque el movimiento no va aser perfecto, el robot seguir el muro haciendo los girossucesivos que vamos a programar. Veamos el cdigo:

    Cdigo:

    /***********************************************************//*si distancia >=5 ir de frentesi distancia 5 pegarse al muro girando a la izquierda*/

    //Creado por Jos Luis Susa 2010

    int sensorPin = 0; // entrada donde se conectara el sensorint ledPin = 13; // salida digital donde se conecta un LED o una bocinaint sensorValue = 0; // variable para guardar el valor medido del sensorint pwm1=255;

    int motor1A = 5; // salida de pwm al motor 1int motor1B = 6; // salida2 de pwm al motor 1

    int motor2A = 9; // salida de pwm al motor 2int motor2B = 11; // salida2 de pwm al motor 2

    void setup() {//conguracion motor 1

    pinMode(motor1A, OUTPUT);pinMode(motor1B, OUTPUT);

    //conguracion motor 2pinMode(motor2A, OUTPUT);pinMode(motor2B, OUTPUT);

    pinMode(ledPin, OUTPUT);

    //inicializacin serial para mostrar datos en la pantallaSerial.begin(9600);

    }

    void loop() {

    int distanciaCmMedida;

    //La lectura del sensor va de 0 a 600 aproxsensorValue = analogRead(sensorPin);

    //clculo del valor medido en centmetrosdistanciaCmMedida = (2914 / (sensorValue + 5)) - 1;

    Serial.print (\n Distancia en Cm:);Serial.print (distanciaCmMedida);

    if (distanciaCmMedida>5){ //el robot debe acercarse al objeto

    //motor 1 adelante

    analogWrite(motor1A,0);

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    30/33

    30Mdulo educativode construccin de robots para estudiantes

    delay(100);analogWrite(motor1B,pwm1);

    //motor 2 adelanteanalogWrite(motor2A,pwm1);delay(100);analogWrite(motor2B,0);

    //cuando vaya hacia adelante prenda el LEDdigitalWrite(ledPin, HIGH);

    //el robot debe alejarse del objeto}else if (distanciaCmMedida=5){//motor 1 hacia atrsanalogWrite(motor1A,pwm1);delay(100);analogWrite(motor1B,0);

    //motor 2 hacia atrsanalogWrite(motor2A,pwm1);delay(100);analogWrite(motor2B,0);

    }

    }/***********************************************************/

    Complemento Terico:

    Es necesario analizar el cdigo completo, entender bien las 2 condiciones que se escribieron,para acercarse al muro si la distancia medida es mayor a 5cm, y alejarse del muro si ladistancia es menor de 5cm.

    Ejercicios aconsejados:Hacer que el movimiento del robot sea ms suave, corregirlos movimientos para que los giros sean menos bruscos yagregar una condicin adicional para que si el robot est auna distancia entre 4 y 6 se mueva de frente, en las otrasdos condiciones debern modicar el valor de la condicin

    para que cuando la distancia sea menor a 4 el robot sealeje y si es mayor a 6 se acerque al muro.

    Experimento 17: Construir un robot que avancecuando detecte luz:

    El ltimo robot que construiremos es un robot que siga laluz, es decir que avance en el momento que detecte luz.Para hacer este robot qu necesitamos entonces?...clarouna fotocelda!

    Vamos a hacer el montaje de la fotocelda tal comoaprendimos anteriormente en el experimento 9, igualmentevamos a necesitar montar el L293 para manejar nuestros

    dos motores que movern el robot.

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    31/33

    31

    Cdigo:

    // Creado por Jos Luis Susa 2010

    int sensorPin = 0; // entrada donde se conectara el sensorint ledPin = 13; // salida digital donde se conecta un LED o una bocinaint sensorValue = 0; // variable para guardar el valor medido del sensor

    int motor1A = 5; // salida de pwm al motor 1int motor1B = 6; // salida2 de pwm al motor 1

    int motor2A = 9; // salida de pwm al motor 2int motor2B = 11; // salida2 de pwm al motor 2

    int pwm1=255;

    void setup() {//conguracion motor 1pinMode(motor1A, OUTPUT);pinMode(motor1B, OUTPUT);

    //conguracion motor 2pinMode(motor2A, OUTPUT);pinMode(motor2B, OUTPUT);

    // declare the ledPin as an OUTPUT:pinMode(ledPin, OUTPUT);//inicializacion serial para mostrar datos en la pantallaSerial.begin(9600);

    }

    void loop() {int distanciaCm;// la lectura del sensor va de 0 a 500 aproximadamentesensorValue = analogRead(sensorPin);

    //imprimimos en pantalla el valor medidoSerial.print (\nValor Medido:);Serial.print (sensorValue);

    if(sensorValue>80){ //si el valor medido es > 80 detecta luz// se enciende la salida ledPindigitalWrite(ledPin, HIGH);

    //motor 1 adelanteanalogWrite(motor1A,pwm1);delay(100);analogWrite(motor1B,0);

    //motor 2 adelanteanalogWrite(motor2A,pwm1);

    delay(100);analogWrite(motor2B,0);}else{// se pone a cero la salida ledPindigitalWrite(ledPin, LOW);

    //motor 1 pararanalogWrite(motor1A,0);delay(100);analogWrite(motor1B,0);

    //motor 2 pararanalogWrite(motor2A,0);delay(100);analogWrite(motor2B,0);

    }

    }

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    32/33

    32Mdulo educativode construccin de robots para estudiantes

    Mdulo

    Educativode construccin de robotspara estudiantes

  • 7/27/2019 Manual de Robotica Aplicada Con ARDUINO

    33/33

    Con este ltimo robot acabamos! Hemos hecho un recorrido por todas las partes del robot,sus sensores, sus motores, su cabeza, la programacin y hemos logrado hacer tres robotscon tres comportamientos diferentes.

    Espero que hayan sido los experimentos divertidos y que hayan jugado con los cdigos,los elementos y con todo lo que tienen a la mano para crear nuevos robots, con tiempo ydedicacin lograran hacer ms y mejores robots y luego vern cmo estos cambiarn el mundo.

    Gracia por usar esta cartilla, espero que haya sido de gran utilidad para ustedes y hayan quedadomuy entusiasmados con todo lo que pueden hacer de aqu en adelante. Cualquier comentariopueden escribir al correo: [email protected], con gusto recibir recomendaciones, opinionesy claro, felicitaciones!

    AtentamenteIng. Jos Luis Susa Rincn.