ESCUELA POLITÉCNICA NACIONAL
“CAMPUS POLITÉCNICO JOSÉ RUBÉN ORELLANA RICAURTE”
FACULTAD DE INGENIERÍA ELÉCTRICA Y
ELECTRÓNICA
“CARRO EVASOR DE OBSTACULOS”
PROYECTO DE CONTROL CON MICROPROCESADORES
Realizado por:
Castro Haro Javier Alexander
Chávez Marcelo David
Molina Vela Marco Paúl
Nono Soto María Belén
Rodríguez Borja Mauricio Fernando
Quito, Junio 2010
ESCUELA POLITÉCNICA NACIONAL 2
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Contenido
INTRODUCCIÓN: ................................................................................................................ 2
PLANTEAMIENTO DEL PROYECTO .............................................................................. 4
CONSTRUCCIÓN DEL “CARRO EVASOR DE OBSTACULOS” .................................. 4
• Nivel físico: ................................................................................................................. 5
• Nivel de inteligencia: .................................................................................................. 5
Construcción e implementación del carrito evasor de obstáculos ..................................... 5
SOLUCION DE PROBLEMAS POR “HARDWARE” ....................................................... 7
Implementación ................................................................................................................. 8
Microcontrolador ATmega16: ........................................................................................... 9
Características ................................................................................................................ 9
Servomotor modelo HS-311 Standard (Truncado) .......................................................... 10
Sensores de distancia ....................................................................................................... 11
Sensor de ultrasonido SRF05 ...................................................................................... 12
Sensor de distancia Analógico GP2Y0A21YK opto electrónico ................................ 17
Pruebas realizadas a los sensores................................................................................. 19
Driver L293D .................................................................................................................. 20
Reguladores de voltaje LM7805: .................................................................................... 22
Diagrama electrónico ....................................................................................................... 22
SOLUCION DE PROBLEMAS POR “SOFTWARE” ....................................................... 24
Programa principal: ......................................................................................................... 24
Subrutinas de los sensores: .......................................................................................... 25
Subrutina del control de los motores: .......................................................................... 26
Código completo para el robot evasor de obstáculos. ..................................................... 26
CONCLUSIONES Y RECOMENDACIONES: ................................................................. 32
BIBLIOGRAFIA: ................................................................................................................ 34
INTRODUCCIÓN:
Los robots son usados en la industria automotriz, médica, plantas fabriles y por
supuesto, en las películas de ciencia-ficción. Construir y programar un robot es
una resolución combinada de problemas, de electrónica y mecánica.
ESCUELA POLITÉCNICA NACIONAL 3
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
La palabra "robot" apareció por primera vez en una revista cómica de
Checoslovaquia llamada Rossum's Universal Robots por Karel Capek en 1920.
Los robots en esta obra, tendían a ser humanoides. De ahí en más se vieron en
muchas historias de ciencia ficción buenas, que los involucraban en revueltas
contra la autoridad humana, lo cual requiere inteligencia. Esto cambió cuando
General Motors instaló el primer robot en su planta de fabricación en 1961. En la
ciencia-ficción o en la fabricación, la inteligencia es solamente instalada en un
robot a través del programa.
Un robot se podría definir como una máquina programable capaz de manipular
objetos y realizar operaciones antes reservadas a los humanos.
Isaas Asimos ha contribuido con varias narraciones a la ciencia ficción con el
tema de los robots y a él se le atribuye el acuñamiento del término robótica.
Además fue él quien propuso las tres leyes de la robótica con las que se garantiza
esté bien diseñada y sea segura; estas leyes son:
1. Un robot no puede actuar contra un ser humano o, mediante la inacción,
permitir que un ser humano sufra daños.
2. Un robot debe obedecer las órdenes dadas por los seres humanos, salvo que
están en conflicto con la Primera Ley.
3. Un robot debe proteger su propia existencia, a no se que esté en conflicto con
las dos primeras leyes.
La estructura mecánica y los motores son factores decisivos del robot, un correcto
diseño de la estructura y una adecuada elección de los motores pueden ahorrar
mucho trabajo y esfuerzo. Es difícil dar una solución única, sobre todo por la
existencia de un sin fin de alternativas.
En este proyecto se implementa un “Carro evasor de obstáculos” usando
microcontroladores de la familia AVR para nuestro caso el ATmega16.
ESCUELA POLITÉCNICA NACIONAL 4
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
En este proyecto tiene como objetivo construir un “robot evasor de obstáculos” el
cual lo denominaremos “LEÓNIDAS”, Leónidas al detectar un obstáculo en su
camino sea capaz de evadirlo.
Este tipo de proyectos tiene dos componentes uno mecánico y electrónico, en
este proyecto se intenta que el lector logre entender de manera sencilla y con
claridad los pasos en la implementación del proyecto y obtenga un panorama de
la programación utilizada para este dispositivo electrónico, el lector puede hacer
mejoras y modificaciones futuras de acuerdo a su conveniencia.
PLANTEAMIENTO DEL PROYECTO
En este proyecto se tiene como objetivo desarrollar un “Robot Evasor de
Obstáculos” que sea controlado por un microcontrolador ATMEGA16, mediante el
uso de diferentes dispositivos electrónicos, tales como sensores, servomotores,
regulador de voltaje etc.
El objetivo principal de “LEÓNIDAS” es evadir obstáculos que se encuentran al
frente de su trayectoria de movimiento. Para ello, el microcontrolador que controla
a LEÓNIDAS, utilizará 3 sensores de donde obtendrá lecturas, los cuales
mediante comparaciones decidirán la trayectoria de movimiento, para decidir el
cambio de la trayectoria para evadir el obstáculo.
La solución a la problemática planteada tiene dos componentes uno mecánico y
otro electrónico el cual se puede dividir en “hardware” y en “software”, cada una
de estas soluciones se mencionara según el avance del proyecto, pero antes se
menciona una descripción general del proceso de solución y construcción de
“LEÓNIDAS”.
CONSTRUCCIÓN DEL “CARRO EVASOR DE
OBSTACULOS”
En la planificación de la construcción de este robot evasor de obstáculos se
consideraron los siguientes puntos:
ESCUELA POLITÉCNICA NACIONAL 5
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
• Nivel físico:
Esta etapa está comprendida de la estructura física del bot, las partes móviles,
las etapas de potencia, el conjunto de sensores y los sistemas básicos para su
manejo.
• Nivel de inteligencia:
Esta etapa abarca la planificación del robot, para que sea completamente
autónomo.
Construcción e implementación del carrito evasor de obstáculos
Para obtener al modelo del robot se inicio desde una etapa de investigación y
experimentación, ya que se probaron con diferentes modelos de carrocerías y
diferentes tipos de motores.
La investigación realizada nos dejo un primer acercamiento tanto en la
programación del ATmega16, como de la utilización de los motores. Este
conocimiento adquirido fue de gran utilidad para llegar a obtener un robot evasor
de obstáculos.
La primera experimentación realizada fue la búsqueda de la carrocería a ser
utilizada, primero se considero utilizar un carro comercial de juguete, con sus
respectivos motores, dicho carro no cumplía con nuestras expectativas
planteadas, debido a la estructura y a la velocidad requerida para nuestro
proyecto.
Por lo cual se considero la compra de motores comerciales, y la construcción
física del robot.
Como nuestro objetivo es llegar a obtener un carro evasor de obstáculos se pensó
en colocar varios sensores alrededor del carro que nos indicarían si el carro podía
seguir hacia adelante o no, pero obtuvimos una limitación que fue la adquisición
de los sensores debido a su alto costo.
ESCUELA POLITÉCNICA NACIONAL 6
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Los sensores deben buscar una salida segura, libre de obstáculos los cuales
obstaculizan el paso de robot si no encuentra dicha salida entonces los sensores
indicaran al sistema de control que debe realizar una acción, el mecanismo de
control seleccionara una orden adecuada la cual debe controlar los motores.
Las primeras pruebas realizadas no fueron satisfactorias, se llego a obtener
muchos inconvenientes, uno de los cuales fue que el carro pesaba mucho y los
motores inicialmente utilizados no tenían el suficiente torque para mover el carro,
lo cual nos llevo a la utilización otro tipo de motores, se pensó en aquellos que
están montados en un mecanismo de engranes y que hace que tengan un mejor
torque. Además los motores debían consumir poca corriente.
Otro inconveniente presentado fue que el consumo de la corriente era muy
elevado, lo que ocasionaba que el tiempo de duración de las baterías sea muy
corto, el factor principal de este problema fue el peso del carro.
Se busco una nueva estructura, la nueva estructura del robot se redujo de un
carro de cuatro llantas a uno de tres. Dos llantas se pusieron en la parte posterior
y una en la parte media del frente, con lo cual obtuvimos que el robot tenga un
movimiento libre, es decir cuando los dos motores se ponen en marcha al mismo
tiempo el carro se debe ir en línea recta y cuando se quiera que gire, la llanta
delantera debe seguir la trayectoria descrita.
Al realizar las pruebas necesarias se presento un nuevo inconveniente con los
nuevos motores, que fue la diferencia de revoluciones por minuto, entre los dos
motores, lo cual provocaría que el robot no avanzara en línea recta. Sin embargo
se logro solucionar este problema mediante software, ya que cada motor tiene su
propio control de velocidad.
El material utilizado para la estructura es de madera ligera, obteniendo así una
mayor estabilidad y una mejor facilidad para trabajar con ella, pues si se requiere
hacer una perforación o poner algún aditamento especial es más sencillo de
realizarlo.
ESCUELA POLITÉCNICA NACIONAL 7
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
El programa que se implemento en el ATmega16 es el encargado de que el robot
detecte los obstáculos y los evada tomando la mejor decisión para dicha acción.
EL ATmega16 se encarga de recibir la información desde los sensores del
exterior y procesarla para poder realizar la acción correcta, sin embargo la forma
como se procesa esta información depende de la lógica que envíen los sensores
en nuestro caso se tendría una combinación de 8 posibles combinaciones para
realizar el control, esta información depende del diseño del programa.
El programa tiene una estructura básica de un programa principal y de
subrutinas que realizan las acciones requeridas y a su vez estas subrutinas
realizan tareas específicas y dan resultados rápidos y concretos.
SOLUCION DE PROBLEMAS POR “HARDWARE”
El proyecto presentado es un carro evasor de obstáculos “Leónidas”, el cual
empieza su funcionamiento al presionar un pulsador de inicio. El carro evasor de
obstáculos se dirigirá en una trayectoria recta mientras no encuentre un
obstáculo. La detección de obstáculos se hace por medio de sensores de
distancia que se encuentran en la parte delantera del carrito. Se utilizo un sensor
ultrasónico y dos sensores con salida analógica. Dependiendo de la señal que
proporcionan los sensores se realiza una lógica de control para el cambio de
dirección en el movimiento del carrito, después del cambio de dirección el carrito,
este se dirigirá en trayectoria recta nuevamente. Para el desplazamiento de carrito
se utilizo dos servomotores truncados para obtener mayor torque en el giro de las
llantas, las llantas son movidas con tracción diferencial. El control de la velocidad
de giro de los servomotores y su sentido de giro es controlado indirectamente por
dos puentes H. El control total del carro evasor se lo realizo por medio de un
microcontrolador ATmega16, debido a las características que presenta. La
alimentación del carro evasor se la hace a través de 2 baterías en serie de celular,
voltaje que se rectifico a 5 voltios fijos. Observar la figura.
ESCUELA POLITÉCNICA NACIONAL 8
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Material utilizado:
- 1 ATmega16
- 2 servomotores modelo HS-311 Standard Truncados
- 2 sensor analógico Sharp modelo GP2Y0A21YK
- 1 Sensor ultrasonido SRF05
- 1 Driver L293D
- 1 Reguladores de voltaje LM7805
- 2 Capacitores (1uF y 330uF)
- Conectores
- 2 led‟s (rojo, verde)
- 2 Pulsadores
- 1 Batería 9V
- Resistencias 330 Ω
Implementación
En el siguiente grafico se observa la estructura del robot evasor de obstaculos
que se implemento, se puede obserbar la ubicación de los principales
componentes utilizado para la construccion del robot, en parte frontal donde se
ESCUELA POLITÉCNICA NACIONAL 9
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
encuentran ubicados los sensores, es donde se coloco la rueda loca para la
estabilidad del robot.
Microcontrolador ATmega16:
Características
- Arquitectura Avanzada RISC
- 131 instrucciones. La mayoría de un solo ciclo de reloj de ejecución.
- 32 registros de trabajo de 8 bits para propósito general.
ESCUELA POLITÉCNICA NACIONAL 10
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
- Capacidad de procesamiento de unos 20 MIPS a 20 MHz.
- Multiplicador por hardware de 2 ciclos
- Memorias de programa y de datos no volátiles de alta duración
- 16 K bytes de FLASH auto programable en sistema
- 512B/ bytes de EEPROM
- ADC de 10 bits y 8 canales
- Un Timer/Contador de 16 bits con prescalamiento separado, modo Comparación
y modo de captura.
Servomotor modelo HS-311 Standard (Truncado)
El HS-311 es el servo perfecto para nuestra aplicación debido a su bajo costo.
Servo, periféricos y accesorios
Una de las mejores características del servo Hitec es su facilidad para ser
modificado para rotación continua, con el fin de usarlo como motor propulsor en
los robots. Este servo tiene unas características técnicas y físicas únicas, por su
mayor facilidad de modificación y su mayor potencia.
.El método de modificación descrito
a continuación es muy sencillo
solamente es necesario un
destornillador y unos alicates para
modificar el servo en sólo unos
minutos
ESCUELA POLITÉCNICA NACIONAL 11
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Aflojar los cuatro tornillos que fijan la carcasa para desmontar con cuidado la
tapadera superior, poniendo atención en no sacar los engranajes de su sitio.
Sacar el engranaje principal, el que tiene el eje estriado, sacando para ello el
engranaje secundario y el cojinete superior.
Retirar la placa de plástico que se encuentra en el interior del engranaje principal.
Esta placa está sujeta por un anillo metálico que actúa a modo de cojinete. La
placa de plástico del interior es la unión entre el eje de salida y el potenciómetro
del servo.
Ahora hay que cortar con cuidado el tope de
plástico que evita que el eje principal pueda
girar más de 180 grados. Para ello lo mejor es
cortar el tope con unos alicates de corte. Es
mejor cortar el tope poco a poco en lugar de
una sola vez, para evitar que un exceso de
presión rompa el eje. Una vez cortado, puede
colocarse en la tapadera para comprobar que gira libremente 360º.
Sensores de distancia
Para la detección de obstáculos se utilizo tres sensores de distancia en la parte
frontal del carro evasor, los sensores se ubicaron de tal manera que el carro no
solo detecte los obstáculos que se encuentren justo al frente sino obstáculos que
estén a los costados de la línea frontal que sigue el carro. Los sensores que se
utilizaron son de dos tipos uno ultrasónico y dos analógicos. El sensor ultrasónico
se coloco justo al frente, ya que este sensor presenta mejores características de
funcionamiento que los otros dos sensores analógicos utilizados, a los costados
del sensor ultrasónico se coloco los sensores de distancia analógicos, para que
detecten obstáculos a 30 grados de la línea frontal en la que se dirige el carro
evasor. La ubicación de los sensores se muestra en la siguiente figura.
ESCUELA POLITÉCNICA NACIONAL 12
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Sensor de ultrasonido SRF05
Descripción.
Consiste en un medidor ultrasónico de distancias de bajo costo desarrollado por la
firma DEVANTECH Ltd. El módulo SRF05 es una evolución del módulo SRF04 y
está diseñado para aumentar la flexibilidad, aumentar el rango de medida y
reducir costes. Es totalmente compatible con el SRF04 y el rango de medida se
incrementa de 3 a 4 metros. Observar la figura.
Figura
Dispone de un nuevo modo de operación que se selecciona simplemente
conectando el pin “Mode” a GND. Dicho modo permite al SRF05 emplear un único
Servomotor 1
Servomotor 2P
laca
Ruedas
Ruedas
Baterias
S
en
so
r
Ultra
so
nic
o
Senso
r analo
gic
o
Senso
r analo
gico 3
0°
30°
ESCUELA POLITÉCNICA NACIONAL 13
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
pin de E/S que sirve tanto para dar la orden de inicio o disparo, como para
obtener la medida realizada (ECO).
Cuando el pin de “Modo” no se emplea y se deja sin conectar, el SRF05 trabaja
de la misma manera que el SRF04. Esto es, la señal de disparo y la salida de
ECO se realizan por pines diferentes.
El SRF05 incluye una pequeña temporización tras el pulso ECO de salida, que
permite que controladores lentos como Basic Stamp y Picaxe puedan ejecutar sus
correspondientes instrucciones.
Modos de operación
Modo 1, Compatibilidad con SRF04
Este modo emplea patillas separadas, una para aplicar el pulso de inicio o Trigger
y otra para leer la anchura del pulso del ECO medido. Todos los programas
realizados para el SRF04 deben funcionar perfectamente en este modo, que se
selecciona simplemente dejando la patilla “Mode” sin conectar (igual que en el
SRF04).
Tal y como se muestra en el diagrama de tiempos de la figura, el modo de empleo
es muy sencillo. Externamente se aplica, por parte del usuario, un pulso de
disparo o trigger de 10 μS de duración mínima. Se inicia la secuencia. El módulo
transmite un tren de pulsos o “burst” de 8 ciclos a 40KHz. En ese momento la
señal de salida ECO pasa a nivel “1”. Cuando la cápsula receptora recibe la señal
transmitida como consecuencia de haber rebotado en un objeto (eco), esta salida
pasa de nuevo a nivel “0”. El usuario debe medir la duración del pulso de esta
señal, es decir, el tiempo en que la señal eco se mantiene a “1”.
ESCUELA POLITÉCNICA NACIONAL 14
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Con objeto de que el módulo se estabilice, se debe dejar un lapsus de tiempo de
unos 20mS mínimo entre el momento en que la señal de eco pasa a “0” y un
nuevo pulso de disparo que inicie el siguiente ciclo o medida. Esto permite realizar
medidas cada 50mS o lo que es igual a 20 medidas por segundo.
La duración del pulso eco de salida varía entre 100μS y 25mS, en función de la
distancia entre las cápsulas del módulo y el objeto. La velocidad del sonido es de
29.15 μS/cm que, como realiza un recorrido de ida y vuelta, queda establecida en
58.30μS/cm. Así pues el rango mínimo que se puede medir es de 1.7 cm
(100μS/58) y el máximo de 431 cm (25mS/58).
Modo 2, Patilla única para trigger y ECO
Este modo permite emplear una única patilla para generar la señal de disparo o
trigger y también para realizar la medida de la anchura del pulso de salida del
ECO, lo que ahorra patillas en el microcontrolador central. Para emplear este
modo basta con conectar la patilla “Mode” con GND. La señal de ECO aparecerá
entonces en la misma patilla por la que se aplicó la señal de trigger. Esa patilla se
debe configurar primero como salida para generar el disparo y luego como
entrada para leer la duración del ECO. La sentencia PULSIN de los controladores
más populares realiza esta reconfiguración de forma automática. Ver la figura.
ESCUELA POLITÉCNICA NACIONAL 15
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Características técnicas
Conexionado
El módulo emplea tan sólo 5 conexiones que se pueden realizar soldando
directamente 5 cables o bien mediante un conector de 5 vías con paso de
2.54mm. Estas se muestran en la figura.
ESCUELA POLITÉCNICA NACIONAL 16
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Aplicaciones
El módulo SRF05 es capaz de generar una señal lógica de salida cuya duración
determina la distancia de un objeto. Las aplicaciones son numerosas, citamos
unas cuantas a modos de ejemplo:
Aplicaciones de control conde se deba actuar en función de la distancia o
tamaño de objetos diversos.
Alarmas activadas cuando el intruso se aproxima a una determinada
distancia
Microbótica en donde es necesario que se actúe en función de la distancia
que separa al robot de cualquier otro objeto.
ESCUELA POLITÉCNICA NACIONAL 17
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Sensor de distancia Analógico GP2Y0A21YK opto electrónico
Descripción
El GP2Y0A21YK es un sensor medidor de distancia de ángulo amplio,
desarrollado por la firma SHARP. Es capaz de medir distancias desde 10 cm a 80
cm. Consta de tres pines dos para la alimentación y uno de salida, el cual entrega
un voltaje analógico que depende directamente de la distancia medida.
Características
- Salida digital
- Pulso de duración del LED por ciclo: 32 ms
- Rango de medida: 10 cm a 80 cm
- Tiempo típico de respuesta: 39 ms
- Retraso típico de encendido: 44ms
- Consumo regular de corriente: 30 mA
- Zona del diámetro de detección @ 80cm: 12 cm
Características técnicas
Parámetro Símbolo Condiciones Min. Tip. Max Unit
Rango de medición L 10 - 80 cm
Voltaje de salida Vo L = 80 cm 0.25 0.4 0.55 V
ESCUELA POLITÉCNICA NACIONAL 18
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Voltaje diferencial Vo L=(80 cm – 10cm) 1.65 1.9 2.15 V
Corriente regular Icc L = 80 cm - 30 40 mA
Notas:
1.- Usando objetos reflectivos: papel blanco (Kodak), tarjetas grises, proporción
reflectiva: 90%
2.- L = Distancia al objeto reflectivo.
Mediciones
ESCUELA POLITÉCNICA NACIONAL 19
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Característica de salida
Pruebas realizadas a los sensores.
Debido a que este sensor es analógico, este presenta una respuesta variable de
voltaje y un punto ciego. El punto ciego se encuentra a distancias menores a 10
cm según las especificaciones. Se realizo pruebas de medición, utilizando para
ello los conversores análogo digital del microcontrolador, una regla y un LCD
donde se podía observar los valores de voltaje que proporciona el sensor. Se
coloco objetos a distancias no mayores a 20cm, ya que no son muy importantes
los valores medidos a distancias mayores. Se acercaban estos objetos hasta
llegar al punto ciego, el cual se pudo apreciar ya que el sensor da voltajes muy
variables y las medidas son totalmente erradas. En la siguiente tabla se muestra
las mediciones realizadas. Las pruebas se realizo con un objeto blanco.
ESCUELA POLITÉCNICA NACIONAL 20
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Sensor 1 Sensor 2
Voltaje Unidad Distancia Unidad Voltaje Unidad Distancia Unidad
1.4 V 14 Cm 1.54 V 14 Cm
1.6 V 13 Cm 1.63 V 13 Cm
1.7 V 12 Cm 1.7 V 12 Cm
1.8 V 11 Cm 1.9 V 11 Cm
1.9 V 10 Cm 2 V 10 Cm
2.1 V 9 Cm 2.2 V 9 Cm
2.3 V 8 Cm 2.4 V 8 Cm
2.6 V 7 Cm 2.7 V 7 Cm
2.7 V 6 Cm 2.8 V 6 Cm
2.8 V 5 Cm 2.8 V 5 Cm
- V 4 Cm - V 4 Cm
Con las pruebas realizadas se determino que el punto ciego es inferior a los 4 cm,
pero se tuvo en cuenta que estos valores dependen del color de la superficie del
objeto. Además se observo que la respuesta de los sensores no son iguales pero
si parecidos. Por lo que se trabajo con rangos de voltaje, al momento de hacer el
algoritmo de control.
Driver L293D
El circuito L293D es un
circuito lineal, su aplicación
principal es el
funcionamiento para
motores, en esta aplicación
se utilizo como etapa de
potencia para los motores,
tiene la característica de que
ESCUELA POLITÉCNICA NACIONAL 21
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
mediante entradas digitales, pueda activar o desactivar el motor que se tiene
conectado a la salida, la configuración de este se muestra en la figura.
A continuación se muestra las combinaciones posibles para realizar el
control de giro de los motores.
ESCUELA POLITÉCNICA NACIONAL 22
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Reguladores de voltaje LM7805:
En nuestra aplicación se requiere una tensión fija y estable a un determinado
valor para la alimentación del Microcontrolador y para el driver L293D.
Los reguladores ideales para este tipo de aplicaciones es la conocida como
LM78XX. Las dos primeras letras y dos números corresponden a la
denominación, mientras que las dos últimas XX deben ser reemplazados por la
tensión de salida requerida, que en nuestro caso es de 5V. Cada uno de estos
dispositivos posee sólo tres terminales, el terminal 1 corresponde a la entrada de
tensión no regulada, el Terminal 2 es tierra y el terminal 3 es la salida regulada.
Diagrama electrónico:
A continuación se muestra el circuito implementado para el proyecto, este circuito
fue simulado en el paquete computacional Proteus el cual contiene al isis y el ares
los cuales son usados para la simulación e implementación de la placa a ser
elaborada.
ESCUELA POLITÉCNICA NACIONAL 23
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
IN12
OUT13
OUT26
OUT311
OUT414
IN27
IN310
IN415
EN11
EN29
VS
8
VSS
16
GND GND
U2
L293D
PB0/T0/XCK1
PB1/T12
PB2/AIN0/INT23
PB3/AIN1/OC04
PB4/SS5
PB5/MOSI6
PB6/MISO7
PB7/SCK8
RESET9
XTAL213
XTAL112
PD0/RXD14
PD1/TXD15
PD2/INT016
PD3/INT117
PD4/OC1B18
PD5/OC1A19
PD6/ICP120
PD7/OC221
PC0/SCL22
PC1/SDA23
PC2/TCK24
PC3/TMS25
PC4/TDO26
PC5/TDI27
PC6/TOSC128
PC7/TOSC229
PA7/ADC733
PA6/ADC634
PA5/ADC535
PA4/ADC436
PA3/ADC337
PA2/ADC238
PA1/ADC139
PA0/ADC040
AREF32
AVCC30
U1
ATMEGA16
1 2
D1SIL-100-02
VI1
VO3
GN
D2
U37805
C1220u
C2330u
1
2
3
4
5
6
7
8
J1
SIL-100-08
1
2
3
4
5
6
7
8
J2
SIL-100-08
1 2
J3SIL-100-02
R1
330k
1 2
J5SIL-100-02
R2330k
1 2
J6SIL-100-02
1
2
J7
SIL-100-02
1
2
J8
SIL-100-021
2
J4
SIL-100-02
1
2
J10
SIL-100-02
123
J11SIL-100-03
ESCUELA POLITÉCNICA NACIONAL 24
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
SOLUCION DE PROBLEMAS POR “SOFTWARE”
La solución por Software del carro evasor fue muy sencillo de realizarlo ya que se
hizo creando subrutinas que son llamadas por el programa principal. A
continuación se presentan tanto el programa principal como sus subrutinas.
Se presenta a continuación el diagrama de flujo correspondiente al programa
principal y sus respectivas subrutinas.
Programa principal:
ESCUELA POLITÉCNICA NACIONAL 25
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Subrutinas de los sensores:
ESCUELA POLITÉCNICA NACIONAL 26
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Subrutina del control de los motores:
CONTROL DE MOTRES
CONDICIÓN
SENSOR
DETECTADO MOVIMIENTO
0 0 Frente
2 Frente Izquierda
4 Izquierda Derecha
5 Derecha Izquierda
6 Frente-Izquierda Derecha
7 Frente-Derecha Izquierda
9 Izq-Der-Cent Retro
11 Izquierda-Derecha Retro
Código completo para el robot evasor de obstáculos.
$regfile "m16def.dat"
$crystal = 4000000
$hwstack = 32
ESCUELA POLITÉCNICA NACIONAL 27
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
$swstack = 10
$framesize = 40
Dim W As Word
Dim W1 As Single
Dim W2 As Single
Dim A As Word
Dim Pwm_c As Byte
Dim Pwm_2 As Byte
Dim B As Single
Dim C As Word
Dim D As Single
Config Single = Scientific , Digits = 2
Dim Control_1 As Byte
Dim Control_2 As Byte
Dim Control_3 As Byte
Dim Motores As Byte
Config Portd = Output
Config Porta = Input
Config Portc = Output
Config Portd.0 = Input
Portc = 0
Portd.0 = 1
Portd.7 = 0
Portd.6 = 0
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B
Pwm = Clear Down , Prescale = 8
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Debounce = 15
ESCUELA POLITÉCNICA NACIONAL 28
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Do „Lazo para el pulsador de inicio
Debounce Pind.0 , 0 , Inicio1 , Sub
Portd.7 = 1
Portd.6 = 0
Loop
Inicio1:
Portd.6 = 1
Portd.7 = 0
Pwm_c = 150 „Set point para la Velocidad de los motores
Pwm_2 = 170
Pwm1a = Pwm_2
Pwm1b = Pwm_c
Motores = 0
Inicio:
Do „Lazo principal.
Gosub Sensor1
Gosub Sensor2
Gosub Sensor3
Motores = Control_1 + Control_2
Motores = Control_3 + Motores
Gosub Control_motores
Loop
Sensor1: „Subrutina para el sensor 1
(Ultrasónico)
Control_1 = 0
Waitms 400
ESCUELA POLITÉCNICA NACIONAL 29
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Pulseout Porta , 3 , 10
Set Porta.0
Bitwait Pina.3 , Reset
Pulsein W , Pina , 3 , 1
Reset Porta.0
W1 = W * 20
W2 = W1 / 115
If W2 <= 25 Then
Control_1 = 2
End If
Return
Sensor2: „Subrutina para el sensor 2
Control_2 = 0
Start Adc
A = Getadc(0)
B = A * 5
B = B / 1024
If B <= 2.5 Then
If B >= 1.5 Then
Control_2 = 5
End If
End If
Return
Sensor3: „Subrutina para el sensor 3
Control_3 = 0
Start Adc
C = Getadc(1)
D = C * 5
D = D / 1024
ESCUELA POLITÉCNICA NACIONAL 30
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
If D <= 2.5 Then
If D >= 1.5 Then
Control_3 = 4
End If
End If
Return
Control_motores:
'===================================
If Motores = 0 Then 'Va al frente sin obstaculos
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Portc.3 = 1
Goto Inicio
Else
End If
If Motores = 2 Then 'Detecta sensor ultrasonico,gira
izquierda
Portc.0 = 1
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Goto Inicio
Else
End If
If Motores = 5 Then ' Detecta sensor_2 der, gira
izquierda
Portc.0 = 1
ESCUELA POLITÉCNICA NACIONAL 31
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Goto Inicio
Else
End If
If Motores = 4 Then ' Detecta sensor_3 izq, gira
derecha
Portc.0 = 0
Portc.1 = 1
Portc.2 = 0
Portc.3 = 1
Goto Inicio
Else
End If
If Motores = 6 Then 'Ultrasonico y sensor izq, gira
derecha
Portc.0 = 0
Portc.1 = 1
Portc.2 = 0
Portc.3 = 1
Goto Inicio
Else
End If
If Motores = 7 Then 'Ultrasonico y sensor der, gira izq
Portc.0 = 1
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Goto Inicio
ESCUELA POLITÉCNICA NACIONAL 32
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Else
End If
If Motores = 9 Then ' Detecta sensor izq y der, retro
Portc.0 = 0
Portc.1 = 1
Portc.2 = 1
Portc.3 = 0
Goto Inicio
Else
End If
If Motores = 11 Then ' Detecta 3 sensores ,retro
Portc.0 = 0
Portc.1 = 1
Portc.2 = 1
Portc.3 = 0
Goto Inicio
Else
End If
Return
CONCLUSIONES Y RECOMENDACIONES:
Se concluyó que, debido a la zona muerta de los sensores, en ocasiones el
robot se choca, esto se soluciona comprando sensores del mismo tipo pero
de mejor calidad o utilizando sensores de otro tipo.
Se concluyó que la parte esencial de nuestro proyecto son los sensores por
lo que se debe tener en cuenta los rangos deseados para la detección de
objetos, es importante porque se debe calibrar las distancias de los tres
ESCUELA POLITÉCNICA NACIONAL 33
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
sensores ya que también depende del ángulo en el que están colocados en
el robot.
Se concluyó que el uso de servo motores nos permite tener un mayor
torque en las ruedas del robot, esto es útil en los giros donde se necesita
que el evasor gire sobre su propio eje.
Se concluyó que un sensor ultrasónico es más adecuado que un sensor
fotoeléctrico para la implementación de un proyecto de este tipo debido a
que tiene una menor zona muerta y a que brinda un mayor rango de
detección. La desventaja de un sensor ultrasónico frente a un fotoeléctrico
es el costo económico.
Se recomienda colocar más sensores fotoeléctricos alrededor del robot
para mejorar el problema de la zona muerta de cada uno de los sensores.
Se recomienda colocar algún material con base de goma en las ruedas
para mejorar la tracción de las ruedas y darle un mejor rendimiento en
cuanto a desplazamiento.
Se recomienda trabajar en un rango de distancias un poco alejado del
punto crítico próximo a la zona muerta para evitar problemas en la
detección de los objetos.
Se recomienda utilizar baterías de celular debido a su mayor duración con
respecto a las baterías comunes de 9 voltios, esto permite una mayor
independencia del robot.
Se recomienda utilizar un puente H para obtener un mejor control del
sentido de giro y de la velocidad de los motores.
ESCUELA POLITÉCNICA NACIONAL 34
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Se recomienda regular la velocidad del robot dependiendo de los sensores
conectados para evitar que realice giros muy bruscos y entre en la zona
muerta de los sensores laterales.
BIBLIOGRAFIA:
http://www.monografias.com/trabajos31/robotica/robotica.shtml#concept
http://www.robodacta.com
http://www.solaris-digital.com
http://perso.wanadoo.es/luis_ju/ebasica2/mcc_03.html
http://www.agelectronica.com
http://www.atmel.com
http://www.servocity.com/~servo/html/hs-311_standard.html
Hojas de especificaciones y otros documentos.
Datasheet L293D.
Datasheet ATMEGA16.