"diseño mecatrónico de un robot utilizado en la enseñanza de

107
UNIVERSIDAD CENTROAMERICANA “JOSÉ SIMEÓN CAÑAS” "DISEÑO MECATRÓNICO DE UN ROBOT UTILIZADO EN LA ENSEÑANZA DE PROGRAMACIÓN COMPUTACIONAL" TRABAJO DE GRADUACIÓN PREPARADO PARA LA FACULTAD DE INGENIERÍA Y ARQUITECTURA PARA OPTAR AL GRADO DE INGENIERO ELECTRICISTA POR: CARLOS ROBERTO CHÁVEZ LÓPEZ ELÍAS MISAEL GUZMÁN FRANCO OCTUBRE 2008 ANTIGUO CUSCATLÁN, EL SALVADOR, C.A.

Upload: nguyencong

Post on 12-Feb-2017

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: "diseño mecatrónico de un robot utilizado en la enseñanza de

UNIVERSIDAD CENTROAMERICANA

“JOSÉ SIMEÓN CAÑAS”

"DISEÑO MECATRÓNICO DE UN ROBOT UTILIZADO EN

LA ENSEÑANZA DE PROGRAMACIÓN

COMPUTACIONAL"

TRABAJO DE GRADUACIÓN PREPARADO PARA LA

FACULTAD DE INGENIERÍA Y ARQUITECTURA

PARA OPTAR AL GRADO DE

INGENIERO ELECTRICISTA

POR:

CARLOS ROBERTO CHÁVEZ LÓPEZ

ELÍAS MISAEL GUZMÁN FRANCO

OCTUBRE 2008

ANTIGUO CUSCATLÁN, EL SALVADOR, C.A.

Page 2: "diseño mecatrónico de un robot utilizado en la enseñanza de

RECTOR

JOSÉ MARÍA TOJEIRA, S.J.

SECRETARIO GENERAL

RENÉ ALBERTO ZELAYA

DECANO DE LA FACULTAD DE INGENIERÍA Y ARQUITECTURA

EMILIO JAVIER MORALES QUINTANILLA

COORDINADOR DE LA CARRERA DE INGENIERÍA ELÉCTRICA

OSCAR ANTONIO VALENCIA MONTERROSA

DIRECTOR DEL TRABAJO

ELMER ALEXANDER MELARA

LECTOR

OSCAR ANTONIO VALENCIA

Page 3: "diseño mecatrónico de un robot utilizado en la enseñanza de

AGRADECIMIENTOS

Se agradece a Dios todopoderoso por permitirnos recorrer este camino que nos lleva a ser

profesionales y por darnos la bendición de la educación.

A nuestros padres y hermanos, los cuales con su esfuerzo, paciencia y apoyo nos han ayudado a

recorrer este camino que no hubiéramos podido concluir sin su ayuda.

A Benjamín Guzmán y a Margarita Guzmán por el apoyo incondicional que nos brindaron durante

el desarrollo del trabajo.

A nuestros amigos de la carrera de Ing. Eléctrica que nos apoyaron dándonos animo y

brindándonos 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 Electrónica y de la Subdirección

de Intercambio Estudiantil de la Universidad Iberoamericana de México D.F. Cuyas enseñanzas,

apoyo y cariño fueron claves durante el año 2007 para uno de los integrantes del grupo y se ven

reflejadas en este trabajo de graduación.

Carlos R. Chávez y Elías M. Guzmán

Page 4: "diseño mecatrónico de un robot utilizado en la enseñanza de
Page 5: "diseño mecatrónico de un robot utilizado en la enseñanza de

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 Chávez y Mirna de Chávez, 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 sería la persona que soy. Les

dedico este trabajo porque es también suyo y porque sin ustedes nunca podría haber sido

completado.

A mi hermano, José Fernando Chávez, porque aunque seas menor que yo me enseñas muchas

cosas día con día y me apoyas tanto como papá y mamá, porque hemos pasado mucho juntos y

vamos a pasar mucho juntos también y por tener la paciencia necesaria durante todo lo que duró

este proyecto y en general porque no sos solo mi hermano sino también mi amigo.

A Carlos Bonilla y Lidia de Bonilla, a quienes llevo en mi corazón.

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

A mi abuela paterna quien me enseña que la Fé es lo más importante de la vida.

A todos mis tíos y tías 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 pequeño fueron poniendo en mi las bases que

ahora sustentan mi carrera.

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

Carlos R. Chávez

Page 6: "diseño mecatrónico de un robot utilizado en la enseñanza de
Page 7: "diseño mecatrónico de un robot utilizado en la enseñanza de

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 acompañaron a

caminar por este sendero tan duro, pero a la vez muy grato.

Especialmente dedico este gran éxito a mis padres Pedro Guzmán e Hipolita Franco de Guzmán,

quienes me dieron a conocer el mundo, y que han sabido apoyarme siempre luego de tener éxito o

fracaso, quienes me han enseñado a diferenciar lo bueno de lo malo, los que siempre están

pendientes de mí cuando estoy cerca y lejos, a ustedes, los quiero con toda mi alma.

A mis familiares que están en el cielo, por escuchar mis oraciones cada vez que hablo con ellos,

por todo lo que han hecho por mí, siempre permanecerán en mi corazón.

A mis hermanos y hermanas, amigos y compañeros de clases que han vivido día a día 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 compañeros dejan parte de su vida, para dar vida a las

ilusiones de niño y que hoy en día 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.

Elías M. Guzmán

Page 8: "diseño mecatrónico de un robot utilizado en la enseñanza de

i  

RESUMEN EJECUTIVO

El proyecto Karel ha sido desarrollado durante los últimos dos años por el Departamento de

Electrónica e Informática (DEI) de la Universidad Centroamericana José Simeón Cañas (UCA);

este proyecto nace de la idea de estimular a los estudiantes de primer año de la carrera de Lic. En

Ciencias de la Computación que comienzan a entrar en el mundo de la programación

computacional al presentarles un lenguaje de programación 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 recibía 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 Ingeniería Eléctrica en coordinación con

estudiantes de la carrera de Ingeniería Mecánica y funcionaba aceptablemente aunque tenia

ciertas características que se querían mejorar como mejor consumo de energía y un movimiento

más suave. Es por esto que en el año 2008 se asignó a un grupo multidisciplinario la elaboración

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 programación 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 más allá y se incluyo la opción

de ejecutar estas ordenes con y sin sensores activados siendo la diferencia entre estas que las

ordenes sin sensores están basadas en tiempo y no existe corrección de los movimientos (por lo

que se depende únicamente del diseño mecánico) y las ordenes con sensores se basan en

secuencias de eventos a la vez que se tiene corrección de los movimientos gracias a sensores

instalados en el robot. El lenguaje también consta de 10 preguntas: ¿Existe comunicación con el

robot?, ¿El robot posee toquens en su bolsa de toquens?, ¿El robot esta viendo al norte, sur, este

u oeste?, ¿Existe alguna obstrucción al frente, a la derecha o izquierda del robot? Y ¿Hay algún

toquen que el robot pueda recoger en su posición actual?.

Para lograr esto se abordó el problema desde el punto de vista de la creación de nuevas

tecnologías y no de solo unir algunas ya existentes, respetando siempre que todos los elementos

utilizados estuvieran presentes en el mercado Salvadoreño. Así se logró diseñar y construir un

robot que cumplía con los requerimientos del proyecto Karel pero que a la vez posee un potencial

de desarrollo más grande que va más allá de lo que el lenguaje Karel puede explotar. Asimismo un

diseño modular permite que el mismo robot sirva como base para el desarrollo de nuevas

aplicaciones electrónicas. Al robot desarrollado se la llamó R.A.S. (Robot Autónomo Salvadoreño).

Page 9: "diseño mecatrónico de un robot utilizado en la enseñanza de

ii  

El diseño requiere sin embargo del uso de microcontroladores para la coordinación de todas las

funciones, para esto se escogió un microcontrolador de vanguardia en la UCA y que nunca había

sido utilizado en ningún proyecto anterior, este es el Freescale QG08 y posee un microprocesador

Motorola C68HC08 que corre a 8Mhz. Este microcontrolador tiene los periféricos necesarios para

lograr una adecuada comunicación con la computadora a la vez que controla a través de señales

digitales diferentes dispositivos, este microcontrolador es programado usando un software

propietario llamado “CodeWarrior” y una tarjeta de programación especial con código

DEMO9S08QG8.

Para que el R.A.S. sea capaz de recibir las ordenes provenientes de la computadora se utiliza un

modulo de comunicación que posee dos microcontroladores Freescale interconectados, el

microcontrolador1 es el encargado de manejar las señales 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 comunicación es así bidireccional. El

microcontrolador1 se comunica con la computadora a través 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 través de un sistema de transmisión y recepción infrarroja (diseñado

completamente para la aplicación) a una velocidad de 500 bits por segundo, entre ellos se

comunican a través de señales paralelas.

El robot en sí recibe las señales emitidas por este modulo de comunicación y las ejecuta haciendo

uso de dos microcontroladores Freescale interconectados. Dado que la presentación 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 mayoría de actuadores y el microcontrolador3 es el encargado de

obtener la información de la mayoría de sensores a la vez que es el que emite las señales de

respuesta hacia el modulo de comunicación. Este diseño permite tener una comunicación full

duplex y coordinar las funciones con lo que los usuarios ven en sus computadoras.

Los sensores que posee el robot están basados en reflexión óptica y se dividen en dos tipos

principales: aquellos que censan la reflexión de un haz de luz no modulado y aquellos que censan

la reflexión 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 línea

izquierdo, sensor detector de línea derecho, sensor de toquen para recoger, sensor de toquen en

Page 10: "diseño mecatrónico de un robot utilizado en la enseñanza de

iii  

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

están basados en un haz modulado.

Los actuadores que posee el robot están diseñados para que con las señales de los

microcontroladores se controlen motores de corriente directa posicionados para producir los

movimientos necesarios y coordinados según sea la instrucción recibida. En total el robot posee 4

de estos motores: motor de avance izquierdo, motor de avance derecho, motor de dispositivo de

recolección y motor de dispositivo de depósito.

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

Ingeniería Eléctrica, 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 comunicación y dos en el

robot) así como rutinas de monitoreo, rutinas de redundancia que corrigen errores que aparezcan

en tiempo de ejecución, rutinas de comunicación y de manejo de protocolos y rutinas de

preparación de los periféricos de los microcontroladores para un total de más de 600 líneas de

código por cada microcontrolador.

Lo bueno de haber usado microcontroladores tan poderosos es que estos son capaces de ejecutar

ordenes mucho más complejas de las que el lenguaje Karel pueda enviar, así como tener

“comportamientos” como por ejemplo “buscar la ubicación con mejor recepción de señal”, se indica

a los lectores como modificar al robot para cumplir con estas funciones.

Sin embargo y aunque el robot es una pieza de tecnología compleja su utilización por parte del

usuario final es muy simple y se reduce básicamente a conectar el modulo a la computadora y

encender tanto este como el robot, una vez hecho esto todo el funcionamiento es automático y

autónomo.

Por ultimo hay que recalcar que el robot R.A.S. posee una gran eficiencia en su uso de energía,

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 baterías de tamaño AA y se logra un

tiempo de uso de más de 6 horas continuas, asimismo el uso de baterías de tamaño estandard las

hacen fácil de conseguir y además existen en presentación recargable.

Por otro lado del modulo de comunicación posee un consumo de energía de 110 miliamperios en

reposo y 200 miliamperios al momento de transmitir por lo que se puede alimentar con una batería

Page 11: "diseño mecatrónico de un robot utilizado en la enseñanza de

iv  

tipo “D” (comúnmente conocidas como baterías cuadradas) y se obtendrían alrededor de 8 horas

de uso continuo.

Page 12: "diseño mecatrónico de un robot utilizado en la enseñanza de

 

ÍNDICE

RESUMEN EJECUTIVO ……………………………………………………………………………......

INDICE DE TABLAS …..………………………………………………………………………………..

INDICE DE FIGURAS …………………………………………………………………………………..

SIGLAS …………………………………………………………………………………………………..

PRÓLOGO ……………………………………………………………………………………………….

CAPÍTULO 1: EL PROYECTO KAREL………………………………………….……………………

1.1.Introducción……………………………………………………..……………….……………....

1.2.El Robot Karel……………………………………………………………………………………

1.3.Funcionamiento del Robot Karel……………………..……………..………...…………........

1.4.El proyecto Karel en el año 2008……………………………………..………….……………

1.5.Futuro del proyecto Karel…………………………………………………....….……………...

CAPÍTULO 2: MÁS ALLÁ DE KAREL….…………………………………………..………….........

2.1.Introducción…………………………………………………………………..……….…………

2.2.Ordenes Básicas…………………………………………………………….…….……………

2.3.Ordenes compuestas……………………………………………………….….…….…………

2.4.Monitoreo de estado ………………………………………………….………………………..

2.5.Comportamientos …………………………………………………………..…….…………….

CAPÍTULO 3: EL MICROCONTROLADOR FREESCALE QG08….………….………………….

3.1.Introducción………………………………………………………………….…..…….………...

3.2.¿Qué es un microcontrolador?.......................................................................................

3.3.Requerimientos básicos………………………………………………………………………..

3.4.El lenguaje ensamblador……………………………………………………………………….

3.5.Iniciación de periféricos……………………………………………………………….............

3.6.Técnicas útiles………………………………………………………………………….............

3.7.Búsqueda y corrección de errores……………………………………….……………………

3.8.Errores comunes………………………………………………………….……………………..

3.9.El freescale QG08 y los circuitos impresos……………………..……………………………

3.10.Problemas con campos electromagnéticos…………………………………………………

3.11.Algunos pensamientos finales………………………………………………………………..

CAPÍTULO 4: EL MÓDULO DE COMUNICACIÓN…………………………………..……….........

4.1.Introducción………………………………………………………………………………………

4.2.Alimentación……………………………………………………………………………………..

4.3.Construcción……………………………………………………………………………...........

4.4.El protocolo RS-232 desde el punto de vista eléctrico y su implementación en el

modulo………………………………………………………………………………………….

4.5. Comunicación con el R.A.S. ………………………………………………………………….

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

20

21

Page 13: "diseño mecatrónico de un robot utilizado en la enseñanza de

 

4.6.Funcionamiento del dispositivo………………………………………………………………..

4.7.Transmisión y Recepción de datos……………………………………………………………

4.8.Manejo de errores y estados anormales……………………………………………………..

4.9.Diseño modular y futuras aplicaciones……………………………………………………….

4.10.Conexión de los microcontroladores dentro del modulo de control…………….……….

4.11.Esquema eléctrico actual…………………………………………………………..…………

CAPÍTULO 5: USO DEL MICROCONTROLADOR FREESCALE QG08 EN EL ROBOT

AUTÓNOMO SALVADOREÑO….………………………………………………………………........

5.1.Introducción………………………………………………………………………………………

5.2.Conexión de los microcontroladores dentro del R.A.S. …………………………………….

5.3.La configuración de los microcontroladores dentro del R.A.S. ………………….………..

5.4.Recopilación de la información ………………………………………………………...........

5.5. Uso de la información de los sensores en las subrutinas…………………….……………

