Vous êtes sur la page 1sur 107

UNIVERSIDAD CENTROAMERICANA JOS SIMEN CAAS

"DISEO MECATRNICO DE UN ROBOT UTILIZADO EN LA ENSEANZA DE PROGRAMACIN COMPUTACIONAL"

TRABAJO DE GRADUACIN PREPARADO PARA LA

FACULTAD DE INGENIERA Y ARQUITECTURA

PARA OPTAR AL GRADO DE

INGENIERO ELECTRICISTA

POR:

CARLOS ROBERTO CHVEZ LPEZ ELAS MISAEL GUZMN FRANCO

OCTUBRE 2008 ANTIGUO CUSCATLN, EL SALVADOR, C.A.

RECTOR JOS MARA TOJEIRA, S.J.

SECRETARIO GENERAL REN ALBERTO ZELAYA

DECANO DE LA FACULTAD DE INGENIERA Y ARQUITECTURA

EMILIO JAVIER MORALES QUINTANILLA

COORDINADOR DE LA CARRERA DE INGENIERA ELCTRICA

OSCAR ANTONIO VALENCIA MONTERROSA

DIRECTOR DEL TRABAJO ELMER ALEXANDER MELARA

LECTOR OSCAR ANTONIO VALENCIA

AGRADECIMIENTOS

Se agradece a Dios todopoderoso por permitirnos recorrer este camino que nos lleva a ser profesionales y por darnos la bendicin de la educacin.

A nuestros padres y hermanos, los cuales con su esfuerzo, paciencia y apoyo nos han ayudado a recorrer este camino que no hubiramos podido concluir sin su ayuda.

A Benjamn Guzmn y a Margarita Guzmn por el apoyo incondicional que nos brindaron durante el desarrollo del trabajo.

A nuestros amigos de la carrera de Ing. Elctrica que nos apoyaron dndonos animo y brindndonos acceso al equipo que estaba bajo su cuidado.

A los integrantes del primer grupo de trabajo del proyecto Karel por compartir sus experiencias con nosotros y por sentar las bases en las cuales soportamos nuestro trabajo.

Al Ing. Waldo Cervantes, Ing. Felipe Kobeh, Mtra. Catherine Fanning, Rocio Trujillo, Susana Medina y en general a todos los integrantes del Departamento de Electrnica y de la Subdireccin de Intercambio Estudiantil de la Universidad Iberoamericana de Mxico D.F. Cuyas enseanzas, apoyo y cario fueron claves durante el ao 2007 para uno de los integrantes del grupo y se ven reflejadas en este trabajo de graduacin.

Carlos R. Chvez y Elas M. Guzmn

DEDICATORIA

A Dios todopoderoso, sin el cual no hubiera tenido la fuerza de seguir este camino ni completarlo, muchas gracias por estar siempre conmigo y darme la vida tan maravillosa que me regalas.

A mis padres, Roberto Chvez y Mirna de Chvez, por haberme ayudado a dar cada paso de mi vida, por estar ah en los momentos felices y en los tristes, por darme el ejemplo siendo personas ejemplares y rectas, por su apoyo incondicional y por que sin ellos no sera la persona que soy. Les dedico este trabajo porque es tambin suyo y porque sin ustedes nunca podra haber sido completado.

A mi hermano, Jos Fernando Chvez, porque aunque seas menor que yo me enseas muchas cosas da con da y me apoyas tanto como pap y mam, porque hemos pasado mucho juntos y vamos a pasar mucho juntos tambin y por tener la paciencia necesaria durante todo lo que dur este proyecto y en general porque no sos solo mi hermano sino tambin mi amigo.

A Carlos Bonilla y Lidia de Bonilla, a quienes llevo en mi corazn.

A mis abuelos maternos a quienes hubiera deseado conocer pero que veo reflejados en mi mam.

A mi abuela paterna quien me ensea que la F es lo ms importante de la vida.

A todos mis tos y tas porque cada uno en particular me ha ayudado durante mi vida.

A todos mis amigos y amigas, por todos los momentos que hemos pasado y vamos a pasar juntos.

A todos mis profesores y profesoras que desde pequeo fueron poniendo en mi las bases que ahora sustentan mi carrera.

A cada una de las personas que me dijeron tu puedes.

Carlos R. Chvez

DEDICATORIA

Hoy, con el logro de este nuevo paso, quiero dedicar este trabajo a Dios todopoderoso por darme la vida; a todos mis seres queridos y amigos, quienes en todo momento me acompaaron a caminar por este sendero tan duro, pero a la vez muy grato.

Especialmente dedico este gran xito a mis padres Pedro Guzmn e Hipolita Franco de Guzmn, quienes me dieron a conocer el mundo, y que han sabido apoyarme siempre luego de tener xito o fracaso, quienes me han enseado a diferenciar lo bueno de lo malo, los que siempre estn pendientes de m cuando estoy cerca y lejos, a ustedes, los quiero con toda mi alma.

A mis familiares que estn en el cielo, por escuchar mis oraciones cada vez que hablo con ellos, por todo lo que han hecho por m, siempre permanecern en mi corazn.

A mis hermanos y hermanas, amigos y compaeros de clases que han vivido da a da cada una de mis experiencias de vida.

No tengo letras para seguir diciendo el gran regocijo que me da poder terminar esta carrera en donde familiares, amigos, profesores y compaeros dejan parte de su vida, para dar vida a las ilusiones de nio y que hoy en da se hacen realidad.

Solo s que este camino es solo el comiendo de una gran historia, de virtudes y gracias para m y mi familia.

Mil disculpas si alguien me falt, fue un momento muy emotivo.

Elas M. Guzmn

RESUMEN EJECUTIVO

El proyecto Karel ha sido desarrollado durante los ltimos dos aos por el Departamento de Electrnica e Informtica (DEI) de la Universidad Centroamericana Jos Simen Caas (UCA); este proyecto nace de la idea de estimular a los estudiantes de primer ao de la carrera de Lic. En Ciencias de la Computacin que comienzan a entrar en el mundo de la programacin computacional al presentarles un lenguaje de programacin amigable y sencillo de aprender a la vez que les permite ver en el mundo real lo que ellos programan en la computadora, para lograr este paso hacia el mundo real se construy un robot que reciba las ordenes provenientes del software antes mencionado y las ejecutaba simulando lo que los estudiantes miraban en sus pantallas.

Este robot fue construido por estudiantes de la carrera de Ingeniera Elctrica en coordinacin con estudiantes de la carrera de Ingeniera Mecnica y funcionaba aceptablemente aunque tenia ciertas caractersticas que se queran mejorar como mejor consumo de energa y un movimiento ms suave. Es por esto que en el ao 2008 se asign a un grupo multidisciplinario la elaboracin de un nuevo robot que fuera capaz de seguir las ordenes provenientes de un software computacional y que pudiera realizar los movimientos propios del lenguaje de programacin Karel.

El lenguaje Karel consta de 5 ordenes principales: mover, girar a la izquierda, recoger toquen, depositar toquen y apagar; para el presente proyecto se fue un paso ms all y se incluyo la opcin de ejecutar estas ordenes con y sin sensores activados siendo la diferencia entre estas que las ordenes sin sensores estn basadas en tiempo y no existe correccin de los movimientos (por lo que se depende nicamente del diseo mecnico) y las ordenes con sensores se basan en secuencias de eventos a la vez que se tiene correccin de los movimientos gracias a sensores instalados en el robot. El lenguaje tambin consta de 10 preguntas: Existe comunicacin con el robot?, El robot posee toquens en su bolsa de toquens?, El robot esta viendo al norte, sur, este u oeste?, Existe alguna obstruccin al frente, a la derecha o izquierda del robot? Y Hay algn toquen que el robot pueda recoger en su posicin actual?.

Para lograr esto se abord el problema desde el punto de vista de la creacin de nuevas tecnologas y no de solo unir algunas ya existentes, respetando siempre que todos los elementos utilizados estuvieran presentes en el mercado Salvadoreo. As se logr disear y construir un robot que cumpla con los requerimientos del proyecto Karel pero que a la vez posee un potencial de desarrollo ms grande que va ms all de lo que el lenguaje Karel puede explotar. Asimismo un diseo modular permite que el mismo robot sirva como base para el desarrollo de nuevas aplicaciones electrnicas. Al robot desarrollado se la llam R.A.S. (Robot Autnomo Salvadoreo).

El diseo requiere sin embargo del uso de microcontroladores para la coordinacin de todas las funciones, para esto se escogi un microcontrolador de vanguardia en la UCA y que nunca haba sido utilizado en ningn proyecto anterior, este es el Freescale QG08 y posee un microprocesador Motorola C68HC08 que corre a 8Mhz. Este microcontrolador tiene los perifricos necesarios para lograr una adecuada comunicacin con la computadora a la vez que controla a travs de seales digitales diferentes dispositivos, este microcontrolador es programado usando un software propietario llamado CodeWarrior y una tarjeta de programacin especial con cdigo DEMO9S08QG8.

Para que el R.A.S. sea capaz de recibir las ordenes provenientes de la computadora se utiliza un modulo de comunicacin que posee dos microcontroladores Freescale interconectados, el microcontrolador1 es el encargado de manejar las seales provenientes de la computadora (y ejecutar los protocolos correspondientes) y enviarlas al microcontrolador2 que las traduce a un lenguaje que el robot es capaz de reconocer, la comunicacin es as bidireccional. El microcontrolador1 se comunica con la computadora a travs del puerto RS-232 de esta a una velocidad de 2700 bits por segundo siguiendo los protocolos necesarios, el microcontrolador2 se comunica con el robot a travs de un sistema de transmisin y recepcin infrarroja (diseado completamente para la aplicacin) a una velocidad de 500 bits por segundo, entre ellos se comunican a travs de seales paralelas.

El robot en s recibe las seales emitidas por este modulo de comunicacin y las ejecuta haciendo uso de dos microcontroladores Freescale interconectados. Dado que la presentacin de dichos microcontroladores nos limita a nicamente 10 salidas y entradas digitales el uso de dos era necesario por el alto volumen de sensores y actuadores presentes en el dispositivo. Se intent sin embargo mantener separadas las funciones de cada microcontrolador, as el microcontrolador4 es el encargado de controlar la mayora de actuadores y el microcontrolador3 es el encargado de obtener la informacin de la mayora de sensores a la vez que es el que emite las seales de respuesta hacia el modulo de comunicacin. Este diseo permite tener una comunicacin full duplex y coordinar las funciones con lo que los usuarios ven en sus computadoras.

Los sensores que posee el robot estn basados en reflexin ptica y se dividen en dos tipos principales: aquellos que censan la reflexin de un haz de luz no modulado y aquellos que censan la reflexin de un haz de luz modulado a 40khz, la diferencia entre ambos es que los primeros son vulnerables a cualquier tipo de luz mientras que los otros pueden ser posicionados en cualquier lugar y funcionar adecuadamente. En total el robot posee 8 sensores: sensor detector de lnea izquierdo, sensor detector de lnea derecho, sensor de toquen para recoger, sensor de toquen en

ii

bolsa, sensor de posicionamiento para depositar, sensor de proximidad frontal, sensor de proximidad derecho y sensor de proximidad izquierdo. Los sensores de proximidad son los que estn basados en un haz modulado.

Los actuadores que posee el robot estn diseados para que con las seales de los microcontroladores se controlen motores de corriente directa posicionados para producir los movimientos necesarios y coordinados segn sea la instruccin recibida. En total el robot posee 4 de estos motores: motor de avance izquierdo, motor de avance derecho, motor de dispositivo de recoleccin y motor de dispositivo de depsito.

La forma en que todo esto es coordinado en cada orden es determinado por rutinas de software que contiene el microcontrolador y que fueron programadas dentro de este por el grupo de Ingeniera Elctrica, en total se posee una subrutina por cada orden o pregunta en cada uno de los cuatro microcontroladores que posee el sistema (dos en su modulo de comunicacin y dos en el robot) as como rutinas de monitoreo, rutinas de redundancia que corrigen errores que aparezcan en tiempo de ejecucin, rutinas de comunicacin y de manejo de protocolos y rutinas de preparacin de los perifricos de los microcontroladores para un total de ms de 600 lneas de cdigo por cada microcontrolador.

Lo bueno de haber usado microcontroladores tan poderosos es que estos son capaces de ejecutar ordenes mucho ms complejas de las que el lenguaje Karel pueda enviar, as como tener comportamientos como por ejemplo buscar la ubicacin con mejor recepcin de seal, se indica a los lectores como modificar al robot para cumplir con estas funciones.

Sin embargo y aunque el robot es una pieza de tecnologa compleja su utilizacin por parte del usuario final es muy simple y se reduce bsicamente a conectar el modulo a la computadora y encender tanto este como el robot, una vez hecho esto todo el funcionamiento es automtico y autnomo.

Por ultimo hay que recalcar que el robot R.A.S. posee una gran eficiencia en su uso de energa, disminuyendo su consumo en reposo a tan solo 180 miliamperios y en movimiento a 300 miliamperios por lo que como fuente de poder se usan 6 bateras de tamao AA y se logra un tiempo de uso de ms de 6 horas continuas, asimismo el uso de bateras de tamao estandard las hacen fcil de conseguir y adems existen en presentacin recargable. Por otro lado del modulo de comunicacin posee un consumo de energa de 110 miliamperios en reposo y 200 miliamperios al momento de transmitir por lo que se puede alimentar con una batera

iii

tipo D (comnmente conocidas como bateras cuadradas) y se obtendran alrededor de 8 horas de uso continuo.

iv

NDICE RESUMEN EJECUTIVO ...... INDICE DE TABLAS .... INDICE DE FIGURAS .. SIGLAS .. PRLOGO . CAPTULO 1: EL PROYECTO KAREL. 1.1.Introduccin....... 1.2.El Robot Karel 1.3.Funcionamiento del Robot Karel............... 1.4.El proyecto Karel en el ao 2008... 1.5.Futuro del proyecto Karel........ CAPTULO 2: MS ALL DE KAREL............ 2.1.Introduccin... 2.2.Ordenes Bsicas.. 2.3.Ordenes compuestas... 2.4.Monitoreo de estado ... 2.5.Comportamientos .... CAPTULO 3: EL MICROCONTROLADOR FREESCALE QG08... 3.1.Introduccin....... 3.2.Qu es un microcontrolador?....................................................................................... 3.3.Requerimientos bsicos.. 3.4.El lenguaje ensamblador. 3.5.Iniciacin de perifricos............. 3.6.Tcnicas tiles............. 3.7.Bsqueda y correccin de errores. 3.8.Errores comunes... 3.9.El freescale QG08 y los circuitos impresos.. 3.10.Problemas con campos electromagnticos 3.11.Algunos pensamientos finales.. CAPTULO 4: EL MDULO DE COMUNICACIN........... 4.1.Introduccin 4.2.Alimentacin.. 4.3.Construccin........... 4.4.El protocolo RS-232 desde el punto de vista elctrico y su implementacin en el modulo. 4.5. Comunicacin con el R.A.S. . 20 21 i ix xi xiii xv 1 1 1 2 3 3 5 5 5 6 6 6 9 9 9 10 11 12 13 14 15 15 16 17 19 19 19 20

4.6.Funcionamiento del dispositivo.. 4.7.Transmisin y Recepcin de datos 4.8.Manejo de errores y estados anormales.. 4.9.Diseo modular y futuras aplicaciones. 4.10.Conexin de los microcontroladores dentro del modulo de control.. 4.11.Esquema elctrico actual.. CAPTULO 5: USO DEL MICROCONTROLADOR FREESCALE QG08 EN EL ROBOT AUTNOMO SALVADOREO......... 5.1.Introduccin 5.2.Conexin de los microcontroladores dentro del R.A.S. . 5.3.La configuracin de los microcontroladores dentro del R.A.S. ... 5.4.Recopilacin de la informacin ........... 5.5. Uso de la informacin de los sensores en las subrutinas. 5.6.Control de motores.. 5.7.Lgica interna del R.A.S. CAPTULO 6: LA CIRCUITERA DEL R.A.S.................... 6.1.Introduccin 6.2.Requerimientos. 6.3.El diseo modular del R.A.S.. 6.3.1. La tarjeta de control.. 6.3.2.Tarjeta de comunicacin inalmbrica y tarjeta de sensores... 6.3.3.Mdulo de control de motores.. CAPTULO 7: CONSTRUCCIN Y SISTEMAS DE CABLEADO DE LOS MDULOS DEL R.A.S.... 7.1. Creacin de las PCB... 7.1.1.Mdulo de control del R.A.S. .. 7.1.2.Mdulo de sensores y de transmisin del R.A.S.. 7.1.3.Mdulo de potencia del R.A.S. ... 7.2.Ensamblado del R.A.S. .. 7.3.Pruebas realizadas a circuitos utilizando una fuente de 9V de 500 mA ... 7.4.Materiales utilizados y casa proveedora... 7.4.1.Mdulo de potencia o control de motores.. 7.4.2.Mdulo de sensores y transmisin.. 7.4.3.Mdulo de control del R.A.S. ............ 7.5.Soluciones a problemas y recomendaciones para desarrollar trabajos de electrnica RECOMENDACIONES. CONCLUSIONES..

22 23 27 29 30 31

33 33 33 34 36 37 38 38 45 45 45 46 46 50 59

61 61 62 63 64 65 69 70 70 71 72 73 75 77

REFERENCIAS ELECTRNICAS.. BIBLIOGRAFA .

79 81

ANEXOS: ANEXO A : ANEXO B : Caractersticas elctricas del QG08 Conexin recomendada para el QG08

NDICE DE TABLAS

Tabla 4.1 Protocolo establecido entre modulo de comunicacin y computadora .................... 23 Tabla 4.2 - Ordenes iniciales ...................................................................................................... Tabla 4.3 Ordenes que especifican direccin de visin........................................................... Tabla 4.4 Protocolo de comunicacin entre el microcontrolador 2 y el R.A.S. ....................... Tabla 4.5 Cdigos para ordenes principales ........................................................................... Tabla 4.6 Preguntas generadas por el software Karel ............................................................ 24 24 24 25 26

Tabla 4.7 Errores reconocidos por el software Karel ............................................................... 27 Tabla 4.8 Cdigos de ordenes reconocidos por el R.A.S. ....................................................... Tabla 4.9 Conexiones del microcontrolador1 .......................................................................... Tabla 4.10 Conexiones del microcontrolador2 ........................................................................ Tabla 5.1 Conexiones del microcontrolador3 .......................................................................... Tabla 5.2 Conexiones del microcontrolador4 .......................................................................... Tabla 7.1 - Colores del sistema de cableado del modulo de sensores y transmisin del R.A.S. Tabla 7.2 - Colores del sistema de cableado del modulo de control del R.A.S. ......................... 30 30 31 34 34 66 68

Tabla 7.3 - Colores del sistema de cableado del modulo de potencia del R.A.S... 69 Tabla 7.4 - Elementos utilizados en el modulo de Potencia ....................................................... Tabla 7.5 - Elementos utilizados en el modulo de sensores y transmisin ................................ Tabla 7.6 - Elementos utilizados en el modulo de Control del R.A.S. ........................................ 71 72 73

ix

NDICE DE FIGURAS

