Issuu on Google+

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

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

3

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

4

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:

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

5

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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

6

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

7

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

8

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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

9

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. FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

10

- 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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

11

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

12

Ruedas or

ns

Se

Baterias

Se

ns

or

an

alo gic o

Servomotor 2

30°

Sensor Ultrasonico

Placa

30°

o gic alo an

Servomotor 1

Ruedas

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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

13

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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

14

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

15

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

16

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

17

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

Rango de medición

L

Voltaje de salida

Vo

Condiciones

L = 80 cm

Min.

Tip.

Max

Unit

10

-

80

cm

0.25

0.4

0.55

V

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

18

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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

19

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

20

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 funcionamiento

es

el para

motores, en esta aplicación se utilizo como etapa de potencia para los motores, tiene la característica de que FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

21

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

22

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

23

J11

3 2 1

SIL-100-03

R1

U3 7805

330k 3

C2 330u

J10 1 2 SIL-100-02

C1 220u

J1

1 2 3 4 5 6 7 8

SIL-100-08 1 2 3 4 5 6 7 8 SIL-100-08

SIL-100-02

12 13 40 39 38 37 36 35 34 33 1 2 3 4 5 6 7 8

XTAL1 XTAL2 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK

PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2

22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21

2 7 1

9 10 15

IN1 IN2 EN1

EN2 IN3 IN4

VSS

8 VS OUT1 OUT2

U2 3 6

AREF AVCC

J7 GND

OUT3 GND OUT4

11 14

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

1 2 SIL-100-02

L293D

D1 SIL-100-02

32 30

ATMEGA16

J8 1 2 SIL-100-02

1 2

SIL-100-02

J3

J2

1 2

RESET

1 2

2

J4

16

U1 9

J5 SIL-100-02 1 2

VO

1 2

VI GND

1

J6

R2

SIL-100-02

330k


ESCUELA POLITÉCNICA NACIONAL

24

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:

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

Subrutinas de los sensores:

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

25


ESCUELA POLITÉCNICA NACIONAL

26

Subrutina del control de los motores:

CONTROL DE MOTRES SENSOR CONDICIÓN 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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

$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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

27


ESCUELA POLITÉCNICA NACIONAL

28

„Lazo para el pulsador de inicio

Do 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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

29

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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

30

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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

31

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 FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

32

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

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

33

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA POLITÉCNICA NACIONAL

34

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.

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


Robot Evasor de Obstaculos