5.6.Control de motores……………………………………………………………………..………

5.7.Lógica interna del R.A.S. ………………………………………………………………………

CAPÍTULO 6: LA CIRCUITERÍA DEL R.A.S…………………….……………………...................

6.1.Introducción………………………………………………………………………………………

6.2.Requerimientos………………………………………………………………………………….

6.3.El diseño modular del R.A.S…………….…………………………………………………….

6.3.1. La tarjeta de control………………………………………………………….………….

6.3.2. Tarjeta de comunicación inalámbrica y tarjeta de sensores……………..….………

6.3.3. Módulo de control de motores……………………………………………….………….

CAPÍTULO 7: CONSTRUCCIÓN Y SISTEMAS DE CABLEADO DE LOS MÓDULOS DEL

R.A.S……………………………………………………………………...……………………………….

7.1. Creación de las PCB…………………………………………………………….……………..

7.1.1. Módulo de control del R.A.S. …………………………………………………………..

7.1.2. Módulo de sensores y de transmisión del R.A.S……………………….…………….

7.1.3. Módulo 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. Módulo de potencia o control de motores………………………………..……………

7.4.2. Módulo de sensores y transmisión………………………………………..……………

7.4.3. Módulo de control del R.A.S. ……………………………………………….…...........

7.5.Soluciones a problemas y recomendaciones para desarrollar trabajos de electrónica…

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

Page 14: "diseño mecatrónico de un robot utilizado en la enseñanza de

 

REFERENCIAS ELECTRÓNICAS……………………………………………………………………..

BIBLIOGRAFÍA ………………………………………………………………………………………….

ANEXOS:

ANEXO A : Características eléctricas del QG08

ANEXO B : Conexión recomendada para el QG08

79

81

Page 15: "diseño mecatrónico de un robot utilizado en la enseñanza de

 

Page 16: "diseño mecatrónico de un robot utilizado en la enseñanza de

ix  

ÍNDICE DE TABLAS

Tabla 4.1 – Protocolo establecido entre modulo de comunicación y computadora .................... 23

Tabla 4.2 - Ordenes iniciales ...................................................................................................... 24

Tabla 4.3 – Ordenes que especifican dirección de visión........................................................... 24

Tabla 4.4 – Protocolo de comunicación entre el microcontrolador 2 y el R.A.S. ....................... 24

Tabla 4.5 – Códigos para ordenes principales ........................................................................... 25

Tabla 4.6 – Preguntas generadas por el software Karel ............................................................ 26

Tabla 4.7 – Errores reconocidos por el software Karel ............................................................... 27

Tabla 4.8 – Códigos de ordenes reconocidos por el R.A.S. ....................................................... 30

Tabla 4.9 – Conexiones del microcontrolador1 .......................................................................... 30

Tabla 4.10 – Conexiones del microcontrolador2 ........................................................................ 31

Tabla 5.1 – Conexiones del microcontrolador3 .......................................................................... 34

Tabla 5.2 – Conexiones del microcontrolador4 .......................................................................... 34

Tabla 7.1 - Colores del sistema de cableado del modulo de sensores y transmisión del R.A.S. 66

Tabla 7.2 - Colores del sistema de cableado del modulo de control del R.A.S. ......................... 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 ....................................................... 71

Tabla 7.5 - Elementos utilizados en el modulo de sensores y transmisión ................................ 72

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

Page 17: "diseño mecatrónico de un robot utilizado en la enseñanza de

x  

Page 18: "diseño mecatrónico de un robot utilizado en la enseñanza de

xi  

ÍNDICE DE FIGURAS

Figura 4.1 - Bloques funcionales del modulo de comunicación ................................................ 20

Figura 4.2 - Flujo de información del sistema ............................................................................ 25

Figura 4.3 - Circuitería del modulo de comunicación ................................................................ 32

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

Figura 5.2 - Flujorama general de ejecución de ordenes .......................................................... 39

Figura 5.3 - Flujorama de orden “mover” ................................................................................... 40

Figura 5.4 - Flujorama de orden “depositar toquen” .................................................................. 41

Figura 5.5 - Flujorama de orden “Recoger Toquen” .................................................................. 41

Figura 5.6 - Flujorama de orden “girar” ...................................................................................... 42

Figura 5.7 - Flujorama de secuencia para contestar a preguntas ............................................. 43

Figura 6.1 - Diagrama de la tarjeta de control del R.A.S. ........................................................... 47

Figura 6.2 - Configuración de un AP como seguidor de Voltaje ................................................. 48

Figura 6.3 - Diagrama de la configuración del timer 555 como astable ..................................... 53

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

Figura 6.5 ‐ Diagrama del circuito y vista real de los sensores seguidores de línea y el sensor                     de colocar toquen ....................................................................................................

 54

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

Figura 6.7- Diagrama del circuito y vista real del sensor de alineación o giro de R.A.S. ........... 57

Figura 6.8 - Diagrama de circuito y vista real de sensores de proximidad de R.A.S. ................ 58

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

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

Figura 7.1 - Diagrama de pistas del módulo de control del R.A.S. ............................................ 62

Figura 7.2 - Vista real de la placa del módulo de control ........................................................... 62

Figura 7.3 - Diagrama de pistas del módulo de sensores y transmisión del R.A.S. .................. 63

Figura 7.4 - Vista real del modulo de sensores y transmisión de R.A.S. .................................. 63

Figura 7.5 - Diagrama de pistas del módulo de potencia de R.A.S. .......................................... 64

Figura 7.6 - Vista real del módulo de potencia de R.A.S. .......................................................... 64

Figura 7.7 - Identificación de las borneras en el modulo de sensores y transmisión del R.A.S. 65

Figura 7.8 - Diagrama de identificación de las borneras en el modulo de control del R.A.S. ... 67

Figura 7.9 - Diagrama de identificación de las borneras en el modulo de potencia del R.A.S. 69

Page 19: "diseño mecatrónico de un robot utilizado en la enseñanza de

xii  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 20: "diseño mecatrónico de un robot utilizado en la enseñanza de

xiii  

SIGLAS

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

Operational Amplifcator (Amplificador Operacional)Bits por segundo Corriente Continua Circuito Integrado Complementary Metal Oxide Semiconductor (Semiconductor Complementario de Oxido Metálico) Direct Current (Corriente Directa) Electrically‐Erasable Programmable Read Only Memory (ROM programable y borrable eléctricamente) Infra Rojo Light Emitting Diode (Diodo Emisor de Luz) Personal Computer (Computadora Personal)  Printed Circuit Board (Tarjeta de Circuito Impreso)  Pulse Width Modulation (Modulación por Ancho de Pulso) Robot Autónomo Salvadoreño Transistor Transistor Logic (Lógica Transistor Transistor) Universal Serial Bus (bus serial universal) Ultra Violeta Radio Frecuencia

 

 

 

 

 

 

 

 

 

 

 

 

Page 21: "diseño mecatrónico de un robot utilizado en la enseñanza de

xiv  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 22: "diseño mecatrónico de un robot utilizado en la enseñanza de

xv  

PRÓLOGO

Como parte del proyecto Karel del Departamento de Electrónica e Informática de la Universidad

Centroamericana José Simeón Cañas (UCA) se desarrolla el presente trabajo de graduación cuyo

fin es la creación de un robot autónomo que siga ordenes provenientes del programa

computacional “Karel Robot”, que sea inalámbrico, con comunicación full duplex, de eficiente uso

de energía y fácilmente utilizable.

Este trabajo de graduación, sin embargo, es la continuación de un proyecto que lleva 2 años de

desarrollo y que ya posee un “robot Karel” que es capaz de realizar las ordenes que le envía el

software “Karel Robot 1.0” pero aunque sea una continuación se abordó el problema únicamente

tomando las experiencias pasadas ya que se rediseñó completamente toda la parte eléctrica.

El punto de vista desde el que se aborda el problema es el de la innovación y diseño de

tecnologías utilizando elementos existentes en el mercado local de El Salvador y fácilmente

adquiribles. Así todos los componentes fueron diseñados 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 autónomo que funciona a baterías, que es capaz

de recibir y procesar ordenes, con movimientos suaves, equipado con sensores y con un sistema

de comunicación por infrarrojos capaz de enviar y recibir datos hacia un modulo de comunicación

que se conecta a la computadora y traduce las señales 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 páginas el lector o lectora conocerá todo lo relacionado a las nuevas

tecnologías desarrolladas, se enterará de los lugares donde se pueden encontrar los elementos

adecuados para la elaboración de los circuitos que componen al robot, conocerá al QG08 y tendrá

un primer acercamiento a la programación de este, asimismo tendrá la opción de crear nuevos

periféricos para utilizar al robot y la opción de añadirle nuevas funciones.

Page 23: "diseño mecatrónico de un robot utilizado en la enseñanza de

CAPÍTULO 1

EL PROYECTO KAREL

1.1 Introducción

En la UCA el proyecto Karel nace con el fin de crear un programa computacional con el cual los

estudiantes de los primeros años de Lic. en Ciencias de la Computación pudieran tener un primer

acercamiento a los lenguajes de programación, este programa computacional debía 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 tenía el programa se tuvo la idea de llevar al “mundo real” lo que los estudiantes podían

ver en sus pantallas y es en este punto en el que se incluyeron a otras dos carreras: Ingeniería

Eléctrica e Ingeniería Mecánica. La tarea de estas carreras sería la de crear un robot que hiciera

exactamente lo mismo que el robot virtual que los estudiantes podían ver en la pantalla de sus

computadoras.

Así en el transcurso de los años 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 graduación.

1.2 El robot Karel

El trabajo de los estudiantes de Ingeniería Eléctrica e Ingeniería Mecánica dio como resultado al

“robot Karel”, un sistema muy completo que cumplía con las funciones básicas del lenguaje Karel

(mover, girar, recoger y depositar) y que puede ser considerado como el primer robot diseñado y

construido en la UCA (Ver carpeta “Karel 1.0” en el disco adjunto al presente trabajo).

Este robot consta de una tableta de circuitería de control, un sistema de recolección, un sistema de

depósito, un sistema de almacenamiento de toquens, sistema de recepción de datos y motores de

paso que crean los diferentes movimientos requeridos.

El sistema de recolección consta de una rueda que posee un imán, este imán debía ser

posicionado usando el motor de paso correspondiente de tal forma que atrajera a un toquen

metálico y posteriormente lo introdujera en la bolsa de toquens. Por otro lado el sistema de

depósito 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 característica particular es que el sistema era capaz de

1

Page 24: "diseño mecatrónico de un robot utilizado en la enseñanza de

recolectar y depositar los toquen en el mismo lugar y que los movimientos de los motores eran

secuenciales (no simples giros).

La transmisión desde la computadora se hacía a través 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 leía con un microcontrolador PIC que era el encargado de

controlar a los motores a través de un integrado diseñado para manejar los niveles de corriente

adecuados.

Las metas alcanzadas con este robot son:

– Comunicación con la computadora: La comunicación era de una sola vía pero se lograba el

objetivo de controlar a un robot a través del programa computacional que los estudiantes

utilizaban en sus clases.

– Ejecución 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

Ingeniería Eléctrica involucrados.

– Operación a distancia: El uso de tecnología de radio frecuencia hacía que se tuviera un

alcance de varios metros para poder enviar las ordenes al robot.

– Recolección y depósito de toquens: El diseño mecánico fue el adecuado para cumplir con

estas dos ordenes y los circuitos los adecuados para crear las secuencias que debían

seguirse.

Como se puede observar el robot “cumplía con su trabajo”.

1.3 Funcionamiento del robot Karel

El robot Karel, sin embargo, presentaba ciertas peculiaridades en su funcionamiento que aunque

no impedían que este realizara sus funciones lo limitaban en cierta manera:

– Consumo de energía: El robot tenía un alto consumo de energía por lo que no se logró que

este operara con baterías sino que debía 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 ejecución de cada orden.

– Vibración: El tipo de motores usados producía vibraciones.

– “Basura” en la comunicación: Algunas funciones dependían de una señal limpia para

ejecutarse sin problemas, sin embargo al momento de ponerlas en el puerto aparecía basura

que luego era transmitida hacia el robot.

– Ligeros desajustes mecánicos: Pequeñas fallas en el sistema mecánico causaban fricciones

2

Page 25: "diseño mecatrónico de un robot utilizado en la enseñanza de

innecesarias y situaciones similares.

1.4 El proyecto Karel en el año 2008

El proyecto siguió adelante y se plantearon nuevos retos para mejorar los productos existentes, es

así como en el año 2008 se le dio el nivel de trabajo de graduación al proyecto, asignando un

grupo multidisciplinario que incluía a las carreras de Ingeniería Eléctrica, Lic. en Ciencias de la

Computación e Ingeniería Mecánica cuya meta sería tomar como base dichos productos y obtener

unos nuevos que cumplieran con lo que ya se tenía más algunas características extras.

Estas características extras nacen de la experiencia que los usuarios tenían con el robot Karel, las

principales son:

– Uso más eficiente de la energía: se desea que el robot no posea cables externos.

– Comunicación bidireccional: para que el software pueda estar mejor sincronizado con los

movimientos del robot.

– Mayor precisión 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 versión del software.

– Menor tamaño del robot.

– Diseño pensado en la construcción: El robot debe ser reproducible, es decir, debe poder ser

construido fácilmente en caso que se requieran hacer copias del robot.

Así durante el año 2008 se trabajó en conjunto logrando cumplir con los requerimientos anteriores

en menor o mayor medida, el presente trabajo de graduación es el resultado de este trabajo

multidisciplinario, así como también lo son los trabajos de graduación “Seguimiento a la plataforma

de aprendizaje 'Karel: el robot'” que toca toda la parte correspondiente al software Karel y “Diseño

mecánico y construcción del sistema Karel” que toca toda la parte correspondiente a las partes

mecánicas 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 graduación 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

basándose en lo que ya se tiene y siempre se podrá incluso innovar en mejores formas de hacer

3

Page 26: "diseño mecatrónico de un robot utilizado en la enseñanza de

las cosas, en el presente documento se hace mención en varias secciones a esto y se dan ideas

que pueden llevarse a cabo para mejorar el funcionamiento del Robot Autónomo Salvadoreño