Figura 4.1 - Bloques funcionales del modulo de comunicacin ................................................ Figura 4.2 - Flujo de informacin del sistema ............................................................................ Figura 4.3 - Circuitera del modulo de comunicacin ................................................................ Figura 5.1 - Esquema del modulo de control en el R.A.S. ........................................................ Figura 5.2 - Flujorama general de ejecucin de ordenes .......................................................... Figura 5.3 - Flujorama de orden mover ................................................................................... Figura 5.4 - Flujorama de orden depositar toquen .................................................................. Figura 5.5 - Flujorama de orden Recoger Toquen .................................................................. Figura 5.6 - Flujorama de orden girar ...................................................................................... Figura 5.7 - Flujorama de secuencia para contestar a preguntas ............................................. Figura 6.1 - Diagrama de la tarjeta de control del R.A.S. ........................................................... Figura 6.2 - Configuracin de un AP como seguidor de Voltaje ................................................. Figura 6.3 - Diagrama de la configuracin del timer 555 como astable ..................................... Figura 6.4 - Diagrama de circuitos y vista real del transmisor y receptor del R.A.S. .................

20 25 32 35 39 40 41 41 42 43 47 48 53 53

Figura6.5Diagramadelcircuitoyvistarealdelossensoresseguidoresdelneayelsensor decolocartoquen....................................................................................................
Figura 6.6- Diagrama del circuito y vista real de sensor de toquen en bolsa ............................. Figura 6.7- Diagrama del circuito y vista real del sensor de alineacin o giro de R.A.S. ........... Figura 6.8 - Diagrama de circuito y vista real de sensores de proximidad de R.A.S. ................ Figura 6.9 - Diagrama de sensores del R.A.S. ........................................................................... Figura 6.10 - Diagrama de potencia o control de motores de avance del R.A.S. ...................... Figura 7.1 - Diagrama de pistas del mdulo de control del R.A.S. ............................................ Figura 7.2 - Vista real de la placa del mdulo de control ........................................................... Figura 7.3 - Diagrama de pistas del mdulo de sensores y transmisin del R.A.S. .................. Figura 7.4 - Vista real del modulo de sensores y transmisin de R.A.S. .................................. Figura 7.5 - Diagrama de pistas del mdulo de potencia de R.A.S. .......................................... Figura 7.6 - Vista real del mdulo de potencia de R.A.S. .......................................................... Figura 7.7 - Identificacin de las borneras en el modulo de sensores y transmisin del R.A.S. Figura 7.8 - Diagrama de identificacin de las borneras en el modulo de control del R.A.S. ... Figura 7.9 - Diagrama de identificacin de las borneras en el modulo de potencia del R.A.S.

54
56 57 58 58 60 62 62 63 63 64 64 65 67 69

xi

xii

SIGLAS

OpAmp: BPS: CC: CI: CMOS: DC: EEPROM: IR: LED: PC: PCB: PWM: R.A.S.: TTL: USB: UV: RF:

OperationalAmplifcator(AmplificadorOperacional) Bitsporsegundo CorrienteContinua CircuitoIntegrado ComplementaryMetalOxideSemiconductor(SemiconductorComplementariode OxidoMetlico) DirectCurrent(CorrienteDirecta) ElectricallyErasableProgrammableReadOnlyMemory(ROMprogramableyborrable elctricamente) InfraRojo LightEmittingDiode(DiodoEmisordeLuz) PersonalComputer(ComputadoraPersonal) PrintedCircuitBoard(TarjetadeCircuitoImpreso) PulseWidthModulation(ModulacinporAnchodePulso) RobotAutnomoSalvadoreo TransistorTransistorLogic(LgicaTransistorTransistor) UniversalSerialBus(busserialuniversal) UltraVioleta RadioFrecuencia

xiii

xiv

PRLOGO

Como parte del proyecto Karel del Departamento de Electrnica e Informtica de la Universidad Centroamericana Jos Simen Caas (UCA) se desarrolla el presente trabajo de graduacin cuyo fin es la creacin de un robot autnomo que siga ordenes provenientes del programa computacional Karel Robot, que sea inalmbrico, con comunicacin full duplex, de eficiente uso de energa y fcilmente utilizable.

Este trabajo de graduacin, sin embargo, es la continuacin de un proyecto que lleva 2 aos de desarrollo y que ya posee un robot Karel que es capaz de realizar las ordenes que le enva el software Karel Robot 1.0 pero aunque sea una continuacin se abord el problema nicamente tomando las experiencias pasadas ya que se redise completamente toda la parte elctrica.

El punto de vista desde el que se aborda el problema es el de la innovacin y diseo de tecnologas utilizando elementos existentes en el mercado local de El Salvador y fcilmente adquiribles. As todos los componentes fueron diseados y construidos exclusivamente para el proyecto y no fueron adquiridos preensamblados o fueron fabricados por personas externas al grupo de trabajo por lo que pueden pasar a formar parte de la propiedad intelectual de la UCA.

Los productos a entregar comprenden un robot autnomo que funciona a bateras, que es capaz de recibir y procesar ordenes, con movimientos suaves, equipado con sensores y con un sistema de comunicacin por infrarrojos capaz de enviar y recibir datos hacia un modulo de comunicacin que se conecta a la computadora y traduce las seales de esta y del robot de tal forma que estos puedan hablar entre s.

Se utiliz por primera vez al microcontrolador Freescale QG08 dentro del proyecto esperando que futuras generaciones lo consideren para sus aplicaciones sabiendo que supera en gran medida a los microcontroladores PIC, tan usados en nuestro medio. Los microcontroladores fueron programados usando lenguaje ensamblador y programas propietarios para que el producto final pudiera ser confiable y robusto pero sin sacrificar su complejidad y aplicabilidad futura.

A lo largo de las siguientes pginas el lector o lectora conocer todo lo relacionado a las nuevas tecnologas desarrolladas, se enterar de los lugares donde se pueden encontrar los elementos adecuados para la elaboracin de los circuitos que componen al robot, conocer al QG08 y tendr un primer acercamiento a la programacin de este, asimismo tendr la opcin de crear nuevos perifricos para utilizar al robot y la opcin de aadirle nuevas funciones.

xv

CAPTULO 1 EL PROYECTO KAREL

1.1 Introduccin

En la UCA el proyecto Karel nace con el fin de crear un programa computacional con el cual los estudiantes de los primeros aos de Lic. en Ciencias de la Computacin pudieran tener un primer acercamiento a los lenguajes de programacin, este programa computacional deba ser atractivo para poder estimular a los estudiantes ya que seria uno de sus primeros contactos dentro de la carrera antes mencionada.

Una vez se tena el programa se tuvo la idea de llevar al mundo real lo que los estudiantes podan ver en sus pantallas y es en este punto en el que se incluyeron a otras dos carreras: Ingeniera Elctrica e Ingeniera Mecnica. La tarea de estas carreras sera la de crear un robot que hiciera exactamente lo mismo que el robot virtual que los estudiantes podan ver en la pantalla de sus computadoras.

As en el transcurso de los aos 2006 y 2007 se fue desarrollando en conjunto tanto el software Karel como un robot Karel obteniendo muy buenos resultados y sentando bases para el presente trabajo de graduacin.

1.2 El robot Karel

El trabajo de los estudiantes de Ingeniera Elctrica e Ingeniera Mecnica dio como resultado al robot Karel, un sistema muy completo que cumpla con las funciones bsicas del lenguaje Karel (mover, girar, recoger y depositar) y que puede ser considerado como el primer robot diseado y construido en la UCA (Ver carpeta Karel 1.0 en el disco adjunto al presente trabajo).

Este robot consta de una tableta de circuitera de control, un sistema de recoleccin, un sistema de depsito, un sistema de almacenamiento de toquens, sistema de recepcin de datos y motores de paso que crean los diferentes movimientos requeridos.

El sistema de recoleccin consta de una rueda que posee un imn, este imn deba ser posicionado usando el motor de paso correspondiente de tal forma que atrajera a un toquen metlico y posteriormente lo introdujera en la bolsa de toquens. Por otro lado el sistema de depsito constaba de un disco giratorio con una abertura en la cual entraba perfectamente el toquen a depositar (almacenado en la bolsa de toquens) y que posteriormente giraba 90 para que el toquen pudiera ser depositado. Una caracterstica particular es que el sistema era capaz de

recolectar y depositar los toquen en el mismo lugar y que los movimientos de los motores eran secuenciales (no simples giros).

La transmisin desde la computadora se haca a travs del puerto paralelo, una vez puesto el dato ah un transmisor de radio frecuencia de cuatro canales lo enviaba al receptor correspondiente situado en el robot, luego el dato se lea con un microcontrolador PIC que era el encargado de controlar a los motores a travs de un integrado diseado para manejar los niveles de corriente adecuados.

Las metas alcanzadas con este robot son:

Comunicacin con la computadora: La comunicacin era de una sola va pero se lograba el objetivo de controlar a un robot a travs del programa computacional que los estudiantes utilizaban en sus clases.

Ejecucin de ordenes: La computadora manda la orden pero no manda las instrucciones para realizarla, es por esto que se utiliza el microcontrolador PIC, lo que hay que recalcar es que el software que hace que el microcontrolador funcione fue realizado por los estudiantes de Ingeniera Elctrica involucrados.

Operacin a distancia: El uso de tecnologa de radio frecuencia haca que se tuviera un alcance de varios metros para poder enviar las ordenes al robot.

Recoleccin y depsito de toquens: El diseo mecnico fue el adecuado para cumplir con estas dos ordenes y los circuitos los adecuados para crear las secuencias que deban seguirse.

Como se puede observar el robot cumpla con su trabajo.

1.3 Funcionamiento del robot Karel

El robot Karel, sin embargo, presentaba ciertas peculiaridades en su funcionamiento que aunque no impedan que este realizara sus funciones lo limitaban en cierta manera:

Consumo de energa: El robot tena un alto consumo de energa por lo que no se logr que este operara con bateras sino que deba conectarse a una fuente regulada de voltaje.

Dependencia temporal de las ordenes de la computadora: Las ordenes eran ejecutadas siempre que la computadora las mantuviera en su puerto, de esta forma recay en el software computacional la tarea de medir el tiempo necesario para la ejecucin de cada orden.

Vibracin: El tipo de motores usados produca vibraciones. Basura en la comunicacin: Algunas funciones dependan de una seal limpia para ejecutarse sin problemas, sin embargo al momento de ponerlas en el puerto apareca basura que luego era transmitida hacia el robot.

Ligeros desajustes mecnicos: Pequeas fallas en el sistema mecnico causaban fricciones

innecesarias y situaciones similares.

1.4 El proyecto Karel en el ao 2008

El proyecto sigui adelante y se plantearon nuevos retos para mejorar los productos existentes, es as como en el ao 2008 se le dio el nivel de trabajo de graduacin al proyecto, asignando un grupo multidisciplinario que inclua a las carreras de Ingeniera Elctrica, Lic. en Ciencias de la Computacin e Ingeniera Mecnica cuya meta sera tomar como base dichos productos y obtener unos nuevos que cumplieran con lo que ya se tena ms algunas caractersticas extras.

Estas caractersticas extras nacen de la experiencia que los usuarios tenan con el robot Karel, las principales son:

Uso ms eficiente de la energa: se desea que el robot no posea cables externos. Comunicacin bidireccional: para que el software pueda estar mejor sincronizado con los movimientos del robot.

Mayor precisin en el cumplimento de las ordenes: O una mayor inmunidad al ruido para evitar movimientos no deseados por parte del robot.

Un mejor software Karel, mayormente pensado en el usuario y que resolviera problemas encontrados en la primera versin del software.

Menor tamao del robot. Diseo pensado en la construccin: El robot debe ser reproducible, es decir, debe poder ser construido fcilmente en caso que se requieran hacer copias del robot.

As durante el ao 2008 se trabaj en conjunto logrando cumplir con los requerimientos anteriores en menor o mayor medida, el presente trabajo de graduacin es el resultado de este trabajo multidisciplinario, as como tambin lo son los trabajos de graduacin Seguimiento a la plataforma de aprendizaje 'Karel: el robot' que toca toda la parte correspondiente al software Karel y Diseo mecnico y construccin del sistema Karel que toca toda la parte correspondiente a las partes mecnicas que conforman el chasis del robot.

Para tener la imagen completa de lo que conforma el sistema Karel se deben consultar los tres trabajos de graduacin y complementar lo que uno dice con el siguiente.

1.5 Futuro del proyecto Karel

El futuro del proyecto Karel sigue abierto, siempre podr hacerse el trabajo de mejor manera basndose en lo que ya se tiene y siempre se podr incluso innovar en mejores formas de hacer

las cosas, en el presente documento se hace mencin en varias secciones a esto y se dan ideas que pueden llevarse a cabo para mejorar el funcionamiento del Robot Autnomo Salvadoreo (R.A.S., el producto que nace del presente trabajo de graduacin y el cual ser desglosado durante todo el documento).

Se invita entonces al lector o lectora interesado en continuar con el proyecto Karel a aprender de nuestros errores y seguir adelante en el desarrollo de este proyecto tan interesante.

CAPTULO 2 MS ALL DE KAREL

2.1 Introduccin

El presente trabajo de graduacin implicaba nicamente la construccin de un robot que fuera capaz de recibir y ejecutar ordenes provenientes del software Karel sin embargo durante el proceso de construccin se determin que la construccin de un robot que exclusivamente cumpliera con las ordenes del lenguaje Karel limitara mucho el diseo.

As se aborda el problema desde un punto de vista diferente: la creacin de un robot que entre sus funciones realice todas aquellas relacionadas con el lenguaje Karel pero que posee otras funciones que aunque no sean accesibles desde el software Karel podrn ser accesibles desde otros programas computacionales que estn diseados para interactuar con el robot.

Gracias a la utilizacin de microcontroladores tan poderosos y de un diseo de circuitera que tuvo siempre en mente la innovacin se ha logrado que el robot sea capaz de ejecutar ordenes complejas de forma automtica y sin asistencia de la computadora (ms all de que esta le mande la orden a ejecutar). Es por esto (entre otras cosas) que se le asigna al robot creado el nombre de Robot Autnomo Salvadoreo o R.A.S. por sus siglas.

El presente captulo expondr funciones que el hardware es capaz de realizar y que explotan sus capacidades ms all de lo que puede hacerlo el software Karel, as en el futuro estas funciones podrn ser explotadas. Sin embargo para no salir del contexto del proyecto Karel en futuros captulos del presente trabajo ya no se hace alusin a estas funciones .

2.2 Ordenes bsicas

Dos funciones bsicas que el robot puede ejecutar pero que no son accesibles a travs del lenguaje Karel son las de retroceder y girar a la derecha, estas pueden ser realizadas usando sensores y sin usarlos (esto se explicar a detalle en captulos posteriores que expondrn las funciones bsicas que son accesibles por el lenguaje Karel).

La orden de retroceder, como su nombre lo indica, consta de poner ambos motores de avance a girar hacia atrs, la orden de girar a la derecha implica que el motor de avance derecho gire hacia atrs mientras que el motor del lado izquierdo gira hacia adelante y as se produzca un giro. En total el robot es capaz de obedecer a 12 ordenes bsicas, cualquier otro movimiento que este realice ser la combinacin de estas. Estas son:

Mover con y sin uso de sensores. Girar a la izquierda con y sin uso de sensores. Girar a la derecha con y sin uso de sensores. Retroceder con y sin uso de sensores. Recoger toquens con y sin uso de sensores. Depositar toquens con y sin uso de sensores.

2.3 Ordenes compuestas

Este tipo de ordenes constan de la unin de varias ordenes principales, por ejemplo, se puede definir la orden girar 90 o la orden recoger toquen en la siguiente esquina y regresar a la posicin inicial y que estas sean accesibles desde la computadora con un solo comando.

La ganancia de esto es que no deben definirse todos los pasos desde la computadora, lo que evita al usuario tener que programar las rutinas para que luego el robot las ejecute, asimismo el robot las ejecutar sin pausas por lo que el tiempo total de ejecucin ser menor.

El nico limite para el tamao de estas ordenes completas es la memoria del microcontrolador, por lo que en realidad el lmite para el nmero de ordenes simples que conformarn una compleja es lo suficientemente elevado para considerarse inexistente a este nivel. La ganancia de esto es que un solo comando de la computadora puede desatar un movimiento extremadamente complejo.

2.4 Monitoreo de estado

El lenguaje Karel posee nicamente algunas preguntas que indican el estado del robot, sin embargo este ultimo puede informar sobre el estado de cada uno de sus sensores a la computadora a travs de ordenes que no estn comprendidas dentro del lenguaje Karel.

As por ejemplo la pregunta Cul es el estado del sensor de lnea derecho? puede ser enviada. Una aplicacin ms completa de esta funcionalidad es la creacin de un sistema de monitoreo en tiempo real de todos los sensores del robot.

2.5 Comportamientos

Se entiende por comportamiento aquella combinacin de funciones que el robot realiza y que emulan cierto patrn de conducta, esta funcin se encuentra en la mayora de robots de nivel universitario y da pie a la creacin de robots que cumplen con tareas especficas. Gracias a que se utilizaron microcontroladores tan poderosos se puede programar al robot para

que emule estos patrones de conducta dependiendo de la aplicacin que se desee implementar. As, por ejemplo, se puede programar al robot para que este censando constantemente las seales que le llegan, si estas corresponden a seales de referencia entonces el robot se mantendr en su lugar, de lo contrario comenzar a moverse hasta que encuentre un punto donde la transmisin corresponde a la de referencia. Con esta funcin se tiene un robot que es capaz de buscar los mejores puntos de recepcin de seales en un campo por ejemplo.

Gracias a su diseo modular tambin pueden alterarse los sensores con los que actualmente contar el R.A.S. para incluir sensores ms especializados (como de deteccin de metales) y programar comportamientos como por ejemplo bsqueda y sealamiento de metales en el piso, en el cual el robot censar constantemente sus sensores inferiores y al momento de detectar algo se detendr en ese lugar y avisar a la computadora de su encuentro.

Todo esto es posible con el diseo actual del robot con ligeras modificaciones al software que incluyen los microcontroladores. As el R.A.S. no se limita a ser un robot que cumple con el lenguaje Karel sino se convierte en un sistema base para el desarrollo de futuras aplicaciones.

CAPTULO 3 EL MICROCONTROLADOR FREESCALE QG08

3.1 Introduccin

El microcontrolador Freescale MC9S08QG8 (comnmente llamado QG08) ha sido elegido para el presente proyecto por su gran cantidad de perifricos, fcil configuracin y por que no necesita circuitera externa para funcionar, adems posee en su interior al procesador Motorola C68HC08 el cual nos da una gran flexibilidad a la hora de programar.

Lamentablemente en el pas la disponibilidad de microcontroladores es limitada a unas pocas marcas que no incluyen a Freescale, pero en el futuro cercano y por su gran versatilidad esta marca estar disponible si se comienza a usarla, es por esto que se ha decidido no apegarse al mercado local en este aspecto y demostrar que con una herramienta con mayor poder podemos desarrollar un producto con mayor versatilidad.

