Documentos de Académico
Documentos de Profesional
Documentos de Cultura
-0-
2.1.3. Sistema de control del robot.35 2.1.3.1. Microcontrolador del robot35 2.1.4. Sistema de disparo37 2.1.4.1. Dribbling (control de la pelota)38 2.1.5. Sistema de alimentacin38 2.1.5.1. Eleccin del sistema de alimentacin40
2.2. Sistema de comunicacin41 2.2.1. Estndares de comunicacin41 2.2.2. Comunicacin inalmbrica escogida44 2.2.3. Microcontrolador del sistema de comunicacin45 2.3. Entorno de desarrollo para el PC46 2.3.1. Visual Basic46 2.3.2. Labview48 2.3.3. MatLab51 2.3.3.1 MatLab Guide52 Captulo 3: Ingeniera de desarrollo Hardware.55 3.1. Sistema de control de movimiento56 3.1.1. Pin Out56 3.1.1.1. L298 (Controlador de motor)56 3.1.1.2. Motor DC.56 3.1.2. Descripcin del circuito electrnico57 3.1.3. Layout del circuito electrnico58 3.1.4. Imagen real del sistema de movimiento58 3.2. Sistema de disparo & dribbling 59 3.2.1. Pin Out.69 3.2.1.1. Step Up (Convertidor DC-DC)69 3.2.1.2. Electroimn69 3.2.2. Descripcin del circuito electrnico.60 3.2.3. Layout del circuito electrnico61 3.2.4. Imagen real del sistema de disparo61
lvaro Andrade y Eric Gonzalo 3.3.1. Pin Out62 3.3.1.1. Receptor (Zigbee)62 3.3.1.2. Controlador (PIC 16F876)63 3.3.2. Descripcin del circuito electrnico64 3.3.3. Layout del circuito electrnico65 3.3.4. Imagen real del sistema de control del robot65 3.4. Sistema de comunicacin66 3.4.1. Pin Out.66 3.4.1.1. Conector USB66 3.4.1.2. Controlador (PIC 18F4550)67 3.4.1.3. Emisor (Zigbee)68 3.4.2. Descripcin del circuito electrnico69 3.4.3. Layout del circuito electrnico70 3.4.4. Imagen real del sistema de comunicacin71 3.5. Estructura mecnica71 Captulo 4: Ingeniera de desarrollo Software..74 4.1. Software del Robot mvil75 4.2. Software del sistema de comunicacin78 4.3. Entorno de desarrollo del PC79 4.3.1. Pantalla principal81 Captulo 5: Conclusiones82 5.1. Posibles mejoras.84 Captulo 6: Bibliografa85
-3-
NDICE DE FIGURAS
Figura 1.- Equipo SSL14 Figura 2.- Imagen de un partido de la Robocup SSL15 Figura 3.- Diagrama de la arquitectura de un equipo F18016 Figura 4.- Inteligencia artificial16 Figura 5.- Robocup F18018 Figura 6.- Esquema de funcionamiento del PFC19 Figura 7.- Diagrama de bloques del sistema23 Figura 8.- Diagrama de bloques del robot24 Figura 9.- Sistema de locomocin diferencial25 Figura 10.- Ruedas omnidireccionales26 Figura 11.- Distribucin de las ruedas en el robot27 Figura 12.- Esquema interno de un motor de corriente continua30 Figura 13.- Fotografa de un servomotor31 Figura 14.- Fotografa de un motor paso a paso31 Figura 15.- Conexin de los dos tipos de motores paso a paso33 Figura 16.- Circuito de control de un motor DC mediante el L29834 Figura 17.- Diagrama de bloques interno de un C35 Figura 18.- Tcnica de disparo de la pelota37 Figura 19.- Solenoide37 Figura 20.- Controlador de la pelota dribbler38 Figura 21.- Bateras Li-Po de 11.1 V40 Figura 22.- Pila de Nquel de 9 V40 Figura 23.- Grfico de estndares de comunicacin42 Figura 24.- Bluetooth DIP module43 Figura 25.- Mdulo Wifly GSX 80243 Figura 26.- Mdulo XBee 1mW44 Figura 27.- Conector serie44 Figura 28.- Conector USB45 Figura 29.- Diagrama de bloques interno del 18F455046 Figura 30.- Logotipo de Visual Basic47 -4-
lvaro Andrade y Eric Gonzalo Figura 31.- Pantalla principal de Visual Basic47 Figura 32.- Ejemplo de programa en Visual Basic48 Figura 33.- Logotipo de LabVIEW48 Figura 34.- Ejemplo de LabVIEW49 Figura 35.- Diagrama de bloques del ejemplo LabVIEW50 Figura 36.- Logotipo de MatLab51 Figura 37.- Ejemplo de una aplicacin en MatLab Guide52 Figura 38.- Palette de trabajo de MatLab Guide52 Figura 39.- Propiedades de elementos de MatLab Guide53 Figura 40.- Pin Out L29856 Figura 41.- Pin Out motor DC56 Figura 42.- Esquema electrnico del sistema controlador de motores57 Figura 43.- layout del sistema controlador de motores58 Figura 44.- Imagen real del sistema de movimiento58 Figura 45.- Pin Out MC34036A59 Figura 46.- Pin Out Electroimn59 Figura 47.- Esquema electrnico del sistema de disparo60 Figura 48.- Layout del sistema disparador61 Figura 49.- Imagen real del sistema disparador61 Figura 50.- Pin Out Zigbee (Receptor)62 Figura 51.- Pin Out controlador (PIC 16f876)63 Figura 52.- Esquema electrnico del sistema de control del robot64 Figura 53.- layout del sistema controlador del robot65 Figura 54.- Imagen real del sistema del controlador del robot65 Figura 55.- Pin Out conector USB66 Figura 56.- Pin Out controlador (PIC 18F4550)67 Figura 57.- Pin Out Zibee (Emisor)68 Figura 58.- Esquema electrnico del sistema de comunicacin69 Figura 59.- Layout del sistema de comunicacin70 Figura 60.- Imagen real del sistema de comunicacin70 Figura 61.- Imagen real del chasis y la plantilla71 Figura 62.- Vista superior del sistema de locomocin72 -5-
Figura 63.- Vista inferior del sistema de locomocin72 Figura 64.- Imagen final del robot mvil73 Figura 65.- Diagrama de flujo del sistema controlador del robot75 Figura 66.- Diagrama de flujo del sistema de comunicacin76 Figura 67.- Diagrama de flujo de la aplicacin en MatLab78 Figura 68.- Panel frontal de la aplicacin en MatLab80 Figura 69.- Imagen frontal del robot82 Figura 70.- Imagen lateral del robot83
NDICE DE TABLAS
Tabla 1.- Tabla de reparto de tareas20 Tabla 2.- Ejemplo de control de un motor paso a paso de cuatro bobinas32 Tabla 3.- Caractersticas del 16F87636 Tabla 4.- Tabla comparativa entre WiFi, Bluetooth y Zigbee42 Tabla 5.- Pin Out L29856 Tabla 6.- Pin Out motor DC57 Tabla 7.- Pin Out Conector USB67
-6-
ABREVIATURAS
BitDigito Binario ByteConjunto de ocho bits DCDirect Current (Corriente Continua) GHzGiga-Hertz HzHertz Kbpskilo bits por segundo LabVIEWLaboratory Virtual Instrument Engineering Workbench MatLabMATrix LABoratory LEDLight Emitting Diode mAmili-Amper Amicro-Ampere mmmili-metro mWmili-Watt MbpsMega bits por segundo PCPersonal Computer PCBPrinted Circuit Board PICMicrocontrolador de la marca Microchip RFRadio-Frecuencia RFIDRadio Frequency Identification SRAMMemoria voltil accesible desde el microcontrolador CMicrocontrolador USBUniversal Serial Bus VVolt WLANWireless Local Area Network WMANWireless Metropolitan Area Network WPANWireless Personal Area Network WWANWireless Wide Area Network ZigBeeEstndar IEEE 802.15.4 de comunicacin inalmbrica
-7-
RESUM
El propsit d'aquest projecte es dissenyar i implementar un petit prototip de robot mbil controlat per ordinador, el qual ha de ser capa de respondre a les ordres provinents d'un ordinador, que es transmetran sense fils, al mateix temps que juga a futbol. Per altra banda, sha d'incorporar una cmera de visi artificial externa que permetr a l'usuari del robot controlar-lo sense la necessitat de tenir una visi directa amb el robot. La tecnologia sense fils utilitzada ha estat el protocol de comunicacions Zigbee ja que es compatible amb prcticament qualsevol muntatge i tamb perqu ha suposat un repte laprenentatge i implementaci de la comunicaci amb aquests dispositius. Finalment, l'entorn de desenvolupament utilitzat per a implementar la interfcie d'usuari s'ha realitzat mitjanant MatLab.
RESUMEN
El propsito de este proyecto es disear e implementar un pequeo prototipo de robot mvil controlado por ordenador, el cual debe ser capaz de responder a las rdenes provenientes de un ordenador, que se transmitirn de forma inalmbrica, al mismo tiempo que juega al ftbol. Por otra parte, se tiene que incorporar una cmara de visin artificial externa que permitir al usuario del robot controlarlo sin necesidad de tener visin directa con el mismo. La tecnologa inalmbrica utilizada ha sido el protocolo de comunicaciones Zigbee ya que es compatible con prcticamente cualquier montaje y tambin porque ha supuesto un reto el aprendizaje e implementacin de la comunicacin con estos dispositivos. Finalmente el entorno de desarrollo utilizado para implementar el interfaz de usuario se ha realizado mediante MatLab.
-8-
ABSTRACT
The purpose of this project is to design and implement a small prototype computer-controlled mobile robot, which must be able to respond to commands from a computer, which will be transmitted wirelessly, at the same time that it play football. On the other hand, the project should incorporate a artificial extern vision camera module, which will allow the user to control the robot without having a direct vision with it. Wireless technology used was the Zigbee communication protocol because is compatible with any installation and also has been a challenge because the fact of learning with this type of communication in these devices. Finally, the integrated development environment used to implement the interface with the user was performed using MatLab
-9-
AGRADECIMIENTOS
Queremos agradecer este proyecto a nuestras familias en primer lugar, por su apoyo y palabras de nimo que siempre nos han ayudado a seguir hacia adelante en los momentos buenos y en los no tan buenos. A nuestros compaeros y compaeras de laboratorio que, despus de tantas horas compartidas durante la carrera y tantos consejos intercambiados, nos han ayudado de forma desinteresada. Finalmente tambin agradecemos a nuestro tutor, Sebastin Tornil, por guiarnos cuando no sabamos cmo continuar y corregirnos cuando nos equivocbamos.
-10-
CAPITULO 1: INTRODUCCION
1.1. Motivacin personal
El motivo por el cual se desea disear un robot es para poner en prctica los conocimientos obtenidos durante la carrera y se considera lo bastante complejo como para poner a prueba cada leccin aprendida. Se necesita disear, investigar el estado del arte y pensar la solucin ms eficiente para cada problema. Adems de demostrar los conocimientos aprendidos tambin se pretende que sea un proyecto reutilizable para que pueda servir de base para otros proyectos si se quisiera seguir investigando este tipo de proyectos de robtica.
1.2.
Antecedentes
La robtica es una rama de la tecnologa, la cual se encarga del diseo de maquinas que tengan la capacidad de moverse, manipular objetos, y sea capaz de interaccionar con su entorno. Estas maquinas constan de tres partes diferenciadas, los sensores son los encargados de captar informacin de su entorno. Los actuadores se encargan de modificar el entorno, y el controlador se encarga de leer los datos de los sensores, procesar esa informacin y activar los actuadores. Algunos ejemplos son:
-11-
Androides: robots que imitan la morfologa humana, con cabeza, tronco y extremidades. Estn programados para mimetizar diversas dimensiones del comportamiento humano.
Mviles: robots que constan de una plataforma y se desplazan mediante ruedas. Pueden poseer diversas estructuras, y ser clasificados segn el nmero de ruedas, su geometra y movimientos.
Zoomrficos: estos robots utilizan sistemas de locomocin que imitan el desplazamiento de los animales. Existen unos robots adecuados para el movimiento en superficies irregulares, como los de tipo araa, con cuatro patas de movimiento independiente que se adaptan al terreno.
culados: poseen extremidades con Poliarticulados: pocos grados de libertad. En este grupo se incluiran brazos robotizados y otros tipos de robots.
-12-
Apodos: robots que no estn dotados de partes mviles diferenciadas de su tronco, como pueden ser piernas o patas. Son robots apodos los que imitan el desplazamiento de serpientes, gusanos, caracoles y otros organismos vivos que emplean su propio tronco central para desplazarse, principalmente reptando.
Hbridos: Estos robots corresponden a aquellos cuya estructura se sita en combinacin con alguna de las anteriores ya expuestas, bien sea por conjuncin o por yuxtaposicin. Por ejemplo, un dispositivo segmentado articulado y con ruedas, es al mismo tiempo uno de los atributos de los robots mviles y de los robots zoomrficos.
1.3.
Competicin SSL
Para promover el desarrollo de la ciencia y de la tecnologa, la Federacin RoboCup tiene la poltica de someter a revisin las reglas ao con ao para decidir si se hacen nuevos cambios. Aunque con el paso del tiempo la liga de robots pequeos (SSL por sus siglas en ingls, en adelante F180) ha evolucionado, es posible identificar caractersticas esenciales de la liga que la distinguen de las dems y que permiten definir la arquitectura de un equipo F180.
-13-
1.3.2. La pelota
La pelota debe ser de color naranja, de 43 mm. de dimetro y de aproximadamente 46 g. La pelota ser retirada durante el transcurro del partido cuando el partido est parado. El partido se reinicia cuando la pelota se coloca en el lugar donde haba sido retirada.
-16-
1.3.8. Robots
Los robots se encargan de jugar ftbol y para lograrlo deben ofrecer la siguiente funcionalidad bsica: Deben ser capaces de desplazarse dentro de la cancha. Requieren patear la pelota para enviar pases y marcar goles. Necesitan controlar la pelota, de modo que se puedan desplazar sin perder la pelota. Deben recibir la informacin enviada por IA, procesarla y ejecutarla. Requieren ser capaces de bloquear tiros del equipo contrario para evitar pases y goles.
-17-
Figura 5.- Robocup F180 Requieren ser capaces de bloquear tiros del equipo contrario para evitar pases y goles.
1.3.9. Patrn
Los robots debern llevar en la parte superior un patrn para poder ser diferenciados por el usuario.
lvaro Andrade y Eric Gonzalo 2. Diseo del sistema de comunicaciones: - Eleccin del tipo de comunicacin inalmbrica. - Diseo electrnico del subsistema subsistema de comunicacin del robot. - Diseo iseo del subsistema de comunicaciones con el PC. 3. Montaje del prototipo: - Montaje de la estructura mecnica y actuadores. - Creacin de placas PCB de los diseos electrnicos realizados. 4. Programacin: - Programacin del software software del robot (recibe rdenes del PC y controla los motores, el disparador y los posibles sensores propios). - Programacin del software del PC (el ( usuario interpreta la informacin de la cmara y, y mediante teclado, enva rdenes al robot).
-19-
1.5.
Reparto de tareas
El reparto de tareas entre los dos proyectistas de este proyecto fueron aproximadamente los siguientes: Tarea Investigacin de componentes Realizacin de los esquemas elctricos Diseo PCB Implementacin de las placas Soldadura Comprobacin de funcionamiento Programacin de microcontroladores Programacin de entorno de desarrollo para PC Redaccin de la memoria Tabla 1.- Tabla de reparto de tareas lvaro Andrade Eric Gonzalo
-20-
1.6.
Organizacin de la memoria
La memoria de este proyecto se ha estructurado de la siguiente forma: En primer lugar, en el capitulo Ingeniera de Concepcin se explica paso a paso cada componente empleado (tanto componentes como software), con su correspondiente estudio de mercado, comparndolo con sus alternativas y el porqu de esa eleccin. El siguiente captulo se denomina Ingeniera de Desarrollo. Hardware. En l se explica, una vez ya mostrados los componentes que se utilizaran, las conexiones que se realizaran para conseguir el funcionamiento descrito en el apartado de objetivos especficos. A continuacin esta el captulo de Ingeniera de Desarrollo. Software, donde se encuentra el entorno de desarrollo empleado en el PC explicado paso a paso y desglosado para entender su funcionamiento. Finalmente estn los apartados de Conclusiones y Bibliografa.
-21-
En este captulo se expone y se discute algunos de los diversos conceptos necesarios que se han tenido en cuenta para decidir la trayectoria que ha seguido el proyecto. Para describir este captulo, se seguir el mismo orden descrito en el apartado de Objetivos Especficos: se describirn las posibles soluciones para cada subapartado y la solucin adoptada, detallndola. El sistema ha disear estar formado por:
-22-
-23-
utilizado
un
desplazamiento
-25-
Con este tipo de desplazamiento se consigue que el robot vaya en lnea recta desde el punto de origen hasta el destino sin tener que rotar o realizar cualquier otra maniobra adicional, y adems permite llegar al destino en el ngulo correcto para interceptar la pelota o disparar. Anlisis del desplazamiento omnidireccional La ecuacin que relaciona las aceleraciones en funcin de las fuerzas a realizar es:
1 2 1 1 2 1 1 1
Simplificando:
a es el vector de aceleracin del robot. la matriz de acoplamiento. f el vector de fuerzas de los motores.
-26-
Una vez que se han estudiado las ecuaciones anteriores es conveniente establecer los ngulos de los motores dentro del robot. Estos ngulos vendrn determinados sobre todo por las dimensiones del robot, las dimensiones de los motores a utilizar, y las dimensiones y posicin del solenoide del sistema de golpeo de la pelota que se detallar ms adelante.
La eleccin de los motores debe tener en cuenta la aceleracin exigida, el robot poder interceptar una pelota .Para representar esta aceleracin se ha supuesto que la aceleracin mnima que debern tener ser de 4.0
A partir de esa aceleracin y de la masa que tendr el robot, se deber determinar junto con las ecuaciones anteriores la fuerza que debe tener el motor, y conociendo el radio de la rueda, al multiplicarlo por la fuerza se obtiene el torque o par motor del conjunto.
Donde: F es la fuerza del motor (en N). R es el radio de la rueda (en m).
Para nuestro caso particular, si se estima una masa del robot de alrededor de 1.6 Kg. y considerando que se van a usar 4 motores para el desplazamiento del mismo colocados en ngulos de 45. Se tienen las siguientes ecuaciones:
1 0,7071 0,7071 0,7071 0,7071 0,7071 0,7071 0,7071 0,7071 1,6 0,02 2 2 2 2
Calculando la matriz pseudoinversa:
0,3536 0,3536 0,1250 0,3536 0,3536 0,1250 0,3536 0,3536 0,1250 0,3536 0,3536 0,1250
para las dos situaciones de movimiento sobre los dos ejes cartesianos.
Vectores de fuerzas:
De estas ecuaciones se obtiene que la fuerza que debe aplicar el motor sobre las ruedas en el peor de los casos debe ser de 3.5638 N. Por lo que el par aplicado en las ruedas debe ser de:
A continuacin se detalla el funcionamiento de cada uno de ellos y sus principales caractersticas: Motor de corriente continua:
Los motores de corriente continua son muy utilizados en robtica. Su funcionamiento se basa en la accin de campos magnticos opuestos que hacen girar el rotor (eje interno) en direccin opuesta al estator (imn externo o bobina). De modo que si se sujeta por medio de soportes o bridas la carcasa del motor, el rotor junto con el eje de salida empezar a girar. Para cambiar la direccin de giro en un motor de corriente continua tan solo tenemos que invertir la polaridad de la alimentacin del motor.
-29-
Figura 12.- Esquema interno de un motor de corriente contina Estos motores poseen gran simplicidad de conexin, un par de arranque elevado, y para modificar su velocidad sin perder par motor se suelen utilizar unos engranajes reductores o realizar un control PWM sobre su alimentacin. El inconveniente principal de este tipo de motores es que no pueden ser posicionados y/o enclavados en una posicin especfica. Servo-motores:
Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares especficas al enviar una seal codificada. Con tal de que una seal codificada exista en la lnea de entrada, el servo mantendr la posicin angular del engranaje. Cuando la seal codificada cambia, la posicin angular de los piones cambia. En la prctica, se usan servos para posicionar superficies de control como el movimiento de palancas, en radio control, tteres, y por supuesto, en robtica. El servomotor son unos dispositivos muy robustos y ligeros, bajo consumo y un alto par para su tamao pero tienen un rango de actuacin limitado. Dependiendo del fabricante pueden llegar de 0-210 pero normalmente van de 0-180
-30-
Los motores paso a paso son ideales para la construccin de mecanismos en donde se requieren movimientos muy precisos. La caracterstica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90 hasta pequeos movimientos de tan solo 1.8, es decir, que se necesitarn 4 pasos en el primer caso (90) y 200 para el segundo caso (1.8), para completar un giro completo de 360. Estos motores poseen la habilidad de poder quedar enclavados en una posicin o bien totalmente libres. Si una o ms de sus bobinas estn energizadas, el motor estar enclavado en la posicin correspondiente y por el contrario quedar completamente libre si no circula corriente por ninguna de sus bobinas.
Figura 14.- Fotografa de un motor Paso a Paso visto por delante (izquierda) y visto por detrs (derecha)
-31-
Tabla 2.- Ejemplo de control de un motor Paso a Paso de cuatro bobinas Existen dos tipos de motores paso a paso de imn permanente: Bipolar: Estos tiene generalmente cuatro cables de salida. Requieren del cambio de direccin del flujo de corriente a travs de las bobinas en la secuencia apropiada para realizar un movimiento. Unipolar: Estos motores suelen tener 6 o 5 cables de salida, dependiendo de su conexionado interno. Este tipo se caracteriza por ser ms simple de controlar.
-32-
Los motores Paso a Paso permiten un gran control sobre la posicin del eje del motor, a pesar de que su circuito de control tambin ser complejo, permiten enclavarse en una posicin y tambin girar libremente. La seleccin del tipo de motores aun no se ha podido decidir dado que an se desconoce la precisin y velocidad necesaria por el sistema en su movimiento. De todas maneras podemos decir que: Servomotor: no satisfar nuestras necesidades debido a su limitado rango de trabajo. Motor paso a paso: Si optamos por una gran precisin en el movimiento optaremos por este tipo de motores. Motor CC: Si en cambio optamos por una gran velocidad optaremos por este ltimo tipo de motor.
-33-
-34-
Existen muchos fabricantes de microcontroladores: Intel, Texas Instruments, Atmel, Motorola, Microchip, Toshiba, etc. Para nuestro proyecto se necesitaran 2 microcontroladores (el encargado de controlar el robot, y otro para las comunicaciones que se detallar en el apartado correspondiente), cada uno con unas caractersticas mnimas necesarias y bien diferenciadas por la funcin que han de desempear.
-35-
Que pueda funcionar en un rango de tensiones que comprenda los 3.3V (mas adelante se especificaran los motivos) Mnimo tamao posible.
Un microcontrolador que cumple las especificaciones marcadas es el PIC16F876. Este dispositivo es un microcontrolador de la marca Microchip pequeo, robusto y barato. Cuadro de caractersticas del PIC16F876:
-36-
Figura 18.- Tcnica de disparo de la pelota La dificultad del problema del pateo de la pelota radica en encontrar un dispositivo lo suficientemente pequeo para que quepa en el robot y lo suficientemente poderoso para que la pelota salga impulsada con fuerza. Mltiples propuestas surgieron para resolver el problema utilizando mecanismos con resortes, sistemas de aire comprimido, etc. A lo largo de la historia de las competencias del RoboCup se ha generalizado el uso de un solenoide con un ncleo metlico. En un solenoide, cuando la corriente est fluyendo en la bobina, las lneas de fuerza salen del solenoide por uno de sus extremos, el polo norte, y entran por el extremo opuesto, el polo sur, esas lneas de fuerza se aprovechan para que el ncleo metlico sea impulsado con fuerza para que el robot pueda lanzar la pelota.
*El sistema de disparo prcticamente no consume corriente debido a que el disparo de la electrovlvula se hace cargando y descargando una pequea batera de condensadores, de esta manera el nico consumo que se produce es el de la carga de dicha batera.
Tenemos entonces que la batera ha de cumplir las siguientes especificaciones: I 2A y con una tensin mxima de 24V En el mercado disponemos de mltiples tipos de bateras entre las que se encuentran las siguientes: Batera de Nquel Ligeras y de bajo coste Baja capacidad en comparacin con el resto de bateras Bateras de plomo Gran capacidad Peso elevado Bateras de iones de litio Ligereza, elevada capacidad energtica y resistencia a la descarga. Rpida degradacin y sensibilidad a elevadas temperaturas. Bateras de polmero de litio Mayor densidad energtica y ligereza en comparacin con otros tipos de batera con las mismas caractersticas. Coste elevado y modo especial de carga ( necesario para prevenir su prematura degradacin)
-39-
Estas bateras cumplen sobradamente las necesidades de los sistemas antes analizados pero se ha querido incorporar tambin una pequea batera de nquel de 9V para asegurar el buen funcionamiento de la electrnica de control, previniendo, de esta manera, las posibles interferencias o cadas del nivel de tensin de las bateras debidas a los arranques de los motores.
-41-
Figura 23.- Grfico de los diferentes estndares en funcin de su campo de aplicacin y su tasa de transferencia de datos. Los principales candidatos a escoger fueron: WiFi, Bluetooth o ZigBee. Mediante unas tablas comparativas se comprende mejor la diferencia entre estos tres protocolos:
WiFi
Estndar Velocidad Mxima de Transmisin Consumo de corriente transmitiendo Consumo de corriente en reposo Alcance 802.11
Bluetooth
802.15.1
ZigBee
802.15.4
Hasta: 54 Mbps
1 Mbps
1.2 Mbps
Mayor de 400 mA
40 mA
35 mA
20 mA
200 A
3 A
10 m
100 m Bajo consumo de corriente, bajo coste Monitorizacin y control, domtica, sensores, control remoto,
Ventajas
Conexin Multipunto
Aplicaciones principales
Telecomunicaciones, audio,
-42-
Este mdulo incorpora todos los componentes para comunicarse con otro dispositivo Bluetooth en un solo integrado. Se configura mediante transmisin serie de alta velocidad, funciona a 3.3V.
Figura 24.Bluetooth DIP Module WiFi Otra eleccin posible podra ser que el ordenador se conectara con el robot mediante WiFi, de forma que se prescindira del mdulo conectado al USB del PC. Este mdulo tambin se configura mediante transmisin serie, funciona a 3.3V y consume 100 mW.
ZigBee
Finalmente, la ltima opcin que se ha considerado para realizar la comunicacin es mediante mdulos ZigBee. Existen muchos tipos de estos mdulos segn el alcance que se precise y las prestaciones que se desee tener. El mdulo de 1mW tiene un alcance de 100 metros, funciona a 3.3 V y se configura de forma serie.
-43-
Figura 27. Conector Serie Conexin USB: El puerto USB est incorporado en todos los ordenadores de mesa y porttiles, tiene una velocidad de transmisin de ms de 12 Mbps, posee alimentacin para el dispositivo que se conecta, se pueden conectar mltiples dispositivos, etc.
-44-
Figura 28.- Conectores USB Desde un principio en este proyecto ya se tena la intencin de trabajar mediante USB, ya que la transmisin serie est anticuada y sin duda desaparecer de los ordenadores ms modernos.
del
sistema
de
El segundo microcontrolador necesario es el que ira incorporado en la placa de comunicacin. Este dispositivo necesitara las siguientes caractersticas mnimas: Comunicacin USB Que pueda funcionar en un rango de tensiones que comprenda los 3.3V (mas adelante se especificaran los motivos)
Ya que el primer microcontrolador ha sido un dispositivo de la marca microchip, se ha optado por buscar el segundo dentro de la gama que oferta el mismo fabricante. En concreto la familia 18Fxx5x incorpora la tecnologa USB integrada, adems de muchas ms caractersticas como muestra la siguiente figura:
Se ha escogido finalmente el microcontrolador PIC18F4550 ya que es uno de los C mas empleado para la comunicacin USB. Como se puede observar en la figura anterior, tambin posee muchos dispositivos internos, a pesar de que en este modulo de transmisin no sern de utilidad.
Para realizar este apartado se consider que los programas ms ptimos para realizar este tipo de funciones son: Visual Basic, LabVIEW o MatLab. A continuacin, se explica el funcionamiento de cada programa, con un ejemplo sencillo de cmo utilizarlos junto con sus ventajas e inconvenientes:
-46-
lvaro Andrade y Eric Gonzalo Sin embargo existen algunos defectos que pueden considerarse importantes en este programa: se necesita un conocimiento avanzado sobre programacin en lenguaje Visual Basic para que el usuario pueda trabajar deprisa, los ejecutables son relativamente lentos en Visual Basic 6.0 y anteriores, su lenguaje no distingue entre maysculas y minsculas, etc. En Visual Basic se utilizan dos pantallas: primero se editan todos los botones que se desea que tenga la ventana del usuario y adems se escribe el cdigo que le dir al programa lo que debe hacer cuando se pulse el botn, se pase el ratn por encima de algn punto, etc.
Figura 31. -Pantalla principal de Visual Basic Luego el programa genera un archivo .exe que al ejecutarse el usuario tan slo puede realizar las rdenes que el programador ha definido previamente.
En el ejemplo de la figura anterior el usuario tiene dos cajetines donde introducir nmeros y cuatro botones para realizar diferentes operaciones con ellos. El resultado se muestra en la parte superior del ejecutable. En este ejemplo se muestra la simplicidad que existe para el usuario del ejecutable sin que l conozca los detalles ni la complejidad que ha tenido su programacin.
2.3.2. LabVIEW
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un lenguaje desarrollado por National Instruments principalmente orientado a la instrumentacin virtual, por lo que permite monitorizar y controlar variables mediante una interfaz grfica muy completa.
Figura 33.- Logotipo de LabVIEW Es muy simple de manejar, debido a que est basado en un nuevo sistema de programacin grfica no textual, llamado lenguaje G. Cuenta con numerosas herramientas de presentacin: grficas, botones, indicadores, controles, etc. que mediante este tipo de lenguaje de programacin tan intuitivo y sin lneas de cdigo, permite un tiempo de programacin mucho menor y sencillo. Ofrece una infinidad de aplicaciones ya que es compatible con herramientas de desarrollo similares y puede trabajar a la vez con programas de otra rea de aplicacin como Matlab o Excel. Como principal inconveniente es el hecho que LabVIEW tenga tantas aplicaciones que se necesite de una persona experimentada con este software para reducir las horas de ingeniera empleadas al desarrollo de ste. Cuando se programa en LabVIEW se generan dos ventanas: una sirve para -48-
lvaro Andrade y Eric Gonzalo realizar la pantalla principal donde se disea la interfaz de usuario y la otra ventana sirve para programar en s los datos, realizar operaciones, mandarlos va serie o USB, etc. A continuacin se muestra un ejemplo muy sencillo de funcionamiento para comprender mejor el funcionamiento de LabVIEW: un programa al cual le introduces dos nmeros y te muestra qu nmero es mayor y realiza diferentes operaciones con ellos.
Figura 34.- Ejemplo de LabVIEW Si se observa la figura anterior, se puede ver como en la pantalla principal hay dos recuadros donde se escogen los nmeros que el usuario prefiera. En el ejemplo se han escogido el 3 y el 5. A continuacin el programa ilumina la luz correspondiente si el primer nmero sea mayor, menor o igual al segundo. Tambin realiza la suma, resta, multiplicacin y divisin de ambos nmeros y lo muestra en un cajetn.
-49-
sta sera la interfaz que vera el usuario del programa. De forma interna el programa necesita que se realice la conexin de cada luz y se muestre la operacin matemtica en el correspondiente recuadro.
Figura 35.- Diagrama de bloques del ejemplo Labview De forma muy intuitiva se puede entender el funcionamiento de cada bloque y se puede observar lo sencilla que es su conexin.
-50-
2.3.3. MatLab
Figura 36.- Logotipo de MatLab MatLab es un software matemtico que ofrece un entorno de desarrollo
integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Entre sus prestaciones bsicas se hallan: Manipulacin anipulacin de matrices Representacin epresentacin de datos y funciones Implementacin mplementacin de algoritmos Creacin reacin de inter interfaces de usuario (GUI) C Comunicacin con
programas en otros lenguajes y con otros dispositivos hardware. El paquete MatLab dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MatLab ab con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Es un software muy usado en universidades y centros de investigacin y desarrollo.
-51-
Figura 37.- Ejemplo de una aplicacin en Matlab Guide Dentro de Matlab Guide, existe una paleta de herramientas, que sirve tanto para editar el programa o ejecutarlo segn el modo de trabajo que se tenga. En el panel de control existe la paleta de controles (Controls Palette), que contiene indicadores pudindolos visualizar como botones, interruptores, grficas, cursores, matrices, etc.
Palette de componentes
-52-
lvaro Andrade y Eric Gonzalo En la imagen anterior, se observa la palette de componentes, formada por los elementos que darn forma a nuestra interface de trabajo. Cada uno de estos elementos tiene un conjunto de propiedades a las que podemos acceder con el botn derecho del mouse una vez colocadas dentro del rea de layout:
Figura 39.- Propiedades de elementos de Matlab Guide Para editar las propiedades de cada elemento seleccionamos la opcin Properties Inspector y se abre una consola (que variar segn que elemento se est editando) con la que podremos modificar propiedades como el color, la posicin, el tamao, la fuente, etc. Una de las opciones de mayor inters para nosotros en la figura anterior es Edit Callback. Esta ltima abre el archivo .m asociado (ejecutable Matlab) y nos posiciona en la seccin del programa que corresponde a la subrutina que se ejecutara cuando se realice una determinada accin sobre el elemento que estamos editando. Por ejemplo para el botn 1, Edit Callback nos posiciona en la siguiente parte del programa:
Como funciona una aplicacin Guide? Consta de dos archivos uno .m (ejecutable) y otro .fig la parte grafica. Las dos partes estn unidas a travs de las subrutinas callback. Una vez que se graba los archivos desde la consola de emisin (si salvamos la .fig automticamente lo hace el .m asociado) podemos ejecutar el programa en la ventana de comando de Matlab solamente escribiendo el nombre del archivo solamente. Por ejemplo -53-
si guardamos un archivo ejemplo.fig y ejemplo.m escribiendo ej y presionando enter se ejecuta el programa. El archivo .m que se crea tiene una estructura predeterminada. Consta de un encabezado y a continuacin viene el cdigo correspondiente a las siguientes subrutinas. Por ejemplo una aplicacin cuya figura tenga un botn tendr un archivo .m con la siguiente estructura inicial como la siguiente:
function varargout = untitled1(varargin) if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); handles = guihandles(fig); guidata(fig, handles); if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard catch disp(lasterr); end end function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) disp('pushbutton1 Callback not implemented yet.') % --------------------------------------------------------------------
Encabezado
Subrutina Botn 1
-54-
-55-
Figura 40.- Pin Out L298 Tensin de control mn. Tensin de control mx Corriente de carga mx. 1,5 V 7V 4A
3.1.1.2. Motor DC
lvaro Andrade y Eric Gonzalo Pin 1: Alimentacin a salida de amplificador de tensin. Pin 2: Masa. rpm PAR 12.600 43 kg/cm
Figura 42.- Esquema electrnico del sistema controlador de motores En la imagen anterior se pueden apreciar los dos integrados L298. A la izquierda de dicho integrado, podemos apreciar el bus de la informacin que recibiremos del PIC16f876. Las resistencias de los integrados sern las encargadas de limitar la corriente de la carga.
-57-
A la derecha de la imagen, se encuentran los puentes de diodos, que permitirn el giro de los motores en ambos sentidos. Para la conexin de dichos motores, se han incorporado regletas de conexionado.
-59-
3.2.1.2. Electroimn
Figura 46.- Pin Out electroimn Pin 1: Alimentacin a salida de amplificador de tensin. Pin 2: Masa.
Figura 47.- Esquema electrnico del sistema de disparo A continuacin se listan los componentes utilizados y el porqu de su utilizacin: En el centro se encuentra el convertidor DC-DC MC34063A. En el pin 1 se conectar un diodo schottky que sea capaz de satisfacer la necesidad del circuito a alimentar. -60-
lvaro Andrade y Eric Gonzalo Un condensador conectado al pin 3 ser el que nos fijar la frecuencia de oscilacin del circuito. La bobina L que vemos en la parte superior, cuyo valor viene expresado en H, no requiere de valores crticos como se pueden tener el condensador que fija la frecuencia de oscilacin o las resistencias empleadas. Una batera de condensadores se encargar de acumular la carga para despus ser expuesta. El transistor conmutar la carga proporcionada por la batera de condensadores.
-61-
Motores
electroimn
RECEPTOR
CONTROLADOR -62-
POTENCIA
Figura 50.- Pin Out Zigbee (Receptor) Pin 1: Alimentacin de 3.3V. Pin 3: Pin de recepcin serie, se conectara al pin de transmisin del C. Pin 10: Masa. El resto de pines sirven para entradas analgicas, reset, PWMs y dems prestaciones que en este proyecto no se utilizan.
-63-
Una vez explicado los mdulos Zigbee, pasaremos a explicar el diagrama de pines de los microcontroladores, empezando, primeramente, por el PIC 16F876 que ser el que se integrar dentro del robot. Se han resaltado los pines que se utilizaran de la siguiente forma: Pin 1: Reset del microcontrolador Pin 8 y 19: Masa. Pin 9 y 10: Conexin para oscilador externo. Pin 18: Pin para la salida de datos de trasmisin serie. Pin 20: Alimentacin a 3.3 V. Pines 21, 22, 23, 24, 25, 26, 27 y 28: Pines de salida que controlaran el robot.
Figura 52.- Esquema electrnico del sistema de control del robot En el centro se encuentra el microcontrolador 16F876.
-64-
lvaro Andrade y Eric Gonzalo Un regulador 78M33 que reduce y estabiliza la tensin de entrada proveniente de la pila (9V) a 3.3V junto a dos condensadores de 100nF para evitar ruido elctrico. Un cristal de 20MHz con dos condensadores de 22pF forman el circuito de oscilacin externo del PIC. A la derecha de la imagen, se encuentra el modulo Zigbee para la comunicacin serie. Adems, incorpora una regleta de conexin para el envo de datos hacia la placa de control de los motores. Como la placa de comunicacin USB, este modulo tambin incorpora cinco pines en forma de regleta para la programacin del PIC mediante el programador PicKit2.
-65-
Figura 54.- Imagen real del sistema del controlador del robot
USB
CONTROLADOR
EMISOR
-66-
Figura 55.- Pin Out conector USB Pin 1 2 3 4 Seal VCC DD+ GND Color Descripcin +5 V Data Data + Ground
-67-
Seguidamente se muestra el diagrama de pines del microcontrolador 18F4550 que se instalara en el modulo transmisin PC robot. Se han resaltado los pines que se utilizaran de la siguiente forma: Pin 1: Reset del microcontrolador. Pines 11 y 32: Alimentacin a 3.3V. Pines 12 y 31: Masa. Pines 13 y 14: Entre estos pines se conectara el cristal. Pin 18: En este pin se conectara un condensador de 100 nF para estabilizar la tensin del USB. Pines 19 y 20: Aqu se conectaran dos LEDs. Pines 23 y 24: D- y D+ respectivamente, se conectaran a los pines del conector USB. Pines 25 y 26: Tx y Rx respectivamente, se conectaran a los pines del Zigbee para la trasmisin serie de datos. Pines 39 y 40: Estos pines irn conectados al programador PICKit.
-68-
lvaro Andrade y Eric Gonzalo Pin 2: Pin de transmisin serie, se conectar al pin de recepcin del C. Pin 10: Masa. El resto de pines sirven para entradas analgicas, reset, PWMs y dems prestaciones que en este proyecto no se utilizan.
Figura 58 .- Esquema electrnico del sistema de comunicacin A continuacin se listan los componentes utilizados y el porqu de su utilizacin: En el centro se encuentra el microcontrolador 18F4550. Un regulador 78M33 que reduce y estabiliza la tensin de entrada proveniente del conector USB (5V) a 3.3V junto a dos condensadores de 100 nF para evitar ruido elctrico. Dos LEDs conectados a los pines D0 y D1. -69-
Un cristal de 20MHz con dos condensadores de 22pF forman el circuito de oscilacin externo del PIC. El circuito de RESET formado por una resistencia de 10 k, un condensador electroltico de 1 F y un pulsador permiten resetear el microcontrolador al pulsarlo. Tambin incorpora cinco pines en forma de regleta para la
programacin del PIC mediante el programador PicKit2. De esta forma no hace falta extraerlo de la placa para su reprogramacin, evitando el desgaste de sus pines al conectar o desconectar repetidamente. Finalmente en el esquema se muestra el modulo de 10 pines Zigbee.
-70-
3.5.
Estructura mecnica
En este subapartado se describe el chasis empleado para sujetar los motor, las ruedas y las diferentes placas de control del robot. Se decidi disear la estructura utilizando una lmina de metacrilato. Se utiliz este tipo de material por su alta resistencia al impacto, ligereza, dureza (similar a la del aluminio), pero principalmente por su precio. Teniendo en cuenta el tipo de motor y ruedas escogidos, se diseo un sencillo chasis capaz de sujetar los motores y que fuera capaz de resguardar las ruedas con tal de evitar golpes de adversarios. A continuacin se muestra el chasis escogido junto con la plantilla de papel para la remodelacin de este:
-71-
Figura 61.- Imagen real del chasis del robot (izq.) y la plantilla de papel (der.)
Una vez diseado el chasis bsico, se procedi de la siguiente manera: 1) Se cort la base segn la plantilla mostrada. 2) Se atornillaron el juego de motores a la parte superior del chasis de tal manera que el fondo plano quedara lo ms prximo al suelo.
-72-
Figura 63.- Vista inferior del sistema de locomocin Una vez colocadas las ruedas, las placas y las bateras irn situadas en la parte superior sin sobrepasar los lmites reglamentarios establecidos por las normas Robocup SSL, es decir, los 15 cm de altura establecidos. A continuacin se muestran los cambios descritos anteriormente:
-73-
-74-
-75-
Seguidamente se van a mostrar pequeos fragmentos del programa en lenguaje C empleado para controlar el robot. En el siguiente fragmento del programa, se puede ver la rutina encargada de seleccionar la accin que ha de realizar el robot segn el dato recibido por el puerto serie y guardado en la variable Dato.
Void Accion() { Switch (Dato) { case 0x00: // Estado de reposo. Output_B(REPOSO); break; case 0x01: // DERECHA Output_B(DERECHA); break; case 0x02: // IZQUIERDA. Output_B(IZQUIERDA); break; case 0x03: // ADELANTE. Output_B(ADELANTE); break; case 0x04: // ATRAS. Output_B(ATRAS); break; case 0x05: Output_B(GD); break; Case 0x06: Output_B(GI); break; case 0x07: Output_B(REPOSO); Output_A(DISPARO); break; } // Disparo. // Giro izquierda. // Giro derecha. // Rutina de eleccin de las acciones
-76-
lvaro Andrade y Eric Gonzalo En el fragmento siguiente se puede observar el programa principal. Primero se configuran los puertos necesarios, en este caso el puerto A y B como salidas. Una vez definidos los puertos, se entra en un bucle infinito implementado mediante una instruccin while en la que se asigna el dato recibido por el puerto serie a la variable Dato. Una vez llegado a este punto, se llama a la rutina Accin descrita anteriormente.
// Programa principal
While(1) { Dato = getc(in); Accion(); } } // Dato = dato recibido por Puerto serie //llama a la rutina Accin
-77-
Seguidamente se muestra un pequeo fragmento del programa en lenguaje C empleado para realizar las rutinas descritas en el diagrama de flujo anterior (el programa completo se encuentra en el Anexo I). La configuracin inicial del USB y la habilitacin de la interrupcin serie se realiza mediante los siguientes comandos:
-78-
lvaro Andrade y Eric Gonzalo La recepcin por USB y su posterior envo al modulo de Zigbee se realiza de la siguiente manera:
-79-
Una vez mostrado el diagrama de flujo del programa, se mostrar el programa que genera, automticamente, MatLab al trabajar de manera grfica:
Y finalmente se ha querido mostrar un pequeo fragmento de cmo funcionan las instrucciones de los botones:
-80-
VIDEO
Figura 68.- Panel frontal de la aplicacin en MatLab En la figura anterior se muestra el panel frontal de MatLab encargado de interactuar entre el usuario y el robot mvil. Se puede observar que principalmente est constituido por una pantalla de video, unos cuantos botones de distintos colores: En la pantalla de video es donde se muestran los datos obtenidos por el modulo de visin. Los botones son los encargados de controlar las diferentes acciones del robot: moverse en alguna direccin o disparar a portera.
Nota: Todas las acciones de los diferentes botones descritos deben ser accionadas mediante el ratn de nuestro PC.
IMPORTANTE: Cabe decir que MatLab trabaja con puerto serie como medio de comunicacin. Es por ello que en los anexos aparece un driver que emula que el dispositivo conectado al puerto USB, en nuestro caso el sistema de comunicacin, es un puerto serie.
-81-
CAPITULO 5: CONCLUSIONES
En esta memoria se ha intentado explicar y resumir todos los detalles tcnicos que se han seguido en la realizacin de este trabajo realizado durante dos cuatrimestres, en las asignaturas de PFC1 y PFC2.
-82-
lvaro Andrade y Eric Gonzalo La idea de partida consista en disear e implementar un robot capaz de recibir rdenes provenientes del ordenador interactuando con l.
Figura 69.- Diseo PFC Un dispositivo de estas caractersticas puede tener un gran nmero de aplicaciones y finalidades, tanto en la domtica como en el ocio. En ambos casos se est imponiendo cada vez ms el uso de dispositivos a distancia (Wi-fi, Bluetooth, GPS) al igual que el utilizar un ordenador para monitorizar cualquier variable que se desee controlar. Por parte de los proyectistas, estn satisfechos con el resultado obtenido ya que se ha conseguido realizar un proyecto aplicando los conocimientos obtenidos durante la carrera, realizando consultas, buscando los dispositivos adecuados para un montaje optimo, adquiriendo material necesario y finalmente implementado el prototipo final.
-83-
Robot dirigido automticamente por la cmara Mejorar el procesado de imgenes en MatLab Implementar inteligencia artificial sobre el robot
-84-
CAPITULO 6: BIBLIOGRAFIA
[1] Antonio Barrientos, Luis Felipe Penin, Carlos Balaguer, Rafael Aracil Santoja. Fundamentos de robtica. Editorial McGraw-Hill, 2006, [2] Pena Basurto, M.; Cela Espin, J., Introduccin a la Programacin en C, Editorial EDICIONS UPC, Barcelona, 2000. [3] Datasheet catalog for integrated circuits [ltima consulta: 3 de Junio de 2011]. Disponible en: http://www.datasheetcatalog.com [4] National Instruments Mesurament and Test [Ultima consulta: 1 de Febrero de 2011]. Disponible en: http://www.ni.com [5] Onda Radio S.A. [ltima Consulta: 1 de Junio de 2011]. Disponible en: http://www.ondaradio.es [6] Microchip Techology Inc. [ltima Consulta: 2 de Junio de 2011]. Disponible en: http://www.microchip.com [7] Mathworks. [ltima Consulta: 10 de Junio de 2011]. Disponible en: http://www.mathworks.com
-85-