(R.A.S., el producto que nace del presente trabajo de graduación 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.

4

Page 27: "diseño mecatrónico de un robot utilizado en la enseñanza de

CAPÍTULO 2

MÁS ALLÁ DE KAREL

2.1 Introducción

El presente trabajo de graduación implicaba únicamente la construcción de “un robot que fuera

capaz de recibir y ejecutar ordenes provenientes del software Karel” sin embargo durante el

proceso de construcción se determinó que la construcción de un robot que exclusivamente

cumpliera con las ordenes del lenguaje Karel limitaría mucho el diseño.

Así se aborda el problema desde un punto de vista diferente: la creación 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 podrán ser accesibles desde otros

programas computacionales que estén diseñados para interactuar con el robot.

Gracias a la utilización de microcontroladores tan poderosos y de un diseño de circuitería que tuvo

siempre en mente la innovación se ha logrado que el robot sea capaz de ejecutar ordenes

complejas de forma automática y sin asistencia de la computadora (más 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 Autónomo Salvadoreño o R.A.S. por sus siglas.

El presente capítulo expondrá funciones que el hardware es capaz de realizar y que explotan sus

capacidades más allá de lo que puede hacerlo el software Karel, así en el futuro estas funciones

podrán ser explotadas. Sin embargo para no salir del contexto del proyecto Karel en futuros

capítulos del presente trabajo ya no se hace alusión a estas funciones .

2.2 Ordenes básicas

Dos funciones básicas que el robot puede ejecutar pero que no son accesibles a través 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 capítulos posteriores que expondrán las

funciones básicas 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 atrás, la orden de girar a la derecha implica que el motor de avance derecho gire hacia

atrás 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 básicas, cualquier otro movimiento que este

realice será la combinación de estas. Estas son:

5

Page 28: "diseño mecatrónico de un robot utilizado en la enseñanza de

– 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 unión 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

posición 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 ejecución será menor.

El único limite para el tamaño de estas ordenes completas es la memoria del microcontrolador, por

lo que en realidad el límite para el número de ordenes simples que conformarán 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 través de ordenes que no están comprendidas dentro del lenguaje Karel.

Así por ejemplo la pregunta “¿Cuál es el estado del sensor de línea derecho?” puede ser enviada.

Una aplicación más completa de esta funcionalidad es la creación de un sistema de monitoreo en

tiempo real de todos los sensores del robot.

2.5 Comportamientos

Se entiende por “comportamiento” aquella combinación de funciones que el robot realiza y que

emulan cierto patrón de conducta, esta función se encuentra en la mayoría de robots de nivel

universitario y da pie a la creación de robots que cumplen con tareas específicas.

Gracias a que se utilizaron microcontroladores tan poderosos se puede programar al robot para

6

Page 29: "diseño mecatrónico de un robot utilizado en la enseñanza de

que emule estos patrones de conducta dependiendo de la aplicación que se desee implementar.

Así, por ejemplo, se puede programar al robot para que este censando constantemente las señales

que le llegan, si estas corresponden a señales de referencia entonces el robot se mantendrá en su

lugar, de lo contrario comenzará a moverse hasta que encuentre un punto donde la transmisión

corresponde a la de referencia. Con esta función se tiene un robot que es capaz de buscar los

mejores puntos de recepción de señales en un campo por ejemplo.

Gracias a su diseño modular también pueden alterarse los sensores con los que actualmente

contará el R.A.S. para incluir sensores más especializados (como de detección de metales) y

programar comportamientos como por ejemplo “búsqueda y señalamiento 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 diseño 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.

7

Page 30: "diseño mecatrónico de un robot utilizado en la enseñanza de

8

Page 31: "diseño mecatrónico de un robot utilizado en la enseñanza de

CAPÍTULO 3

EL MICROCONTROLADOR FREESCALE QG08

3.1 Introducción

El microcontrolador Freescale MC9S08QG8 (comúnmente llamado QG08) ha sido elegido para el

presente proyecto por su gran cantidad de periféricos, fácil configuración y por que no necesita

circuitería externa para funcionar, además posee en su interior al procesador Motorola C68HC08 el

cual nos da una gran flexibilidad a la hora de programar.

Lamentablemente en el país 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 capítulo se presenta una introducción al microcontrolador Freescale, su utilización,

periféricos 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 introducción, no algo que busque ser un curso

completo de utilización de microcontroladores, pero con esto y un poco de lectura directamente de

la hoja de datos del microcontrolador y del procesador se tiene más que suficiente para comenzar.

3.2 ¿Qué es un microcontrolador?

Un microcontrolador es un circuito integrado que comprende un microprocesador y periféricos

diferentes en un mismo encapsulado. El microprocesador es un dispositivo que ejecuta ordenes

previamente programadas, estas ordenes pueden ser operaciones matemáticas, lógicas, saltos

(conocidos como “goto” en algunos lenguajes de programación), comparaciones, manejo de

información y otras, a esto se le suman periféricos, o circuitos capaces de interactuar con el

“exterior” a través de los pines del encapsulado, estos periféricos permiten tanto recibir como

mandar información al exterior así como el control de otros dispositivos de forma digital y

analógica.

Dependiendo de las capacidades del microprocesador así será la complejidad de los programas

que podemos crear para el, y dependiendo de los periféricos así sera la flexibilidad que tendremos

9

Page 32: "diseño mecatrónico de un robot utilizado en la enseñanza de

al implementar soluciones.

Es acá donde comienza a haber diferencias entre los diferentes microcontroladores que existen,

algunos están hechos para aplicaciones sencillas y reconocen pocas ordenes, otros poseen

microprocesadores muy poderosos con cientos de ordenes, algunos incluso son desarrollados para

aplicaciones específicas. El QG08 está en algún punto intermedio de todo esto ya que posee un

microprocesador con alto poder a la vez que ofrece muchos periféricos ya instalados sin que sea

un microcontrolador de uso específico (Ver “Comparación PIC vrs Freescale” en la carpeta “Otros

documentos” del disco adjunto al presente trabajo).

3.3 Requerimientos básicos

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 características. Toda esta información es proporcionada por el fabricante en

forma de hojas de datos, se necesitan como mínimo la hoja de datos del microcontroladora que

incluye todos los periféricos 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

método para acceder a su memoria interna y poder grabar cualquier programa que el usuario

diseñe, 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 electrónica 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 código, Freescale tiene un programa propietario

para este fin llamado “CodeWarrior”, la licencia viene incluida al comprar la DEMO09S08QG8 o

puede conseguirse una versión “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 programación 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 diseñado siempre y cuando se cumpla con sus características de voltaje y

10

Page 33: "diseño mecatrónico de un robot utilizado en la enseñanza de

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 “traducción” entre lo que escribimos en él y el

lenguaje propio del microcontrolador llamado “lenguaje base” o “código de máquina”; 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 documentación hace referencia a este por estar más cerca del

lenguaje base.

Este lenguaje es de tipo lineal pero acepta saltos, por lo que es fácil crear subrutinas dentro del

programa principal y manejar las diferentes cosas a su tiempo, también por su estructura se tiene

un máximo control de cuando ejecutar cada instrucción, una característica que se vuelve muy útil.

Para estructurarlo es necesario poner una sola instrucción por línea, cada instrucción consta de un

operador y un operando que deben estar puestos uno a continuación de otro a menos que sea un

operador especial que no necesite operando, de ser necesario pueden especificarse una etiqueta

al inicio de la línea para los saltos aunque si se maneja muy bien el código se puede referir

directamente a la ubicación en la memoria en vez de usar etiquetas, por ultimo los comentarios

pueden ser puestos en cualquier parte de la página y comienzan con un punto y coma (;). El listado

completo de instrucciones y su función aparecen en la hoja de datos del microprocesador.

En el microcontrolador se tiene control de los periféricos a través de registros, cada registro tiene

su etiqueta asignada y una localidad de memoria específica así que se puede accesar a ellos como

mejor parezca, la mejor forma de hacerlo es a través de las etiquetas y siguiendo las indicaciones

necesarias para cada periférico, estas aparecen en la hoja de datos del microcontrolador aunque

pueden ser modificadas dentro del programa “CodeWarrior”.

Como ejemplo se presenta un trozo de código, 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 ;LDA indica “load”, se deja un espacio y se pone el operando

SUM #%00000010 ;#%00000010 es un byte que es equivalente a 2 en binario

Etiq STA B ;STA indica “Storage”, “Etiq” es la etiqueta y sirve como referencia

11

Page 34: "diseño mecatrónico de un robot utilizado en la enseñanza de

Un detalle importante es que el microcontrolador ejecutará los ciclos sin pausa a menos que se le

indique lo contrario mandándolo a un estado de bajo consumo de energía, pero esto no es

recomendable en la ejecución normal y debe ser usado únicamente como una excepción por lo que

es usual crear ciclos que el microcontrolador ejecutará una y otra vez hasta que algún evento

suceda, un ejemplo de esto es:

Eti1 LDA A

CMP #$00 ; CMP indica “compare”, #$00 es un cero en hexagesimal

BNE Eti1 ; 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 código que se esta ejecutando en cada momento y es la forma

más 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 línea

por línea de memoria, eventualmente llegará a espacios donde no existe más que basura y al no

reconocer la orden descrita entrará en un estado de error y parará la ejecución. 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 través de periféricos basta con acceder a sus

registros (previa configuración del periférico), igual que antes se puede hacer un LDA PTAD para

acceder en este caso al periférico de entradas digitales A (PTAD), así por ejemplo se puede

ejecutar un ciclo como se acaba de describir hasta que se detecte en el periférico una entrada

digital en el pin 3.

La mejor forma de aprender a usar este lenguaje es ver un código de ejemplo de los incluidos en el

programa “CodeWarrior”, con eso y la hoja de datos para interpretar las ordenes se puede

aprender muy fácilmente a programar los microcontroladores.

3.5 Iniciación de periféricos

Como es de esperarse por defecto todos los periféricos están deshabilitados en el QG08 y sus

pines se convierten en entradas digitales, es por esto que al inicio del código es necesario

inicializar cada uno de los periféricos 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 característica del periférico.

Así por ejemplo, para el periférico de comunicación digital PTAD, si se escribe en su registro de

configuración “PTADD” se determinará si el pin será usado como entrada o salida dependiendo si

12

Page 35: "diseño mecatrónico de un robot utilizado en la enseñanza de

se le escribe un uno o cero. El código sería:

LDA #%00110011

STA PTADD

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

Así cada periférico tiene una configuración especial que puede llegar a ser muy compleja

dependiendo de lo que se desee, por ejemplo el periférico de comunicación serial usado para el

presente proyecto necesita ser configurado con 4 registros diferentes y en una secuencia

específica.

3.6 Técnicas útiles:

A lo largo del camino se van desarrollando técnicas de programación que ayudan a obtener los

resultados esperados, sin embargo hay algunas que siempre se enseñan y permiten avanzar más

rápido:

– “Pooling”: Esta es una técnica de filtrado y permite enfocarse únicamente en la información que

importa en ese momento, por ejemplo si se necesita que el programa ejecute la acción

“avanzar” cuando se presione el botón 1, la acción “retroceder” cuando se presiona el botón 2

y ninguna acción cuando se presione el botón 3 se hace lo siguiente:

LDA PTAD ;Se recibe el estado de todos los botones conectados

AND #%00000011 ;Se filtra con un AND a todos menos los 2 que interesan

CMP #%00000001 ;Se compara con 1 para determinar si está presionado el botón 1

BEQ Avanzar ;BEQ significa “si es igual ir a”, en este caso ir a “avanzar”

CMP #%00000010 ;Se compara con 2 para determinar si está presionado el otro botón

BEQ Retroceder ;Si es así se va a “retroceder”

Lo que resta es definir las subrutinas “avanzar” y “retroceder” en otra ubicación.

– Crear retrasos: El microprocesador se mantiene continuamente ejecutando el ciclo que se le

programe a una velocidad de 8Mhz, a veces es necesario una ejecución más lenta.

Aunque hay maneras de bajar la velocidad del microprocesador la manera más fácil de crear

un retraso es con la subrutina siguiente:

13

Page 36: "diseño mecatrónico de un robot utilizado en la enseñanza de

Retraso LDA varaux ; Se lee la variable “varaux”, variable auxiliar

INCA ;Se le suma uno

STA varaux ;Se guarda en la misma variable

CMP #$FF ;Se compara con el número hexadecimal FF

BNE Retraso ;Si todavía no se ha llegado a FF entonces regresar a Retraso

Básicamente lo que se hace es que el microprocesador gaste tiempo en completar esta

subrutina.

– Definir “subrutinas”: Si hay alguna parte del código 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 llamándola desde nuestro código sin perder la

secuencia que se llevaba antes. La forma de usar estas ordenes es sencilla

;Acá va el código que se estaba ejecutando

JSR Subrutina1 ;Acá se salta a Subrutina1

;Acá va el código que se ejecutará después 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 Búsqueda y corrección de errores

Dado que el lenguaje se presta a errores muy pequeños que pueden hacer que todo un código no

funcione (poner un cero en vez de 1 en uno de los registros de configuración de un periférico lo

hace funcionar totalmente diferente) es bueno conocer que la DEMO09S08QG8 también sirve

para buscar errores ya que permite ejecutar paso a paso el código 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 función de emular al microcontrolador y hacer

14

Page 37: "diseño mecatrónico de un robot utilizado en la enseñanza de

también la ejecución paso a paso.

Una vez detectado el error puede corregirse y volver a cargarse el código en el microcontrolador en

pocos segundos.

3.8 Errores comunes

– No definir las variables.

– Errores en mayúsculas y minúsculas: el microprocesador reconoce a “Avanzar” y “avanzar”

como dos etiquetas diferentes, lo mismo aplica para el nombre de las variables.

– Confundir número hexagesimales con bytes: El microprocesador reconoce a los número que

comienzan con “#$” como hexagesimales y los que comienzan con “#%” como bytes, si se

escribe “#$00001000” el compilador mandará el error “Los números deben estar reducidos a 8

bits” ya que interpretará lo que se introdujo como un número 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 líneas siguientes y puede entrar a otro ciclo.

– Errores en un bit: se debe tener cuidado especial en esto, un bit erróneo puede hacer que todo

el programa no funcione.

– Ejecución demasiado rápida: algunas aplicaciones requieren por fuerza retrasos ya que puede

que lo que este conectado al microcontrolador no reaccione tan rápido como este, es necesario

remitirse cada vez a las hojas de datos de cada elemento para determinar los tiempos mínimos

para que estos reaccionen.

– Configuración incompleta de periféricos: Por ejemplo no es suficiente especificar cuales pines

serán entradas y cuales salidas usando el periférico de entradas y salidas paralelas, hay que

activarle a cada entrada una resistencia interna a través de un registro aparte para que pueda

leer la información. La mejor forma de configurar cada periférico 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

Page 38: "diseño mecatrónico de un robot utilizado en la enseñanza de

con el voltaje ya que el QG08 trabaja a 3.3 voltios DC y la mayoría de circuitos integrados trabajan

a 5 voltios DC, por lo que no se pueden conectar entre sí directamente.

También hay que tener especial cuidado con el pin 1 del microcontrolador ya que este es usado

para reinicio asincrónico y cada vez que es activado se ejecuta el código desde la primera línea,

este pin tiene activación 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 través de una resistencia a Vcc (Vcc

o voltaje de alimentación 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 mínimo 17.5 kiloohmios y evitan

corrientes de drenaje superiores a 1 microamperio, sin embargo esta es una característica propia

del QG08 y otros microcontroladores pueden no tenerla y ser dañados si se conectan de esta

manera.

Otro detalle a tener en cuenta es el ruido electrostático, es una buena costumbre seguir las

recomendaciones del manual y conectar entre los pines de alimentación 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 operación es de 8Mhz y por lo tanto el microcontrolador reaccionará

extremadamente rápido a los impulsos, si la aplicación 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 rápido que el motor no la detectará.

3.10 Problemas con campos electromagnéticos

Cada microcontrolador (dependiendo de su fabricación) posee internamente memoria flash,

EEPROM o similares donde guardan los programas que creemos, este tipo de memoria se

caracteriza por no necesitar de alimentación eléctrica para mantener los datos, sin embargo,

aunque esto cree una falsa seguridad de que la información que contiene es imborrable a menos

que se haga a través 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

electromagnético dañará los datos contenidos.

El QG08 no es la excepción y es vulnerable a estos campos, por lo que si en la aplicación se

usarán imanes, motores o cualquier otro dispositivo que sea capaz de crear un campo

16

Page 39: "diseño mecatrónico de un robot utilizado en la enseñanza de

electromagnético fuerte los microcontroladores deberán estar situados lo más 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 programación interna los microcontroladores ejecutarán 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 código lo más

posible puede que no presente mejorías palpables pero dejará más ordenado todo, también poner

comentarios es útil al momento de buscar errores dentro del código ya que dependiendo de la

aplicación se puede terminar con más de 1000 líneas de código.

Por ultimo puede que aunque el programa funcione a la perfección en los simuladores y que su

lógica sea la adecuada el circuito no funcione, es acá cuando hay que adecuar el código a la

circuitería fuera del microcontrolador.

17

Page 40: "diseño mecatrónico de un robot utilizado en la enseñanza de

18

Page 41: "diseño mecatrónico de un robot utilizado en la enseñanza de

CAPÍTULO 4

EL MODULO DE COMUNICACIÓN

4.1 Introducción

Uno de los productos que se entregan con el presente trabajo de graduación es un modulo de

comunicación que se conecta a la computadora a través del puerto RS-232 y con el Robot

Autónomo Salvadoreño (R.A.S.) a través de tecnología infrarroja usando dos microcontroladores

Freescale QG08 para manejar ambas señales usando los códigos necesarios en ambos casos.

Aunque los microcontroladores son los encargados de generar las señales estas no poseen las

características necesarias para una buena comunicación por lo que se hace uso de dispositivos

externos que modulen las señales 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 comunicación, tanto su

circuitería como lógica interna de los microcontroladores, asimismo se incluyen una explicación

sobre los protocolos de comunicación utilizados y sus respectivas señales.

4.2 Alimentación

Dentro del modulo de comunicación se encuentran diferentes elementos y circuitos integrados que

necesitan de 5 Vdc como su fuente de alimentación, por otro lado los microcontroladores aceptan

un máximo de 3.3 Vdc como alimentación 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 técnica para ejecutar esto es bajar el voltaje con una

resistencia en serie con un diodo zener puesto en inversa, el voltaje obtenido en el cátodo 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 varía 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 - “Circuitería del modulo de

comunicación”.

Para la alimentación de otras partes del circuito se utiliza Modulación de Ancho de Pulso (PWM)

como se explicará más adelante.

19

Page 42: "diseño mecatrónico de un robot utilizado en la enseñanza de

4.3 Construcción

El modulo de comunicación se compone de 4 elementos principales dispuestos como se indica a

continuación:

Figura 4.1 - Bloques funcionales del modulo de comunicación

Los cuatro bloques se explican a continuación:

– Interfaz de interacción con el puerto RS-232: Acondiciona la señal del Microcontrolador1 para

que pueda ser leída correctamente por la computadora y viceversa.

– Microcontrolador1: Es el encargado de manejar la comunicación con la computadora.

– Microcontrolador2: Es el encargado de manejar la comunicación con el R.A.S.

– Interfaz de comunicación con el R.A.S.: Acondiciona la señal del microcontrolador2 para que

pueda ser enviada al robot y puedan recibirse las señales de este.

Como se puede ver ver hay comunicación entre los dos microcontroladores, es en esta etapa en la

cual se separan las señales que entiende la computadora (manejadas por el microcontrolador1) y

las que entiende el robot (manejadas por el microcontrolador2), esta comunicación es de tipo

paralelo y a través de pines especiales dispuestos para este propósito. En los literales siguientes

se hace un desglose completo de cada elemento.

4.4 El protocolo RS-232 desde el punto de vista eléctrico y su implementación en el modulo

Este protocolo es el utilizado para la comunicación con la computadora, desde el punto de vista

eléctrico se trata de señales de voltaje que representan bits de información a una cierta frecuencia.

Aunque es relativamente fácil sincronizar la frecuencia y codificación de las señales (palabras de 8

bits, sin paridad y sin bit de inicio) gracias al modulo de comunicación 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 lógico es representado por un nivel de

voltaje menor a -3 Vdc pero mayor a -15Vdc, un cero lógico es representado por un nivel de voltaje

mayor a 3 Vdc pero menor a 15 Vdc, en ningún caso el nivel de voltaje en la línea debe subir de los

20

Page 43: "diseño mecatrónico de un robot utilizado en la enseñanza de

20Vdc o ser más bajo de -20Vdc y en reposo la línea debe mantenerse en el voltaje establecido

para un uno lógico; por otro lado el microcontrolador representa un 1 lógico por un nivel de voltaje

de 3 Vdc y un cero lógico por un nivel de voltaje de 0 Vdc, a la vez el microcontrolador es incapaz

de generar voltajes más elevados de 3Vdc o voltajes negativos y el estado de reposo del modulo

de comunicación serial es de 3 Vdc.

Conectar el puerto RS-232 de la computadora directamente a los pines de comunicación serial del

microcontrolador nos llevaría rápidamente a dañarlo, si únicamente incluimos elementos que

limiten los voltajes a 0 Vdc y 3Vdc (como diodos y diodos zener) todavía se tiene el problema que

el protocolo representa el 1 lógico en forma inversa de lo que lo hace el microcontrolador, esto

hace imposible la comunicación.

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 señal en el voltaje adecuado, en nuestro diseño se utilizó el MAX232, un

circuito integrado diseñado especialmente para este propósito.

El MAX232 posee internamente un buffer inversor para transformar los niveles RS-232 en niveles

TTL y adecuar la señal para que el 1 lógico sea de 5Vdc y el 0 lógico 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 codificación adecuada

para la computadora.

La señal 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 transmisión y recepción, la computadora es ajustada a esta misma velocidad con lo

que se logra la comunicación.

4.5 Comunicación con el R.A.S.

Para comunicarse con el robot se hace uso de tecnología infrarroja: la información es transmitida a

500 bps de forma serial siguiendo la codificación estandard utilizando una portadora de 40 Khz a

través de un LED infrarrojo. Esta señal es recibida y decodificada fácilmente por un receptor

diseñado 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 circuitería que filtra todas

las señales menos la que se reciba a 40 Khz, este mismo receptor decodifica la señal y así

21

Page 44: "diseño mecatrónico de un robot utilizado en la enseñanza de

obtenemos a la salida el tren de pulsos emitidos a 500 bps; la única característica peculiar de este

receptor es que la salida es la negación de la señal que se requiere, es por esto que debe

conectarse a una compuerta lógica “NOT”. En el mercado existen muchos integrados que hacen

esto, para nuestro diseño 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 diseñado enteramente para la aplicación. Primero necesitamos

una señal 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 señal útil en esta portadora se

hace uso de una compuerta AND, así cuando se quiera enviar un 1 lógico se dejará pasar a la

portadora, caso contrario no se dejará pasar y con esto se logra enviar la información. La señal útil

viene directamente del transmisor serial en el microcontrolador2.

Un elemento importante de este diseño 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 aplicación ya que únicamente se lograba detectar la señal 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 transmisión, del

lado de la computadora la transmisión es a través 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 comunicación de hasta 11200bps sin perdida de datos por parte

del microcontrolador1, sin embargo para la aplicación no es necesario un gran flujo de información

por lo que la transmisión a 2700bps resulta adecuada. El alcance de esta parte del modulo de

comunicación dependerá del tipo de cable con que se conecte el módulo a la computadora, la

sensibilidad de la tarjeta electrónica que esta posea y de las perdidas por otras causas como ruido

electromagnético, 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

más de 10 metros de longitud para realizar la conexión entre el módulo y la computadora.

Por otro lado la comunicación entre el módulo y el robot es a través de tecnología infrarroja, de

este lado la transmisión de datos es también de bajo volumen de información por lo que la

velocidad de transmisión optima es de 500bps, esto se establece por las características de cada

22

Page 45: "diseño mecatrónico de un robot utilizado en la enseñanza de

elemento en particular (en especial en las características de los receptores infrarrojos) y se ajusta

al volumen de información antes mencionado. Sin embargo acá debemos hacer una pausa para

explicar los alcances de nuestra “antena infrarroja” ya que fue totalmente diseñada y construida

para esta aplicación.

Dado que se necesita linea de vista entre el transmisor y el receptor el alcance de este dispositivo

viene dado por características ópticas únicamente, escoger el tipo de led adecuado y la ubicación

de estos es importante para obtener una comunicación adecuada; se buscaron leds en el mercado

local que cumplieran con la característica 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 comunicación 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 comunicación adecuada (sin embargo parecen aptos para

aplicaciones de control de televisores y similares), en contraste los LED que se obtuvieron al

desmantelar controles remotos tenían un alcance frontal de 4 metros y uno lateral de 120° por lo

que hubieran sido adecuados para la aplicación, sin embargo al usarlos se habría salido de los

requerimientos del proyecto.

Con los datos anteriores se determina que el diseño de antenas fijas es imposible con los

componentes encontrados en el mercado local y por lo tanto se tienen limitantes en la

comunicación con el robot. Para solventarlas se opta por diseñar un tipo de antena “portátil” que el

usuario deberá mantener sobre el robot para que la transmisión sea adecuada.

4.7 Transmisión y recepción de datos

El modulo de comunicación posee en su interior dos microcontroladores, el microcontrolador1 se

encarga de la comunicación con la computadora propiamente trabajando con comunicación 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

dirección de comunicación):

Protocolo de comunicación entre microcontrolador1 y PC

1° El emisor de la señal envía el código respectivo

2° El receptor envía un eco del código que acaba de recibir

3° Si el emisor original recibe un eco exacto de la señal que envió envía

una señal de confirmación.

Tabla 4.1 – Protocolo establecido entre modulo de comunicación y computadora

23

Page 46: "diseño mecatrónico de un robot utilizado en la enseñanza de

Como proceso adicional se ha establecido que las primeras tres ordenes que se recibirán por parte

de la computadora son “¿existe comunicación?”, “usar sensores” o “no usar sensores” y

“establecer dirección de visión” 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 continuación se

presenta un cuadro con los códigos usados para estas ordenes que modifican el funcionamiento:

InicioPc Microcontrolador1

Enviado Confirmación Negación

Usar sensores 0xEB 0xEC NA

No usar sensores 0xDB 0xEF NA

Tabla 4.2 - Ordenes iniciales

Para establecer la dirección de visión se usa cualquiera de los siguientes códigos:

Especificar

dirección de visión

PC Microcontrolador1

Norte 0xC3 0x95

Sur 0xD3 0x95

Este 0xE3 0x95

Oeste 0xF3 0x95

Tabla 4.3 – Ordenes que especifican dirección de visión

El microcontrolador2 se encarga de la comunicación con el R.A.S., este recibe la ordenes del

microcontrolador1 de forma paralela y los envía al robot de forma serial a 500 bps haciendo uso del

transmisor descrito en otras secciones de este documento.

En este paso también se usa un protocolo de comunicación para evitar errores en la emisión y

recepción de datos, el protocolo es el siguiente:

Protocolo de comunicación entre microcontrolador2 y R.A.S.

1° El emisor envía la señal 8 veces seguidas

2° El receptor envía 8 veces un eco de la primera señal que reciba tres veces consecutivas

3° Si el eco corresponde a la señal emitida se manda 8 veces una señal de confirmación

4° El receptor envía una ultima vez una señal de confirmación 8 veces seguidas

Tabla 4.4 – Protocolo de comunicación entre el microcontrolador 2 y el R.A.S.

Por características propias de los receptores utilizados cada señal debe ser enviada 8 veces como

24

Page 47: "diseño mecatrónico de un robot utilizado en la enseñanza de

mínimo para garantizar que será bien recibida, asimismo los microcontroladores deben estar

preparados para manejar este flujo de información y diferenciar entre “señal útil” y “señal basura”,

esto se hace a través de una rutina de recepción que compara cada dato recibido con el anterior, si

se recibe tres veces el mismo dato de forma consecutiva este se considera “señal útil” y se

procesa. Sin embargo en nuestras pruebas se determinó que en algunos ambientes el ruido

infrarrojo era de tal magnitud que hacía 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 graduación en la carpeta

“Otros documentos”.

El flujo de información puede entenderse mejor al ver el siguiente diagrama:

Figura 4.2 – Flujo de información 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 Byte recibido de PCByte enviado a PC (Al

terminar)

Mover 0x10 0x15

Girar Izquierda 0x20 0x25

Recoger toquen 0x30 0x35

Poner toquen 0x40 0x45

Apagar 0x50 0x55

Tabla 4.5 – Códigos para ordenes principales

25

Page 48: "diseño mecatrónico de un robot utilizado en la enseñanza de

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 continuación se presenta una tabla que engloba toda las preguntas que el software Karel es

capaz de generar:

Pregunta

PC Microcontrolador1

Pregunta

PC Microcontrolador1

Recibido Enviado si

verdadero

Enviado

si falso

Recibido Enviado si

verdadero

Enviado

si falso

¿toquen en

bolsa?

0x60 0x63 0x86 ¿Frente

Bloqueado?

0xB0 0x63 0x86

¿Viendo al

este?

0x70 0x63 0x86 ¿Izquierda

libre?

0xD0 0x63 0x86

¿Viendo al

norte?

0x80 0x63 0x86 ¿Derecha

libre?

0xE0 0x63 0x86

¿Viendo al

sur?

0x90 0x63 0x86 ¿Sobre

toquen?

0xF0 0x63 0x86

¿Viendo

oeste?

0xA0 0x63 0x86 ¿Hay Link? 0xFB 0x63 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 características de funcionamiento son:

– ¿Viendo norte, sur, este u oeste?: Dentro de las ordenes iniciales se especifica la dirección

en la que está viendo el robot inicialmente, esta información 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 información ahí

contenida responderá de forma positiva y viceversa.

El R.A.S. no posee una brújula 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

Page 49: "diseño mecatrónico de un robot utilizado en la enseñanza de

de mantener sincronizada la información de “dirección de visión” es usando una “dirección

de visión virtual” como se acaba de describir.

– ¿Sobre toquen?: Aunque exista un sensor cuya función es encontrar los toquen que el

robot puede recoger la forma física de este hace que los toquen no queden posicionados

exactamente en la “zona de detección” 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 ejecución 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 comunicación una subrutina de

“establecimiento de enlace” (Link en inglés), es decir, una subrutina que manda una señal a Karel

con la única intención de establecer si el robot recibe dicha señal 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 confirmación de la ejecución de una orden en un tiempo aceptable para establecer si

hubo un error de comunicación y en general para hacer pruebas que indiquen si los transmisores y

receptores están funcionando de forma adecuada.

4.8 Manejo de errores y estados anormales

Durante los párrafos anteriores se ha hecho mención de que el robot es capaz de informar a la

computadora sobre errores encontrados en el tiempo de ejecución que le impiden completar las

ordenes que se han recibido o sobre otros estados anormales como “orden no encontrada” y

“perdida de comunicación”.

Estos errores son enviados a la computadora usando los siguientes códigos:

Error Enviado a PC

Choque contra pared 0xCC

No hay toquen en bolsa 0xDD

No hay toquen para recoger 0xEE

Materia Baja 0xFF

Orden no válida 0xEA

Perdida de comunicación 0xFA

Imposible girar 0xFE

Tabla 4.7 – Errores reconocidos por el software Karel.

27

Page 50: "diseño mecatrónico de un robot utilizado en la enseñanza de

– Error “choque contra pared”: se envía este error cuando el sensor de proximidad frontal

interrumpe a la subrutina “mover” al detectar un obstáculo, este error es considerado “grave” y

por lo tanto si se da cualquier orden posterior que la computadora envíe será ignorada. La

única forma de salir de este estado de error es presionando el botón de reinicio, tanto en el

modulo de comunicación como en el R.A.S.

– Error “No hay toquen en la bolsa”: se envía 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 envía 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 recolección con este. Este

error es considerado “leve”.

– Error “Imposible girar”: se envía este error cuando algo impida al robot completar un giro,

algunas fuentes de este error pueden ser: falla en los motores, obstrucciones físicas 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 tomaría normalmente. Este error

es considerado “grave”.

– Error “Orden no encontrada”: este error se da cuando la computadora ha enviado una señal no

reconocida (aunque se respete el protocolo de comunicación puede que la computadora envíe

una señal que no esté en la base de datos del microcontrolador) y cuando la computadora

envía una pregunta que no está siendo tomada en cuenta debido a que se especificó durante

la secuencia inicial que no se usarían los sensores.

– Error “Batería baja”: se envía este error cuando los microcontroladores instalados en el modulo

de comunicación o en el robot detectan un bajo voltaje de alimentación, cuando el tiempo de

ejecución de la subrutina “mover” es mayor al doble de lo normal, cuando se detecta que los

sensores de seguimiento de línea no están funcionando (dado que todos los sensores reciben

su alimentación de la misma fuente se asume que todos los demás tampoco están

funcionando) o cuando se detecta que la comunicación contiene demasiados datos basura

(indicativo que los emisores reciben poca energía). Este error es considerado “grave”.

– Error “Perdida de comunicación”: se ha establecido que cada señal debe ser enviada 8 veces

consecutivas, sin embargo de no obtener ninguna señal en respuesta se volverá enviar hasta 5

28

Page 51: "diseño mecatrónico de un robot utilizado en la enseñanza de

veces, si luego de estas 5 series de señales no se ha recibido ninguna otra se considera que

se ha perdido la comunicación entre el modulo conectado a la computadora y el robot Karel, es

entonces que este error es generado dentro del modulo de comunicación y enviado a la

computadora. Este error es considerado “grave”.

Aunque se podrían especificar subrutinas especiales que manejen estos errores de forma

automática (haciendo que el robot regrese a su posición anterior ante un choque frontal por

ejemplo) se decidió que únicamente se debería notificar de dichos errores a la computadora, esto

con el fin de mantener la coherencia entre la información presentada al usuario en la pantalla de la

computadora y el comportamiento del dispositivo en la vida real.

4.9 Diseño modular y futuras aplicaciones

En el diseño actual del modulo de comunicación se ha utilizado el puerto RS-232 para

comunicación con la computadora y transmisión con tecnología infrarroja para comunicación con el

R.A.S., sin embargo esta es una forma de solucionar el problema planteado y futuras versiones

pueden implementar sus propios diseños.

El periférico serial de los microcontroladores Freescale QG08 utilizados esta configurado para usar

la codificación 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 codificación de la señal (recordando que esta debe estar a 2700 bps) la

señal es la adecuada y puede tanto recibirla como enviarla sin que importe el puerto de la

computadora a usar, así futuras versiones podrán eliminar el bloque “interacción con RS-232” y

poner cualquier otro, por ejemplo USB, Bluetooth, Wifi, etc. Lo mismo aplica para la comunicación

con el robot donde puede eliminarse el bloque de comunicación infrarroja usado actualmente para

sustituirlo por uno de radio frecuencia por ejemplo.

Para poder hacer esto sin embargo hay que mantener las conexiones básicas de los

microcontroladores para que estos se comuniquen entre sí y puedan traducir las señales

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

comunicación y pueden enviarse las ordenes directamente hacia el robot, esto quita las limitantes

propias de dicho modulo y nos darían un máximo de 256 ordenes que el robot (previa

programación) podría realizar. El único requerimiento de este programa computacional será que

pueda procesar el protocolo especificado en la tabla 4.4 y que envíe a R.A.S. los siguiente códigos

29

Page 52: "diseño mecatrónico de un robot utilizado en la enseñanza de

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

OrdenesMicro2 a Micro3

Micro3 a Micro2Con sensores Sin sensores

Mover #$40 #$43#$45, Error

o #$48 (Toquen detectado)

Girar Izquierda#$50

#$53 #$55 o Error

Recoger Toquen #$60 #$63 #$65 o Error

Depositar toquen #$70 #$73#$75, Error o #$78 (Token

en bolsa)

Tabla 4.8 – Códigos de ordenes reconocidos por el R.A.S.

4.10 Conexión 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 1 16 Rx paralelo (A pin 16 Mic2)

No utilizable 2 15 Rx paralelo (A pin 15 Mic2)

Vcc 3 14 Rx paralelo (A pin 14 Mic2)

Referencia 4 13 Rx paralelo (A pin 13 Mic2)

No conectado 5 12 Rx de señal de PC

Tx paralelo (A pin 6 Mic2) 6 11 Tx de señal a PC

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

Page 53: "diseño mecatrónico de un robot utilizado en la enseñanza de

Microcontrolador2

Pines

Reset 1 16 Tx paralelo (A pin 16 Mic1)

No utilizable 2 15 Tx paralelo (A pin 15 Mic1)

Vcc 3 14 Tx paralelo (A pin 14 Mic1)

Referencia 4 13 Tx paralelo (A pin 13 Mic1)

No conectado 5 12 Rx de señal de robot Karel

Rx paralelo (A pin 6 Mic1) 6 11 Tx de señal a robot Karel

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 eléctrico actual

En la página siguiente podemos ver el esquema eléctrico de nuestro modulo de transmisión:

31

Page 54: "diseño mecatrónico de un robot utilizado en la enseñanza de

Figura 4.3 – Circuitería del modulo de comunicación

32

Page 55: "diseño mecatrónico de un robot utilizado en la enseñanza de

CAPÍTULO 5

USO DEL MICROCONTROLADOR FREESCALE QG08 EN EL ROBOT AUTÓNOMO

SALVADOREÑO

5.1 Introducción:

El microcontrolador es “el cerebro” del robot y su modulo de comunicación, dentro de él está el

programa que controla y coordina a todas las funciones del R.A.S. (Robot Autónomo Salvadoreño)

para que este sea capaz de ejecutar las ordenes que se le indiquen a través del modulo de

comunicación conectado a la computadora, como su nombre lo indica es capaz de controlar a

través de sus pines a diferentes dispositivos, en el presente trabajo se ha hecho uso del periférico

de comunicación serial para manejar la transmisión y recepción de datos y del periférico de

entradas y salidas digitales para controlar la información proveniente de los sensores y a los

actuadores respectivamente, indirectamente se hace uso del periférico “temporizador” para

controlar la velocidad de transmisión.

Aunque existen muchos microcontroladores en el mercado se hace uso del Freescale QG08 ya

que posee los periféricos necesarios para la aplicación, 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 periféricos que ayudan al momento de desarrollar

los programas e incluso poseen la característica de sincronizar un programa computacional con el

microcontrolador de tal forma que se puede tener un control total sobre la ejecución del programa

en el microcontrolador y así determinar su comportamiento ya dentro de este.

A lo largo de este capítulo se explicará el funcionamiento de cada periférico, su aplicación dentro

del robot, la forma en que se coordinan los diferentes dispositivos ante cada orden, las

características propias del proceso y sus limitantes. Con esta información y con la contenida en

posteriores capítulos se podrá modificar a R.A.S. para añadirle nuevas funcionalidades o mejorar

las actuales.

5.2 Conexión de los microcontroladores dentro del R.A.S.

En el R.A.S. se utilizan microcontroladores Freescale QG08 en su presentación PDIP-16, y como

se explicará más adelante cada uno de sus pines tiene una función específica. 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 desempeña cada

uno dentro del robot.

33

Page 56: "diseño mecatrónico de un robot utilizado en la enseñanza de

Se hace notar que más adelante en este capítulo no se hace referencia nuevamente a los pines

específicos sino a lo que está conectado a ellos. Sin más que decir se presentan las tablas de

conexión:

Microcontrolador3

Pines

Reset 1 16 Sensor de colocación

No utilizable 2 15 Rx paralelo (a pin 15 Mic4)

Vcc 3 14 Rx paralelo (a pin 14 Mic4)

Referencia 4 13 Tx paralelo (a pin 13 Mic4)

Sensor de proximidad izquierdo 5 12 Rx serial

Sensor de proximidad derecho 6 11 Tx serial

Sensor de toquen en bolsa 7 10 Sensor de toquen inferior

Motor de deposito 8 9 Motor de recolección

Tabla 5.1 – Conexiones del microcontrolador3

Microcontrolador4

Pines

Reset 1 16 Control de sensores activables

No utilizable 2 15 Tx paralelo (a pin 15 Mic3)

Vcc 3 14 Tx paralelo (a pin 14 Mic3)

Referencia 4 13 Rx paralelo (a pin 13 Mic3)

Sensor de línea izquierdo 5 12 Rx serial

Sensor de línea derecho 6 11 Sensor de proximidad frontal

Motor derecho (Línea A) 7 10 Motor derecho (Línea B)

Motor derecho (Línea B) 8 9 Motor izquierdo (Línea 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 implementación de nuevos sensores, sin embargo

haciendo uso de la imaginación pueden presentarse nuevas formas de que el robot realice sus

funciones y así aprovechar aún más la configuración actual.

5.3 La configuración de los microcontroladores QG08 en el robot R.A.S.

Al referirse a R.A.S. siempre se hace una distinción entre este y el “modulo de comunicación” del

cual se ha hablado con anterioridad. Los circuitos del robot son los que han llevado más 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

Page 57: "diseño mecatrónico de un robot utilizado en la enseñanza de

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 alimentación, pin de reset y otro pines especiales que no

pueden ser utilizados en ningún momento, es por esta razón que se solventó este problema

poniendo dentro del robot dos microcontroladores, cada uno programado de forma diferente para

que entre ambos lograran desempeñar las tareas que se le asignara al robot y que se comunican

entre sí.

En el momento de la ejecución cada microcontrolador analiza si el cumplimiento de la orden le

corresponde según 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 más complejas implican que ambos microcontroladores las

realicen en conjunto, es por esto que la sincronía entre ambos debe ser perfecta, de lo contrario el

robot tendría comportamientos erráticos y fuera de control.

Para comenzar a desarrollar esta idea se presenta a continuación la forma en que están

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 comunicación que posteriormente lo enviará a la computadora, asimismo es el

encargado de manejar los protocolos de comunicación que se describirán más adelante, por otro

lado el microcontrolador4 solo puede recibir las ordenes e informarle al primero cuando haya

completado sus funciones.

Algo más que hay que notar es que aunque se intentó que cada microcontrolador pudiera realizar

ordenes de forma independiente algunas que implican subrutinas más complejas (como por

ejemplo “recoger toquen” que implica retroceder, censar el toquen, recoger y volver a la posición

35

Page 58: "diseño mecatrónico de un robot utilizado en la enseñanza de

inicial) deben ser realizadas por ambos microcontroladores trabajando en paralelo como si fueran

uno solo, es por esto que se establecen tres pines de comunicación 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 estén coordinadas

a la perfección y que la comunicación sea lo más 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 información de los sensores y controlando todas las funciones a

través de los actuadores.

Para el resto de este capitulo ya no se menciona al modulo de comunicación sobreentendiendo

que cuando se mencione que “se envía una orden desde la computadora hacia el robot” y

viceversa se hará a través de este.

5.4 Recopilación de la información

Como se mencionó en capítulos 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 detección de línea

– Sensor inferior para detección de toquen

– Sensor inferior para depósito

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

Para que el microcontrolador sea capaz de recibir esta información es necesario activar en él el

periférico 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 presentación de PDIP-16 y 5 pines en su presentación

PDIP-8).

Como es de esperarse hay que respetar ciertos requerimientos propios del microcontrolador, en

este caso las señales deben ser de menos de 3 voltios DC para no dañarlo (Para mayor

información consultar las características eléctricas del microcontrolador en el Anexo A), asimismo la

señal debe estar presente por al menos 0.3 milisegundos desde el momento en que se decide

36

Page 59: "diseño mecatrónico de un robot utilizado en la enseñanza de

leerla (Se tiene un control total sobre la forma en que el microcontrolador lee la información

proveniente del exterior a través de sus pines y aunque posee la función de reacción instantánea a

esta información se ha escogido un modelo lineal de programación que especifica que la

información solo es recibida en ciertos momentos predeterminados).

En tiempo de ejecución los sensores de proximidad son controlados con una salida digital de tal

forma que no estén activados todo el tiempo, de esta forma se evitan interferencias entre estos y

los receptores de señales; por otro lado los demás sensores funcionan de forma continua. Se

sobreentiende que un funcionamiento continuo de los sensores presenta un desperdicio de

energía, 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 información más actualizada a la computadora si esta lo requiere.

Teniendo en mente todo lo anterior se observa que existe la necesidad de filtrar las señales útiles

para la orden que se esta cumpliendo en ese momento, para esto se hace un barrido de todas las

señales de los sensores directamente en el microcontrolador y se hace un filtrado digital de

aquellas que no sean necesarias.

5.5 Uso de la información de los sensores en las subrutinas

– Sensores de línea: Los sensores de línea están ubicados en la parte inferior del robot y

funcionan de forma continua, estos están posicionados de tal forma que envíen un uno lógico

en su posición de “reposo” y un cero lógico cuando detecten la línea, su información es

utilizada en todas las subrutinas que impliquen movimientos hacia delante o atrás y con su

información el microcontrolador ajusta el movimiento de los motores de tal forma que el robot

siempre se mantenga sobre la línea, como función auxiliar estos sensores indican al

microcontrolador cuando se ha alcanzado una “esquina” (al haber una línea que cruza a la que

el robot esta “siguiendo” ambos sensores presentarán un estado lógico de cero) para que este

apague los motores y quede estático en este punto. Esta función de detección de esquina es

usada en las subrutinas de “mover” “recoger toquen” y “depositar toquen”.

– Sensor de detección 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 envía un error al recibir la orden “recoger toquen”; este registro es

utilizado también para responder la pregunta “¿Existe toquen para recoger?”); por otro lado