En el presente captulo se presenta una introduccin al microcontrolador Freescale, su utilizacin, perifricos usados en el presente proyecto, forma de programar y herramientas necesarias de tal forma que el interesado o interesada podr comenzar a desarrollar dispositivos que involucren al QG08 en poco tiempo.

Sin embargo se aclara que esta es solo una introduccin, no algo que busque ser un curso completo de utilizacin de microcontroladores, pero con esto y un poco de lectura directamente de la hoja de datos del microcontrolador y del procesador se tiene ms que suficiente para comenzar.

3.2 Qu es un microcontrolador?

Un microcontrolador es un circuito integrado que comprende un microprocesador y perifricos diferentes en un mismo encapsulado. El microprocesador es un dispositivo que ejecuta ordenes previamente programadas, estas ordenes pueden ser operaciones matemticas, lgicas, saltos (conocidos como goto en algunos lenguajes de programacin), comparaciones, manejo de informacin y otras, a esto se le suman perifricos, o circuitos capaces de interactuar con el exterior a travs de los pines del encapsulado, estos perifricos permiten tanto recibir como mandar informacin al exterior as como el control de otros dispositivos de forma digital y analgica.

Dependiendo de las capacidades del microprocesador as ser la complejidad de los programas que podemos crear para el, y dependiendo de los perifricos as sera la flexibilidad que tendremos

al implementar soluciones.

Es ac donde comienza a haber diferencias entre los diferentes microcontroladores que existen, algunos estn hechos para aplicaciones sencillas y reconocen pocas ordenes, otros poseen microprocesadores muy poderosos con cientos de ordenes, algunos incluso son desarrollados para aplicaciones especficas. El QG08 est en algn punto intermedio de todo esto ya que posee un microprocesador con alto poder a la vez que ofrece muchos perifricos ya instalados sin que sea un microcontrolador de uso especfico (Ver Comparacin PIC vrs Freescale en la carpeta Otros documentos del disco adjunto al presente trabajo).

3.3 Requerimientos bsicos

Lo primero que se necesita para el desarrollo de los programas es conocimiento preciso del microcontrolador ya que cada microcontrolador es diferente dependiendo de su modelo, marca, aplicabilidad y otras caractersticas. Toda esta informacin es proporcionada por el fabricante en forma de hojas de datos, se necesitan como mnimo la hoja de datos del microcontroladora que incluye todos los perifricos y como accesar a ellos y la hoja de datos del microprocesador que posee el microcontrolador en la cual encontraremos las ordenes que este es capaz de entender (Una copia de cada hoja de datos puede encontrarse en la carpeta Freescale dentro de la carpeta Datasheet en el disco adjunto al presente trabajo).

Lo segundo que hay que tener en cuenta para utilizar un microcontrolador es que se necesita un mtodo para acceder a su memoria interna y poder grabar cualquier programa que el usuario disee, en el caso del QG08 se necesita ya sea una DEMO09S08QG8 o una USBSPYDER08 de Freescale o que se arme un dispositivo programador propio. Para estudiantes de electrnica se recomienda la DEMO09S08QG8 para comenzar ya que es la de estudiante y posee adaptadores, botones de prueba, fotoresistencias y otras cosas que ayudan al momento de crear nuevas aplicaciones.

Lo tercero que se necesita es donde escribir el cdigo, Freescale tiene un programa propietario para este fin llamado CodeWarrior, la licencia viene incluida al comprar la DEMO09S08QG8 o puede conseguirse una versin demo de forma gratuita (Puede encontrarse una copia en la carpeta software del disco adjunto al presente trabajo), este mismo programa se encarga de comunicarse con la interfase de programacin para quemar el programa en la memoria del microcontrolador.

Una vez programado el microcontrolador puede retirarse de la interfase y ponerse en cualquier circuito que se haya diseado siempre y cuando se cumpla con sus caractersticas de voltaje y

10

corriente (Remitirse a la hoja de datos del microcontrolador mencionada anteriormente para mayores detalles).

3.4 El lenguaje ensamblador

Los microcontroladores Freescale pueden ser programados con lenguaje C, C++ o lenguaje ensamblador ya que CodeWarrior hace una traduccin entre lo que escribimos en l y el lenguaje propio del microcontrolador llamado lenguaje base o cdigo de mquina; si se tienen conocimientos sobre acceso a memorias, manejo de variables y registros en el lenguaje C se puede usar sin problemas, pero es mucho mejor usar el lenguaje ensamblador para programar los microcontroladores ya que toda la documentacin hace referencia a este por estar ms cerca del lenguaje base.

Este lenguaje es de tipo lineal pero acepta saltos, por lo que es fcil crear subrutinas dentro del programa principal y manejar las diferentes cosas a su tiempo, tambin por su estructura se tiene un mximo control de cuando ejecutar cada instruccin, una caracterstica que se vuelve muy til.

Para estructurarlo es necesario poner una sola instruccin por lnea, cada instruccin consta de un operador y un operando que deben estar puestos uno a continuacin de otro a menos que sea un operador especial que no necesite operando, de ser necesario pueden especificarse una etiqueta al inicio de la lnea para los saltos aunque si se maneja muy bien el cdigo se puede referir directamente a la ubicacin en la memoria en vez de usar etiquetas, por ultimo los comentarios pueden ser puestos en cualquier parte de la pgina y comienzan con un punto y coma (;). El listado completo de instrucciones y su funcin aparecen en la hoja de datos del microprocesador.

En el microcontrolador se tiene control de los perifricos a travs de registros, cada registro tiene su etiqueta asignada y una localidad de memoria especfica as que se puede accesar a ellos como mejor parezca, la mejor forma de hacerlo es a travs de las etiquetas y siguiendo las indicaciones necesarias para cada perifrico, estas aparecen en la hoja de datos del microcontrolador aunque pueden ser modificadas dentro del programa CodeWarrior.

Como ejemplo se presenta un trozo de cdigo, en este ejemplo se llamar a la variable A, se le sumar 2 y se guardar en la variable B:

;Este es un comentario. LDA A SUM #%00000010 Etiq STA B ;LDA indica load, se deja un espacio y se pone el operando ;#%00000010 es un byte que es equivalente a 2 en binario ;STA indica Storage, Etiq es la etiqueta y sirve como referencia

11

Un detalle importante es que el microcontrolador ejecutar los ciclos sin pausa a menos que se le indique lo contrario mandndolo a un estado de bajo consumo de energa, pero esto no es recomendable en la ejecucin normal y debe ser usado nicamente como una excepcin por lo que es usual crear ciclos que el microcontrolador ejecutar una y otra vez hasta que algn evento suceda, un ejemplo de esto es:

Eti1

LDA A CMP #$00 BNE Eti1 ; CMP indica compare, #$00 es un cero en hexagesimal ; BNE sirve como Si no es igual saltar a, en este caso Eti1

En este ejemplo el microcontrolador ejecutar el ciclo hasta que la variable A sea diferente de 0, as se puede tener control del lugar del cdigo que se esta ejecutando en cada momento y es la forma ms recomendada de hacerlo. Algo muy importante es que se debe crear un ciclo principal dentro del cual el microprocesador estar circulando, si no se hace esto el programa ir ejecutando lnea por lnea de memoria, eventualmente llegar a espacios donde no existe ms que basura y al no reconocer la orden descrita entrar en un estado de error y parar la ejecucin. Este error no es advertido por el compilador por lo que es responsabilidad del usuario definir bien sus ciclos.

Por ultimo para acceder al mundo exterior a travs de perifricos basta con acceder a sus registros (previa configuracin del perifrico), igual que antes se puede hacer un LDA PTAD para acceder en este caso al perifrico de entradas digitales A (PTAD), as por ejemplo se puede ejecutar un ciclo como se acaba de describir hasta que se detecte en el perifrico una entrada digital en el pin 3.

La mejor forma de aprender a usar este lenguaje es ver un cdigo de ejemplo de los incluidos en el programa CodeWarrior, con eso y la hoja de datos para interpretar las ordenes se puede aprender muy fcilmente a programar los microcontroladores.

3.5 Iniciacin de perifricos

Como es de esperarse por defecto todos los perifricos estn deshabilitados en el QG08 y sus pines se convierten en entradas digitales, es por esto que al inicio del cdigo es necesario inicializar cada uno de los perifricos que se van a utilizar, declarar las variables y limpiar los registros, esto se hace de igual manera que en los ejemplos anteriores ya que dentro de cada registro cada bit sirve para configurar una caracterstica del perifrico.

As por ejemplo, para el perifrico de comunicacin digital PTAD, si se escribe en su registro de configuracin PTADD se determinar si el pin ser usado como entrada o salida dependiendo si

12

se le escribe un uno o cero. El cdigo sera:

LDA #%00110011 STA PTADD

y se estar indicando que los pines 8, 7, 4 y 3 sern entradas y el resto salidas.

As cada perifrico tiene una configuracin especial que puede llegar a ser muy compleja dependiendo de lo que se desee, por ejemplo el perifrico de comunicacin serial usado para el presente proyecto necesita ser configurado con 4 registros diferentes y en una secuencia especfica.

3.6 Tcnicas tiles:

A lo largo del camino se van desarrollando tcnicas de programacin que ayudan a obtener los resultados esperados, sin embargo hay algunas que siempre se ensean y permiten avanzar ms rpido:

Pooling: Esta es una tcnica de filtrado y permite enfocarse nicamente en la informacin que importa en ese momento, por ejemplo si se necesita que el programa ejecute la accin avanzar cuando se presione el botn 1, la accin retroceder cuando se presiona el botn 2 y ninguna accin cuando se presione el botn 3 se hace lo siguiente:

LDA PTAD AND #%00000011 CMP #%00000001 BEQ Avanzar CMP #%00000010 BEQ Retroceder

;Se recibe el estado de todos los botones conectados ;Se filtra con un AND a todos menos los 2 que interesan ;Se compara con 1 para determinar si est presionado el botn 1 ;BEQ significa si es igual ir a, en este caso ir a avanzar ;Se compara con 2 para determinar si est presionado el otro botn ;Si es as se va a retroceder

Lo que resta es definir las subrutinas avanzar y retroceder en otra ubicacin.

Crear retrasos: El microprocesador se mantiene continuamente ejecutando el ciclo que se le programe a una velocidad de 8Mhz, a veces es necesario una ejecucin ms lenta.

Aunque hay maneras de bajar la velocidad del microprocesador la manera ms fcil de crear un retraso es con la subrutina siguiente:

13

Retraso LDA varaux INCA STA varaux CMP #$FF BNE Retraso

; Se lee la variable varaux, variable auxiliar ;Se le suma uno ;Se guarda en la misma variable ;Se compara con el nmero hexadecimal FF ;Si todava no se ha llegado a FF entonces regresar a Retraso

Bsicamente lo que se hace es que el microprocesador gaste tiempo en completar esta subrutina.

Definir subrutinas: Si hay alguna parte del cdigo que se va a ejecutar varias veces es mejor definirla una sola vez y luego saltar a ella, para esto se usan las ordenes JSR (Jump Sub Rutine) y RTS (Return from Sub Rutine), la idea es que se salta a la subrutina con el JSR y luego al encontrar la orden RTS el programa regresar al punto exacto desde donde salt, as se puede ejecutar siempre la subrutina llamndola desde nuestro cdigo sin perder la secuencia que se llevaba antes. La forma de usar estas ordenes es sencilla

;Ac va el cdigo que se estaba ejecutando JSR Subrutina1 ;Ac se salta a Subrutina1

;Ac va el cdigo que se ejecutar despus de regresar de la Subrutina1

Subrutina1 LDA varaux INCA STA varaux CMP #$FF BNE Subrutina1 RTS

La subrutina1 es un retraso como el descrito anteriormente.

3.7 Bsqueda y correccin de errores

Dado que el lenguaje se presta a errores muy pequeos que pueden hacer que todo un cdigo no funcione (poner un cero en vez de 1 en uno de los registros de configuracin de un perifrico lo hace funcionar totalmente diferente) es bueno conocer que la DEMO09S08QG8 tambin sirve para buscar errores ya que permite ejecutar paso a paso el cdigo una vez dentro del microcontrolador, por lo que se puede conectar la DEMO09S08QG8 al circuito que se desea controlar y ver como este va reaccionando mientras se ejecuta el programa paso a paso. Otra forma es que existe en el mismo programa la funcin de emular al microcontrolador y hacer

14

tambin la ejecucin paso a paso.

Una vez detectado el error puede corregirse y volver a cargarse el cdigo en el microcontrolador en pocos segundos.

3.8 Errores comunes

No definir las variables.

Errores en maysculas y minsculas: el microprocesador reconoce a Avanzar y avanzar como dos etiquetas diferentes, lo mismo aplica para el nombre de las variables.

Confundir nmero hexagesimales con bytes: El microprocesador reconoce a los nmero que comienzan con #$ como hexagesimales y los que comienzan con #% como bytes, si se escribe #$00001000 el compilador mandar el error Los nmeros deben estar reducidos a 8 bits ya que interpretar lo que se introdujo como un nmero hexagesimal de 4 bytes.

Dejar ciclos sin retorno al final: si no se define un retorno al final del ciclo el microprocesador seguir ejecutando las lneas siguientes y puede entrar a otro ciclo.

Errores en un bit: se debe tener cuidado especial en esto, un bit errneo puede hacer que todo el programa no funcione.

Ejecucin demasiado rpida: algunas aplicaciones requieren por fuerza retrasos ya que puede que lo que este conectado al microcontrolador no reaccione tan rpido como este, es necesario remitirse cada vez a las hojas de datos de cada elemento para determinar los tiempos mnimos para que estos reaccionen.

Configuracin incompleta de perifricos: Por ejemplo no es suficiente especificar cuales pines sern entradas y cuales salidas usando el perifrico de entradas y salidas paralelas, hay que activarle a cada entrada una resistencia interna a travs de un registro aparte para que pueda leer la informacin. La mejor forma de configurar cada perifrico es leer completamente el capitulo correspondiente dentro de la hoja de datos del microcontrolador y una vez hecho esto establecer todos los registros necesarios.

3.9 El Freescale QG08 y los circuitos impresos

Ya que se ha programado el microcontrolador y se lo ha probado es hora de sacarlo del DEMO09S08QG8 y ponerlo en un circuito impreso, al hacer esto se debe tener especial cuidado

15

con el voltaje ya que el QG08 trabaja a 3.3 voltios DC y la mayora de circuitos integrados trabajan a 5 voltios DC, por lo que no se pueden conectar entre s directamente.

Tambin hay que tener especial cuidado con el pin 1 del microcontrolador ya que este es usado para reinicio asincrnico y cada vez que es activado se ejecuta el cdigo desde la primera lnea, este pin tiene activacin negativa, es decir, cada vez que se le ponga un cero se activar, dejarlo sin conectar no es aceptable, en cambio hay que conectarlo a travs de una resistencia a Vcc (Vcc o voltaje de alimentacin debe ser de 3.3 voltios DC) y se puede poner un pulsador entre el pin y referencia para cuando se necesite reiniciar al microcontrolador. Contrario a otros

microcontroladores este pin si puede estar conectado directamente a tierra y ser utilizado de esta manera ya que las resistencias internas de cada pin tienen como mnimo 17.5 kiloohmios y evitan corrientes de drenaje superiores a 1 microamperio, sin embargo esta es una caracterstica propia del QG08 y otros microcontroladores pueden no tenerla y ser daados si se conectan de esta manera.

Otro detalle a tener en cuenta es el ruido electrosttico, es una buena costumbre seguir las recomendaciones del manual y conectar entre los pines de alimentacin un par de capacitores para eliminar el ruido de alta frecuencia y los picos de voltaje.

Por ultimo es buena idea probar los circuitos ya con el Freescale instalado, hay que tener en cuenta que la frecuencia de operacin es de 8Mhz y por lo tanto el microcontrolador reaccionar extremadamente rpido a los impulsos, si la aplicacin requiere retrasos o que se haga de forma lenta es necesario crear rutinas especiales. Por ejemplo: un control de motores de paso necesitar una subrutina de retraso entre cada cambio de polaridad en los pines ya que si solo se ejecuta la secuencia esta se har tan rpido que el motor no la detectar.

3.10 Problemas con campos electromagnticos

Cada microcontrolador (dependiendo de su fabricacin) posee internamente memoria flash, EEPROM o similares donde guardan los programas que creemos, este tipo de memoria se caracteriza por no necesitar de alimentacin elctrica para mantener los datos, sin embargo, aunque esto cree una falsa seguridad de que la informacin que contiene es imborrable a menos que se haga a travs de los programadores de cada microcontrolador, se debe recordar que toda memoria es en final efecto de campos especiales magnetizados, por lo que un fuerte campo electromagntico daar los datos contenidos.

El QG08 no es la excepcin y es vulnerable a estos campos, por lo que si en la aplicacin se usarn imanes, motores o cualquier otro dispositivo que sea capaz de crear un campo

16

electromagntico fuerte los microcontroladores debern estar situados lo ms lejos de estos o debidamente protegidos ante estos campos, de no hacerlo es imposible determinar que comportamiento tendr el microcontrolador una vez que el programa guardado en su memoria ha sido alterado.

3.11 Algunos pensamientos finales

Como todo dispositivo que posee programacin interna los microcontroladores ejecutarn siempre exactamente lo que se le indique pero como todo programador sabe hay varias formas de hacer las mismas cosas, es siempre una buena idea hacer un flujorama de los procesos, probarlos exhaustivamente y hasta crear subrutinas de control o con recursividad, optimizar el cdigo lo ms posible puede que no presente mejoras palpables pero dejar ms ordenado todo, tambin poner comentarios es til al momento de buscar errores dentro del cdigo ya que dependiendo de la aplicacin se puede terminar con ms de 1000 lneas de cdigo.

Por ultimo puede que aunque el programa funcione a la perfeccin en los simuladores y que su lgica sea la adecuada el circuito no funcione, es ac cuando hay que adecuar el cdigo a la circuitera fuera del microcontrolador.

17

18

CAPTULO 4 EL MODULO DE COMUNICACIN

4.1 Introduccin

Uno de los productos que se entregan con el presente trabajo de graduacin es un modulo de comunicacin que se conecta a la computadora a travs del puerto RS-232 y con el Robot Autnomo Salvadoreo (R.A.S.) a travs de tecnologa infrarroja usando dos microcontroladores Freescale QG08 para manejar ambas seales usando los cdigos necesarios en ambos casos.

Aunque los microcontroladores son los encargados de generar las seales estas no poseen las caractersticas necesarias para una buena comunicacin por lo que se hace uso de dispositivos externos que modulen las seales de tal forma que tanto la computadora como el robot puedan recibirlas y entenderlas.

En el presente capitulo se desglosa todo lo respectivo al modulo de comunicacin, tanto su circuitera como lgica interna de los microcontroladores, asimismo se incluyen una explicacin sobre los protocolos de comunicacin utilizados y sus respectivas seales.

4.2 Alimentacin

Dentro del modulo de comunicacin se encuentran diferentes elementos y circuitos integrados que necesitan de 5 Vdc como su fuente de alimentacin, por otro lado los microcontroladores aceptan un mximo de 3.3 Vdc como alimentacin y hay otros elementos que trabajan mejor a niveles superiores a los 5 Vdc.

