Anda di halaman 1dari 49

CURSO DE ROBTICA

EDUCATIVA: GUIA DE
PRCTICAS

TABLA DE CONTENIDO

INTRODUCCIN. .............................................................................................. 7
CURSO NIVEL BASICO .................................................................................... 8
1. ELEMENTOS ELECTRONICOS. ................................................................ 9
1.1

ARDUINO. ............................................................................................. 9

1.2

MICRO-MOTORES DC. ...................................................................... 11

1.3

TARJETA CONTROLADORA DE MOTORES. ................................... 11

1.4

ENCODER INCREMENTAL. ............................................................... 13

1.5

SENSOR INFRARROJO. .................................................................... 14

1.6

SENSOR DE LNEA ............................................................................ 15

1.7

BATERA DE LIPO .............................................................................. 16

1.8

SALVALIPO ........................................................................................ 17

1.9

CARGADOR ....................................................................................... 18

2. ELEMENTOS DEL SISTEMA MECNICO. ............................................... 20


2.1

BASE DE ACRLICO. .......................................................................... 20

2.2

LLANTAS. ........................................................................................... 20

2.3

BASES DE APOYO PARA MICROMOTOR........................................ 21

2.4

RUEDAS DE APOYO.......................................................................... 21

2.5

TORNILLOS METLICOS. ................................................................. 22

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


3.1

INSTALACION DEL ARDUINO. .......................................................... 23

3.2

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

3.3

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

3.4

CONFIGURACIN DEL SOFTWARE................................................. 28

3.5

PROGRAMACIN GRAFICA. ............................................................ 30

3.6

EJEMPLO DE APLICACIN. .............................................................. 36

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


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

ENTRADAS DIGITALES. .................................................................... 39

4.2

SALIDAS DIGITALES. ........................................................................ 40

4.3

ENTRADAS ANLOGAS. ................................................................... 41

4.4

SALIDAS ANLOGAS. ....................................................................... 42

4.5

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

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


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

Programacin de los motores del robot............................................... 48

5.2

Seguidor de lnea. ............................................................................... 48

5.3

Evadir obstculos. ............................................................................... 48

5.4

PROGRAMACIN GRAFICA. ............................................................ 48

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 presencia de objetos

Programacin del robot como seguir de lnea.

Programacin del robot como explorador de reas.

CURSO NIVEL BASICO

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

1.1 ARDUINO.
Arduino es una plataforma de electrnica abierta para 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. Esta 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.
BOTON DE RESET

ENTRADAS/SALIDAS DIGITALES
~ SALIDAS DE PWM

PUERTO USB

MICROCONTROLADOR

JACK PARA
ADAPTADOR DC

ALIMENTACIN DE 5V

ENTRADAS ANALOGAS

Figura 1. Tarjeta de desarrollo Arduino

Tabla 1. Resumen de las caractersticas elctricas del Arduino.


Microcontrolador
Voltaje de funcionamiento
Voltaje de entrada
(recomendado)
Voltaje de entrada (limites)
Pines de E/S Digitales
Pines de entrada anloga
Corriente DC por pin de E/S
Corriente DC por el pin de
3.3V.
Clock Speed

ATmega328
5V
7-12V
6-20V
14 (de los cuales 6 pueden tener
salidas PWM)
6
40 mA
50 mA
16 MHz

1.2 MICRO-MOTORES DC.


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
Relacin de engranajes
Velocidad con carga
Corriente nominal
Corriente de motor bloqueado
Torque

13000 rpm
50:1
260 rpm a 6 voltios
40 mA a 6 voltios
360 mA a 6 voltios
10 oz inches a 6 voltios

1.3 TARJETA CONTROLADORA DE MOTORES.


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 cuando el puente H esta


energizado.

Integrado del Puente H: L298.

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

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).

1.4 ENCODER INCREMENTAL.


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.


Encoder
Incremental

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

1.5 SENSOR INFRARROJO.


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.

1.6 SENSOR DE LNEA


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 de 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 suele 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

1.7 BATERA DE LIPO


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.

1.8 SALVALIPO
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

1.9 CARGADOR
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 proceso 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 posible 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, Corriente 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 MECNICO.

2.1 BASE DE ACRLICO.