37

Page 60: "diseño mecatrónico de un robot utilizado en la enseñanza de

durante la orden “Recoger toquen” este sensor es utilizado para alinear el dispositivo de

recolección del robot con el toquen a recoger.

– Sensor inferior para depósito: Por requerimientos propios del diseño del chasis del robot es

necesario que se utilice este sensor para alinear el dispositivo de depósito con las esquinas

donde debe ser depositado, su información es utilizada durante la orden “depositar toquen” y le

indica al microcontrolador cuando el dispositivo de depósito esta en la posición adecuada.

– Sensor de proximidad frontal: La información 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 lógico en este sensor detiene inmediatamente los motores de avance y envía la señal

de error correspondiente a la computadora. Como función alternativa se puede responder a la

pregunta “¿Frente bloqueado?” usando la información de este sensor.

– Sensores de proximidad laterales: La información 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 través de circuitería capaz de manejar las corrientes necesarias

para hacer funcionar dichos motores, esta circuitería reacciona a entradas digitales de baja

corriente (señales de control enviadas por el microcontrolador) y posee salidas que pueden

manejar varios amperios, la función del microcontrolador es la de coordinar a los motores para

cumplir la orden recibida.

Como se pudo ver en el capítulo anterior la computadora solamente envía la orden, pero no envía