La forma de solventar esto es alimentando todo el circuito con 9 Vdc los cuales son posteriormente llevados a los otros niveles inferiores. La tcnica para ejecutar esto es bajar el voltaje con una resistencia en serie con un diodo zener puesto en inversa, el voltaje obtenido en el ctodo del diodo zener se mantendr fijo al voltaje zener pero para evitar variaciones este se conecta a la entrada de un OpAmp (dentro del Circuito integrado LM324) que se dispone como seguidor de voltaje, de esta forma el voltaje obtenido es fijo ya que no se vara la corriente que esta llegando al diodo zener mientras que la corriente suministrada a los circuitos es proporcionada por el OpAmp. Invitamos al usuario a consultar esto de forma visual en la figura 4.3 - Circuitera del modulo de comunicacin.

Para la alimentacin de otras partes del circuito se utiliza Modulacin de Ancho de Pulso (PWM) como se explicar ms adelante.

19

4.3 Construccin

El modulo de comunicacin se compone de 4 elementos principales dispuestos como se indica a continuacin:

Figura 4.1 - Bloques funcionales del modulo de comunicacin

Los cuatro bloques se explican a continuacin:

Interfaz de interaccin con el puerto RS-232: Acondiciona la seal del Microcontrolador1 para que pueda ser leda correctamente por la computadora y viceversa.

Microcontrolador1: Es el encargado de manejar la comunicacin con la computadora. Microcontrolador2: Es el encargado de manejar la comunicacin con el R.A.S. Interfaz de comunicacin con el R.A.S.: Acondiciona la seal del microcontrolador2 para que pueda ser enviada al robot y puedan recibirse las seales de este.

Como se puede ver ver hay comunicacin entre los dos microcontroladores, es en esta etapa en la cual se separan las seales que entiende la computadora (manejadas por el microcontrolador1) y las que entiende el robot (manejadas por el microcontrolador2), esta comunicacin es de tipo paralelo y a travs de pines especiales dispuestos para este propsito. En los literales siguientes se hace un desglose completo de cada elemento.

4.4 El protocolo RS-232 desde el punto de vista elctrico y su implementacin en el modulo

Este protocolo es el utilizado para la comunicacin con la computadora, desde el punto de vista elctrico se trata de seales de voltaje que representan bits de informacin a una cierta frecuencia. Aunque es relativamente fcil sincronizar la frecuencia y codificacin de las seales (palabras de 8 bits, sin paridad y sin bit de inicio) gracias al modulo de comunicacin serial ya contenido en los microcontroladores, se tiene una incompatibilidad entre los niveles de voltaje que representan los bits en cada dispositivo, as para la computadora un 1 lgico es representado por un nivel de voltaje menor a -3 Vdc pero mayor a -15Vdc, un cero lgico es representado por un nivel de voltaje mayor a 3 Vdc pero menor a 15 Vdc, en ningn caso el nivel de voltaje en la lnea debe subir de los

20

20Vdc o ser ms bajo de -20Vdc y en reposo la lnea debe mantenerse en el voltaje establecido para un uno lgico; por otro lado el microcontrolador representa un 1 lgico por un nivel de voltaje de 3 Vdc y un cero lgico por un nivel de voltaje de 0 Vdc, a la vez el microcontrolador es incapaz de generar voltajes ms elevados de 3Vdc o voltajes negativos y el estado de reposo del modulo de comunicacin serial es de 3 Vdc.

Conectar el puerto RS-232 de la computadora directamente a los pines de comunicacin serial del microcontrolador nos llevara rpidamente a daarlo, si nicamente incluimos elementos que limiten los voltajes a 0 Vdc y 3Vdc (como diodos y diodos zener) todava se tiene el problema que el protocolo representa el 1 lgico en forma inversa de lo que lo hace el microcontrolador, esto hace imposible la comunicacin.

Para solventar todos estos problemas se necesita un decodificador que transfiera los niveles de voltaje del RS-232 a niveles de voltaje manejables por circuitos integrados normales (nivel TTL) a la vez que codifica la seal en el voltaje adecuado, en nuestro diseo se utiliz el MAX232, un circuito integrado diseado especialmente para este propsito.

El MAX232 posee internamente un buffer inversor para transformar los niveles RS-232 en niveles TTL y adecuar la seal para que el 1 lgico sea de 5Vdc y el 0 lgico sea de 0 Vdc; por otro lado posee bombas de voltaje (configuraciones de capacitores que elevan el voltaje) e inversores de tal forma que los niveles TTL sean transformados en niveles RS-232 con la codificacin adecuada para la computadora.

La seal en si misma es creada por el microcontrolador1 el cual la genera a una velocidad de 2700 bits por segundo (bps) auxiliado por un oscilador interno por cristal que mantiene estable dicha velocidad de transmisin y recepcin, la computadora es ajustada a esta misma velocidad con lo que se logra la comunicacin.

4.5 Comunicacin con el R.A.S.

Para comunicarse con el robot se hace uso de tecnologa infrarroja: la informacin es transmitida a 500 bps de forma serial siguiendo la codificacin estandard utilizando una portadora de 40 Khz a travs de un LED infrarrojo. Esta seal es recibida y decodificada fcilmente por un receptor diseado para tal fin de la misma naturaleza de los utilizados en aplicaciones comerciales de control por medio de infrarrojos.

El receptor es de tipo comercial por lo que dentro de el esta contenida la circuitera que filtra todas las seales menos la que se reciba a 40 Khz, este mismo receptor decodifica la seal y as

21

obtenemos a la salida el tren de pulsos emitidos a 500 bps; la nica caracterstica peculiar de este receptor es que la salida es la negacin de la seal que se requiere, es por esto que debe conectarse a una compuerta lgica NOT. En el mercado existen muchos integrados que hacen esto, para nuestro diseo se utiliza el PL-IRM0101-3 por su sensibilidad, inmunidad al ruido y disponibilidad en el mercado local (Consultar hoja de datos en la carpeta IrDA dentro de la carpeta Datasheet en el disco adjunto al presente trabajo).

Por otro lado el transmisor si fue diseado enteramente para la aplicacin. Primero necesitamos una seal cuadrada de 40Khz que nos servir como portadora y para conseguirla se pone a oscilar a un Timer 555 en forma astable, posteriormente para introducir la seal til en esta portadora se hace uso de una compuerta AND, as cuando se quiera enviar un 1 lgico se dejar pasar a la portadora, caso contrario no se dejar pasar y con esto se logra enviar la informacin. La seal til viene directamente del transmisor serial en el microcontrolador2.

Un elemento importante de este diseo es el tipo de LED infrarrojo que se utiliza y el encapsulado que este tenga, en nuestras pruebas se determin que un encapsulado que concentre la luz del LED hacia adelante no es til para la aplicacin ya que nicamente se lograba detectar la seal a una distancia menor de 1.5 metros de la fuente, sin embargo utilizando un LED cuyo encapsulado no concentrara la luz se logran distancias mucho mayores, estos LED que no concentran la luz son los mismos utilizados en los controles remotos.

4.6 Funcionamiento del dispositivo

Se realizaron distintas pruebas al dispositivo para determinar su confiabilidad en la transmisin, del lado de la computadora la transmisin es a travs de un medio controlado (el cable de 9 pines que se conecta al puerto Rs-232 de la computadora) por lo que es casi perfecta, es por esto que se pueden garantizar velocidades de comunicacin de hasta 11200bps sin perdida de datos por parte del microcontrolador1, sin embargo para la aplicacin no es necesario un gran flujo de informacin por lo que la transmisin a 2700bps resulta adecuada. El alcance de esta parte del modulo de comunicacin depender del tipo de cable con que se conecte el mdulo a la computadora, la sensibilidad de la tarjeta electrnica que esta posea y de las perdidas por otras causas como ruido electromagntico, nuestras pruebas indican que pueden usarse cables de hasta 15mts de cobre para comunicaciones (calibre 22, alta pureza), sin embargo recomendamos no se utilicen cables de ms de 10 metros de longitud para realizar la conexin entre el mdulo y la computadora.

Por otro lado la comunicacin entre el mdulo y el robot es a travs de tecnologa infrarroja, de este lado la transmisin de datos es tambin de bajo volumen de informacin por lo que la velocidad de transmisin optima es de 500bps, esto se establece por las caractersticas de cada

22

elemento en particular (en especial en las caractersticas de los receptores infrarrojos) y se ajusta al volumen de informacin antes mencionado. Sin embargo ac debemos hacer una pausa para explicar los alcances de nuestra antena infrarroja ya que fue totalmente diseada y construida para esta aplicacin. Dado que se necesita linea de vista entre el transmisor y el receptor el alcance de este dispositivo viene dado por caractersticas pticas nicamente, escoger el tipo de led adecuado y la ubicacin de estos es importante para obtener una comunicacin adecuada; se buscaron leds en el mercado local que cumplieran con la caracterstica de no concentrar la luz sino que la emitieran en todas direcciones, sin embargo fue imposible conseguir este tipo de leds tan comunes en controles remotos comerciales.

Las pruebas de comunicacin realizadas demuestran que los LED conseguidos en el mercado local poseen un alcance frontal de 4 metros pero lateralmente solo poseen un angulo de 20 por lo que es imposible conseguir una comunicacin adecuada (sin embargo parecen aptos para aplicaciones de control de televisores y similares), en contraste los LED que se obtuvieron al desmantelar controles remotos tenan un alcance frontal de 4 metros y uno lateral de 120 por lo que hubieran sido adecuados para la aplicacin, sin embargo al usarlos se habra salido de los requerimientos del proyecto.

Con los datos anteriores se determina que el diseo de antenas fijas es imposible con los componentes encontrados en el mercado local y por lo tanto se tienen limitantes en la comunicacin con el robot. Para solventarlas se opta por disear un tipo de antena porttil que el usuario deber mantener sobre el robot para que la transmisin sea adecuada.

4.7 Transmisin y recepcin de datos

El modulo de comunicacin posee en su interior dos microcontroladores, el microcontrolador1 se encarga de la comunicacin con la computadora propiamente trabajando con comunicacin serial a 2700bps (haciendo uso del integrado RS-232 para ser compatible con este puerto en la computadora, como se mencion anteriormente) y ejecutando el protocolo siguiente (sin importar la direccin de comunicacin):

Protocolo de comunicacin entre microcontrolador1 y PC 1 2 3 El emisor de la seal enva el cdigo respectivo El receptor enva un eco del cdigo que acaba de recibir Si el emisor original recibe un eco exacto de la seal que envi enva

una seal de confirmacin. Tabla 4.1 Protocolo establecido entre modulo de comunicacin y computadora

23

Como proceso adicional se ha establecido que las primeras tres ordenes que se recibirn por parte de la computadora son existe comunicacin?, usar sensores o no usar sensores y establecer direccin de visin respectivamente, esto con el fin de determinar el funcionamiento futuro del robot. Cabe recalcar que estas ordenes no solo son reconocidas en este punto y por lo tanto puede modificarse el comportamiento del robot en cualquier momento. A continuacin se presenta un cuadro con los cdigos usados para estas ordenes que modifican el funcionamiento:

Inicio Usar sensores

Pc 0xEB

Microcontrolador1 0xEC NA

Enviado Confirmacin Negacin

No usar sensores 0xDB 0xEF NA Tabla 4.2 - Ordenes iniciales

Para establecer la direccin de visin se usa cualquiera de los siguientes cdigos:

Especificar direccin de visin Norte Sur Este

PC

Microcontrolador1

0xC3 0xD3 0xE3

0x95 0x95 0x95

Oeste 0xF3 0x95 Tabla 4.3 Ordenes que especifican direccin de visin

El microcontrolador2 se encarga de la comunicacin con el R.A.S., este recibe la ordenes del microcontrolador1 de forma paralela y los enva al robot de forma serial a 500 bps haciendo uso del transmisor descrito en otras secciones de este documento.

En este paso tambin se usa un protocolo de comunicacin para evitar errores en la emisin y recepcin de datos, el protocolo es el siguiente:

Protocolo de comunicacin entre microcontrolador2 y R.A.S. 1 2 3 4 El emisor enva la seal 8 veces seguidas El receptor enva 8 veces un eco de la primera seal que reciba tres veces consecutivas Si el eco corresponde a la seal emitida se manda 8 veces una seal de confirmacin El receptor enva una ultima vez una seal de confirmacin 8 veces seguidas Tabla 4.4 Protocolo de comunicacin entre el microcontrolador 2 y el R.A.S.

Por caractersticas propias de los receptores utilizados cada seal debe ser enviada 8 veces como

24

mnimo para garantizar que ser bien recibida, asimismo los microcontroladores deben estar preparados para manejar este flujo de informacin y diferenciar entre seal til y seal basura, esto se hace a travs de una rutina de recepcin que compara cada dato recibido con el anterior, si se recibe tres veces el mismo dato de forma consecutiva este se considera seal til y se procesa. Sin embargo en nuestras pruebas se determin que en algunos ambientes el ruido infrarrojo era de tal magnitud que haca imposible el funcionamiento del R.A.S. Por lo que se establece una subrutina especial que se encargara de suprimir este ruido, todo lo referente a esta subrutina puede encontrarse en el disco adjunto al presente trabajo de graduacin en la carpeta Otros documentos.

El flujo de informacin puede entenderse mejor al ver el siguiente diagrama:

Figura 4.2 Flujo de informacin del sistema

Una vez explicado lo anterior se presenta una tabla que contiene todas las ordenes que la computadora enviar al Microcontrolador1 con la respuesta que se enviar a la computadora cuando el R.A.S. indique que ha completado la orden con xito:

Orden Mover Girar Izquierda Recoger toquen Poner toquen

Byte recibido de PC 0x10 0x20 0x30 0x40

Byte enviado a PC (Al terminar) 0x15 0x25 0x35 0x45

Apagar 0x50 0x55 Tabla 4.5 Cdigos para ordenes principales

25

Gracias a sus sensores y a registros internos ubicados tanto en el modulo de control como en el R.A.S. se puede responder a preguntas hechas por el software Karel; desde el punto de vista del lenguaje Karel estas preguntas sirven para establecer condiciones dentro de los programas entre otras cosas, sin embargo desde el punto de vista del robot podemos nicamente indican el estado en que este se encuentra.

A continuacin se presenta una tabla que engloba toda las preguntas que el software Karel es capaz de generar:

PC Pregunta toquen en bolsa? Viendo al este? Viendo al norte? Viendo al sur? Viendo oeste? 0xA0 0x90 0x80 0x70

Microcontrolador1 Enviado si falso 0x86 0x86 Frente Bloqueado? 0x63 Izquierda libre? 0x63 0x86 Derecha libre? 0x63 0x63 0x86 0x86 Sobre toquen? Hay Link? Pregunta verdadero

PC

Microcontrolador1 Enviado si falso 0x86 0x86 verdadero

Recibido Enviado si

Recibido Enviado si

0x60

0x63

0xB0 0xD0

0x63 0x63

0xE0

0x63

0x86

0xF0 0xFB

0x63 0x63

0x86 0x86

Tabla 4.6 Preguntas generadas por el software Karel

Algunas de estas preguntas son respondidas por registros internos guardados dentro de microcontrolador2, este posee subrutinas para responder a dichas preguntas. Las preguntas respondidas de esta forma y sus caractersticas de funcionamiento son:

Viendo norte, sur, este u oeste?: Dentro de las ordenes iniciales se especifica la direccin en la que est viendo el robot inicialmente, esta informacin es almacenada en un registro que es actualizado cada vez que el robot completa un giro a la izquierda siguiendo la secuencia norte, oeste, sur, este. De esta forma al recibir la pregunta correspondiente el microcontrolador lee su registro, si la pregunta corresponde con la informacin ah contenida responder de forma positiva y viceversa.

El R.A.S. no posee una brjula u otro dispositivo capaz de orientarlo con respecto a los ejes cardinales, asimismo en el mundo virtual que aparece en la computadora se establecen ejes virtuales definidos como norte, sur, este y oeste, por lo que la mejor forma

26

de mantener sincronizada la informacin de direccin de visin es usando una direccin de visin virtual como se acaba de describir.

Sobre toquen?: Aunque exista un sensor cuya funcin es encontrar los toquen que el robot puede recoger la forma fsica de este hace que los toquen no queden posicionados exactamente en la zona de deteccin de este sensor cuando el robot esta en reposo en una esquina, de hecho el sensor detecta los toquen antes de llegar a la esquina de destino. Es por esto que se escoge usar un registro que indique si se ha detectado un toquen durante la ejecucin de la orden mover, de ser as se sabe que el robot estar sobre el y puede recogerlo, este sensor es borrado una vez se recibe nuevamente la orden mover (ya que el robot se mover a la siguiente esquina) o se recoge el toquen detectado.

Por ultimo se ha implementado dentro del modulo de comunicacin una subrutina de establecimiento de enlace (Link en ingls), es decir, una subrutina que manda una seal a Karel con la nica intencin de establecer si el robot recibe dicha seal y es capaz de responderla, esta subrutina es utilizada para responder a la pregunta hay link?, en estados en los que no se haya recibido la confirmacin de la ejecucin de una orden en un tiempo aceptable para establecer si hubo un error de comunicacin y en general para hacer pruebas que indiquen si los transmisores y receptores estn funcionando de forma adecuada.

4.8 Manejo de errores y estados anormales

Durante los prrafos anteriores se ha hecho mencin de que el robot es capaz de informar a la computadora sobre errores encontrados en el tiempo de ejecucin que le impiden completar las ordenes que se han recibido o sobre otros estados anormales como orden no encontrada y perdida de comunicacin.

Estos errores son enviados a la computadora usando los siguientes cdigos:

Error Choque contra pared No hay toquen en bolsa No hay toquen para recoger Materia Baja Orden no vlida Perdida de comunicacin

Enviado a PC 0xCC 0xDD 0xEE 0xFF 0xEA 0xFA

Imposible girar 0xFE Tabla 4.7 Errores reconocidos por el software Karel.

27

Error choque contra pared: se enva este error cuando el sensor de proximidad frontal interrumpe a la subrutina mover al detectar un obstculo, este error es considerado grave y por lo tanto si se da cualquier orden posterior que la computadora enve ser ignorada. La nica forma de salir de este estado de error es presionando el botn de reinicio, tanto en el modulo de comunicacin como en el R.A.S.

Error No hay toquen en la bolsa: se enva este error cuando se recibe la orden Depositar toquen y el sensor de toquen en bolsa no detecta ninguno. Este error es considerado leve luego de informar sobre este el robot estar listo para ejecutar cualquier orden posterior.

Error No hay toquen para recoger: se enva este error cuando se recibe la orden Recoger toquen y el registro correspondiente indica que no se han detectado toquen durante la ultima orden de mover ejecutada o cuando se intenta recoger el toquen pero no puede ser detectado en el movimiento de retroceso que alinea el dispositivo de recoleccin con este. Este error es considerado leve.

Error Imposible girar: se enva este error cuando algo impida al robot completar un giro, algunas fuentes de este error pueden ser: falla en los motores, obstrucciones fsicas que impidan que el robot gire, Etc. Se detecta la imposibilidad de girar cuando no se ha completado la subrutina de giro en un tiempo tres veces mayor al que le tomara normalmente. Este error es considerado grave.

