Manual de Robotica

Embed Size (px)

DESCRIPTION

Este es un manual de Robotica que está hecho para los principiantes en el manejo de arduino 1. con motores, en especcial seguidore de linea.

Citation preview

  • CURSO DE ROBTICA EDUCATIVA : GUIA DE

    PR`CTICAS

  • TABLA DE CONTENIDO

    INTRODUCCIN. ..................................... ......................................................... 7

    CURSO NIVEL BASICO .................................................................................... 8

    1. ELEMENTOS ELECTRONICOS. ................................................................ 9

    ARDUINO. ............................................................................................. 91.1

    MICRO-MOTORES DC. ...................................................................... 111.2

    TARJETA CONTROLADORA DE MOTORES. ................................... 111.3

    ENCODER INCREMENTAL. ............................................................... 131.4

    SENSOR INFRARROJO. .................................................................... 141.5

    SENSOR DE LNEA ............................................................................ 151.6

    BATERA DE LIPO .............................................................................. 161.7

    SALVALIPO ........................................................................................ 171.8

    CARGADOR ....................................................................................... 181.9

    2. ELEMENTOS DEL SISTEMA MEC`NICO. ................... ............................ 20

    BASE DE ACRLICO. .......................................................................... 202.1

    LLANTAS. ........................................................................................... 202.2

    BASES DE APOYO PARA MICROMOTOR. ....................................... 212.3

    RUEDAS DE APOYO. ......................................................................... 212.4

    TORNILLOS MET`LICOS. .............................. ................................... 222.5

    3. PROGRAMACION EN ARDUINO. ............................................................ 23

    INSTALACION DEL ARDUINO. .......................................................... 233.1

    ESTRUCTURA DE PROGRAMACIN SETUP() Y LOOP() ....... ........ 243.2

    ESTRUCTURAS DE PROGRAMACIN (if, for, while, switch case). .. 253.3

    CONFIGURACIN DEL SOFTWARE. ....................... ......................... 283.4

    PROGRAMACIN GRAFICA. ............................. ............................... 303.5

    EJEMPLO DE APLICACIN. ............................ .................................. 363.6

    CURSO NIVEL MEDIO .................................................................................... 38

    4. MANEJO DE ENTRADAS Y SALIDAS. ..................................................... 39

    ENTRADAS DIGITALES. .................................................................... 394.1

  • SALIDAS DIGITALES. ........................................................................ 404.2

    ENTRADAS AN`LOGAS. ................................ ................................... 414.3

    SALIDAS AN`LOGAS. ................................. ...................................... 424.4

    DETERMINACION DE LAS ENTRADAS Y SALIDAS DEL ROBOT. .. 444.5

    CURSO NIVEL AVANZADO ............................................................................ 47

    5. PROGRAMACIN DE LOS ROBOTS. ....................... ............................... 48

    Programacin de los motores del robot. ............ .................................. 485.1

    Seguidor de lnea. ............................................................................... 485.2

    Evadir obstculos. ............................................................................... 485.3

    PROGRAMACIN GRAFICA. ............................. ............................... 485.4

  • LISTA DE FIGURAS

    Figura 1. Tarjeta de desarrollo Arduino ............................................................ 10

    Figura 2. Micro-motores ................................................................................... 11

    Figura 3. Board para el control de motores ...................................................... 12

    Figura 4. Encoder incremental acoplado a un micro-motor y llanta .................. 14

    Figura 5. Sensor GP2Y0D805Z0F ................................................................... 14

    Figura 6. Sensor seguidor de lnea .................................................................. 16

    Figura 7. Batera de LiPo ................................................................................. 17

    Figura 8. Salva LiPo ......................................................................................... 18

    Figura 9. Cargador de bateras LiPo. ............................................................... 19

    Figura 10. Base de acrlico. .............................................................................. 20

    Figura 11. Llantas. ............................................................................................ 20

    Figura 12. Bases de apoyo............................................................................... 21

    Figura 13. Bases de apoyo con encoders y llantas .......................................... 21

    Figura 14. Rueda de apoyo. ............................................................................. 22

    Figura 15. Tornillos metlicos. .......................................................................... 22

    Figura 16. Instalacin del Arduino. ............... .................................................... 23

    Figura 17. Instalacin del Arduino. ............... .................................................... 23

    Figura 18. Rueda de apoyo. ............................................................................. 24

    Figura 19. Ventana de inicio. ............................................................................ 29

    Figura 20. Ventana de seleccin. .................. ................................................... 29

    Figura 21. Ventana de trabajo. ......................................................................... 30

    Figura 22. Ventana de Hardware. .................................................................... 31

    Figura 23. Ventana Blocks. .............................................................................. 32

    Figura 24. Pestaa Setup. ................................................................................ 32

    Figura 25. Pestaa Output. .............................................................................. 33

    Figura 26. Pestaa Input. ................................................................................. 33

    Figura 27. Pestaa Operators. ......................................................................... 34

  • Figura 28. Pestaa Control............................................................................... 35

    Figura 29. Pestaa de Variables. ..................................................................... 35

    Figura 30. Ventana de cdigo fuente. .............. ................................................ 36

    Figura 31. Ejercicio. .......................................................................................... 37

    Figura 32. Programa para leer una entrada digital. .......................................... 40

    Figura 33. Programa para activar una salida digital. ........................................ 41

    Figura 34. Programa para leer una entrada anloga. ....................................... 42

    Figura 35. Grfico de PWM. ............................................................................. 43

    Figura 36. Programa para escribir en una salida anloga. ............................... 43

    Figura 37. Sensores y actuadores del robot. .................................................... 44

    Figura 38. Ejercicio. .......................................................................................... 49

  • LISTA DE TABLAS

    Tabla 1. Resumen de las caractersticas elctricas del Arduino. ..................... 10

    Tabla 2. Caractersticas de los micro-motores. ................................................ 11

    Tabla 3. Clasificacin de los sensores y actuadores . ....................................... 45

    Tabla 4. Clasificacin de los sensores y actuadores . ....................................... 46

  • INTRODUCCIN.

    El principal objetivo de este manual es servir como principal herramienta bibliogrfica para la capacitacin en robtica que se realizara en cada uno de los diferentes colegios. Esta capacitacin tendr como base el uso de las diferentes herramientas TIC para mostrar como pueden ser aplicadas en muchas reas en este caso particular a la robtica. Esta capacitacin esta compuestas por 3 cursos y sus respectivos temas as:

    Curso Nivel Bsico:

    Funcionamiento del sistema Elctrico.

    Funcionamiento del sistema Mecnico.

    Funcionamiento del sistema de Programacin.

    Curso Nivel Medio:

    Manejo de entradas y salidas digitales.

    Manejo de entradas anlogas.

    Manejo de PWM.

    Configuracin de los sensores.

    Configuracin de los actuadores.

    Curso Nivel Avanzado:

    Programacin del robot para reaccionar a la presen cia de objetos

    Programacin del robot como seguir de lnea.

    Programacin del robot como explorador de reas.

  • 1. ELEMENTOS ELECTRONICOS.

    El kit de robtica est compuesto diferentes elementos electrnicos que son analizados a continuacin.

    ARDUINO. 1.1

    Arduino es una plataforma de electrnica abierta pa ra la creacin de prototipos basada en software y hardware flexibles y fciles de usar. Se cre para artistas, diseadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos1.

    Arduino puede tomar informacin del entorno a travs de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

    Las tarjetas de Arduino pueden ser hechas a mano o compradas montadas de fbrica; el software puede ser descargado de forma gratuita. Los ficheros de diseo de referencia (CAD) estn disponibles bajo una licencia abierta, as pues eres libre de adaptarlos a tus necesidades.

    Especificaciones tcnicas del Arduino.

    El Arduino Uno es una tarjeta basada en el microcontrolador ATmega328 (Figura 1), contienen un cristal de 16MHz, conector USB, Jack de alimentacin, pines de ICSP y un botn de reset. Es ta tarjeta contiene todo lo necesario para que el microcontrolador funcione, simplemente se conecta a un computador por medio de un cable USB o a un adaptador AC DC o a una batera para su alimentacin, la cual se recomienda sea entre 7 V y 12 V.

    1 http://www.arduino.cc/

  • El Arduino uno posee 14 pines de entradas o salidas, de las cuales 6 pueden ser usadas como PWM, 6 entradas anlogas.

    Figura 1. Tarjeta de desarrollo Arduino

    Tabla 1. Resumen de las caractersticas elctricas del Arduino.

    Microcontrolador ATmega328 Voltaje de funcionamiento 5V Voltaje de entrada (recomendado)

    7-12V

    Voltaje de entrada (limites) 6-20V

    Pines de E/S Digitales 14 (de los cuales 6 pueden tener salidas PWM)

    Pines de entrada anloga 6 Corriente DC por pin de E/S 40 mA Corriente DC por el pin de 3.3V. 50 mA

    Clock Speed 16 MHz

  • MICRO-MOTORES DC. 1.2

    Los motores de corriente continua son mquinas que convierten la energa elctrica en energa mecnica, debido al movimiento giratorio que se ocasiona al ser energizado. Particularmente estos motores son llamados micro-motores debido a su pequeo tamao como se observa en la Figura 2.

    Figura 2. Micro-motores

    Los micro-motores DC poseen las siguientes caractersticas:

    Tabla 2. Caractersticas de los micro-motores.

    Velocidad sin carga 13000 rpm Relacin de engranajes 50:1

    Velocidad con carga 260 rpm a 6 voltios Corriente nominal 40 mA a 6 voltios

    Corriente de motor bloqueado 360 mA a 6 voltios Torque 10 oz inches a 6 voltios

    TARJETA CONTROLADORA DE MOTORES. 1.3

    La tarjeta o driver para motor DC es una tarjeta de potencia para el control de los motores. Tambin conocida como puente H, tiene como funciones entregar el voltaje a los motores, realizar la inversin de giro (avance y retroceso) y el frenado de los motores. La tarjeta de control funciona para 2 motores A y B de

  • hasta 12 voltios con una corriente mxima de 2 A cada uno, es decir motores mximo de 24 W de potencia. Figura 3.

    Figura 3. Board para el control de motores

    Esta board cuenta con las siguientes caractersticas2:

    Voltaje Alimentacin: 4.5 a 12V.

    Corriente Maxima: 2A continua (picos de 2.5A).

    Nmero de salidas: 4 salidas configuradas en 2 borneras.

    Indicadores de giro: Leds que se encienden cada vez que se energiza una de las salidas.

    Indicador de alimentacin: Led que se enciende cua ndo el puente H esta energizado.

    Integrado del Puente H: L298.

    Entradas anlogas: 6 entradas anlogas con pines de 5V y tierra.

    2 http://www.dynamoelectronics.com

  • Entradas/Salidas digitales: 6 I/O digitales con pines de 5V y tierra.

    Pulsador: Diseado para ser programado como orden de arranque o cualquier otro propsito, se habilita por medio de Jumper.

    Potencia mxima de los motores a controlar: DC de 24W mximo (12V a 2A).

    Se integra al Arduino de tal forma que los motores funcionan con las salidas de PWm del Arduino que son los siguientes puertos:

    PWM1: Al pin Digital 3 (D3).

    PWM2: Al pin Digital 5 (D5).

    PWM3: Al pin Digital 6 (D6).

    PWM4: Al pin Digital 9 (D9).

    ENCODER INCREMENTAL. 1.4

    Generalmente es un disco que se desplaza solidario a una pieza cuya velocidad o posicin relativa se desea calcular. El encoder incremental tiene como seal de salida una serie de pulsos digitales los cuales al ser ledos por un microcontrolador como el Arduino se puede calcular la velocidad a la cual est girando la llanta.

    En este caso el encoder posee 2 sensores infrarrojos cuyas seales son reflejadas por los dientes blancos que se encuentran en la parte interna de la llanta, generando un pulso alto, que luego cae cuando los dientes no son detectados, generando un tren digital de pulsos. Posee 2 salidas con las cuales se puede detectar el sentido de gira de la llanta, Figura 4.

    El encoder tiene las siguientes especificaciones tcnicas:

    Voltaje de operacin: 3.3 V o 5 V.

    Corriente de trabajo: < 14 mA a 5 voltios.

    Salida de pulsos: 48 pulsos por vuelta.

  • Posee compatibilidad con la llanta de 42 mm x 19 mm.

    !"#

    Figura 4. Encoder incremental acoplado a un micro-motor y llanta

    SENSOR INFRARROJO. 1.5

    El sensor infrarrojo GP2Y0D805Z0F es un sensor para la deteccin de objetos, compuesto por un fotodiodo, un emisor infrarrojo y un sistema de procesamiento de la seal.

    Este sensor adopta un mtodo de triangulacin lo cual hace que sea inmune a variaciones de temperatura, tiempo de funcionamiento.

    La seal de salida del sensor permanece en bajo en caso que un objeto este en el rango de funcionamiento del sensor.

    Figura 5. Sensor GP2Y0D805Z0F

  • Las principales caractersticas del sensor son:

    Seal de salida digital.

    Distancia de normal de deteccin: 50 mm.

    Tamao del sensor: 13.677.95 mm.

    Consumo de normal de corriente: 5 mA

    Voltaje de alimentacin: 2.7 a 6.2 V.

    Tolerancia a la luz del sol.

    SENSOR DE LNEA 1.6

    El Sensor QTR anlogo de reflactancia, lleva un solo LED infrarrojo y fototransistor, es un pequeo mdulo de 13 x 8mm que se puede montar en casi cualquier lugar y es ideal para la deteccin d e bordes y aplicaciones de robots seguidores de lnea. La salida est diseada para entregar un voltaje anlogo.

    El sensor lleva un LED infrarrojo y un fototransistor. El fototransistor se conecta a una resistencia de pull-up para formar un divisor de voltaje que produce una salida de voltaje analgica entre 0V y VIN (que sue le ser de 5V) en funcin del IR reflejado. Bajo voltaje de salida es una indicacin de una mayor reflexin.

    La resistencia de limitacin de corriente se ajusta para entregar aproximadamente 20 a 25 mA para el LED cuando VIN es de 5 V. Debido a su pequeo tamao, las unidades mltiples se pueden arreglar fcilmente para adaptarse a diversas aplicaciones tales como sensores de deteccin de proximidad de lnea, Figura 6.

  • Figura 6. Sensor seguidor de lnea

    Caractersticas del sensor:

    Dimensiones: 13 x 8mm.

    Voltaje de funcionamiento: 5.0 V

    Consumo de corriente: 25 mA

    Formato de salida: Voltaje anlogo

    Distancia ptima de deteccin: 3 mm.

    Mxima distancia de deteccin recomendada: 6 mm.

    Peso sin terminales: 0,23g

    BATERA DE LIPO 1.7

    Esta batera de tecnologa LiPo, permite implementar aplicaciones de Alta descarga de energa, por ejemplo robots de Sumo, aeromodelos, aplicaciones mviles, Figura 7. Es importante usar una salvalipo como alarma para evitar que la batera se descargue completamente y pueda daarse. De la misma forma cuando se guarda la batera por largos periodos de tiempo se recomienda guardarla batera cargada.

  • Figura 7. Batera de LiPo

    Caractersticas de la batera:

    Voltaje 7.4V

    Celdas: Paquete de 2 celdas 1000mAh Descarga 25C.

    Conector carga JST-XH.

    Conector descarga JST-RCY.

    Dimensiones: 70mm x 35mm x 18mm.

    Peso 85g.

    SALVALIPO 1.8

    El salvalipo es una alarma que detecta cuando la batera de LiPo ha bajado ms de un voltaje determinado. Este elemento es necesario para proteger la batera ya que no se debe dejar descargar completamente este tipo de bateras ya que se pueden daar las celdas, Figura 8.

  • Figura 8. Salva LiPo

    CARGADOR 1.9

    El cargador IMAX B6 es un cargador rpido, con un microprocesador de alto rendimiento, y un software especializado de operacin. Posee funciones que ajustan la corriente de alimentacin, durante el pr oceso de carga y descarga. Especialmente para las bateras de litio, para impedir la sobrecarga, lo que puede dar lugar a una explosin, debido a la posibl e negligencia del usuario. El cargador puede desconectar automticamente el circuito, y activar la alarma cuando detecta un mal funcionamiento, Figura 9.

    Todos los programas de este cargador, estn controlados a travs de un sistema de control de dos vas, para obtener un mximo de seguridad y minimizar los problemas. Emplea un equilibrador interno de bateras de Lipo. No es necesario conectar un equilibrador de bateras externo para balancearlas.

  • Figura 9. Cargador de bateras LiPo.

    Durante el proceso de descarga, el cargador puede monitorar y equilibrar, cada clula de la batera por separado. Si el voltaje individual de cualquier clula es anormal, se mostrara un mensaje de error y el proceso ser automticamente interrumpido. Este cargador se puede adaptar a varios tipos de bateras, de Ltio: como Li-Ion, Li-Po, o la nueva serie de bateras LiFe.

    Posee una modalidad de carga de las bateras de Ltio varan, la carga fast (Rpida) reducen la duracin del tiempo de carga, mientras Store (Almacenamiento), puede controlar el voltaje final da su batera, para almacenarla por un largo perodo, y proteger as el tiempo til de la batera.

    Caractersticas del cargador:

    Voltaje de operacin: De 11 a 18 Voltios, Corrient e Continua.

    Adaptador AC-DC: 11 a 18 Voltios, 5 Amperios.

    Potencia: Mxima en Carga: 50 Vatios.

    Mxima en Descarga: 5 Vatios.

    Corriente de carga:0.1 a 5 Amperios.

    Nmero de clulas de bateras de NiCd/NiMH: 1 a 15 clulas.

    Nmero de clulas de Li-on/Polmero:1 a 6 en serie.

  • 2. ELEMENTOS DEL SISTEMA MEC`NICO.

    BASE DE ACRLICO. 2.1

    La base de acrlico tiene como funcin servir de so porte a los dispositivos electrnicos y mecnicos como el Arduino, los sensores, la batera, la board de motores, los micro-motores, las llantas y los encoder, Figura 10.

    Figura 10. Base de acrlico.

    LLANTAS. 2.2

    Estas ruedas plsticas tienen un radio de 42 mm y se acoplan a presin en los ejes de los micro-motores Dc, que tienen una medida de 3 mm de dimetro. Los dientes de estas ruedas permiten la reflactancia del sensor usado en los encoders incrementales con los cuales se puede medir la velocidad de la rueda, Figura 11.

    Figura 11. Llantas.

  • BASES DE APOYO PARA MICROMOTOR. 2.3

    Las bases de apoyo son soportes que permiten la sujecin de los micromotores Dc a la base, como se presenta en la Figura 12. Poseen unas muescas internas que permiten una fijacin del micromotor.

    Figura 12. Bases de apoyo.

    Estos soportes tiene un perfecto acople con los encoders incrementales y facilitan el acople de las llantas con los ejes de los micro-motores, como se presenta en la Figura 13.

    Figura 13. Bases de apoyo con encoders y llantas

    RUEDAS DE APOYO. 2.4

    La ruedas tiene como funcin dar equilibrio al robo t mvil para evitar que este se incline hace atrs o hacia delante, segn a la distribucin de peso de sus

  • elementos. Tiene una bola de plstico cuya funcin es ayudar a reducir la friccin con el suelo permitiendo la libre moviliza cin del robot, Figura 14.

    Figura 14. Rueda de apoyo.

    TORNILLOS MET`LICOS. 2.5

    Los pines metlicos tienen como funcin servir de separadores de los diferentes componentes tales como el Arduino, los sensores y la rueda de apoyo. Son de tipo macho-hembra, es decir por un lado posee una tuerca y en el lado opuesto posee tornillo.

    Figura 15. Tornillos metlicos.

  • 3. PROGRAMACION EN ARDUINO.

    INSTALACION DEL ARDUINO. 3.1

    El primer paso que se debe seguir es descargar el software de Arduino de la pgina del fabricante (http://arduino.cc/en/Main/Software). Despus de instalar el software se conecta el Ardunio al computador por medio de un cable USB, una vez conectado, el computador empezara a buscar los drivers para su instalacin como se indica en la Figura 16.

    Figura 16. Instalacin del Arduino.

    Cuando el Arduino es instalado correctamente aparecer una ventana como la presentada en la Figura 17. Cabe indicar que no necesariamente aparecer en el COM4 este puede variar, es importante que aparezca el check de listo para usar.

    Figura 17. Instalacin del Arduino.

    Se puede verificar que la instalacin del Ardunio f ue exitosa en la pestaa de administracin de dispositivos como podemos observa r en la Figura 18, donde aparecer en los puertos el nombre de Arduino Uno y el nombre del puerto al cual est instalado. Si el Arduino no est instalado correctamente aparecer un aviso de color amarillo como en la figura de la izquierda.

  • Figura 18. Rueda de apoyo.

    ESTRUCTURA DE PROGRAMACIN SETUP() Y LOOP() 3.2

    El software de programacin de Arduino3 cuenta con 2 estructuras principales que son setup() y loop().

    setup() La funcion setup es usada cuando el programa inicia. Se utiliza para inicializar variables, modos en los pines (si estn configurados como entradas o salidas), e iniciar el uso de libreras especiales. Esta estructura solo es ejecutada una vez cada vez que el programa se inicia despus de ser encendido el Arduino o despus de un reset .

    Ejemplo:

    int buttonPin = 3; // Se define el numero del Pin void setup() {

    3 http://arduino.cc/en/Reference/HomePage

  • pinMode(buttonPin, INPUT);// se establece como en trada o salida } void loop() { // ... }

    loop()

    Despus de creada la funcin setup(), la funcin lo op() contiene el programa principal que se va a ejecutar y se repetir indeterminado nmero de veces.

    Ejemplo:

    const int buttonPin = 3; const int OutPin = 4 // setup initializes serial and the button pin void setup() { pinMode(buttonPin, INPUT); pinMode(OutPin, OUTPUT); } // Void loop revisa button pin cada ciclo y activar a o desactivara //la salida en cada ciclo si el botn esta oprimido . void loop() { if (digitalRead(buttonPin) == HIGH) digitalWrite(OutPin, HIGH); else digitalWrite(OutPin, LOW); delay(1000); }

    ESTRUCTURAS DE PROGRAMACIN (if, for, while, swit ch case). 3.3

    Las estructuras de programacin o estructuras de co ntrol permiten al usuario disear su propio programa, las estructuras ms comunes son: Ifelse, while, switch case.

    Ifelse

  • La estructura if(condicin) significa Si, es usad a para evaluar una condicin por la tanto siempre debe tener un operador de comparacin dentro de sus parntesis. La funcin else significa Si no, la cual es ejecutado en el caso que no se cumpla con la condicin del if. Estos ope radores de comparacin son:

    x == y (x es igual a y?) x != y (x es diferente de y?) x < y (x es menor que y?) x > y (x es mayor que y?) x = y (x es mayor o igual que y?) Ejemplos:

    Si x es mayor de 120 se activara el pin LEDpin.

    if (x > 120) digitalWrite(LEDpin, HIGH);

    if (x > 120) digitalWrite(LEDpin, HIGH);

    if (x > 120){ digitalWrite(LEDpin, HIGH); } if (x > 120){

    digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH);

    } if (dato < 500)

    { // action A

    } else { // action B }

    for

    La estructura for, tiene como significado repetir desde X hasta Y con incremento Z, su estructura es: repetir(inicializacin, condicin, incremento). Se debe determinar el valor de inicio(x=1), la condicin final(x

  • Ejemplo: Programa para activar un LED colocado en el pin 10, configurado como salida, usando PWM.

    int PWMpin = 10; // Colocar resistencia de 330 ohm en el pin 10 void setup() { // no setup needed } void loop() { for (int i=0; i

  • const int sensorMax = 600; // sensor maximum, disco vered through experiment void setup() { Serial.begin(9600); // inicializa la comunicacin s erial } void loop() { // lee read the sensor: int sensorReading = analogRead(A0); // mapea todo el rango del sensor en un rango de so lo 4 opciones int range = map(sensorReading, sensorMin, sensorMax , 0, 3); // realiza una opcin diferente dependiendo del val or del sensor switch (range) { case 0: // objeto colocado en el sensor Serial.println("dark"); break; case 1: // objeto colocado cerca del sensor Serial.println("dim"); break; case 2: // objeto colocado a una distancia media de l sensor Serial.println("medium"); break; case 3: // objeto colocado lejos del sensor. Serial.println("bright"); break; } delay(1); // retardo entre cada una de las lecturas realizadas }

    CONFIGURACIN DEL SOFTWARE. 3.4

    La programacin grafica es realizada mediante diagr amas de flujo, tiene como objetivo facilitar a las personas el funcionamiento de cada uno de los ciclos de programacin y servir como una forma introductoria a la programacin de computadores o microcontroladores. Esta programaci n grafica se realiza mediante el software de la empresa Modkit y la plataforma Arduino. Para trabajar con el programa se debe seguir los siguientes pasos:

    1. Conectar el Arduino al computador por el puerto USB.

    2. Se ejecuta el programa Modkit Micro.exe, abriendo la siguiente ventana (Figura 19), donde se da click en Get Started.

  • Figura 19. Ventana de inicio.

    3. La ventana de seleccin de dispositivo detecta l a board Arduino como se

    observar en el cuadro rojo superior de la Figura 20. Se procede a dar click en la imagen del Arduino Uno( cuadro rojo inferior).

    Figura 20. Ventana de seleccin.

  • 4. Finalmente se abre el programa en la ventana de hardware que est dividido en la ventana de dispositivos o elementos, leds, botones, perillas, servomotores, parlantes etc., y la ventana de conexin donde est la imagen del Arduino y se pueden ubicar cada uno de los elementos ya mencionados para su conexin con el Arduino funcion amiento y programacin. Figura 21.

    Figura 21. Ventana de trabajo.

    PROGRAMACIN GRAFICA. 3.5

    El programa est dividido en 3 partes; el hardware, los bloques y el cdigo fuente, los cuales se pueden acceder en los iconos que aparecen resaltados en rojo en la Figura 22.

    Ventana Hardware.

    En la ventana de hardware se puede encontrar algunos elementos que se pueden conectar fsicamente al Arduino. Algunos con una tarjeta de potencia, otros de forma directa. Se puede arrastrar el elemento a la ventana y seleccionar el pin al cual se desea conectar. Figura 22.

  • Figura 22. Ventana de Hardware.

    Ventana Blocks

    En la ventana de los diagramas de bloques, Figura 23, se puede encontrar todas las diferentes estructuras de programacin es tudiadas en el capitulo 3.3, (if, for, while, switch case). En esta ventana, se observa las pestaas de Setup, Output, Input, Operators, Control y Variables donde se encuentran cada uno de los elementos a usar.

  • Figura 23. Ventana Blocks.

    Setup: En esta pestaa est principalmente la funcin pinmode de

    configuracin del pin si trabajara como una entrada o como una salida. Figura 24

    Figura 24. Pestaa Setup.

    Output: En esta pestaa se encuentran principalmente las funciones digitalWrite y analogWrite que son usadas para activar una salida digital o enviar un valor de PWM como valor de salida.Figura 25.

  • Figura 25. Pestaa Output.

    Input: En esta pestaa se encuentran principalmente las funciones analogRead, digitalRead, que son usadas para leer seales anlogas y digitales.

    Figura 26. Pestaa Input.

  • Operators: En esta pestaa se encuentran las funciones de comparacin y operaciones; suma, resta, divisin, mayor que, meno r que, and, or not. Figura 27.

    Figura 27. Pestaa Operators.

    Control: En esta pestaa se encuentran las estructuras de programacin if,

    repeat (for), while, delay, break. Figura 28.

  • Figura 28. Pestaa Control.

    Variables: En esta pestaa se pueden definir la diferentes variables que se pretendan usar y su tipo de dato

    Figura 29. Pestaa de Variables.

  • Ventana Source

    En la ventana Source se genera todo el cdigo de pr ogramacin que es cargado al Arduino para su funcionamiento. Figura 30.

    Figura 30. Ventana de cdigo fuente.

    EJEMPLO DE APLICACIN. 3.6

    Realizar un programa que encienda el Led del Arduino ubicado en el pin 13 durante 1 segundo y luego lo apague durante 1 segundo de forma indefinida. (La solucin de este ejercicio se presenta en la Fi gura 31).

  • Figura 31. Ejercicio.

  • 4. MANEJO DE ENTRADAS Y SALIDAS.

    Las entradas se utilizan como puertos de lectura de informacin proveniente de sensores, pulsadores o contactos. Permite al robot o al dispositivo conocer que est pasando exteriormente. Las entradas del Arduino estn divididas en entradas digitales y entradas anlogas. Las salidas permiten al robot poder activar elementos como por ejemplo motores, leds, etc. Al igual que las entradas estn divididas en salidas anlogas y salidas digitales.

    ENTRADAS DIGITALES. 4.1

    Una entrada digital se caracteriza por ser una entrada discreta es decir solo puede presentar 2 posibles estados o valores. Por ejemplo, el interruptor de la luz slo puede tomar dos valores o estados: abierto o cerrado, o una luz: encendida o apagada.

    Los sistemas digitales, como por ejemplo los computadores, los microcotroladores como el Arduino, usan la lgica d e dos estados representados por dos niveles de tensin elctrica, uno alto, H y otro bajo, L (de High y Low, respectivamente, en ingls). Dichos estados se sustituyen por ceros y unos, lo que facilita la aplicacin de la l gica y la aritmtica binaria. Si el nivel alto se representa por 1 y el bajo por 0, se habla de lgica positiva y en caso contrario de lgica negativa.

    Para el Arduino se considera que una seal est en estado alto (1) cuando su voltaje est por encima de aproximadamente 2,5 voltios y est en bajo (0) cuando el voltaje es menor de este. Las entradas digitales estn asociadas a los sensores digitales, ya que los sensores digitales envan informacin (o seales) compatible con las entradas digitales.

    El Arduino posee 14 entradas digitales que van desde el PIN0 hasta el PIN13. La programacin de estas entradas digitales tiene 2 etapas: La primera etapa se debe hacer la configuracin del pin que se desea usar como entrada, esto es realizado con la instruccin pinMode. La segunda parte se procede a leer el pin deseado esto se hace con la instruccin digital Read.

  • En la Figura 32 se puede observar un ejemplo donde se configura el PIN8 como entrada digital y luego se guarda el valor de la lectura realizada en la variable dato.

    Figura 32. Programa para leer una entrada digital.

    SALIDAS DIGITALES. 4.2

    Las salidas digitales guardan la misma naturaleza que las entradas digitales sin embargo estn hecha para enviar informacin no para recibir. Las salidas digitales comnmente se utilizan para activar leds, sonidos, encender y apagar motores pero no permiten variar intensidades es decir solo estn hechas para prender y apagar objetos.

    El Arduino utiliza los mismo pines del PIN0 al PIN13 como salidas, es decir el PIN0 podr ser usado como entrada o como salida. Cabe mencionar que si un pin fue configurado como entrada no podr ser configurado como salida en el mismo programa, por lo tanto se recomienda analizar cuantas entradas y salidas son necesarias para definir cuales pines sern entradas y cuales son salidas.

    En la Figura 33 se presenta un programa que trabaja con el PIN5 como salida, primero activa la salida del PIN5=1, luego espera 1000 milisegundos, luego apaga la salida del PIN5=0 y finalmente espera 1000 milisegundos para volver a empezar el ciclo.

  • Figura 33. Programa para activar una salida digital.

    ENTRADAS AN`LOGAS. 4.3

    Las entradas analgicas tienen como funcin permiti r la lectura de sensores anlogos o seales del mismo tipo para que el robot o dispositivo tenga informacin del exterior. Las seales anlogas son el tipo ms comn de seal que podemos encontrar en la naturaleza como por ejemplo la luz, el sonido, la temperatura.

    Sabemos que estas seales pueden tener diferentes tipos de intensidades o variaciones entre un valor mnimo y uno mximo. Esta variacin es la que hace que esto sea una seal anloga es decir puede tomar cualquier valor entre unos lmites establecidos

    El Arduino posee 6 entradas analgicas que reciben seales en un rango entre 0 y 5 voltios, proporcional a la magnitud de la variable que se est midiendo. Estas entradas tiene el nombre de A0, A1, A2, A3, A4 y A5.

    En la Figura 34 se observa un programa para leer la entrada analgica A1 y guardar su lectura en la variable dato y comenzar nuevamente el ciclo. A diferencia de las entradas y salidas digitales y la salida analgica no es necesario configurar el modo del PIN ya el Arduino tiene reservadas las entradas anlogas solo para esta funcin.

  • Figura 34. Programa para leer una entrada anloga.

    SALIDAS AN`LOGAS. 4.4

    Las salidas anlogas tienen la misma caracterstica que las entradas analgicas, sin embargo estas estn diseadas para enviar un valor de voltaje no para recibirlo. As como las entradas digitales y analgicas estn asociadas a sensores, las salidas estn asociadas a actuadores. Un actuador es un dispositivo capaz de transformar la energa en este caso elctrica en acciones o movimientos.

    Un actuador anlogo puede ser un motor, ya que puede tener cualquier velocidad establecida dentro de unos lmites, o un parlante, que puede tener cualquier valor de volumen dentro de un rango. Mientras que un actuador digital puede ser un bombillo que solo enciende y apaga.

    Para realizar esta variacin de voltaje al Arduino utiliza la tcnica de PWM, por sus siglas en ingles que significa modulacin por a ncho de pulso. Figura 35. El PWM realiza una variacin entre 0 % y 100% donde el 100% significa que el motor esta alimentado al voltaje de alimentacin. E l 50% significa que el motor esta alimentado a la mitad del voltaje de la alimentacin. El 0% significa que el motor no est recibiendo voltaje.

    El Ardunio tiene 6 salidas anlogas tipo PWM que son los pines PIN3, PIN5, PIN6, PIN9, PIN10 y PIN 11, y estn identificadas con el smbolo ~.Es importante destacar que estos pines tambin pueden ser entradas o salidas digitales pero solo trabajara con la configuracin establecida para el PIN.

  • Figura 35. Grfico de PWM.

    En el caso del Arduino el valor del 100% se obtiene escribiendo en el puerto anlogo el nmero 255 y as proporcionalmente. El 50% se obtiene escribiendo el valor de 127. El 0% se obtiene escribiendo el valor de 0. Se utiliza el comando analogWrite el pin que se desea trabajar como salida y el valor deseado.

    En la Figura 36 se tiene un programa para usar el PIN6 como salida anloga escribiendo un valor de 127 en este pin, es decir se esta trabajando con el PWM del 50%

    Figura 36. Programa para escribir en una salida anloga.

  • DETERMINACION DE LAS ENTRADAS Y SALIDAS DEL ROBOT . 4.5

    El primer paso que se debe seguir es determinar cules son los sensores y actuadores del robot. Se pueden determinar cmo sen sores, los elementos que recogen informacin y como actuadores los elementos que realizan una accin.

    En la Figura 37 se pueden observar el diagrama general del robot donde presenta cuales son los sensores sensores de lnea, sensores infrarrojos y encoders, y los actuadores que son los motores.

    Figura 37. Sensores y actuadores del robot.

    Es importante recordar cuales son los elementos usados:

    Sensor de lnea: QTR anlogo de reflactancia

  • Sensor infrarrojo: GP2Y0D805Z0F funciona con lgic a inversa, es decir enva 1 cuando no detecta nada y enva 0 cuando detecta un elemento.

    Encoder incremental: Encoder pololu.

    Motores: micromotores DC.

    En la Tabla 3 se muestra la relacin de cada uno de los sensores y actuadores con cada una de las entradas y salidas, digitales y anlogas del Arduino. Esto nos permite identificar a que pin o puerto del Arduino debemos conectar los sensores y los actuadores o como debemos configurar cada pin dependiendo del elemento que vayamos a conectar.

    Tabla 3. Clasificacin de los sensores y actuadores .

    Sensor de

    lnea Sensor

    infrarrojo Encoder

    incremental Motores

    ENTRADA DIGITAL X X

    ANALOGA X

    SALIDA DIGITAL

    ANALOGA X

    Una vez identificado la relacin de cada sensor con las entradas y salidas del Arduino debemos asignar un pin a cada uno de los sensores y actuadores. Esta asignacin no es de carcter obligatorio sin embargo es una recomendacin cuando se est empezando a trabajar con el Arduino. En la Tabla 4 se presenta la asignacin opcional de cada uno de los elementos de robot.

  • Tabla 4. Clasificacin de los sensores y actuadores .

    Elemento Tipo PIN Asignado

    Sensor de lnea I Entrada anloga A1

    Sensor de lnea D Entrada anloga A0

    Sensor Infrarrojo I Entrada digital PIN 8

    Sensor Infrarrojo F Entrada digital PIN 10

    Sensor Infrarrojo D Entrada digital PIN 11

    Encoder I Entrada digital XXXX

    Encoder D Entrada digital XXXX

    Motor I Salida anloga PIN 6, PIN 9

    Motor D Salida anloga PIN 3, PIN 5

  • 5. PROGRAMACIN DE LOS ROBOTS.

    Este captulo est enfocado en brindar un panorama avanzado sobre cmo se realiza la programacin de los robots para ejecutar diferentes funciones. En este captulo se integra cada uno de los temas ya tratados anteriormente.

    Programacin de los motores del robot. 5.1

    El programa est dividido en 3 partes; el hardware, los bloques y el cdigo fuente, los cuales

    Seguidor de lnea. 5.2

    El programa est dividido en 3 partes; el hardware, los bloques y el cdigo fuente, los cuales

    Evadir obstculos. 5.3

    El programa est dividido en 3 partes; el hardware, los bloques y el cdigo fuente, los cuales

    PROGRAMACIN GRAFICA. 5.4

    El programa est dividido en 3 partes; el hardware, los bloques y el cdigo fuente, los cuales se pueden acceder en los iconos que aparecen resaltados en rojo en la Figura 22.

    1. Programar giros en sentido horario 2. Programar giros en sentido antihorario. 3. Programar el robot para que retroceda cuando se detecta el sensor

    infrarrojo frontal.

  • 4. Programar el robot para que gire en sentido antihorario cuando se active el sensor ionfrarrojo de la izqueirda

    5. Programar el robot para que gire en sentido horario cuando se active el sensor infrarrojo de la derecha

    6. Programar el robot para que ande libremente por un espacio sin estrellarse. 7. Programar el rorobto para que realice el seguimiento de una lnea negra.

    Realizar un programa para poner en funcionamiento los motores: el robot de debe avanzar 10 segundo y girar a la derecha

    Figura 38. Ejercicio.