instrucciones de como ejecutar dicha orden, es por esto que los microcontroladores están

programados con las instrucciones específicas para ejecutarlas.

5.7 Lógica interna del R.A.S.

Se entiende por lógica 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

Page 61: "diseño mecatrónico de un robot utilizado en la enseñanza de

microcontrolador pierda el control de lo que esta sucediendo, asimismo las subrutinas son tales

que nunca se entra en ciclos infinitos que evitarían que el robot pudiera cumplir nuevas ordenes.

Otra característica 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

continuación podemos ver un flujorama que explica mejor esta idea:

Figura 5.2 – Flujorama general de ejecución de ordenes

Dentro de los pasos “Recibir orden” e “Informar a PC” se ejecutan los protocolos comunicación

descritos anteriormente; dentro de paso “Ejecutar orden recibida” se encuentran las diferentes

subrutinas descritas a continuación:

– Subrutina “mover”: La subrutina mover esta diseñada para funcionar estrechamente ligada con

los sensores inferiores seguidores de línea, la dependencia de estos no pudo ser eliminada

dado que el diseño mecánico del dispositivo requiere de corrección de trayectoria para lograr ir

en línea recta; una vez recibida la orden se activan los motores de desplazamiento al mismo

tiempo, en este punto los sensores de línea se encuentran sobre la línea que va perpendicular