Error Orden no encontrada: este error se da cuando la computadora ha enviado una seal no reconocida (aunque se respete el protocolo de comunicacin puede que la computadora enve una seal que no est en la base de datos del microcontrolador) y cuando la computadora enva una pregunta que no est siendo tomada en cuenta debido a que se especific durante la secuencia inicial que no se usaran los sensores.

Error Batera baja: se enva este error cuando los microcontroladores instalados en el modulo de comunicacin o en el robot detectan un bajo voltaje de alimentacin, cuando el tiempo de ejecucin de la subrutina mover es mayor al doble de lo normal, cuando se detecta que los sensores de seguimiento de lnea no estn funcionando (dado que todos los sensores reciben su alimentacin de la misma fuente se asume que todos los dems tampoco estn funcionando) o cuando se detecta que la comunicacin contiene demasiados datos basura (indicativo que los emisores reciben poca energa). Este error es considerado grave.

Error Perdida de comunicacin: se ha establecido que cada seal debe ser enviada 8 veces consecutivas, sin embargo de no obtener ninguna seal en respuesta se volver enviar hasta 5

28

veces, si luego de estas 5 series de seales no se ha recibido ninguna otra se considera que se ha perdido la comunicacin entre el modulo conectado a la computadora y el robot Karel, es entonces que este error es generado dentro del modulo de comunicacin y enviado a la computadora. Este error es considerado grave.

Aunque se podran especificar subrutinas especiales que manejen estos errores de forma automtica (haciendo que el robot regrese a su posicin anterior ante un choque frontal por ejemplo) se decidi que nicamente se debera notificar de dichos errores a la computadora, esto con el fin de mantener la coherencia entre la informacin presentada al usuario en la pantalla de la computadora y el comportamiento del dispositivo en la vida real.

4.9 Diseo modular y futuras aplicaciones

En el diseo actual del modulo de comunicacin se ha utilizado el puerto RS-232 para comunicacin con la computadora y transmisin con tecnologa infrarroja para comunicacin con el R.A.S., sin embargo esta es una forma de solucionar el problema planteado y futuras versiones pueden implementar sus propios diseos.

El perifrico serial de los microcontroladores Freescale QG08 utilizados esta configurado para usar la codificacin estandar de palabras de 8 bits, sin bit de inicio ni paridad (sin embargo puede ser configurado de forma diferente) y en lo que a l respecta mientras se mantengan los niveles de voltajes adecuados y esa codificacin de la seal (recordando que esta debe estar a 2700 bps) la seal es la adecuada y puede tanto recibirla como enviarla sin que importe el puerto de la computadora a usar, as futuras versiones podrn eliminar el bloque interaccin con RS-232 y poner cualquier otro, por ejemplo USB, Bluetooth, Wifi, etc. Lo mismo aplica para la comunicacin con el robot donde puede eliminarse el bloque de comunicacin infrarroja usado actualmente para sustituirlo por uno de radio frecuencia por ejemplo.

Para poder hacer esto sin embargo hay que mantener las conexiones bsicas de los microcontroladores para que estos se comuniquen entre s y puedan traducir las seales provenientes de la computadora y enviarlas al robot, estas conexiones pueden verse en la tabla 4.9 y tabla 4.10.

Si se crea un programa computacional adecuado incluso puede eliminarse el modulo de comunicacin y pueden enviarse las ordenes directamente hacia el robot, esto quita las limitantes propias de dicho modulo y nos daran un mximo de 256 ordenes que el robot (previa programacin) podra realizar. El nico requerimiento de este programa computacional ser que pueda procesar el protocolo especificado en la tabla 4.4 y que enve a R.A.S. los siguiente cdigos

29

para las ordenes existentes o las respectivas a las nuevas ordenes programadas:

Ordenes Mover Girar Izquierda Recoger Toquen Depositar toquen

Micro2 a Micro3 Con sensores Sin sensores #$40 #$50 #$60 #$70 #$43 #$53 #$63 #$73

Micro3 a Micro2 #$45, Error o #$48 (Toquen detectado) #$55 o Error #$65 o Error

#$75, Error o #$78 (Token en bolsa) Tabla 4.8 Cdigos de ordenes reconocidos por el R.A.S.

4.10 Conexin de los microcontroladores dentro del modulo de control

Para referencia se presentan las tablas que indican que va conectado a cada pin de los microcontroladores dentro del modulo de control:

Microcontrolador1 Pines Reset No utilizable Vcc Referencia No conectado 1 16 Rx paralelo (A pin 16 Mic2) 2 15 Rx paralelo (A pin 15 Mic2) 3 14 Rx paralelo (A pin 14 Mic2) 4 13 Rx paralelo (A pin 13 Mic2) 5 12 Rx de seal de PC Tx de seal a PC

Tx paralelo (A pin 6 Mic2) 6 11

Tx paralelo (A pin 7 Mic2) 7 10 Tx paralelo (A pin 10 Mic2) Tx paralelo (A pin 8 Mic2) 8 9 Tx paralelo (A pin 9 Mic2) Tabla 4.9 Conexiones del microcontrolador1

30

Microcontrolador2 Pines Reset No utilizable Vcc Referencia No conectado 1 16 Tx paralelo (A pin 16 Mic1) 2 15 Tx paralelo (A pin 15 Mic1) 3 14 Tx paralelo (A pin 14 Mic1) 4 13 Tx paralelo (A pin 13 Mic1) 5 12 Rx de seal de robot Karel Tx de seal a robot Karel

Rx paralelo (A pin 6 Mic1) 6 11

Rx paralelo (A pin 7 Mic1) 7 10 Rx paralelo (A pin 10 Mic1) Rx paralelo (A pin 8 Mic1) 8 9 Rx paralelo (A pin 9 Mic1) Tabla 4.10 Conexiones del microcontrolador2

4.11 Esquema elctrico actual

En la pgina siguiente podemos ver el esquema elctrico de nuestro modulo de transmisin:

31

Figura 4.3 Circuitera del modulo de comunicacin

32

CAPTULO 5 USO DEL MICROCONTROLADOR FREESCALE QG08 EN EL ROBOT AUTNOMO SALVADOREO

5.1 Introduccin:

El microcontrolador es el cerebro del robot y su modulo de comunicacin, dentro de l est el programa que controla y coordina a todas las funciones del R.A.S. (Robot Autnomo Salvadoreo) para que este sea capaz de ejecutar las ordenes que se le indiquen a travs del modulo de comunicacin conectado a la computadora, como su nombre lo indica es capaz de controlar a travs de sus pines a diferentes dispositivos, en el presente trabajo se ha hecho uso del perifrico de comunicacin serial para manejar la transmisin y recepcin de datos y del perifrico de entradas y salidas digitales para controlar la informacin proveniente de los sensores y a los actuadores respectivamente, indirectamente se hace uso del perifrico temporizador para controlar la velocidad de transmisin.

Aunque existen muchos microcontroladores en el mercado se hace uso del Freescale QG08 ya que posee los perifricos necesarios para la aplicacin, as como la robustez y confiabilidad que garantizan el funcionamiento continuo del R.A.S. al mismo tiempo que se cuenta con una interfaz de prueba en la cual ya se tienen implementados perifricos que ayudan al momento de desarrollar los programas e incluso poseen la caracterstica de sincronizar un programa computacional con el microcontrolador de tal forma que se puede tener un control total sobre la ejecucin del programa en el microcontrolador y as determinar su comportamiento ya dentro de este.

A lo largo de este captulo se explicar el funcionamiento de cada perifrico, su aplicacin dentro del robot, la forma en que se coordinan los diferentes dispositivos ante cada orden, las caractersticas propias del proceso y sus limitantes. Con esta informacin y con la contenida en posteriores captulos se podr modificar a R.A.S. para aadirle nuevas funcionalidades o mejorar las actuales.

5.2 Conexin de los microcontroladores dentro del R.A.S.

En el R.A.S. se utilizan microcontroladores Freescale QG08 en su presentacin PDIP-16, y como se explicar ms adelante cada uno de sus pines tiene una funcin especfica. Es por esto que antes de continuar se presentan dos tablas donde se pueden ver las conexiones de los microcontroladores y se puede comenzar a tener una idea de las funciones que desempea cada uno dentro del robot.

33

Se hace notar que ms adelante en este captulo no se hace referencia nuevamente a los pines especficos sino a lo que est conectado a ellos. Sin ms que decir se presentan las tablas de conexin: Microcontrolador3 Pines Reset No utilizable Vcc Referencia Sensor de proximidad derecho Sensor de toquen en bolsa 1 16 Sensor de colocacin 2 15 Rx paralelo (a pin 15 Mic4) 3 14 Rx paralelo (a pin 14 Mic4) 4 13 Tx paralelo (a pin 13 Mic4) Rx serial Tx serial 6 11

Sensor de proximidad izquierdo 5 12

7 10 Sensor de toquen inferior

Motor de deposito 8 9 Motor de recoleccin Tabla 5.1 Conexiones del microcontrolador3

Microcontrolador4 Pines Reset No utilizable Vcc Referencia Sensor de lnea derecho Motor derecho (Lnea A) 1 2 3 4 6 7 16 Control de sensores activables 15 Tx paralelo (a pin 15 Mic3) 14 Tx paralelo (a pin 14 Mic3) 13 Rx paralelo (a pin 13 Mic3) 12 Rx serial 11 Sensor de proximidad frontal 10 Motor derecho (Lnea B)

Sensor de lnea izquierdo 5

Motor derecho (Lnea B) 8 9 Motor izquierdo (Lnea A) Tabla 5.2 Conexiones del microcontrolador4

Se puede observar que se han utilizado todos los pines disponibles en ambos microcontroladores lo que limita a futuras versiones del robot en la implementacin de nuevos sensores, sin embargo haciendo uso de la imaginacin pueden presentarse nuevas formas de que el robot realice sus funciones y as aprovechar an ms la configuracin actual.

5.3 La configuracin de los microcontroladores QG08 en el robot R.A.S.

Al referirse a R.A.S. siempre se hace una distincin entre este y el modulo de comunicacin del cual se ha hablado con anterioridad. Los circuitos del robot son los que han llevado ms trabajo ya que en l se incluyen diferentes tipos de sensores, circuitos reguladores de voltaje, circuitos de potencia y circuitos de control digital donde se incluyen los microcontroladores.

34

La gran limitante de los microcontroladores no es lo que internamente pueden hacer sino su capacidad de interactuar con el medio, los microcontroladores QG08 poseen nicamente 16 pines que se dividen entre pines exclusivos de alimentacin, pin de reset y otro pines especiales que no pueden ser utilizados en ningn momento, es por esta razn que se solvent este problema poniendo dentro del robot dos microcontroladores, cada uno programado de forma diferente para que entre ambos lograran desempear las tareas que se le asignara al robot y que se comunican entre s.

En el momento de la ejecucin cada microcontrolador analiza si el cumplimiento de la orden le corresponde segn los dispositivos que tenga conectado, as por ejemplo si el microcontrolador4 tiene conectado a sus pines el control de los motores de avance este reconocer que debe ejecutar la orden mover. Otras ordenes ms complejas implican que ambos microcontroladores las realicen en conjunto, es por esto que la sincrona entre ambos debe ser perfecta, de lo contrario el robot tendra comportamientos errticos y fuera de control.

Para comenzar a desarrollar esta idea se presenta a continuacin la forma en que estn conectados ambos microcontroladores dentro del robot:

Figura 5.1 Esquema del modulo de control en el R.A.S.

Se puede observar que nicamente el microcontrolador3 esta conectado al transmisor serial lo que lo convierte en el encargado de monitorear todo el funcionamiento del robot para enviar su estado al modulo de comunicacin que posteriormente lo enviar a la computadora, asimismo es el encargado de manejar los protocolos de comunicacin que se describirn ms adelante, por otro lado el microcontrolador4 solo puede recibir las ordenes e informarle al primero cuando haya completado sus funciones.

Algo ms que hay que notar es que aunque se intent que cada microcontrolador pudiera realizar ordenes de forma independiente algunas que implican subrutinas ms complejas (como por ejemplo recoger toquen que implica retroceder, censar el toquen, recoger y volver a la posicin

35

inicial) deben ser realizadas por ambos microcontroladores trabajando en paralelo como si fueran uno solo, es por esto que se establecen tres pines de comunicacin serial entre ellos mediante los cuales se podr hacer que todo el bloque se comporte adecuadamente. Para lograr que dos microcontroladres se comporten como uno solo es necesario que las subrutinas estn coordinadas a la perfeccin y que la comunicacin sea lo ms simple posible para lograr que sea de alta velocidad; As en los literales siguientes ya no se hace referencia individual a los microcontroladores dentro del robot sino que se les trata como uno solo capaz de cumplir con las ordenes recibidas recibiendo la informacin de los sensores y controlando todas las funciones a travs de los actuadores.

Para el resto de este capitulo ya no se menciona al modulo de comunicacin sobreentendiendo que cuando se mencione que se enva una orden desde la computadora hacia el robot y viceversa se har a travs de este.

5.4 Recopilacin de la informacin

Como se mencion en captulos anteriores el robot est equipado con los siguientes sensores de tipo digital:

Sensor de proximidad frontal. Sensor de proximidad lateral derecho Sensor de proximidad lateral izquierdo Sensores inferiores para deteccin de lnea Sensor inferior para deteccin de toquen Sensor inferior para depsito

Los cuales le informan al microcontrolador el estado del mundo que lo rodea.

Para que el microcontrolador sea capaz de recibir esta informacin es necesario activar en l el perifrico de entradas y salidas digitales, de esta forma tendremos hasta 10 pines de entrada que podremos usar para conectar los diferentes sensores (el microcontrolador posee 10 pines de entrada o salida que podemos utilizar en su presentacin de PDIP-16 y 5 pines en su presentacin PDIP-8).

Como es de esperarse hay que respetar ciertos requerimientos propios del microcontrolador, en este caso las seales deben ser de menos de 3 voltios DC para no daarlo (Para mayor informacin consultar las caractersticas elctricas del microcontrolador en el Anexo A), asimismo la seal debe estar presente por al menos 0.3 milisegundos desde el momento en que se decide

36

leerla (Se tiene un control total sobre la forma en que el microcontrolador lee la informacin proveniente del exterior a travs de sus pines y aunque posee la funcin de reaccin instantnea a esta informacin se ha escogido un modelo lineal de programacin que especifica que la informacin solo es recibida en ciertos momentos predeterminados).

En tiempo de ejecucin los sensores de proximidad son controlados con una salida digital de tal forma que no estn activados todo el tiempo, de esta forma se evitan interferencias entre estos y los receptores de seales; por otro lado los dems sensores funcionan de forma continua. Se sobreentiende que un funcionamiento continuo de los sensores presenta un desperdicio de energa, sin embargo por la gran cantidad de entradas y salidas a manejar fue imposible incluir dentro de estas una salida que controlara a estos sensores, por otro lado si estos funcionan de forma continua el robot es capaz de estar censando su entorno y si este cambia repentinamente podr enviar la informacin ms actualizada a la computadora si esta lo requiere.

Teniendo en mente todo lo anterior se observa que existe la necesidad de filtrar las seales tiles para la orden que se esta cumpliendo en ese momento, para esto se hace un barrido de todas las seales de los sensores directamente en el microcontrolador y se hace un filtrado digital de aquellas que no sean necesarias.

5.5 Uso de la informacin de los sensores en las subrutinas

Sensores de lnea: Los sensores de lnea estn ubicados en la parte inferior del robot y funcionan de forma continua, estos estn posicionados de tal forma que enven un uno lgico en su posicin de reposo y un cero lgico cuando detecten la lnea, su informacin es utilizada en todas las subrutinas que impliquen movimientos hacia delante o atrs y con su informacin el microcontrolador ajusta el movimiento de los motores de tal forma que el robot siempre se mantenga sobre la lnea, como funcin auxiliar estos sensores indican al microcontrolador cuando se ha alcanzado una esquina (al haber una lnea que cruza a la que el robot esta siguiendo ambos sensores presentarn un estado lgico de cero) para que este apague los motores y quede esttico en este punto. Esta funcin de deteccin de esquina es usada en las subrutinas de mover recoger toquen y depositar toquen.

Sensor de deteccin de toquen: Este sensor es utilizado como su nombre lo indica para detectar la presencia de los toquen que el robot puede recoger, si se est ejecutando la orden Mover y el sensor indica la presencia de un toquen este estado se guarda en un registro interno que es consultado al recibir la orden recoger toquen (si durante la orden Mover no se detect toquen alguno se enva un error al recibir la orden recoger toquen; este registro es utilizado tambin para responder la pregunta Existe toquen para recoger?); por otro lado

37

durante la orden Recoger toquen este sensor es utilizado para alinear el dispositivo de recoleccin del robot con el toquen a recoger.

Sensor inferior para depsito: Por requerimientos propios del diseo del chasis del robot es necesario que se utilice este sensor para alinear el dispositivo de depsito con las esquinas donde debe ser depositado, su informacin es utilizada durante la orden depositar toquen y le indica al microcontrolador cuando el dispositivo de depsito esta en la posicin adecuada.

Sensor de proximidad frontal: La informacin de este sensor es utilizada durante la orden mover como medida de seguridad para evitar colisiones, una vez que el micro ha detectado un uno lgico en este sensor detiene inmediatamente los motores de avance y enva la seal de error correspondiente a la computadora. Como funcin alternativa se puede responder a la pregunta Frente bloqueado? usando la informacin de este sensor.

Sensores de proximidad laterales: La informacin de estos sensores es utilizada nicamente para responder las preguntas izquierda bloqueada? y derecha bloqueada?, no se usa en ninguna otra subrutina.

5.6 Control de motores

El control de motores se hace a travs de circuitera capaz de manejar las corrientes necesarias para hacer funcionar dichos motores, esta circuitera reacciona a entradas digitales de baja corriente (seales de control enviadas por el microcontrolador) y posee salidas que pueden manejar varios amperios, la funcin del microcontrolador es la de coordinar a los motores para cumplir la orden recibida.

Como se pudo ver en el captulo anterior la computadora solamente enva la orden, pero no enva instrucciones de como ejecutar dicha orden, es por esto que los microcontroladores estn programados con las instrucciones especficas para ejecutarlas.

5.7 Lgica interna del R.A.S.

Se entiende por lgica interna el programa que contienen los microcontroladores que posee el R.A.S. y que coordinan el funcionamiento de este, esta se divide en subrutinas las cuales se ejecutan dependiendo de la orden recibida.

El proceso general a seguir consta de varias subrutinas de monitoreo que hace que el robot regrese siempre a estados conocidos y que nunca se lleguen a ciclos en los cuales el

38

microcontrolador pierda el control de lo que esta sucediendo, asimismo las subrutinas son tales que nunca se entra en ciclos infinitos que evitaran que el robot pudiera cumplir nuevas ordenes. Otra caracterstica importante es que siempre se informa a la PC del estado del robot, ya sea que este no pueda cumplir la orden recibida o que no se reconozca la orden que se le ha enviado; a continuacin podemos ver un flujorama que explica mejor esta idea:

Figura 5.2 Flujorama general de ejecucin de ordenes