La base de acrlico tiene como funcin servir de soporte 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.

2.2 LLANTAS.
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.

2.3 BASES DE APOYO PARA MICROMOTOR.


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

2.4 RUEDAS DE APOYO.


La ruedas tiene como funcin dar equilibrio al robot 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 movilizacin del robot, Figura 14.

Figura 14. Rueda de apoyo.

2.5 TORNILLOS METLICOS.


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.

3.1 INSTALACION DEL ARDUINO.


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 fue exitosa en la pestaa de


administracin de dispositivos como podemos observar 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.

3.2 ESTRUCTURA DE PROGRAMACIN SETUP() Y LOOP()


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;
void setup()
{

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

// Se define el numero del Pin

pinMode(buttonPin, INPUT);// se establece como entrada o salida


}
void loop()
{
// ...
}

loop()
Despus de creada la funcin setup(), la funcin loop() 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 activara 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);
}

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


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

Ifelse

La estructura if(condicin) significa Si, es usada 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 operadores de comparacin
son:
x == y
x != y
x< y
x> y
x <= y
x >= y

(x es igual a y?)
(x es diferente de y?)
(x es menor que y?)
(x es mayor que y?)
(x es menor o igual que 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<10) y el
incremento o decremento que va a tener la variable de inicio(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 <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
}

while
La estructura While, tiene como significado repetir hasta que se cumpla la
condicin X. Tiene como estructura while(condicin). Las condiciones son
realizadas con operadores de condicin como los estudiados anteriormente.
Ejemplo:
var = 0;
while(var < 200){
// repite una accion mientras var sea menor de 200
var++;
}

switch case
La estructura switch case tiene como significado seleccionar caso. Tiene
como objetivo brindar ms de 2 opciones como lo hace el if, que brinda la
opcin de verdadero y falso.
Ejemplo:
// Las const son valores que no cambian, aqu est el valor mnimo
y el valor mximo que se lee de un sensor anlogo.
const int sensorMin = 0; // sensor minimum, discovered through
experiment

const int sensorMax = 600; // sensor maximum, discovered through


experiment
void setup() {
Serial.begin(9600); // inicializa la comunicacin serial
}
void loop() {
// lee read the sensor:
int sensorReading = analogRead(A0);
// mapea todo el rango del sensor en un rango de solo 4 opciones
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
// realiza una opcin diferente dependiendo del valor 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 del 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
}

3.4 CONFIGURACIN DEL SOFTWARE.


La programacin grafica es realizada mediante diagramas 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 programacin 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 la 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 funcionamiento y
programacin. Figura 21.

Figura 21. Ventana de trabajo.

3.5 PROGRAMACIN GRAFICA.


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 estudiadas 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, menor 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 programacin que es
cargado al Arduino para su funcionamiento. Figura 30.

Figura 30. Ventana de cdigo fuente.

3.6 EJEMPLO DE APLICACIN.


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 Figura 31).

Figura 31. Ejercicio.

CURSO NIVEL MEDIO

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.

4.1 ENTRADAS DIGITALES.


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 de 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 lgica 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 digitalRead.

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.

4.2 SALIDAS DIGITALES.


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.

4.3 ENTRADAS ANLOGAS.


Las entradas analgicas tienen como funcin permitir 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.

4.4 SALIDAS ANLOGAS.


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 ancho 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. El 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.

4.5 DETERMINACION DE LAS ENTRADAS Y SALIDAS DEL ROBOT.

El primer paso que se debe seguir es determinar cules son los sensores y
actuadores del robot. Se pueden determinar cmo sensores, 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 lgica 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
DIGITAL

Sensor
infrarrojo
X

Encoder
Motores
incremental
X

ENTRADA
ANALOGA

DIGITAL
SALIDA
ANALOGA

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

CURSO NIVEL AVANZADO

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.

5.1 Programacin de los motores del robot.


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

5.2 Seguidor de lnea.


El programa est dividido en 3 partes; el hardware, los bloques y el cdigo
fuente, los cuales
5.3 Evadir obstculos.
El programa est dividido en 3 partes; el hardware, los bloques y el cdigo
fuente, los cuales
5.4 PROGRAMACIN GRAFICA.
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.

Anda mungkin juga menyukai