a la que se tiene que seguir por lo que la corrección de giro es imposible en este punto, una

vez superada está línea se activa la corrección de giro para estabilizar al robot de tal forma que

cuando un sensor detecte que esta sobre la línea a seguir se apagará el motor de ese lado

para corregir la trayectoria, una vez que el sensor deja de detectar la línea se vuelve a

encender el motor correspondiente para continuar con una trayectoria normal; al llegar a la otra

esquina los sensores se encontrarán con otra línea perpendicular a la que se está siguiendo y

39

Page 62: "diseño mecatrónico de un robot utilizado en la enseñanza de

esto indicará que se ha llegado a la siguiente esquina, terminando la subrutina, sin embargo en

cualquier momento puede encontrarse una obstrucción en el camino que obligaría a detener

toda ejecución e informar sobre el fallo a la computadora. Por ultimo se establece un tiempo

máximo de 45 segundos para ejecutar la orden, si se supera este tiempo se sobreentiende que

el robot es incapaz de desempeñar su trabajo por alguna razón 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 depósito de tal forma

que los toquen sean depositados sobre la esquina (cruce de las líneas que el R.A.S. debe

seguir durante su movimiento), para esto se realiza un avance (que incluye corrección de giro)

hasta que el “sensor inferior para depósito” detecta la esquina, al alcanzar este punto se

apagan los motores de movimiento y se activa el motor que controla el depósito de toquens,

una vez depositado el toquen se realiza un retroceso (que incluye correción de giro) hasta que

los sensores seguidores de línea 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

Page 63: "diseño mecatrónico de un robot utilizado en la enseñanza de

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

línea siempre se mantienen sobre las líneas indicadoras de trayectoria y sobre una esquina por

lo que su información 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 depósito durante la subrutina

“depósitar toquen”), que es en realidad de la misma naturaleza de los sensores detectores de

41

Page 64: "diseño mecatrónico de un robot utilizado en la enseñanza de

línea, por lo tanto este sensor podrá darnos la información necesaria.

Una vez activados los motores el sensor de toquen comienza detectando la línea original

donde se encontraba, posteriormente detecta que ya no hay línea, al momento que este

detecte nuevamente una línea se asume que el robot ha realizado un giro de 90°. A

continuación 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 través de “registros” especiales.

Al igual que las ordenes el microcontrolador hace uso de subrutinas para poder responder a las

preguntas, estas se describen a continuación:

– Subrutina para responder preguntas con sensores: Las preguntas respondidas a través 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 capítulos 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 activación de los sensores:

42

Page 65: "diseño mecatrónico de un robot utilizado en la enseñanza de

Figura 5.7 – Flujorama de secuencia para contestar a preguntas

Dentro del bloque “confirmar información recibida” se activa nuevamente el sensor para

confirmar que la información que este presentó originalmente es la correcta, se ejecutará este

paso tres veces, si la información no puede ser confirmada con dos lecturas iguales

consecutivas entonces se considera que la información no es válida y se enviará un código de

error a la computadora.

43

Page 66: "diseño mecatrónico de un robot utilizado en la enseñanza de

45  

CAPÍTULO 6

LA CIRCUITERÍA DEL R.A.S.

6.1 Introducción

El producto principal a ser desarrollado por el presente trabajo de graduación es el robot R.A.S.,

como su nombre lo indica este debe ser un dispositivo autónomo, capaz de ejecutar ordenes en

tiempo real, con cierta capacidad de adaptación y que funcione con su propia energía.

A lo largo del proceso de desarrollo y al ir aumentando los requerimientos lógicamente se fue

aumentando la complejidad de los circuitos por lo que fue necesario adoptar un diseño modular de

los mismos, llegando a poder diferenciar exactamente las partes que conforman al robot y que

unas interactúen con las otras de forma que trabajen como una sola.

Es por este diseño que el robot R.A.S. (producto de este trabajo de graduación) podrá seguir

siendo desarrollado en el futuro, por ejemplo, cambiándole la tarjeta de sensores o cambiando la

tarjeta de control de motores, incluso en el presente capítulo se explica cómo mantener la

estructura más básica del robot de tal forma que pueden cambiarse los transmisores y receptores y

toda la configuración de la tarjeta de control por lo que R.A.S. puede usarse como una herramienta

educativa para estudiantes de electrónica.

6.2 Requerimientos

Como requerimientos mínimos que el robot debe cumplir se tienen los siguientes:

Ejecutar las cuatro órdenes principales: mover, girar, recoger toquen y depositar toquen.

Comunicación full dúplex con el software Karel: esto se logra a través del modulo de

comunicación descrito en otros capítulos.

Informar a la computadora sobre errores encontrados en tiempo de ejecución.

Facilidad de uso.

Uso continuo de al menos 1 hora sin cambio de baterías y

Uso de rutinas que no dependan del tiempo de ejecución.

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

Page 67: "diseño mecatrónico de un robot utilizado en la enseñanza de

46  

Uso eficiente de la energía.

Estética en los circuitos y buena presentación visual.

Se puede decir que la versión actual del R.A.S. cumple a cabalidad con todos estos

requerimientos.

6.3 El diseño modular del R.A.S.

El R.A.S. se compone de 4 tarjetas (módulos) principales:

Tarjeta de control: en ella están localizados los microcontroladores que sincronizan todo el

proceso, circuitería para que estos funcionen y algunas protecciones para los mismos, esta

tarjeta es “el cerebro” del R.A.S.

Tarjeta de comunicación inalámbrica: este componente, como su nombre lo indica, incluye el

transmisor y receptor de la señal proveniente del modulo de comunicación conectado a la

computadora y está construido de tal forma que module la señal proveniente de la “Tarjeta de

control” así como demodular la señal entrante para una correcta comunicación.

Tarjeta de sensores: como se explicará más 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 conexión directa con la tarjeta de control. En esta tarjeta

se ha puesto la circuitería necesaria.

Control de motores: esta tarjeta fue diseñada para los requerimientos de los motores de

avance del R.A.S. (Motores de corriente directa) pero es controlada a través de señales

digitales provenientes de la tarjeta de control.

6.3.1 La tarjeta de control

La tarjeta de control es la que proporciona las señales hacia los actuadores dependiendo de las

señales obtenidas en los sensores. En esta tarjeta es donde se encuentran la alimentación 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 recolección y depósito, así como borneras

que nos permitirán conectar las demás tarjetas; el diagrama eléctrico se muestra en la Figura 6.1.

Page 68: "diseño mecatrónico de un robot utilizado en la enseñanza de

47  

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 dañarlos con

sobrevoltajes; además como protección para los QG08 se coloca un amplificador operacional

contenido en el integrado LM324 (mayor información consultar la datasheet incluida en el CD

adjunto en el presente trabajo) con la configuración 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).

Page 69: "diseño mecatrónico de un robot utilizado en la enseñanza de

48  

Figura 6.2- Configuración de un AP como seguidor de Voltaje

El único camino a tierra para el voltaje de entrada es a través 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.

También se incluye el control de los motores de recolección y depósito de toquen, los cuales están

controlados con el integrado L293B (mayor información 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 señales TTL es decir con 5 voltios (se habla de

señales lógicas).

Cada canal es capaz de entregar hasta 1A de corriente.

Posee una entrada de alimentación independiente que alimenta los 4 Drivers, es decir la

que requieren los motores.

Protección contra sobretemperaturas

Protección interna contra sobretensiones producidas por cargas inductivas

Alta inmunidad al ruido.

La alimentación de los canales del driver L293B está conectada a un transistor BD140 (transistor

PNP, mayor información consultar la datasheet incluida en el CD adjunto en el presente trabajo)

el cual es controlado por otro circuito integrado (el TL494, mayor información consultar la datasheet

incluida en el CD adjunto en el presente trabajo) que sirve para el control de la velocidad de los

motores de recolección y deposito de toquen; con este integrado se hace un PWM que es un

modulador de velocidad por ancho de pulsos y que básicamente consiste en enviar a los

terminales de control un tren de pulsos los cuales varían en mayor o menor medida el tiempo en

Page 70: "diseño mecatrónico de un robot utilizado en la enseñanza de

49  

que se mantiene el nivel alto de esos pulsos, manteniendo la frecuencia constante mediante el uso

de una resistencia variable o potenciómetro, con esta forma de control la cantidad de corriente

sigue siendo la misma, la tensión no varía 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 más comunes y económicos, y pueden encontrarse en las tiendas de electrónica o en la

mayoría 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 interacción entre el campo magnético del imán permanente y el

generado por las bobinas, ya sea una atracción o una repulsión hacen que el eje del motor

comience su movimiento.

Se hace uso de transistores 2N2222 (transistores npn, mayor información consultar la datasheet

incluida en el CD adjunto en el presente trabajo) para alimentar los módulos restantes.

¿Porque se usan los transistores?

Un transistor funciona como amplificador cuando la corriente de base oscila entre cero y un valor

máximo. En este caso, la corriente de colector es múltiplo de la corriente de base. Si aplicamos a la

base de un transistor una señal de corriente con una forma determinada obtendremos una

corriente de colector mayor y proporcional a la señal aplicada. Y de esta manera controlamos

grandes corrientes con señales de baja corriente aplicadas a la base del transistor.

Sistema de alimentación:

¿Cuál será su fuente de energía principal?

Al rescate vienen toda una gama de baterías que se pueden usar, casi cualquier batería recargable

ya sea de gel, NiCad, NiH, ion de litio como las usadas en los teléfonos celulares, etc., hoy en día

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

clásico porta pilas para seis unidades “AA” de 1.5V, esto nos dará en total los 9 V necesarios para

Page 71: "diseño mecatrónico de un robot utilizado en la enseñanza de

50  

alimentar al R.A.S., si se elige cualquier otra procuraremos que los voltajes que entreguen sean

cercanos a éste ya que se usa lógica TTL y algunos otros dispositivo que son poco tolerantes a

variaciones de voltaje cercanos al indicado, si se diera el caso de usar alguna batería de mayor

voltaje lo indicado es utilizar un regulador de voltaje de 9 Voltios.

6.3.2 Tarjeta de comunicación inalámbrica y Tarjeta de sensores

Como se puede ver estos dos módulos han sido impresos en la misma tarjeta para hacer uso

apropiado del espacio y así reducir el tamaño de la circuitería.

Esta etapa es la que se encarga de informarle al modulo de control lo que sucede a su alrededor,

así como también de comunicarlo con el modulo de control que se encuentra en la PC.

Aquí se encuentra el módulo de comunicación (recepción y transmisión), así como también el

circuito del Timer 555 (mayor información consultar la datasheet incluida en el CD adjunto en el

presente trabajo) con su configuración como astable que se usa para generar la señal a 40KHz

para la transmisión; además se encuentran todos los circuitos que controlan los 8 sensores que

posee el R.A.S. los cuales se mencionan a continuación:

Dos sensores seguidores de línea o detectores de esquina

Un sensor de toquen en bolsa

Un sensor de toquen inferior

Un sensor de alineación o giro del R.A.S.

Tres sensores de proximidad (frontal, derecha e izquierda).

Page 72: "diseño mecatrónico de un robot utilizado en la enseñanza de

51  

COMUNICACIÓN INALAMBRICA

Transmisión y Recepción.

TECNOLOGIA INFRARROJA (IR)

Para hacer una breve descripción de lo que es una radiación 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 emisión de luz), ahora, en los extremos del espectro se encuentra la radiación

infrarroja (IR) y la ultravioleta (UV), ambas son imposibles de ver, es decir son invisibles, pero

están presentes y nosotros las vamos a poner en evidencia. En algunos casos una vez

establecida la comunicación entre emisor y receptor, es posible realizar una transmisión de datos.

Las comunicaciones inalámbricas son interesantes desde todos los puntos de vista y en todos los

ámbitos tecnológicos. El fin principal que persigue la Robótica Móvil es la creación de sistemas

completamente autónomos y un grado de autonomía puede ser la comunicación entendida en un

sentido amplio. Existen varias tecnologías que nos van a permitir el establecimiento de

comunicaciones inalámbricas 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 señales al R.A.S. Las ideas que aquí se comentan también pueden utilizarse para la

construcción de sensores de detección de obstáculos sin más que cambiar la disposición y

colocación de los elementos emisor y receptor.

Recepción

Vamos a comenzar por definir y comentar la parte de la recepción de la señal 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 diseñar y ajustar los circuitos que necesitamos en la parte de la emisión.

Para la recepción vamos a utilizar un dispositivo que unifica en el mismo encapsulado el receptor

de luz infrarroja, una lente y toda la lógica necesaria para distinguir señales moduladas a una

determinada frecuencia. Concretamente, en este montaje utilizaremos los receptores