Dentro de los pasos Recibir orden e Informar a PC se ejecutan los protocolos comunicacin descritos anteriormente; dentro de paso Ejecutar orden recibida se encuentran las diferentes subrutinas descritas a continuacin:

Subrutina mover: La subrutina mover esta diseada para funcionar estrechamente ligada con los sensores inferiores seguidores de lnea, la dependencia de estos no pudo ser eliminada dado que el diseo mecnico del dispositivo requiere de correccin de trayectoria para lograr ir en lnea recta; una vez recibida la orden se activan los motores de desplazamiento al mismo tiempo, en este punto los sensores de lnea se encuentran sobre la lnea que va perpendicular a la que se tiene que seguir por lo que la correccin de giro es imposible en este punto, una vez superada est lnea se activa la correccin de giro para estabilizar al robot de tal forma que cuando un sensor detecte que esta sobre la lnea a seguir se apagar el motor de ese lado para corregir la trayectoria, una vez que el sensor deja de detectar la lnea se vuelve a encender el motor correspondiente para continuar con una trayectoria normal; al llegar a la otra esquina los sensores se encontrarn con otra lnea perpendicular a la que se est siguiendo y

39

esto indicar que se ha llegado a la siguiente esquina, terminando la subrutina, sin embargo en cualquier momento puede encontrarse una obstruccin en el camino que obligara a detener toda ejecucin e informar sobre el fallo a la computadora. Por ultimo se establece un tiempo mximo de 45 segundos para ejecutar la orden, si se supera este tiempo se sobreentiende que el robot es incapaz de desempear su trabajo por alguna razn y se informar a la computadora. Se sintetiza lo anterior en el siguiente flujorama:

Figura 5.3 Flujorama de orden mover

Subrutina depositar toquen:El robot es capaz de alinear su sistema de depsito de tal forma que los toquen sean depositados sobre la esquina (cruce de las lneas que el R.A.S. debe seguir durante su movimiento), para esto se realiza un avance (que incluye correccin de giro) hasta que el sensor inferior para depsito detecta la esquina, al alcanzar este punto se apagan los motores de movimiento y se activa el motor que controla el depsito de toquens, una vez depositado el toquen se realiza un retroceso (que incluye correcin de giro) hasta que los sensores seguidores de lnea determinan que se ha alcanzado la esquina nuevamente, al llegar a esta punto se apagan todos los motores y termina la subrutina.

En el siguiente esquema se explica el proceso de mejor manera, dentro de el se hace uso de los bloques avanzar y retroceder haciendo referencia al movimiento controlado descrito anteriormente que incluye muchos de los elementos de la subrutina mover.

40

Figura 5.4 Flujorama de orden depositar toquen

Subrutina Recoger toquen: La subrutina recoger toquen casi igual a la rutina Depositar toquen ya que ambos dispositivos funcionan con un motor similar, por lo que el nico cambio entre ambas es que el modelo recoge el toquen en la parte frontal del dispositivo, por esto el primer movimiento debe de ser de retroceso, para saber cuando el toquen puede ser recogido se utiliza el sensor detector de toquen.

El siguiente esquema explica a su cabalidad el proceso:

Figura 5.5 Flujorama de orden Recoger Toquen

Subrutina girar: Para girar al robot los microcontroladores deben dar al motor izquierdo la orden de retroceder y al motor derecho la orden de avanzar, de tal forma que el movimiento resultante es un giro a la izquierda sobre el eje del robot, durante este giro los sensores de lnea siempre se mantienen sobre las lneas indicadoras de trayectoria y sobre una esquina por lo que su informacin no es relevante para el giro, en cambio se cuenta con el sensor en la parte posterior (que nos sirve para posicionar el dispositivo de depsito durante la subrutina depsitar toquen), que es en realidad de la misma naturaleza de los sensores detectores de

41

lnea, por lo tanto este sensor podr darnos la informacin necesaria.

Una vez activados los motores el sensor de toquen comienza detectando la lnea original donde se encontraba, posteriormente detecta que ya no hay lnea, al momento que este detecte nuevamente una lnea se asume que el robot ha realizado un giro de 90. A continuacin el esquema:

Figura 5.6 Flujorama de orden girar

Por otro lado el R.A.S. puede responder a ciertas preguntas que corresponden a los sensores que posee, estas preguntas se dividen en aquellas que son respondidas en tiempo real, es decir, aquellas que son respondidas por el estado del sensor correspondiente en ese momento y en aquellas que son respondidas a travs de registros especiales.

Al igual que las ordenes el microcontrolador hace uso de subrutinas para poder responder a las preguntas, estas se describen a continuacin:

Subrutina para responder preguntas con sensores: Las preguntas respondidas a travs de sensores son las siguientes:

Frente bloqueado? Izquierda libre? Derecha libre?

Estas son respondidas por el estado de los sensores correspondientes al momento de recibir la pregunta, sin embargo como se ver en otros captulos los sensores que corresponden a estas preguntas deben ser activados para obtener una lectura de ellos, es por esto que en el siguiente esquema se incluye la activacin de los sensores:

42

Figura 5.7 Flujorama de secuencia para contestar a preguntas

Dentro del bloque confirmar informacin recibida se activa nuevamente el sensor para confirmar que la informacin que este present originalmente es la correcta, se ejecutar este paso tres veces, si la informacin no puede ser confirmada con dos lecturas iguales consecutivas entonces se considera que la informacin no es vlida y se enviar un cdigo de error a la computadora.

43

CAPTULO 6 LA CIRCUITERA DEL R.A.S. 6.1 Introduccin

El producto principal a ser desarrollado por el presente trabajo de graduacin es el robot R.A.S., como su nombre lo indica este debe ser un dispositivo autnomo, capaz de ejecutar ordenes en tiempo real, con cierta capacidad de adaptacin y que funcione con su propia energa.

A lo largo del proceso de desarrollo y al ir aumentando los requerimientos lgicamente se fue aumentando la complejidad de los circuitos por lo que fue necesario adoptar un diseo modular de los mismos, llegando a poder diferenciar exactamente las partes que conforman al robot y que unas interacten con las otras de forma que trabajen como una sola.

Es por este diseo que el robot R.A.S. (producto de este trabajo de graduacin) podr seguir siendo desarrollado en el futuro, por ejemplo, cambindole la tarjeta de sensores o cambiando la tarjeta de control de motores, incluso en el presente captulo se explica cmo mantener la estructura ms bsica del robot de tal forma que pueden cambiarse los transmisores y receptores y toda la configuracin de la tarjeta de control por lo que R.A.S. puede usarse como una herramienta educativa para estudiantes de electrnica.

6.2 Requerimientos

Como requerimientos mnimos que el robot debe cumplir se tienen los siguientes:

Ejecutar las cuatro rdenes principales: mover, girar, recoger toquen y depositar toquen. Comunicacin full dplex con el software Karel: esto se logra a travs del modulo de comunicacin descrito en otros captulos.

Informar a la computadora sobre errores encontrados en tiempo de ejecucin. Facilidad de uso. Uso continuo de al menos 1 hora sin cambio de bateras y Uso de rutinas que no dependan del tiempo de ejecucin.

Como requerimientos secundarios se tienen:


Capacidad para responder ciertas preguntas sobre el entorno que rodea al R.A.S. Poseer puntos de control e indicativos de buen funcionamiento. Circuitos de control adaptables a diferentes dispositivos (no dependientes del hardware actual).

45

Uso eficiente de la energa. Esttica en los circuitos y buena presentacin visual.

Se puede decir que la versin actual del R.A.S. cumple a cabalidad con todos estos requerimientos.

6.3 El diseo modular del R.A.S.

El R.A.S. se compone de 4 tarjetas (mdulos) principales:

Tarjeta de control: en ella estn localizados los microcontroladores que sincronizan todo el proceso, circuitera para que estos funcionen y algunas protecciones para los mismos, esta tarjeta es el cerebro del R.A.S.

Tarjeta de comunicacin inalmbrica: este componente, como su nombre lo indica, incluye el transmisor y receptor de la seal proveniente del modulo de comunicacin conectado a la computadora y est construido de tal forma que module la seal proveniente de la Tarjeta de control as como demodular la seal entrante para una correcta comunicacin.

Tarjeta de sensores: como se explicar ms adelante el R.A.S. posee diferentes tipos de sensores, cada uno con un control y funcionamiento particular, sin embargo sus salidas son de tipo digital y se han ajustado para su conexin directa con la tarjeta de control. En esta tarjeta se ha puesto la circuitera necesaria.

Control de motores: esta tarjeta fue diseada para los requerimientos de los motores de avance del R.A.S. (Motores de corriente directa) pero es controlada a travs de seales digitales provenientes de la tarjeta de control.

6.3.1 La tarjeta de control

La tarjeta de control es la que proporciona las seales hacia los actuadores dependiendo de las seales obtenidas en los sensores. En esta tarjeta es donde se encuentran la alimentacin del R.A.S., el switch de encendido, los microcontroladores, los reguladores de los niveles de voltaje y seguidores de voltaje (AO), el control de los motores de recoleccin y depsito, as como borneras que nos permitirn conectar las dems tarjetas; el diagrama elctrico se muestra en la Figura 6.1.

46

Figura 6.1- Diagrama de la tarjeta de control del R.A.S. Los microcontroladores QG08 trabajan a un voltaje no mayor a 3.3V para ello se han colocado diodos Zener de 3V para regular el voltaje a la entrada de estos y as evitar daarlos con

sobrevoltajes; adems como proteccin para los QG08 se coloca un amplificador operacional contenido en el integrado LM324 (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) con la configuracin como seguidor de voltaje. En la figura 6.2 se muestra un amplificador operacional que con la salida realimentada directamente a la entrada inversora constituye lo que se denomina un seguidor de voltaje (la salida es igual a la entrada).

47

Figura 6.2- Configuracin de un AP como seguidor de Voltaje

El nico camino a tierra para el voltaje de entrada es a travs de la alta resistencia de entrada del amplificador, de modo que el seguidor de voltaje hace una buena etapa de aislamiento entre la fuente de voltaje y la carga.

Tambin se incluye el control de los motores de recoleccin y depsito de toquen, los cuales estn controlados con el integrado L293B (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) el cual est conectado a 9V y es un driver para 4 canales cuyas ventajas son las siguientes:

El control de los Drivers es compatible con seales TTL es decir con 5 voltios (se habla de seales lgicas).

Cada canal es capaz de entregar hasta 1A de corriente. Posee una entrada de alimentacin independiente que alimenta los 4 Drivers, es decir la que requieren los motores.

Proteccin contra sobretemperaturas Proteccin interna contra sobretensiones producidas por cargas inductivas Alta inmunidad al ruido.

La alimentacin de los canales del driver L293B est conectada a un transistor BD140 (transistor PNP, mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) el cual es controlado por otro circuito integrado (el TL494, mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) que sirve para el control de la velocidad de los motores de recoleccin y deposito de toquen; con este integrado se hace un PWM que es un modulador de velocidad por ancho de pulsos y que bsicamente consiste en enviar a los terminales de control un tren de pulsos los cuales varan en mayor o menor medida el tiempo en

48

que se mantiene el nivel alto de esos pulsos, manteniendo la frecuencia constante mediante el uso de una resistencia variable o potencimetro, con esta forma de control la cantidad de corriente sigue siendo la misma, la tensin no vara y en consecuencia el torque del motor se mantiene, que es justamente lo que se esta buscando.

Motores-CC (Motores de Corriente Continua) Los dos motores utilizados son de 3 a 5V DC y su consumo es de 50mA por motor aproximadamente. Son los ms comunes y econmicos, y pueden encontrarse en las tiendas de electrnica o en la mayora de los juguetes a pilas, constituidos, por lo general, por dos imanes permanentes fijados en la carcasa y una serie de bobinados de cobre ubicados en el eje del motor, que habitualmente suelen ser tres. El funcionamiento se basa en la interaccin entre el campo magntico del imn permanente y el generado por las bobinas, ya sea una atraccin o una repulsin hacen que el eje del motor comience su movimiento. Se hace uso de transistores 2N2222 (transistores npn, mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) para alimentar los mdulos restantes.

Porque se usan los transistores? Un transistor funciona como amplificador cuando la corriente de base oscila entre cero y un valor mximo. En este caso, la corriente de colector es mltiplo de la corriente de base. Si aplicamos a la base de un transistor una seal de corriente con una forma determinada obtendremos una corriente de colector mayor y proporcional a la seal aplicada. Y de esta manera controlamos grandes corrientes con seales de baja corriente aplicadas a la base del transistor.

Sistema de alimentacin: Cul ser su fuente de energa principal? Al rescate vienen toda una gama de bateras que se pueden usar, casi cualquier batera recargable ya sea de gel, NiCad, NiH, ion de litio como las usadas en los telfonos celulares, etc., hoy en da su costo ha disminuido tanto que podemos esforzarnos y comprar aquella que cumpla con las expectativas de durabilidad y costo, pero como la finalidad es la simplicidad se har uso del clsico porta pilas para seis unidades AA de 1.5V, esto nos dar en total los 9 V necesarios para

49

alimentar al R.A.S., si se elige cualquier otra procuraremos que los voltajes que entreguen sean cercanos a ste ya que se usa lgica TTL y algunos otros dispositivo que son poco tolerantes a variaciones de voltaje cercanos al indicado, si se diera el caso de usar alguna batera de mayor voltaje lo indicado es utilizar un regulador de voltaje de 9 Voltios.

6.3.2 Tarjeta de comunicacin inalmbrica y Tarjeta de sensores

Como se puede ver estos dos mdulos han sido impresos en la misma tarjeta para hacer uso apropiado del espacio y as reducir el tamao de la circuitera. Esta etapa es la que se encarga de informarle al modulo de control lo que sucede a su alrededor, as como tambin de comunicarlo con el modulo de control que se encuentra en la PC. Aqu se encuentra el mdulo de comunicacin (recepcin y transmisin), as como tambin el circuito del Timer 555 (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) con su configuracin como astable que se usa para generar la seal a 40KHz para la transmisin; adems se encuentran todos los circuitos que controlan los 8 sensores que posee el R.A.S. los cuales se mencionan a continuacin:

Dos sensores seguidores de lnea o detectores de esquina Un sensor de toquen en bolsa Un sensor de toquen inferior Un sensor de alineacin o giro del R.A.S. Tres sensores de proximidad (frontal, derecha e izquierda).

50

COMUNICACIN INALAMBRICA Transmisin y Recepcin. TECNOLOGIA INFRARROJA (IR) Para hacer una breve descripcin de lo que es una radiacin infrarroja, imaginemos la luz del sol, pues esta contiene todas las bandas de colores con las cuales se compone la luz blanca (conocido como espectro de emisin de luz), ahora, en los extremos del espectro se encuentra la radiacin infrarroja (IR) y la ultravioleta (UV), ambas son imposibles de ver, es decir son invisibles, pero estn presentes y nosotros las vamos a poner en evidencia. En algunos casos una vez

establecida la comunicacin entre emisor y receptor, es posible realizar una transmisin de datos. Las comunicaciones inalmbricas son interesantes desde todos los puntos de vista y en todos los mbitos tecnolgicos. El fin principal que persigue la Robtica Mvil es la creacin de sistemas completamente autnomos y un grado de autonoma puede ser la comunicacin entendida en un sentido amplio. Existen varias tecnologas que nos van a permitir el establecimiento de comunicaciones inalmbricas del tipo de las mencionadas pero en este documento nos vamos a centrar en las comunicaciones mediante infrarrojos que, por ejemplo, van a servir para enviar y recibir seales al R.A.S. Las ideas que aqu se comentan tambin pueden utilizarse para la construccin de sensores de deteccin de obstculos sin ms que cambiar la disposicin y colocacin de los elementos emisor y receptor. Recepcin Vamos a comenzar por definir y comentar la parte de la recepcin de la seal infrarroja ya que, por un lado, es sumamente sencilla de conectar a un micro controlador y, por otro, es la que nos va a obligar a disear y ajustar los circuitos que necesitamos en la parte de la emisin. Para la recepcin vamos a utilizar un dispositivo que unifica en el mismo encapsulado el receptor de luz infrarroja, una lente y toda la lgica necesaria para distinguir seales moduladas a una determinada frecuencia. Concretamente, en este montaje utilizaremos los receptores

PL-IRM0101-3 (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) que se activan cuando reciben una luz infrarroja modulada a una frecuencia de 40 kHz (el haz infrarrojo se apaga y enciende 38000 veces por segundo). Esto los hace compatibles con un gran nmero de mandos a distancia de electrodomsticos. Sus caractersticas principales son: 1.-Se alimentan con un voltaje de 5 Volts. 2.-Incorporan un filtro ptico que slo permite el paso de la radiacin infrarroja centrada en el rango de 900 NM.

51

3.-Incorporan a su vez un filtro electrnico lo cual permite la deteccin de un determinado ancho de banda, la cual est centrada de 38 a 40kHz. 4.-Su tamao es pequeo en comparacin del circuito que tendramos que realizar y por consiguiente, slo tres terminales de conexin. 5.- Presenta a su salida un estado alto si no hay presencia de seal, en caso de haber seal y que sta sea modulada su estado cambia a bajo. 6.- Su salida nos proporciona una seal sin ruido alternando entre estado alto y bajo, lo que lo hace ideal para conectarla directamente a dispositivos de lgica TTL o CMOS. Aunque el patillaje es diferente entre los distintos fabricantes y deber consultarse en el datasheet correspondiente antes de realizar cualquier conexin, en todos los casos nos vamos a encontrar tres patas: una que conectaremos a Vcc, otra que lo haremos a tierra y una tercera, Vout, por la que obtendremos diferentes niveles si se recibe o no la seal infrarroja. El receptor infrarrojo se coloc viendo hacia arriba en la antena porque de esta forma poda captar las seales infrarrojas provenientes desde arriba en cualquier direccin, con un ngulo no mayor a 30, colocada a su alrededor. Cuando el receptor y el emisor estn colocados de frente directamente se midi que la seal se captaba desde una distancia de 3 a 4 metros y con un ngulo de aproximadamente 30. Para el emisor infrarrojo slo tenemos que usar un modulador que podemos implementarlo con un astable con 555 a una frecuencia cercana a 40 kHz.

Transmisin Una vez resuelto el problema de la recepcin, vamos a centrarnos en la otra parte del sistema: la emisin. Ya hemos mencionado que los receptores utilizados son sensibles a la mayor parte de los mandos de infrarrojos de electrodomsticos. Eso nos puede ayudar en la fase de pruebas de la recepcin e incluso utilizar el mando para enviar rdenes al robot. Como se dijo antes, el objetivo es establecer una comunicacin entre dos dispositivos, un robot (R.A.S.) y un ordenador. Por lo tanto, vamos a utilizar un montaje basado en un circuito integrado muy conocido y utilizado: el 555 en su configuracin como astable (ver figura 6.3) para hacer que el circuito funcione a una frecuencia de 40KHz. A continuacin se muestra el circuito de transmisin y recepcin en la figura 6.4

52

Figura 6.3- Diagrama de la configuracin del timer 555 como astable

Figura 6.4- Diagrama de circuitos y vista real del transmisor y receptor del R.A.S.

53

Sensores. Seguidores de lnea: Es el mdulo ms sencillo de implementar, su funcin principal es seguir una lnea dibujada en una mesa o el piso y que sea de algn color contrastante con el rea circundante la cual puede ser una lnea negra sobre fondo blanco y puede presentar curvas o trayectos rectos que el R.A.S. deber seguir sin salir de la misma. La sencillez del mismo radica en que se necesita slo dos sensores para poder discernir hacia dnde es la orientacin de avance con respecto de la lnea y as el mvil retorne a la ruta en caso de que se desve. Los motores tienen que ser de corriente continua y habr que fabricarles una reductora si no disponen de ella para mover las ruedas, contra ms grandes sean las ruedas, mas velocidad alcanzara el robot, aunque no hay que pasarse con el dimetro de estas porque si no en las curvas se saldr de trayectoria, unos 6 cm. es lo ideal. Los sensores estn en la parte de debajo del R.A.S. e irn dispuestos mirando al suelo y a unos 3 o 4 mm de separacin desde el suelo a la superficie del sensor y la separacin entre ambos sensores ser para que quede dentro de la lnea negra que vayamos a usar como trayectoria. Para este caso se ha utilizado dos servos trucados de manera que queden solo los motores CC con la reductora osea sin circuito de control pero se puede usar cualquier motor de CC de unos 5 o 6 voltios y que no consuma demasiado para no agotar las pilas o bateras demasiado deprisa. El trazado lo podremos hacer sobre una cartulina blanca y para trazar las lneas usar cinta aislante negra. La PCB de los sensores se muestra en la figura 6.5
Colocar Toquen

Seguidores de Lnea

Figura 6.5. Diagrama del circuito y vista real de los sensores seguidores de lnea y el sensor de colocar toquen.

54

FUNCIONAMIENTO

El funcionamiento es el siguiente, los ojos de nuestro mvil sern el sensor EE-SY201 (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) que aparte de ser barato, en el mismo encapsulado se encuentra un emisor y un fototransistor el emisor se

polariza a travs de una resistencia de 680 Ohmios y en el receptor el fototransistor se conecta va una resistencia y un diodo Zener para lograr los 3V que van al micro controlador, cuando el receptor capte reflexin circular a travs de l una corriente proporcional al nivel de radiacin incidente, ese flujo de corriente provocar en el resistor una cada de voltaje donde el nivel de ste depender si la reflexin la provoca una superficie clara u oscura.

Lgicamente, la mayor reflexin ser presente cuando el sensor cruce por alguna rea clara y en donde se presente la lnea oscura ser menor, de esta manera podremos diferenciar cuando est sobre la lnea y cuando se desve de su camino a seguir. Cuando tenga los dos sensores viendo claro, los 2 motores estarn en marcha con lo que el robot avanzara en lnea recta, ahora bien si el llega a una curva y supongamos que el sensor izquierdo entra en la lnea negra entonces provocara que el motor izquierdo se desactiva con lo cual el robot girara a izquierda (como un tanque) sacando de este modo el sensor izquierdo de la lnea negra para el caso contrario pasa lo mismo pero con el otro motor y sensor.

Calculo de la resistencia limitadora de corriente:

Por qu es necesaria la resistencia en serie con el LED? Los LED por construccin soportan una determinada corriente a travs de ellos, al aadir la resistencia disminuimos la corriente que circula por ellos, adecundola en cada caso a lo especificado por el fabricante.

Cmo se calcula la resistencia? Para calcular la resistencia nos basamos en la ley de Ohm y en que todos los componentes de una misma rama (agrupacin de componentes en serie), circula la misma corriente. Si colocamos en serie una resistencia, esta limitar el paso de corriente, es decir, la corriente que pase por la resistencia ser la que pase por el LED.

55

Adems hay que tener en cuenta que toda la tensin sobrante a de caer en la resistencia. Como tenemos estos dos datos, la corriente que ha de circular por la rama y la tensin que ha de caer en la resistencia, podemos utilizar la ley de Ohm, que nos dice la relacin entre ambos valores, la resistencia:

V=I*R

=>

R=V/I

Siendo I la corriente que queremos que pase por el LED y V la diferencia de tensin entre la alimentacin y la tensin umbral del LED.

Para ello es necesario saber las tensiones umbrales tpicas de los LED segn su color: Rojos = 1.8V Verdes= 2.3V Azules = 3.8V Amarillos = 2.4V Infrarrojos = 1.5V

Para nuestro caso se necesita de 1,8V a 4V y una corriente de 5mA a 15mA mximo por lo tanto se utiliza el mnimo consumo en los LED y se toma 5mA para calcular la resistencia a utilizar, y el voltaje oscila entre 3V y 3,5V entonces asumimos un promedio de 3,3V y al hacer el clculo de la resistencia nos da un valor de 660 Ohmios pero en el mercado la que mas se aproxima a esta es la de 680Ohmios por lo tanto para los LED se ha utilizado resistencias de este valor.

Sensor de Toquen en bolsa La ubicacin de este sensor es en parte donde se acumulan los toquen en el R.A.S. y la funcin de este es de informar al micro controlador la existencia de toquen en la bolsa o depsito del R.A.S. (ver figura 6.6), el sensor es el mismo usado en los seguidores de lnea por lo tanto los toquen deben ser color blanco o de un material reflectivo para que este pueda detectar la presencia o ausencia de estos.

Figura 6.6- Diagrama del circuito y vista real de sensor de toquen en bolsa

56

Sensor de Colocar toquen Este se encuentra ubicado en la parte de abajo del robot al igual que los seguidores de lnea (Ver figura 6.5) con la diferencia que esta al centro del R.A.S. y sirve para detectar la presencia de toquen si los hay en las esquinas del mundo Karel y as informar al micro controlador para que este pueda recoger o depositar un toquen si no se encuentra ninguno en la esquina, debido a que en el mundo fsico del R.A.S. no puede depositarse toquen sobre toquen.

Sensor de alineacin o giro de R.A.S. Este sensor se encuentra ubicado en la parte de atrs del R.A.S. y est viendo hacia abajo a una distancia de 3 o 4 mm y es el que se encarga de detener al robot a la hora de hacer giros a la izquierda en las esquinas (ver figura 6.7). Cuando este detecta la cinta negra a la hora de un giro, enva la seal al micro controlador para que este desconecte los motores y as se detenga exactamente a los 90 en la esquina y luego quede alineado para seguir la lnea a la hora de dar un mover o un nuevo giro.

Figura 6.7- Diagrama del circuito y vista real del sensor de alineacin o giro de R.A.S.

Sensores de proximidad El propsito es detectar obstculos sin la necesidad de tener un contacto fsico con ellos, para eso recurrimos a sensores infrarrojos por reflexin ( ver figura 6.8), llamados tambin Bumpers, para referirnos a ellos lo haremos de la manera ms sencilla y prctica, si bien se puede implementarse con dispositivos de fcil adquisicin la problemtica es el ajuste de los mismos. En estos sensores se ha usado el SHARP GP1U7 (mayor informacin consultar la datasheet incluida en el CD adjunto en el presente trabajo) que es un receptor de IR el cual viene modulado a 40KHz y como emisor se ha usado un IR que se ha modulado a una frecuencia de 40KHz. La colocacin es simple, lo recomendable es un emisor por cada sensor, colocarles cables para que lleguen a los sensores y deben colocarse a su costado para que no tengan funcionamiento

57

errtico, pueden intentarse colocarse con un ligero ngulo para poder restringir un poco ms la distancia. Para eso pueden hacer pruebas variando el ngulo y llegar a la colocacin mas idnea, en caso de colocarlos en paralelo la distancia de deteccin es alrededor de 15 a 20 cm, esto puede variar por el tipo de sensor y emisor a usar. Se Deben colocar en algn lugar estratgico del mvil, en la parte frontal del mvil con el detector o ventana del sensor apuntando hacia el frente, y los otros dos uno a la izquierda y otro a la derecha. Como el emisor est modulado cuando la seal se refleje en algn obstculo el sensor entregar una seal modulada como respuesta.

GP1U7

LED IR

Figura 6.8- Diagrama de circuito y vista real de sensores de proximidad de R.A.S. El circuito donde van conectados todos los sensores y que el controla el voltaje y corriente de todos los sensores, tambin incluye la recepcin de seales de todos los sensores para luego enviarlas al circuito de control, donde se encuentran los microcontroladores se muestra a continuacin en la figura 6.9:

Figura 6.9- Diagrama de sensores del R.A.S.

58

6.3.3 Modulo de control de motores En esta oportunidad se presenta la unidad de potencia, necesaria para poder traducir las seales provenientes de los sensores en seales elctricas que tengan la potencia suficiente como para poder mover los motores de nuestro prototipo. La mayor parte de los motores que se utilizan en un robot giran demasiado rpido y no tiene el torque suficiente, es por eso que es recomendable o casi imprescindible utilizar una caja de piones reductora. Esta permite transformar un pequeo motor rpido, pero poco potente, en un motor mas lento pero con mejor torque. En esta etapa no slo necesitamos que active a nuestros motores y proporcione la corriente necesaria, tambin necesitamos las prestaciones para que pueda invertir el sentido de circulacin de corriente a travs de nuestros motores y que pueda avanzar en ambos sentidos, para ello recurrimos a las prestaciones del puente H

FUNCIONAMIENTO DE UN PUENTE H El armar el circuito completo del puente H necesita algo ms que cuatro transistores, necesita resistencias limitadoras, tambin necesita diodos de proteccin puesto que los motores en s son una carga inductiva que provoca regresiones de voltaje que pueden daar a algunos circuitos, adems de que los transistores deben estar debidamente seleccionados para el monto de corriente necesaria, eso sin contar el espacio que ocuparn, el costo, etc. Lo importante es simplificar el trabajo y no convertir al R.A.S. en un autntico Frankestein, para ello se recurre al CI L293B cuyo uso se ha extendido debido a su bajo costo y su ahora facilidad de conseguirse en el mercado electrnico. En un nico encapsulado doble en lnea tiene dos circuitos puente H completos, con la capacidad de poder manejar cargas de hasta 2 A, entrada de habilitacin (enable) de cada puente H que es til para manejar PWM, diodos de proteccin integrados, adems de que acepta a su entrada niveles lgicos TTL de hasta 7V mximos de amplitud. Dependiendo de la configuracin, es capaz de manejar dos motores independientes con su respectivo control de inversin de sentido o hasta cuatro motores en un solo sentido de giro, como podrn apreciar no slo es verstil, sino que reduce en gran medida a nuestra etapa de potencia y es simple de usar, y su costo es una fraccin de lo que gastaramos en armar a su contraparte de manera discreta, prcticamente conctese y sese. Aqu se incluye el CI TL494 que se usa para la modulacin de velocidad por pulsos (PWM).

59

A continuacin se presenta el diagrama de conexin del circuito de control en la figura 6.10:

Figura 6.10- Diagrama de potencia o control de motores de avance del R.A.S.

60

CAPTULO7 CONSTRUCCINYSISTEMADECABLEADODELOSMODULOSDELR.A.S.
7.1 Creacin de las PCB (Printed Circuit Board)

Para esta parte del proyecto se utiliza el programa PCB Wizard

el

cual

es un programa

diseado para el mbito educativo que permite crear esquemas de circuitos electrnicos y a partir de estos obtener, de una manera sencilla, el diseo del circuito impreso a una o dos caras. Adems, es compatible con archivos generados con Crocodile Clips.

Pasos para el diseo de las PCB:

Despus de hacer las pruebas en las protoboard y cuando se tiene la seguridad del buen funcionamiento del circuito se crean los diagramas en el programa LIVEWIRE tomando en cuenta la potencia de las resistencias (ya que estas cambian el tamao segn su potencia), circuito. al igual que los diodos Zener, transistores y todo elemento que incluya el

Al haber diseado por completo el diagrama se hace uso del programa PCB Wizard, en este se de la el tamao de la placa (si se requiere doble cara tambin se puede hacer), luego se ordenan los elementos dependiendo las necesidades y la ubicacin que se requiera para cada elemento; el siguiente paso es uno de los mas complicados que es el enrutar las lneas en la placa.

Luego de haber terminador el enrutamiento de lneas y el ordenamiento de todos los elementos que se incluirn en la placa se procede a la impresin del circuito para

posteriormente transferirlo a las placas donde se disear y se soldaran los elementos finales.

Para hacer la transferencia haremos uso del mtodo conocido como "Mtodo de la plancha", pues se utiliza una plancha convencional (de las empleadas para planchar la ropa) para transferir el tner de una impresin lser o fotocopia a una placa de circuito impreso virgen. El papel utilizado para la transferencia fue el papel Couch que es el utilizado para hacer revistas y es un papel blanco brillante.

Al finalizar el proceso se obtienen circuitos impresos de gran calidad; para el proyecto se obtuvieron diferentes mdulos de circuitos independientes que actan en conjunto.

61

7.1.1 Modulo de control del R.A.S. Como se menciono antes aqu es donde esta el control o cerebro del Robot Autnomo

Salvadoreo (R.A.S.).

Figura 7.1- Diagrama de pistas del mdulo de control del R.A.S.

Para los mdulos se utilizaron placas a dos caras, en la figura 7.1 las lneas verdes van en el lado de arriba en la placa donde van los elementos y las lneas rojas van en la parte de abajo.

Despus de haber soldado y colocado cada elemento en su lugar se obtiene como resultado la siguiente placa con la dimensiones de 4,5 x2,5 (ver figura 7.2):

Figura 7.2- vista real de la placa del mdulo de control

62

7.1.2 Modulo de sensores y transmisin del R.A.S.

Este es el modulo donde se encuentran los seguidores de lnea, sensores de toquen, de giro, de proximidad y la parte de transmisin y recepcin del R.AS (ver figura 7.3). En l las borneras o conectores estn ubicadas de tal manera que al colocar esta placa sobre la placa de control estas quedan en la misma direccin, esto se hace para evitar desordenes de cableado y facilitar el armado a la hora de ensamblar los mdulos.

Figura 7.3-Diagrama de pistas del mdulo de sensores y transmisin del R.A.S.

La PCB final con todos sus elementes ordenados y terminada se muestra a continuacin en la figura 7.4 y sus dimensiones son 4,5 x2,5:

Figura 7.4- Vista real del modulo de sensores y transmisin de R.A.S.

63

7.1.3 Modulo de potencia del R.A.S.

Esta es la parte de control de potencia donde se controla el movimiento de los motores ya sea avance o giro, tambin se usa para desplazar el robot a la hora de recoger o depositar para alinear los respectivos sistemas con las esquinas del mundo.

El diagrama del circuito impreso es el de la figura 7.5 y al igual que los anteriores las rutas verdes son las que van en la parte de arriba de la placa (donde estn los elementos) y las rutas rojas son las que esta en la parte de abajo de la PCB.

Figura 7.5- Diagrama de pistas del mdulo de potencia de R.A.S.

En esta placa se puede apreciar la diferencia del grosor de las rutas y esto se debe a que las rutas de mayor espesor son las de mayor potencia, es decir, es donde circula mayor cantidad de corriente y por lo tanto se necesita una mayor rea de cobre.

La presentacin final o real de este modulo es el de la figura 7.6 cuyas dimensiones son 4,5 x2,5:

Figura 7.6- Vista real del mdulo de potencia de R.A.S.

64

7.2 Ensamblado del R.A.S.

R.A.S. consta de tres mdulos los cuales deben interactuar entre ellos de forma que trabajen como un solo mdulo. Para hacer el ensamblado de estos se siguen los siguientes pasos:

1. Se debe identificar y diferenciar claramente entre los tres mdulos para poder comenzar el ensamblado, despus de tener claro y haber identificado cada placa o mdulo se irn armando uno despus del otro como se indica en los siguiente pasos, tambin se incluye una tabla con los colores de los cables; estos pueden cambiarse pero respetando el lugar donde van a ir conectados.

2. El primer modulo es el modulo de sensores (ver figura 7.7), aqu es donde se debe conectar el circuito de transmisin y recepcin con el de control a travs de las tres primeras lneas que se encuentran a la derecha de la placa, luego se conectan los ochos sensores que posee el R.A.S. (los conectores correspondientes a los sensores son todos los que se encuentran a la derecha e izquierda del robot), cada sensor tiene diferentes colores de cables para diferenciarlos entre ellos y a la vez estn numerados los pines para conectarlos adecuadamente, tambin se deben conectar los cables que se encuentran en el centro de este que son con los que se alimenta desde el modulo de control.

Asimismo se deben conectar los cables que envan las seales de cada sensor a los microcontroladores que se encuentran el en modulo de control; para facilitar las conexiones el lector o lectora puede hacer uso del diagrama de conexin que se muestra a continuacin:

IR
Pizq

IR
Pfron

Ref

Seal Prox

+ 5V

Seal

Led

+ 5V

Ref

Seal Prox

+ 5V

Seal

Led

+ 5V
Lin Izq Pfron Tok Inf Pizq

PT A0

+ - Col 5V Ref Tok

Pder Tok Bolsa Lin Der

Tx Rx

+ Led 5V

Seal Pder

IR

+ 5V

Seal Prox

Ref

+ Led 5V

Seal

+ Led 5V

Seal

Figura 7.7 - Identificacin de las borneras en el modulo de sensores y transmisin del R.A.S.

65

El cable utilizado para hacer la conexin es muy flexible y delgado, adems se puede adquirir en cualquier tienda electrnica de el pas; este puede sustituirse por cualquier otro tipo de cable con diferente color pero de preferencia que sea flexible ya que es mas fcil de manejar y tiene mayor inmunidad a cortes por fatiga. En la tabla 7.1 se muestra el color correspondiente a cada conector.

CONECTOR Tx Rx +5V de sensores Led Seal IR Pder, IR Pizq, IR Pfron Seal Prox Ref PTA 0 +5V -Ref Col Tok, Lin izq, Pfron, Tok inf, Pizq, Pder, Tok bolsa, Lin der

COLOR DE CABLE Naranja con blanco Naranja con blanco Rojo con blanco Blanco Verde claro Blanco con negro naranja Caf Morado Rojo Negro Verde oscuro

Tabla 7.1- Colores del sistema de cableado del modulo de sensores y transmisin del R.A.S.

3. Despus de haber terminado las conexiones de los cables en el modulo de sensores el siguiente paso es colocar el modulo de control del robot (ver figura 7.8) sobre el de sensores; para evitar el contacto directo entre las placas y evitar cortocircuitos se hace uso de pequeos tubos plsticos que se encuentran espaciados a una distancia de 2.2cm.

Las partes que comunican esta placa con la de sensores se encuentran ubicados en la parte de atrs del robot, ah se encuentran siete lneas que transmiten las seales de siete sensores desde la placa correspondiente, la alimentacin y otros dos cables que se encuentran en el lado derecho van conectadas a las borneras del centro de la placa de sensores, los tres conectores que se encuentran al principio de la fila derecha son los de comunicacin con la PC y vienen de la placa de sensores, por ltimo los conectores de la izquierda de esta placa son lo que van a ir conectados a la placa de potencia ( ver figura 7.9) o control de motores que es la ltima placa que se coloca en el R.A.S.

66