PL-IRM0101-3 (mayor información 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 número de mandos a distancia de electrodomésticos.

Sus características principales son:

1.-Se alimentan con un voltaje de 5 Volts.

2.-Incorporan un filtro óptico que sólo permite el paso de la radiación infrarroja centrada en el rango

de 900 NM.

Page 73: "diseño mecatrónico de un robot utilizado en la enseñanza de

52  

3.-Incorporan a su vez un filtro electrónico lo cual permite la detección de un determinado ancho de

banda, la cual está centrada de 38 a 40kHz.

4.-Su tamaño es pequeño en comparación del circuito que tendríamos que realizar y por

consiguiente, sólo tres terminales de conexión.

5.- Presenta a su salida un estado alto si no hay presencia de señal, en caso de haber señal y que

ésta sea modulada su estado cambia a bajo.

6.- Su salida nos proporciona una señal sin ruido alternando entre estado alto y bajo, lo que lo hace

ideal para conectarla directamente a dispositivos de lógica TTL o CMOS.

Aunque el patillaje es diferente entre los distintos fabricantes y deberá consultarse en el datasheet

correspondiente antes de realizar cualquier conexión, 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 señal infrarroja.

El receptor infrarrojo se colocó viendo hacia arriba en la antena porque de esta forma podía captar

las señales infrarrojas provenientes desde arriba en cualquier dirección, con un ángulo no mayor a

30°, colocada a su alrededor. Cuando el receptor y el emisor están colocados de frente

directamente se midió que la señal se captaba desde una distancia de 3 a 4 metros y con un

ángulo de aproximadamente 30º. Para el emisor infrarrojo sólo tenemos que usar un modulador

que podemos implementarlo con un astable con 555 a una frecuencia cercana a 40 kHz.

Transmisión

Una vez resuelto el problema de la recepción, vamos a centrarnos en la otra parte del sistema: la

emisión. Ya hemos mencionado que los receptores utilizados son sensibles a la mayor parte de los

mandos de infrarrojos de electrodomésticos. Eso nos puede ayudar en la fase de pruebas de la

recepción e incluso utilizar el mando para enviar órdenes al robot.

Como se dijo antes, el objetivo es establecer una comunicación 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 configuración como astable (ver figura 6.3) para hacer que

el circuito funcione a una frecuencia de 40KHz. A continuación se muestra el circuito de

transmisión y recepción en la figura 6.4

Page 74: "diseño mecatrónico de un robot utilizado en la enseñanza de

53  

Figura 6.3- Diagrama de la configuración del timer 555 como astable

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

Page 75: "diseño mecatrónico de un robot utilizado en la enseñanza de

54  

Seguidores de Línea

Colocar Toquen

Sensores.

Seguidores de línea:

Es el módulo más sencillo de implementar, su función principal es seguir una línea dibujada en una

mesa o el piso y que sea de algún color contrastante con el área circundante la cual puede ser una

línea 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 sólo dos sensores

para poder discernir hacia dónde es la orientación de avance con respecto de la línea y así el móvil

retorne a la ruta en caso de que se desvíe.

Los motores tienen que ser de corriente continua y habrá que fabricarles una reductora si no

disponen de ella para mover las ruedas, contra más grandes sean las ruedas, mas velocidad

alcanzara el robot, aunque no hay que pasarse con el diámetro de estas porque si no en las curvas

se saldrá de trayectoria, unos 6 cm. es lo ideal.

Los sensores están en la parte de debajo del R.A.S. e irán dispuestos mirando al suelo y a unos 3

o 4 mm de separación desde el suelo a la superficie del sensor y la separación entre ambos

sensores será para que quede dentro de la línea 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 baterías demasiado deprisa. El

trazado lo podremos hacer sobre una cartulina blanca y para trazar las líneas usar cinta aislante

negra. La PCB de los sensores se muestra en la figura 6.5

Figura 6.5. Diagrama del circuito y vista real de los sensores seguidores de línea y el sensor de

colocar toquen.

Page 76: "diseño mecatrónico de un robot utilizado en la enseñanza de

55  

FUNCIONAMIENTO

El funcionamiento es el siguiente, los “ojos ” de nuestro móvil serán el sensor EE-SY201 (mayor

información 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 través de una resistencia de 680 Ohmios y en el receptor el fototransistor se conecta vía

una resistencia y un diodo Zener para lograr los 3V que van al micro controlador, cuando el

receptor capte reflexión circulará a través de él una corriente proporcional al nivel de radiación

incidente, ese flujo de corriente provocará en el resistor una caída de voltaje donde el nivel de éste

dependerá si la reflexión la provoca una superficie clara u oscura.

Lógicamente, la mayor reflexión será presente cuando el sensor cruce por alguna área clara y en

donde se presente la línea oscura será menor, de esta manera podremos diferenciar cuando esté

sobre la línea y cuando se desvíe de su camino a seguir. Cuando tenga los dos sensores viendo

claro, los 2 motores estarán en marcha con lo que el robot avanzara en línea recta, ahora bien si el

llega a una curva y supongamos que el sensor izquierdo entra en la línea 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 línea 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 construcción soportan una determinada corriente a través de ellos, al añadir la

resistencia disminuimos la corriente que circula por ellos, adecuándola en cada caso a lo

especificado por el fabricante.

¿Cómo 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 (agrupación 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.

Page 77: "diseño mecatrónico de un robot utilizado en la enseñanza de

56  

Además hay que tener en cuenta que toda la tensión “sobrante” a de caer en la resistencia. Como

tenemos estos dos datos, la corriente que ha de circular por la rama y la tensión que ha de caer en

la resistencia, podemos utilizar la ley de Ohm, que nos dice la relación 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 tensión entre la

alimentación y la tensión umbral del LED.

Para ello es necesario saber las tensiones umbrales típicas de los LED según 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 máximo por lo tanto

se utiliza el mínimo 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 cálculo 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 ubicación de este sensor es en parte donde se acumulan los toquen en el R.A.S. y la función de

este es de informar al micro controlador la existencia de toquen en la bolsa o depósito del R.A.S.

(ver figura 6.6), el sensor es el mismo usado en los seguidores de línea 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

Page 78: "diseño mecatrónico de un robot utilizado en la enseñanza de

57  

Sensor de Colocar toquen

Este se encuentra ubicado en la parte de abajo del robot al igual que los seguidores de línea (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 físico del R.A.S. no puede depositarse toquen sobre toquen.

Sensor de alineación o giro de R.A.S.

Este sensor se encuentra ubicado en la parte de atrás 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,

envía la señal 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 línea a la hora de dar

un mover o un nuevo giro.

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

Sensores de proximidad

El propósito es detectar obstáculos sin la necesidad de tener un contacto físico con ellos, para eso

recurrimos a sensores infrarrojos por reflexión ( ver figura 6.8), llamados también Bumpers, para

referirnos a ellos lo haremos de la manera más sencilla y práctica, si bien se puede implementarse

con dispositivos de fácil adquisición la problemática es el ajuste de los mismos. En estos sensores

se ha usado el SHARP GP1U7 (mayor información 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 colocación 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

Page 79: "diseño mecatrónico de un robot utilizado en la enseñanza de

58  

errático, pueden intentarse colocarse con un ligero ángulo para poder restringir un poco más la

distancia. Para eso pueden hacer pruebas variando el ángulo y llegar a la colocación mas idónea,

en caso de colocarlos en paralelo la distancia de detección es alrededor de 15 a 20 cm, esto puede

variar por el tipo de sensor y emisor a usar.

Se Deben colocar en algún lugar estratégico del móvil, en la parte frontal del móvil 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 señal se refleje en algún obstáculo el sensor

entregará una señal modulada como respuesta.

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, también incluye la recepción de señales de todos los sensores para luego

enviarlas al circuito de control, donde se encuentran los microcontroladores se muestra a

continuación en la figura 6.9:

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

GP1U7

LEDIR

Page 80: "diseño mecatrónico de un robot utilizado en la enseñanza de

59  

6.3.3 Modulo de control de motores

En esta oportunidad se presenta la unidad de potencia, necesaria para poder traducir las señales

provenientes de los sensores en señales eléctricas 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 rápido y no tiene el

torque suficiente, es por eso que es recomendable o casi imprescindible utilizar una caja de

piñones reductora. Esta permite transformar un pequeño motor rápido, pero poco potente, en un

motor mas lento pero con mejor torque.

En esta etapa no sólo necesitamos que active a nuestros motores y proporcione la corriente

necesaria, también necesitamos las prestaciones para que pueda invertir el sentido de circulación

de corriente a través 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 más que cuatro transistores, necesita

resistencias limitadoras, también necesita diodos de protección puesto que los motores en sí son

una carga inductiva que provoca regresiones de voltaje que pueden dañar a algunos circuitos,

además de que los transistores deben estar debidamente seleccionados para el monto de corriente

necesaria, eso sin contar el espacio que ocuparán, el costo, etc.

Lo importante es simplificar el trabajo y no convertir al R.A.S. en un auténtico “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 electrónico. En un único encapsulado doble en línea tiene dos circuitos

puente “H” completos, con la capacidad de poder manejar cargas de hasta 2 A, entrada de

habilitación (enable) de cada puente “H” que es útil para manejar PWM, diodos de protección

integrados, además de que acepta a su entrada niveles lógicos TTL de hasta 7V máximos de

amplitud.

Dependiendo de la configuración, es capaz de manejar dos motores independientes con su

respectivo control de inversión de sentido o hasta cuatro motores en un solo sentido de giro, como

podrán apreciar no sólo es versátil, sino que reduce en gran medida a nuestra etapa de potencia y

es simple de usar, y su costo es una fracción de lo que gastaríamos en armar a su contraparte de

manera discreta, prácticamente conéctese y úsese. Aquí se incluye el CI TL494 que se usa para la

modulación de velocidad por pulsos (PWM).

Page 81: "diseño mecatrónico de un robot utilizado en la enseñanza de

60  

A continuación se presenta el diagrama de conexión 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.

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 82: "diseño mecatrónico de un robot utilizado en la enseñanza de

61  

CAPÍTULO 7 

CONSTRUCCIÓN Y SISTEMA DE CABLEADO DE LOS MODULOS DEL R.A.S. 

7.1 Creación de las PCB (Printed Circuit Board)

Para esta parte del proyecto se utiliza el programa “PCB Wizard” el cual es un programa

diseñado para el ámbito educativo que permite crear esquemas de circuitos electrónicos y a partir

de estos obtener, de una manera sencilla, el diseño del circuito impreso a una o dos caras.

Además, es compatible con archivos generados con Crocodile Clips.

Pasos para el diseño de las PCB:

- Después 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 tamaño según su

potencia), al igual que los diodos Zener, transistores y todo elemento que incluya el

circuito.

- Al haber diseñado por completo el diagrama se hace uso del programa PCB Wizard, en

este se de la el tamaño de la placa (si se requiere doble cara también se puede hacer),

luego se ordenan los elementos dependiendo las necesidades y la ubicación que se

requiera para cada elemento; el siguiente paso es uno de los mas complicados que es el

“enrutar” las líneas en la placa.

- Luego de haber terminador el enrutamiento de líneas y el ordenamiento de todos los

elementos que se incluirán en la placa se procede a la impresión del circuito para

posteriormente transferirlo a las placas donde se diseñará y se soldaran los elementos

finales.

- Para hacer la transferencia haremos uso del método conocido como "Método de la

plancha", pues se utiliza una plancha convencional (de las empleadas para planchar la

ropa) para transferir el tóner de una impresión láser 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 módulos de circuitos independientes que actúan en conjunto.

Page 83: "diseño mecatrónico de un robot utilizado en la enseñanza de

62  

7.1.1 Modulo de control del R.A.S.

Como se menciono antes aquí es donde esta el control o “cerebro” del Robot Autónomo

Salvadoreño (R.A.S.).

Figura 7.1- Diagrama de pistas del módulo de control del R.A.S.

Para los módulos se utilizaron placas a dos caras, en la figura 7.1 las líneas verdes van en el lado

de arriba en la placa donde van los elementos y las líneas rojas van en la parte de abajo.

Después 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 módulo de control

Page 84: "diseño mecatrónico de un robot utilizado en la enseñanza de

63  

7.1.2 Modulo de sensores y transmisión del R.A.S.

Este es el modulo donde se encuentran los seguidores de línea, sensores de toquen, de giro, de

proximidad y la parte de transmisión y recepción del R.AS (ver figura 7.3). En él las borneras o

conectores están ubicadas de tal manera que al colocar esta placa sobre la placa de control estas

quedan en la misma dirección, esto se hace para evitar desordenes de cableado y facilitar el

armado a la hora de ensamblar los módulos.

Figura 7.3-Diagrama de pistas del módulo de sensores y transmisión del R.A.S.

La PCB final con todos sus elementes ordenados y terminada se muestra a continuación en la

figura 7.4 y sus dimensiones son 4,5 x2,5”:

Figura 7.4- Vista real del modulo de sensores y transmisión de R.A.S.

Page 85: "diseño mecatrónico de un robot utilizado en la enseñanza de

64  

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, también 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 están 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 módulo 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 presentación 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 módulo de potencia de R.A.S.

Page 86: "diseño mecatrónico de un robot utilizado en la enseñanza de

65  

+5V

-Ref

PTA0

ColTok

LinIzq

Pfron

TokInf

Pizq

Pder

TokBolsa

LinDer

+5V

SeñalLed+5V

SeñalLed+5V

SeñalLed

+5V

Señal Led+5V

Señal Led +5V

Ref+

5VRef

+5V

SeñalProx

RefRxTx

IRPfron

IRPizq

IRPder

SeñalProx

SeñalProx

7.2 Ensamblado del R.A.S.

R.A.S. consta de tres módulos los cuales deben interactuar entre ellos de forma que trabajen como

un solo módulo. Para hacer el ensamblado de estos se siguen los siguientes pasos:

1. Se debe identificar y diferenciar claramente entre los tres módulos para poder comenzar el

ensamblado, después de tener claro y haber identificado cada placa o módulo se irán

armando uno después del otro como se indica en los siguiente pasos, también 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 transmisión y recepción con el de control a través de las tres

primeras líneas 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 están numerados los pines para

conectarlos adecuadamente, también 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 envían las señales 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 conexión que se muestra

a continuación:

Figura 7.7 - Identificación de las borneras en el modulo de sensores y transmisión del R.A.S.

Page 87: "diseño mecatrónico de un robot utilizado en la enseñanza de

66  

El cable utilizado para hacer la conexión es muy flexible y delgado, además se puede adquirir en

cualquier tienda electrónica de el país; este puede sustituirse por cualquier otro tipo de cable con

diferente color pero de preferencia que sea flexible ya que es mas fácil de manejar y tiene mayor

inmunidad a cortes por fatiga. En la tabla 7.1 se muestra el color correspondiente a cada conector.

CONECTOR COLOR DE CABLE

Tx Naranja con blanco

Rx Naranja con blanco

+5V de sensores Rojo con blanco

Led Blanco

Señal Verde claro

IR Pder, IR Pizq, IR Pfron Blanco con negro

Señal Prox naranja

Ref Café

PTA 0 Morado

+5V Rojo

-Ref Negro

Col Tok, Lin izq, Pfron, Tok inf, Pizq, Pder,

Tok bolsa, Lin der Verde oscuro

Tabla 7.1- Colores del sistema de cableado del modulo de sensores y transmisión del R.A.S.

3. Después 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 pequeños tubos plásticos 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 atrás del robot, ahí se encuentran siete líneas que transmiten las señales de siete

sensores desde la placa correspondiente, la alimentación 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

comunicación 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.

Page 88: "diseño mecatrónico de un robot utilizado en la enseñanza de

67  

Para no cometer errores a la hora de conectar se deben verificar los colores de los cables

y números que corresponden a cada conector y además hacer uso del diagrama de control

y recordar que todos los conectores se encuentran en la misma dirección excepto el de

línea derecha y el de toquen inferior que se encuentran cruzados, es decir, el de línea esta

en dirección 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 recolección y deposito, por lo que

los conectores correspondientes se encuentran uno a la derecha y el otro a la izquierda.

Para facilitar la conexión se hace uso del siguiente sistema de cableado que posee la

misma lógica que los otros módulos:

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

+9V+ - PT

B2 PTB3

PTB5

PTB4

-Ref

LinIzq

Pfron

TokInf

Pizq

Pder

TokBolsa

LinDer

+5V+- -

Ref PTA0

ColTokRxTx

+9V

-

Page 89: "diseño mecatrónico de un robot utilizado en la enseñanza de

68  

La siguiente tabla 7.2 muestra los colores de los cables utilizados actualmente y el conector en el

que deben colocarse:

CONECTOR COLOR DE CABLE

Tx Naranja con blanco

Rx Naranja con blanco

+9V Rojo

- (negativo) Negro

PTA 0, PTB2, PTB3, PTB4, PTB5 morado

+ motores (positivo) rojo

- motores (negativo) negro

+5V Rojo

-Ref Negro

Col Tok, Lin izq, Pfron, Tok inf, Pizq, Pder,

Tok bolsa, Lin der 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 alimentación del circuito

y el control de los motores de avance.

5. Las borneras restantes que se encuentran en la parte de atrás 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 acción. A continuación se muestra el diagrama de conexión en la figura 7.9:

Page 90: "diseño mecatrónico de un robot utilizado en la enseñanza de

69  

+9V

PTB2

PTB3

PTB5

PTB4

-Ref

+9V

- +

-+

-

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

La tabla de conexión de los cables para el circuito de potencia o control de motores es la

siguiente:

CONECTOR COLOR DE CABLE

+9V Rojo

- (negativo) Negro

PTB2, PTB3, PTB4, PTB5 morado

+ motores (positivo) rojo

- Motores (negativo) negro

- Ref 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

Page 91: "diseño mecatrónico de un robot utilizado en la enseñanza de

70  

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.

- Después 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 línea, 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 recolección y depósito 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, pero al entrar en

funcionamiento estos tienen un consumo de 140mA.

- Por lo tanto la corriente máxima 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

añade el consumo de la circuitería del R.A.S. nos da un consumo total de 350mA, de lo

contrario el robot tiene un consumo mínimo 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:

Page 92: "diseño mecatrónico de un robot utilizado en la enseñanza de

71  

NOMBRE CASA PROVEEDORA CANT.

Resistencia 100Ohmios Casa Rivas 1

Capacitos de 10nF Casa Rivas 1

Conectores de 3 Casa Rivas 5

Transistor pnp BD140 Casa Rivas 1

Resistencia de 51 KOhmios Casa Rivas 2

Capacitor electrolítico 1microF Casa Rivas 2

Resistencia de 330Ohmios Casa Rivas 3

Potenciometro de 10KOhmios Casa Rivas 1

CI PWM TL494 Casa Rivas 1

CI L293B Casa Rivas 1

Placa de 2,5 x 4,5 “ Radio Parts 1

Estaño (yardas) Casa Rivas 10

Bases de 16 pines Casa Rivas 2

Percloruro(bolsita) Josnab 1

Papel couché (pliegos) Papelisa 3

Tabla 7.4 - Elementos utilizados en el modulo de Potencia

7.4. 2 Modulo de sensores y transmisión:

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

son los siguientes en la tabla siguiente:

NOMBRE CASA PROVEEDORA CANT.

Resistencia 1.3Kohmios Casa Rivas 1

Resistencia 100Ohmios Casa Rivas 6

Capacitos de 10nF Casa Rivas 2

Resistencia de 1Kohmios Casa Rivas 1

Conectores de 3 Casa Rivas 16

Transistor npn 2222A Casa Rivas 1

Capacitor electrolítico 47microF Casa Rivas 1

Capacitor electrolítico 1microF Casa Rivas 2

Resistencia de 330Ohmios Casa Rivas 10

Resistencia de 680Ohmios Casa Rivas 9

CI inversos 74LS04 Casa Rivas 1

Page 93: "diseño mecatrónico de un robot utilizado en la enseñanza de

72  

CI AND 74LS08 Casa Rivas 1

Diodos Zener 3V Casa Rivas 8

Diodos 1N4007 Casa Rivas 3

Led Casa Rivas 1

Led Infrarrojo Electrónica 2001 1

Timer 555 Casa Rivas 1

Placa de 2,5 x 4,5 “ Radio Parts 1

Estaño (yardas) Casa Rivas 10

Receptor de IR Electrónica 2001 1

Bases de 14 pines Casa Rivas 2

Bases de 8 pines Casa Rivas 1

Percloruro(bolsita) Josnab 1

Tabla 7.5 - Elementos utilizados en el modulo de sensores y transmisión

7.4.3 Módulo 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 CASA PROVEEDORA CANT.

Resistencia 51Kohmios Casa Rivas 2

Resistencia 100Ohmios Casa Rivas 2

Capacitos de 10nF Casa Rivas 1

Resistencia de 1Kohmios Casa Rivas 3

Potenciometro de 10Kohmios Casa Rivas 1

Conectores de 3 Casa Rivas 10

Transistor npn 2222A Casa Rivas 1

Transistor pnp BD140 Casa Rivas 1

Resistencia de 51 Ohmios Casa Rivas 1

Capacitor electrolítico 1microF Casa Rivas 2

Resistencia de 330Ohmios Casa Rivas 6

Switch de encendido Casa Rivas 1

Switch Reset Casa Rivas 1

Microprocesador QG08 Importado 2

CI OPAM LM324 Casa Rivas 1

Page 94: "diseño mecatrónico de un robot utilizado en la enseñanza de

73  

CI PWM TL494 Casa Rivas 1

CI L293B Casa Rivas 1

Diodos Zener 3V Casa Rivas 2

Diodos Zener 5V Casa Rivas 1

Placa de 2,5 x 4,5 “ Radio Parts 1

Estaño (yardas) Casa Rivas 10

Bases de 14 pines Casa Rivas 1

Bases de16 pines Casa Rivas 4

Percloruro(bolsita) Josnab 1

Cables (yardas) Casa Rivas 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 electrónica

- Problema mecánico a la hora de recoger toquen debido a que el imán quedaba en posición

de recoger, la solución fue sugerir al grupo de mecánica que colocaran una contrapesa a

180 grados para que esto haga que el imán que en la posición 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).

Solución: Primero se diseño una placa capaz de alimentar motores de hasta 4A haciendo

uso de transistores de potencia y diseñando un puente H para poder realizar la inversión

de giro de motores a la hora de los giros a la izquierda del robot, pero surgió el problema

de que las baterías debido al alto consumo de corriente debían ser demasiado grandes,

por otro lado si se colocaban baterías pequeñas estas durarían no más 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 más 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 impresión invertida y no hay forma de resolver este problema utilizando

PCB Wizard; por lo tanto se hace uso de programas auxiliares ya sean de diseño grafico o

Page 95: "diseño mecatrónico de un robot utilizado en la enseñanza de

74  

cualquier programa en el que se pueda invertir la imagen, y haciendo uso del “print screen”

o imprimir pantalla (para obtener el máximo tamaño 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 tamaño original

para poder imprimirla y así quede del mismo tamaño que la cara del lado de debajo de la

PCB.

- Interferencia entre transmisión 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 producían fallos en la comunicación debido a que las señales siempre se

sobreponían 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 estén apagados a la hora de que estén recibiendo las señales

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 rápidamente 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, además de que la corrosión continúa

después de quemadas las placas y dado que el percloruro se impregna demasiado en ellas

y continua haciendo su efecto de oxidación.

- Después de que las placas están completamente quemadas, la mejor forma de quitar el

tóner o tinta es usando un poco de gasolina ya que esta disuelve fácilmente el tóner, así

como la tinta permanente de los plumones que se utilizan para corregir o hacer pistas.

Page 96: "diseño mecatrónico de un robot utilizado en la enseñanza de

75  

RECOMENDACIONES

- Hacer uso de tecnologías como la tecnología de montaje superficial. El montaje superficial

se presta para un alto grado de miniaturización de los circuitos, los elementos utilizados

están mecánicamente rediseñados para ser soldados directamente a la superficie de los

circuitos impresos y son mucho más pequeños 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 producción. Estos dispositivos pueden reducir su tamaño entre una cuarta a un décima

parte y su costo entre la mitad y la cuarta parte a la vez que su potencia disipada

disminuye muchísimo comparada con componentes comunes.

- Es recomendable hacer uso de baterías recargables para evitar el gasto continuo en las

baterías comunes, incluso puede agregarse al robot un paquete de baterías recargables y

un circuito que las sea capaz de cargarlas sin moverlas del robot

- Diseñar placas que utilicen otros métodos de conexión y que usen menos cables, ya que

el método utilizado en este proyecto, aunque permita la expansión 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 fácilmente 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

ejecución, se evita la falla generalizada del sistema y la flexibilidad es mayor, sin embargo

esto implica una programación más compleja de las rutinas y de la sincronización. Si el

objetivo es una programación más 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 más 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 permitiría

que los estudiantes se enfocarán más en sus pruebas que en acceder a los equipos para

realizarlas.

Page 97: "diseño mecatrónico de un robot utilizado en la enseñanza de

76  

- Se recomienda que las tesis multidisciplinarias sean coordinadas por una solo director al

cual todos los grupos deban entregarle sus resultados, esto mejoraría la coordinación

intergrupal, aumentaría la velocidad del proyecto y se descubrirían los errores mucho más

rápido.

- Se debe considerar que para que un grupo funcione adecuadamente los integrantes de

este deben poseer conocimientos complementarios, sin embargo el nivel académico de

dichos integrantes debe ser similar para que ningún grupo entregue resultados inferiores

en su rama comparados con los de los demás grupos, haciendo que todo el proyecto se

vea de calidad inferior. Dado que la suma de las partes crea un producto la idea sería que

la creación de dichas partes sea de calidad equitativa entre todos los grupos.

- Diseñar y agregar los circuitos que indiquen si el RAS tiene batería baja para

reemplazarlas; así como también LED que indiquen y enciendan a la hora de transmitir o

recibir señales el robot.

Page 98: "diseño mecatrónico de un robot utilizado en la enseñanza de

77  

CONCLUSIONES

Con todo lo trabajado en el proyecto se observó que el campo de aplicación de los robots

ya sean móviles o no, es muy extenso y un solo proyecto puede crecer tanto como la

creatividad, el conocimiento, el tiempo y el recurso económico lo permita, dejando el

presente proyecto como base para futuros proyectos de mayor complejidad y aplicabilidad

dentro la propia facultad.

La orientación del proyecto demostró que es posible la creación de nuevas tecnologías

utilizando elementos disponibles en el mercado local, así queda demostrado que no hay

excusa para ser un país que únicamente importa tecnología sino que se posee el potencial

necesario para desarrollarla.

El Robot Autónomo Salvadoreño se considera como la base para la creación de un

sistema complejo capaz de realizar funciones mucho más avanzadas que las que el

lenguaje Karel puede acceder, a la vez que su diseño modular lo posiciona como un

sistema flexible y adaptable a diferentes situaciones y no únicamente al entorno didáctico.

El sistema de transmisión por infrarrojos fue totalmente diseñado para la aplicación, sin

embargo puede aplicarse para transmisión de datos de forma serial a velocidades de 500

bits por segundo a distancias de hasta 5 metros. Su costo lo hace una opción a considerar

dado que otros sistemas de transmisión pueden ofrecer distancias similares a mucho

mayor precio.

Page 99: "diseño mecatrónico de un robot utilizado en la enseñanza de

78  

Page 100: "diseño mecatrónico de un robot utilizado en la enseñanza de

79  

REFERENCIAS ELECTRÓNICAS

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

Page 101: "diseño mecatrónico de un robot utilizado en la enseñanza de

80  

Page 102: "diseño mecatrónico de un robot utilizado en la enseñanza de

81  

BIBLIOGRAFíA

Malvino Albert Paul [2000] Principios de Electrónica, 6ª Ed., Cap 5, pag 155 – 169; Cap. 6,7,8;

Cap. 18,pag. 712 – 716 y Cap 23, Pág. 973-985.

Page 103: "diseño mecatrónico de un robot utilizado en la enseñanza de

ANEXO ACARACTERÍSITICAS ELÉCTRICAS DEL QG08

Page 104: "diseño mecatrónico de un robot utilizado en la enseñanza de

CARACTERÍSITICAS ELÉCTRICAS DEL QG08

En la hoja de datos del microcontrolador QG08 se detalla a mayor profundidad cuales son las

características eléctricas 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 más importantes.

Parámetro Símbolo Mínimo Típico Máximo Unidad

Voltaje de alimentación Vdd 1.8 3.6 Voltios DC

Temperatura -40 85 °CTabla A1 – Rango de operación del QG08

Parámetro Símbolo Mínimo Típico Máximo Unidad

Voltaje de rearmado (reset) Vpor 1.4 Voltios DC

Entrada 1 Lógico (Con Vdd mayor a2.3 Vdc)

Vih 0.7 x Vdd Voltios DC

Entrada 1 Lógico (Con Vdd entre 1.8y 2.3 Vdc)

Vih 0.85 x Vdd Voltios DC

Entrada 0 Lógico (Con Vdd mayor a2.3 Vdc)

Vil 0.35 xVdd

Voltios DC

Entrada 0 Lógico (Con Vdd entre 1.8y 2.3 Vdc)

Vil 0.30 xVdd

Voltios DC

Histéresis de entrada Vhys 0.06 x Vdd Voltios DC

Corriente de fuga Iln 0.025 1.0 Micro Amperios

Salida 1 Lógico Voh Vdd – 0.5 Voltios DC

Corriente de salida por pin Ioh 3 6 10 Mili Amperios

Corriente de salida total Ioht 60 Mili AmperiosTabla A2 – Voltajes y corrientes de operación del QG08

El usuario debe tener en cuenta todos estos datos al momento de utilizar el QG08 dentro de sus circuitos

respetando tanto mínimos como máximos de voltaje y corriente; de no hacer esto el microcontrolador puede

autoprotegerse hasta cierto límite, pero incluso esta protección no es infalible y puede dañarse.

A - 1

Page 105: "diseño mecatrónico de un robot utilizado en la enseñanza de

ANEXO BCONEXIÓN RECOMENDADA PARA EL QG08

Page 106: "diseño mecatrónico de un robot utilizado en la enseñanza de

CONEXIÓN RECOMENDADA PARA EL QG08

Aunque no es necesario conectar al microcontrolador QG08 de la forma descrita a continuación

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 explicación completa de cada elemento y el por qué de su ubicación 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

continuación se presenta la ubicación física de cada uno de estos pines en la presentación DIP16

del microcontrolador:

B - 1

Page 107: "diseño mecatrónico de un robot utilizado en la enseñanza de

Figura B2 – Pines del QG08

B - 2