Para no cometer errores a la hora de conectar se deben verificar los colores de los cables y nmeros que corresponden a cada conector y adems hacer uso del diagrama de control y recordar que todos los conectores se encuentran en la misma direccin excepto el de lnea derecha y el de toquen inferior que se encuentran cruzados, es decir, el de lnea esta en direccin de el de toquen inferior y viceversa y los que alimentan la placa de sensores que son los de la derecha de la placa de control.

En esta placa se encuentra el control de los motores de recoleccin y deposito, por lo que los conectores correspondientes se encuentran uno a la derecha y el otro a la izquierda. Para facilitar la conexin se hace uso del siguiente sistema de cableado que posee la misma lgica que los otros mdulos:

+ -

+ 9V

PT PT PT PT B2 B3 B5 B4 Ref
Tok Inf Pfron Lin Izq

+ 9V

Pizq Pder Tok Bolsa Lin Der

Tx Rx

- +

PT A0

+ - Col 5V Ref Tok

Figura 7.8- Diagrama de identificacin de las borneras en el modulo de control del R.A.S.

67

La siguiente tabla 7.2 muestra los colores de los cables utilizados actualmente y el conector en el que deben colocarse:

CONECTOR Tx Rx +9V - (negativo) PTA 0, PTB2, PTB3, PTB4, PTB5 + motores (positivo) - motores (negativo) +5V -Ref Col Tok, Lin izq, Pfron, Tok inf, Pizq, Pder, Tok bolsa, Lin der

COLOR DE CABLE Naranja con blanco Naranja con blanco Rojo Negro morado rojo negro Rojo Negro Verde oscuro

Tabla 7.2- Colores del sistema de cableado del modulo de control del R.A.S.

4. Finalmente se coloca la placa de potencia o control de motores, esta es la mas simple y la menos confusa a la hora de conectar ya que solo se debe conectar las borneras de la parte izquierda con el modulo de control, aqu es donde se encuentra la alimentacin del circuito y el control de los motores de avance. 5. Las borneras restantes que se encuentran en la parte de atrs son las que se utilizan para conectar los dos motores de avance de R.A.S. y por ultimo las dos borneras que se encuentran al centro de esta placa son las que alimentan a los motores a la hora de ejecutar una accin. A continuacin se muestra el diagrama de conexin en la figura 7.9:

68

+ PT PT PT PT 9V B2 B3 B5 B4 Ref

+ 9V

+ +

Figura 7.9- Diagrama de identificacin de las borneras en el modulo de potencia del R.A.S.

La tabla siguiente:

de conexin de los cables para el circuito de potencia o control de motores es la

CONECTOR +9V - (negativo) PTB2, PTB3, PTB4, PTB5 + motores (positivo) - Motores (negativo) - Ref

COLOR DE CABLE Rojo Negro morado rojo negro Negro

Tabla 7.3- Colores del sistema de cableado del modulo de potencia del R.A.S.

7.3 Pruebas realizadas a circuitos utilizando una fuente de 9V con capacidad de 500mA:

La corriente que consume el circuito de control sin sensores y sin el circuito de control de los motores de avance es de 120 mA y el voltaje cae de 9V a 8.8V

La corriente con el circuito de control de motores es de 160mA y el voltaje cae de 8.8V a 7.8V por lo tanto el consumo del circuito de control es de 40mA. Al poner carga al circuito

69

de control de los motores no afecta al circuito que lo alimenta, la corriente se mantiene en 160mA, esto se debe a que las fuentes del circuito de control y la de los motores, son independientes.

Al colocar tres sensores (toquen en bolsa, colocar toquen y toquen inferior) la corriente aumenta hasta 170mA.

Despus de colocar los tres sensores de proximidad el consumo de corriente se incrementa a 180mA

Finalmente al colocar los dos ltimos sensores que son los seguidores de lnea, la corriente que consume el circuito con todos los sensores conectados es de 190mA.

Los motores solo funcionan a la hora de que el robot ejecuta ordenes y el consumo de estos es de 30mA para cada motor de recoleccin y depsito y el de los motores de movimiento es de 80mA por cada uno.

Los Led infrarrojos que lleva la antena del robot solo funcionan al comunicarse con la computadora de lo contrario estos se encuentran apagados, funcionamiento estos tienen un consumo de 140mA. pero al entrar en

Por lo tanto la corriente mxima que consume el R.A.S. se da a la hora de mover ya que los dos motores de avance consumen en conjunto una corriente de 160mA; si a esto se le aade el consumo de la circuitera del R.A.S. nos da un consumo total de 350mA, de lo contrario el robot tiene un consumo mnimo de 190mA.

El circuito que va en el lado de la computadora consume una corriente total de 60mA.

7.4 Materiales utilizados y casa proveedora

7.4.1 Modulo de potencia o control de motores:

Los elementos utilizados en este modulo, su cantidad, y la casa proveedora donde se adquirieron se muestran en la tabla siguiente:

70

NOMBRE Resistencia 100Ohmios Capacitos de 10nF Conectores de 3 Transistor pnp BD140 Resistencia de 51 KOhmios Capacitor electroltico 1microF Resistencia de 330Ohmios Potenciometro de 10KOhmios CI PWM TL494 CI L293B Placa de 2,5 x 4,5 Estao (yardas) Bases de 16 pines Percloruro(bolsita) Papel couch (pliegos)

CASA PROVEEDORA Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Radio Parts Casa Rivas Casa Rivas Josnab Papelisa

CANT. 1 1 5 1 2 2 3 1 1 1 1 10 2 1 3

Tabla 7.4 - Elementos utilizados en el modulo de Potencia

7.4. 2 Modulo de sensores y transmisin:

Los elementos utilizados en este modulo, su cantidad, y la casa proveedora donde se adquirieron son los siguientes en la tabla siguiente:

NOMBRE Resistencia 1.3Kohmios Resistencia 100Ohmios Capacitos de 10nF Resistencia de 1Kohmios Conectores de 3 Transistor npn 2222A Capacitor electroltico 47microF Capacitor electroltico 1microF Resistencia de 330Ohmios Resistencia de 680Ohmios CI inversos 74LS04

CASA PROVEEDORA Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas

CANT. 1 6 2 1 16 1 1 2 10 9 1

71

CI AND 74LS08 Diodos Zener 3V Diodos 1N4007 Led Led Infrarrojo Timer 555 Placa de 2,5 x 4,5 Estao (yardas) Receptor de IR Bases de 14 pines Bases de 8 pines Percloruro(bolsita)

Casa Rivas Casa Rivas Casa Rivas Casa Rivas Electrnica 2001 Casa Rivas Radio Parts Casa Rivas Electrnica 2001 Casa Rivas Casa Rivas Josnab

1 8 3 1 1 1 1 10 1 2 1 1

Tabla 7.5 - Elementos utilizados en el modulo de sensores y transmisin

7.4.3 Mdulo de control del R.A.S.:

Los elementos utilizados en este modulo, su cantidad, y la casa proveedora donde se adquirieron, se presentan en la tabla siguiente:

NOMBRE Resistencia 51Kohmios Resistencia 100Ohmios Capacitos de 10nF Resistencia de 1Kohmios Potenciometro de 10Kohmios Conectores de 3 Transistor npn 2222A Transistor pnp BD140 Resistencia de 51 Ohmios Capacitor electroltico 1microF Resistencia de 330Ohmios Switch de encendido Switch Reset Microprocesador QG08 CI OPAM LM324

CASA PROVEEDORA Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Casa Rivas Importado Casa Rivas

CANT. 2 2 1 3 1 10 1 1 1 2 6 1 1 2 1

72

CI PWM TL494 CI L293B Diodos Zener 3V Diodos Zener 5V Placa de 2,5 x 4,5 Estao (yardas) Bases de 14 pines Bases de16 pines Percloruro(bolsita) Cables (yardas)

Casa Rivas Casa Rivas Casa Rivas Casa Rivas Radio Parts Casa Rivas Casa Rivas Casa Rivas Josnab Casa Rivas

1 1 2 1 1 10 1 4 1 7

Tabla 7.6 - Elementos utilizados en el modulo de Control del R.A.S.

7.5 Soluciones a problemas y recomendaciones para desarrollar trabajos de electrnica

Problema mecnico a la hora de recoger toquen debido a que el imn quedaba en posicin de recoger, la solucin fue sugerir al grupo de mecnica que colocaran una contrapesa a 180 grados para que esto haga que el imn que en la posicin de arriba y as evitar recoger toquen innecesariamente.

Falta de torque en los motores para poder mover al R.A.S. y alto consumo de corriente (3A). Solucin: Primero se diseo una placa capaz de alimentar motores de hasta 4A haciendo uso de transistores de potencia y diseando un puente H para poder realizar la inversin de giro de motores a la hora de los giros a la izquierda del robot, pero surgi el problema de que las bateras debido al alto consumo de corriente deban ser demasiado grandes, por otro lado si se colocaban bateras pequeas estas duraran no ms de 20 minutos en uso; por lo tanto se opto por cambiar los motores por unos de bajo consumo de corriente (60 mA) y agregar engranes para aumentar el torque y disminuir la velocidad de este. La forma ms practica de hacer eso fue comprar dos servomotores y modificarlos, eliminando el circuito de control y dejando solo los motores DC as mismo fue modificado el sistema de engranes eliminando el truncado ya que los servomotores tienen limite de giro y al eliminar el tope este se vuelve con giro indefinido.

Un problema que se presento al utilizar el PCB Wizard fue a la hora de imprimir las dos caras de las PCB: para imprimir el lado de arriba de estas (donde van los elementos), el programa manda la impresin invertida y no hay forma de resolver este problema utilizando PCB Wizard; por lo tanto se hace uso de programas auxiliares ya sean de diseo grafico o

73

cualquier programa en el que se pueda invertir la imagen, y haciendo uso del print screen o imprimir pantalla (para obtener el mximo tamao de la imagen y no perder la calidad de las rutas) se pega en el nuevo programa, se recorta la imagen y se lleva al tamao original para poder imprimirla y as quede del mismo tamao que la cara del lado de debajo de la PCB.

Interferencia entre transmisin de la PC y el R.A.S. debido a que siempre estaban encendidos los LED Infrarrojos ya que el estado de reposo para el protocolo RS-232 es de uno y se producan fallos en la comunicacin debido a que las seales siempre se sobreponan una a la otra perdiendo los datos contenidos; para resolver este problema se tuvo que hacer uso de los microprocesadores QG08, haciendo encender los led IR solo a la hora de transmitir y que estn apagados a la hora de que estn recibiendo las seales los receptores Sharp GP1U7.

A la hora de quemar las PCB se debe usar suficiente percloruro para obtener un mejor resultado de las PCB; esto ayuda a que las placas se quemen rpidamente ya que al estar mucho tiempo sumergidas tienden a desgastarse demasiado y las pistas o rutas se empiezan a adelgazar y es posible que se corten, adems de que la corrosin contina despus de quemadas las placas y dado que el percloruro se impregna demasiado en ellas y continua haciendo su efecto de oxidacin.

Despus de que las placas estn completamente quemadas, la mejor forma de quitar el tner o tinta es usando un poco de gasolina ya que esta disuelve fcilmente el tner, as como la tinta permanente de los plumones que se utilizan para corregir o hacer pistas.

74

RECOMENDACIONES

Hacer uso de tecnologas como la tecnologa de montaje superficial. El montaje superficial se presta para un alto grado de miniaturizacin de los circuitos, los elementos utilizados estn mecnicamente rediseados para ser soldados directamente a la superficie de los circuitos impresos y son mucho ms pequeos que los elementos comunes, asimismo el uso de componentes en ambos lados de las tarjetas permite una densidad de componentes mucho mayor reduciendo el costo en materia prima y aumentando las tasas de produccin. Estos dispositivos pueden reducir su tamao entre una cuarta a un dcima parte y su costo entre la mitad y la cuarta parte a la vez que su potencia disipada disminuye muchsimo comparada con componentes comunes.

Es recomendable hacer uso de bateras recargables para evitar el gasto continuo en las bateras comunes, incluso puede agregarse al robot un paquete de bateras recargables y un circuito que las sea capaz de cargarlas sin moverlas del robot

Disear placas que utilicen otros mtodos de conexin y que usen menos cables, ya que el mtodo utilizado en este proyecto, aunque permita la expansin posterior, implica demasiados cables y los conectores tienen que conectarse uno a uno existiendo la posibilidad de confundir las borneras o equivocarse a la hora de hacer las conexiones entre placas, a la vez que es posible que existan falsos en los conectores al no apretar bien los pernos o que estos se desconecten fcilmente por el movimiento.

Actualmente los microcontroladores trabajan individualmente aunque se mantienen coordinados entre s, esto es deseable ya que as se logran mayores velocidades de ejecucin, se evita la falla generalizada del sistema y la flexibilidad es mayor, sin embargo esto implica una programacin ms compleja de las rutinas y de la sincronizacin. Si el objetivo es una programacin ms sencilla se recomienda el uso de un esquema de master y esclavo al momento de programar los microcontroladores.

Se recomienda un sistema de acceso al equipo de laboratorio diferente al actual ya que se encontr que se puede pasar ms tiempo buscando al encargado que el que pueda considerarse aceptable a la vez que no existe una lista accesible a los estudiantes que diga quien es el encargado de cada laboratorio. Un mejor acceso a los equipos permitira que los estudiantes se enfocarn ms en sus pruebas que en acceder a los equipos para realizarlas.

75

Se recomienda que las tesis multidisciplinarias sean coordinadas por una solo director al cual todos los grupos deban entregarle sus resultados, esto mejorara la coordinacin intergrupal, aumentara la velocidad del proyecto y se descubriran los errores mucho ms rpido.

Se debe considerar que para que un grupo funcione adecuadamente los integrantes de este deben poseer conocimientos complementarios, sin embargo el nivel acadmico de dichos integrantes debe ser similar para que ningn grupo entregue resultados inferiores en su rama comparados con los de los dems grupos, haciendo que todo el proyecto se vea de calidad inferior. Dado que la suma de las partes crea un producto la idea sera que la creacin de dichas partes sea de calidad equitativa entre todos los grupos.

Disear y agregar los circuitos que indiquen si el RAS tiene batera baja para reemplazarlas; as como tambin LED que indiquen y enciendan a la hora de transmitir o recibir seales el robot.

76

CONCLUSIONES

Con todo lo trabajado en el proyecto se observ que el campo de aplicacin de los robots ya sean mviles o no, es muy extenso y un solo proyecto puede crecer tanto como la creatividad, el conocimiento, el tiempo y el recurso econmico lo permita, dejando el presente proyecto como base para futuros proyectos de mayor complejidad y aplicabilidad dentro la propia facultad.

La orientacin del proyecto demostr que es posible la creacin de nuevas tecnologas utilizando elementos disponibles en el mercado local, as queda demostrado que no hay excusa para ser un pas que nicamente importa tecnologa sino que se posee el potencial necesario para desarrollarla.

El Robot Autnomo Salvadoreo se considera como la base para la creacin de un sistema complejo capaz de realizar funciones mucho ms avanzadas que las que el lenguaje Karel puede acceder, a la vez que su diseo modular lo posiciona como un sistema flexible y adaptable a diferentes situaciones y no nicamente al entorno didctico.

El sistema de transmisin por infrarrojos fue totalmente diseado para la aplicacin, sin embargo puede aplicarse para transmisin de datos de forma serial a velocidades de 500 bits por segundo a distancias de hasta 5 metros. Su costo lo hace una opcin a considerar dado que otros sistemas de transmisin pueden ofrecer distancias similares a mucho mayor precio.

77

78

REFERENCIAS ELECTRNICAS

http://es.wikipedia.org/wiki/Regulador_de_tensi%C3%B3n http://www.unicrom.com/Tut_reg_con_zener.asp http://www.doctronics.co.uk/555.htm http://www.ucontrol.com.ar/wiki/index.php?title=Como_construir_tus_propios_PCB http://es.wikipedia.org/wiki/Circuito_impreso#Serigraf.C3.ADa http://www.x-robotics.com/robots_simples.htm

79

80

BIBLIOGRAFA

Malvino Albert Paul [2000] Principios de Electrnica, 6 Ed., Cap 5, pag 155 169; Cap. 6,7,8; Cap. 18,pag. 712 716 y Cap 23, Pg. 973-985.

81

ANEXO A CARACTERSITICAS ELCTRICAS DEL QG08

CARACTERSITICAS ELCTRICAS DEL QG08

En la hoja de datos del microcontrolador QG08 se detalla a mayor profundidad cuales son las caractersticas elctricas del microcontrolador (puede consultarse dicha hoja de datos en el disco adjunto al presente trabajo, en la carpeta Freescale dentro de la carpeta datasheet), sin embargo se considera pertinente dejar constancia de aquellas ms importantes.

Parmetro Voltaje de alimentacin Temperatura

Smbolo Mnimo Tpico Mximo Vdd 1.8 -40 3.6 85

Unidad Voltios DC C

Tabla A1 Rango de operacin del QG08

Parmetro Voltaje de rearmado (reset) Entrada 1 Lgico (Con Vdd mayor a 2.3 Vdc) Entrada 1 Lgico (Con Vdd entre 1.8 y 2.3 Vdc) Entrada 0 Lgico (Con Vdd mayor a 2.3 Vdc) Entrada 0 Lgico (Con Vdd entre 1.8 y 2.3 Vdc) Histresis de entrada Corriente de fuga Salida 1 Lgico Corriente de salida por pin Corriente de salida total

Smbolo Vpor Vih Vih Vil Vil Vhys Iln Voh Ioh Ioht

Mnimo 0.7 x Vdd 0.85 x Vdd

Tpico 1.4

Mximo

Unidad Voltios DC Voltios DC Voltios DC

0.35 x Vdd 0.30 x Vdd 0.06 x Vdd 0.025 Vdd 0.5 3 6 10 60 1.0

Voltios DC Voltios DC Voltios DC Micro Amperios Voltios DC Mili Amperios Mili Amperios

Tabla A2 Voltajes y corrientes de operacin del QG08

El usuario debe tener en cuenta todos estos datos al momento de utilizar el QG08 dentro de sus circuitos respetando tanto mnimos como mximos de voltaje y corriente; de no hacer esto el microcontrolador puede autoprotegerse hasta cierto lmite, pero incluso esta proteccin no es infalible y puede daarse.

A- 1

ANEXO B CONEXIN RECOMENDADA PARA EL QG08

CONEXIN RECOMENDADA PARA EL QG08

Aunque no es necesario conectar al microcontrolador QG08 de la forma descrita a continuacin esta es la que se recomienda en la hoja de datos (consultable en el disco adjunto al presente trabajo en la carpeta Freescale dentro de la carpeta Datasheet) y evita muchos problemas a la hora de poner a trabajar al microcontrolador. Una explicacin completa de cada elemento y el por qu de su ubicacin debe buscarse directamente en la hoja de datos.

Figura B1 Conexiones recomendadas para el QG08

En la figura se puede observar que solo se mencionan los nombres de cada pin del QG08, a continuacin se presenta la ubicacin fsica de cada uno de estos pines en la presentacin DIP16 del microcontrolador:

B-1

Figura B2 Pines del QG08

B-2

Vous aimerez peut-être aussi