Sie sind auf Seite 1von 117

UNIVERSIDAD MICHOACANA DE

SAN NICOLS DE HIDALGO





FACULTAD DE INGENIERA ELCTRICA



CONSTRUCCIN Y CONTROL DE UN ROBOT MVIL DE
EXPERIMENTACIN





PROYECTO DE TESIS





Que para obtener el Titulo de
INGENIERO EN ELECTRNICA



Presenta
C. NO BARRERA GALLEGOS


Asesor de Tesis
M. I. SALVADOR RAMREZ ZAVALA





Universidad Michoacana de San Nicols de Hidalgo


Febrero de 2009

Firmado
digitalmente por
AUTOMATIZACION
Nombre de
reconocimiento (DN):
cn=AUTOMATIZACIO
N, o=UMSNH,
ou=DGB,
email=soporte@bibli
oteca.dgb.umich.mx,
c=MX
Fecha: 2009.11.06
10:44:20 -06'00'
Agradecimientos



Quiero expresar mi sincero agradecimiento a:

Mi asesor de tesis M. I. Salvador Ramrez Zavala por su gran apoyo, por compartir sus
conocimientos y por la paciencia que tuvo para el desarrollo de este proyecto.

A todos los profesores de la Facultad de Ingeniera Elctrica que durante la carrera
compartieron sus conocimientos y fortalecieron mi formacin acadmica.

A todos mis compaeros con los que compart proyectos y tareas dentro de las aulas y
laboratorios de la Facultad.

A todos mis amigos y amigas que me apoyaron y me animaron durante la realizacin de ste
proyecto.


ii
Dedicatoria



A mis Padres Javier y Margarita que me han dado todo su apoyo toda mi vida, que me han ayudado a
conseguir todas mis metas.

A mis hermanos Eduardo y Alejandro que me han apoyado y ayudado durante toda mi vida.

A toda mi familia que me ha alentado a animado a seguir superando mis metas.
iii
Resumen

En ste trabajo de tesis se presenta el diseo y construccin del prototipo de un robot mvil que
consta de mltiples mdulos y sensores que ayudan a obtener informacin del entorno en el que se
encuentra, tambin se implementa un sistema de control con perfil de velocidad con la finalidad de
tener un sistema que nos permita hacer que el robot pueda realizar acciones de experimentacin,
recorrer lugares por si solo.
El trabajo est diseado en forma modular para permitir su actualizacin, modificar o cambio de
cada uno de las partes que integran el motor.
En el robot se usan tres pares de microcontroladores para la realizacin de diferentes acciones,
donde uno de ellos es el que controla todo el sistema. Este microcontrolador maestro es que indica a
un segundo microcontrolador las acciones de movimiento que se deben realizar. Dos de los
microcontroladores se dedican a realizar el control de posicin con perfil de velocidad, que permite
tener una desaceleracin constante sobre cada rueda. Para tener dicho perfil, la velocidad de las
ruedas es controlada por un algoritmo de control proporcional-integral.
En el robot tambin se cuenta con un sistema de comunicacin inalmbrico por medio de
mdulos de transmisin y recepcin de radiofrecuencia, que permiten controlar los movimientos del
robot a distancia.
Se cuanta tambin con una cmara inalmbrica que esta montada sobre dos motores que le dan
movimiento, que permite monitorear el entorno del robot
Todas las capacidades del robot permiten que el robot pueda ser utilizado para experimentar con
nuevas rutinas, nuevos mdulos y nuevas herramientas, mas all de las que en ste trabajo se
desarrollaron
Con esto se aplican los conocimientos de control, electrnica, circuitos digitales, circuitos
analgicos y programacin adquiridos en el transcurso de la carrera.

iv
Contenido

Agradecimientos. ..................................................................................................... ii
Dedicatoria. .............................................................................................................. iii
Resumen. .................................................................................................................. iv
Lista de Figuras. ....................................................................................................... vii
Lista de Tablas. ........................................................................................................ xi
Lista de Smbolos y Abreviaciones. ......................................................................... xii


Captulo 1. Introduccin
1
1.1. Antecedentes. ........ 1
1.2. Definiciones. ......... 2
1.3. Objetivo. .... 4
1.4. Justificacin. ................................. 4
1.5 Metodologa. ...... 4
1.6. Contenido de la tesis. ............................................................................ 5

Captulo 2. Componentes de Diseo
6
2.1 Microcontroladores. ... 6
2.2 Elementos de Potencia. .. 10
2.3 Elementos de aislamiento. .. 12
2.4 Elementos mecnicos. .................... 13
2.5 Elementos de energa. ........ 15
2.6 Motores. ..... 18
2.7 Sensores. ........ 21
2.8 Mdulos de radiofrecuencia. ..
26
2.9 Conclusiones. .....
27
v
Captulo 3. Detalles de los componentes
29
3.1 Esquema general de conexin. ............................................................... 29
3.2 Modulo de radiofrecuencia. ................................... 29
3.3 Modulo de movimiento de la cmara. .................................................... 30
3.4 Sensores de distancia y comps. ............................................................ 32
3.4.1 Comunicacin I2C. .................................................................. 33
3.5 Microcontrolador de recepcin de comandos (microcontrolador A). .... 36
3.6 Control de movimiento del robot (microcontrolador B). ....... 37
3.7 Mdulo de control remoto RF. ........... 38
3.8 Mdulos de control de movimiento. ...... 39
3.8.1 Algoritmo de control de posicin. .......................................... 41
3.8.2 Algoritmo de control de posicin. ........................................... 42
3.8.3 Algoritmo de control de velocidad. ......................................... 46
3.8.4 Ganancias proporcional e integral. .......................................... 47
3.8 Mdulo de Movimiento del sensor de distancia SRF08. ....................... 48
3.9 Mdulo secuencial de movimiento del sensor de distancia SRF02. ...... 49
3.9 Conclusiones. ..... 50
Captulo 4. Software de Control del robot Mvil
51
4.1 Programa microcontrolador A. ...... 51
4.2 Programa del control remoto. . 56
4.3 Programa microcontrolador B. ....... 57
4.3 Programa de los mdulos de movimiento de la cmara. ....................... 60
4.4 Programa de los mdulos de movimiento. . 61
4.6 Conclusiones. ..... 63
Captulo 5. Pruebas y resultados
64
5.1 Pruebas de hardware. . 64
5.2 Pruebas de Software. .. 65
5.3 Pruebas de conjunto. .. 66
5.4 Posicin de los elementos dentro del robot. 68
vi
5.5 Conclusiones. . 72
Captulo 6. Conclusiones
73
6.1 Conclusiones Generales. 73
Apndice
75
A.1 Listado de los Programas. 75
A.2 Copia del Articulo Publicado. 96
Referencias
103

vii
Lista de Figuras

1.1 Estructura del mvil y colocacin de las rueda............................... 2
1.2 Diagrama de Bloques.............. 2
2.1 Microcontrolador PIC16F877A................................................................... 7
2.2 Microcontrolador PIC18f4431 8
2.3 Microcontrolador PIC16f84............................................................................ 10
2.4 Esquema bsico de un Puente-H. 11
2.5 Conexin del motor con el circuito LMD18200. ...... 12
2.6 Diagrama del circuito de aislamiento. ... 13
2.7 a) Estrellas en las ruedas. b) Estrellas en los motores. ...... 14
2.8 Acoplamiento de las ruedas a los motores. ... 14
2.9 Vista superior de la estructura. ...... 15
2.10 Batera Modelo BR-1212. ... 17
2.11 Batera Modelo BR-1207. ... 18
2.12 Motor de CD utilizado. ....... 18
2.13. a) Esquema de un motor Unipolar. b) Esquema de un motor Bipolar 19
2.14 a) Sensor ultrasnico SRF08. b)Sensor ultrasnico SRF02 22
2.15 Pines de conexin del sensor SRF08. 22
2.16 Pines de conexin del sensor SRF02. 23
2.17 Sensor de orientacin. . 24
2.18 a) Diagrama del encoder. b) Seales de salida. 24
2.19 Rueda codificada. ... 25
2.20 Mdulos de radio frecuencia. .. 26
2.21 Conexin de los transmisores. 27
2.22 Conexin de los receptores. 27
3.1 Diagrama general de conexin 30
3.2 Diagrama de las seales de entrada y salida del mdulo de radiofrecuencia. 31
3.3 Cmara montada en motores. .... 32
3.4 Circuito y Modulo de control de motores de pasos. .. 32
viii
3.5 Esquema de conexin del protocolo I
2
C. 33
3.6 Escritura de un dato mediante el protocolo I
2
C............................................... 34
3.7 Lectura de un dato mediante el protocolo I
2
C................................................. 34
3.8 Diagrama de conexiones del microcontrolador A. 37
3.9 Diagrama de flujo del microcontrolador B. ... 38
3.10 Diagrama de conexiones del Control Remoto. .... 39
3.11 Control remoto. .... 39
3.12 Diagrama de conexin del modulo de movimiento. ................ 40
3.13 Diagrama de bloques del sistema de posicin. .... 41
3.14 Curva de aceleracin. .......................................... 43
3.15 Perfil de velocidad. .......... 44
3.16 Relacin de error de posicin y los comandos de velocidad. .. 45
3.17 Diagrama de control de velocidad. .......................................... 46
3.18 Calculo de la integral. .................................................................................. 47
3.19 Mdulo de movimiento del sensor SRF08. ................................................. 48
3.20 Circuito de movimiento secuencial. ............................................................ 49
3.21 Sensor SRF02 montado en el Robot. ........................................................... 49
4.1 Diagrama de Flujo del microcontrolador A. . 52
4.2 Diagrama de flujo para evitar obstculos. ..................................................... 55
4.3 Panel frontal del programa de llenado. .. 56
4.4 Diagrama de flujo del control remoto. .. 57
4.5 Diagrama de flujo del microcontrolador B. .. 60
4.6 Diagrama de flujo de los mdulos de movimiento de la cmara. . 61
4.7 Diagrama de pulsos del sensor ptico de posicin. ... 62
4.8 Diagrama de flujo del modulo de movimiento. 62
5.1 Respuesta en lazo cerrado del sistema de control 66
5.2 Perfil de velocidad real 67
5.3 Trayecto de Prueba. 68
5.4 Elementos montados en la base metlica 69
5.5 Vista frontal del Robot 69
ix
5.6 Primer nivel de circuitos 70
5.7 Parte inferior y superior del segundo nivel 70
5.8 Vista frontal del robot 71
5.9 Prueba de la cmara inalmbrica 71













x
Lista de Tablas

2.1 Secuencia de pasos de un motor unipolar 20
3.1 Efectos del incremento de las variables de control. 48
4.1 Comandos recibidos en el microcontrolador A 53
4.2 Comandos de posicin enviados al microcontrolador B 54
4.3 Comandos de velocidad recibidos en el microcontrolador B 58
4.4 Comandos para el movimiento del motor del sensor SRF08 59
5.1. Datos de la trayectoria de la figura 5.3 67

xi
xii
Lista de Smbolos y Abreviaturas

K Kilo
M Mega
G Giga
m Metros
W Watts
Hz Hertz
t Tiempo
d/dt Derivada con respecto del tiempo
Ki Ganancia integral
Kp Ganancia proporcional
Ohms
R Resistencia
Velocidad angular
mA Miliamperes

















Captulo 1 Introduccin
Captulo 1
Introduccin
La tecnologa avanza a pasos agigantados trayendo a nosotros nuevos dispositivos que facilitan
las tareas que realizamos y en muchos casos sustituyendo a las personas que las realizaban.
En menos de cuatro dcadas la robtica ha pasado de ser un tema de libros y pelculas a ser una
realidad. En la actualidad existen muchos tipos de robots y se encuentran en diversas reas del
desarrollo de la industria, en reas de investigacin cientfica y hasta en juguetes hechos para
divertir a las personas.
En este primer captulo se darn algunos antecedentes de sta tesis, se har una breve
explicacin del contenido as como una ligera introduccin al los conceptos relativos a la robtica
para facilitar el entendimiento de los captulos siguientes.

1.1 Antecedentes
El trabajo realizado en esta tesis es la continuacin del trabajo hecho por el Ing. Ren Rodrguez
Zalapa en agosto del ao del 2005 [Rodrigez 2005]. Y que fue la implementacin de un robot mvil
controlado por infrarrojos, del cual se tom una parte que fue: la estructura metlica con los
motores, ruedas acopladas, los circuitos de aislamiento y circuitos de potencia.
El diseo anterior que se tena consista de una base con tres ruedas como se muestra en la
figura 1.1, dos de las cuales estaban acopladas mecnicamente a un motor cada una y
proporcionaban el movimiento.

Figura 1.1 Estructura del mvil y colocacin de las ruedas
1
Captulo 1 Introduccin
El movimiento era controlado por un microcontrolador a travs de una interfase ptica, esto era
un control remoto de una televisin y un sensor de luz infrarroja, el diagrama general se muestra en
la figura 1.2.


Figura 1.2 Diagrama de Bloques

Este sistema es un sistema de lazo abierto con el que se tena un control manual del robot, con la
nica realimentacin de la persona que ve el movimiento del robot.

1.2 Definiciones
Una definicin adecuada de los trminos utilizados en ste trabajo es necesaria para unificar los
conceptos, clasificaciones y trminos comunes dentro del rea de la robtica.
Al tratar de describir la palabra robot es bastante difcil por que sta a veces nos lleva a
imaginarnos algo irreal. La palabra robot proviene de la palabra checa robota que significa siervo,
trabajador forzado sta hace referencia a toda mquina de forma humana o no que hace trabajos
inteligentes. Sin embargo esta palabra puede tener otros muchos significados pero lo importante es
comprender que un robot es aquella maquina que permite realizar las acciones que una persona
realiza pero con mayor precisin y exactitud o que implican un riesgo muy elevado para la persona.
Los robots se pueden clasificar de muchas maneras, por sus articulaciones, por el uso que se les
da, por el lugar en que se desempean, por la generacin de inteligencia a la que pertenecen, en ste
2
Captulo 1 Introduccin
trabajo es de mayor inters la clasificacin por su arquitectura por que el robot desarrollado puede
ser clasificado en sta.
Clasificacin por la arquitectura:
Robots Poliarticulados: Se caracterizan por poseer una gran cantidad de grados de libertad,
aunque su punto de origen es fijo o parcialmente mvil. Ejemplos tpicos son los brazos
robots y en general los robots industriales.

Robots Mviles: Pueden desplazarse en prcticamente cualquier direccin (si son
independientes entonces sus fronteras son muchas ms amplias), generalmente utilizan
ruedas, orugas, simulaciones de patas, turbinas, etc.

Robots Androides: Son robots que intentan simular al ser humano en algunas de sus facetas
ms comunes como caminar, hablar, escuchar, ver, etc.

Robots Zoomrficos: A diferencia de los androides, estos intentan simular a animales,
insectos, aves, peces, etc.

Robots Hbridos: Resultan de una combinacin de los anteriores. Como puede ser
combinacin de un robot mvil y la utilidad de un brazo robtico en la estructura de un
mismo robot como otra combinacin de las caractersticas de sta clasificacin
Estas clasificaciones tienen que ver con la forma fsica en la que puede tener otros elementos
como los son los sensores y los actuadores.
Sensores: son un conjunto de dispositivos o sensores cuyo objetivo es capturar un determinado
tipo de informacin, acerca del medio en el cual se encuentra el robot, estos pueden ser: sensores de
tacto, flexmetros, sensores de presin, micrfonos, sensores de distancia, sensores de campo
magntico, sensores de orientacin, sensores de posicin, de velocidad, de aceleracin, etc. Estos
sirven para medir el entorno en que se desenvuelve el robot y poder tomar decisiones [Barrientos
2007].
Actuador: es el elemento responsable de generar el movimiento de los elementos del robot
segn las ordenes dadas por una unidad de control. Los actuadores en robtica pueden ser
neumticos, hidrulicos o elctricos [Barrientos 2007].
3
Captulo 1 Introduccin
1.3 Objetivo
El objetivo del presente trabajo es mejorar las capacidades del robot existente y llegar a tener un
prototipo con el que se puedan realizar tareas como: el seguimiento de trayectorias y que se pueda
moverse en un entorno con obstculos.
Para cumplir el objetivo principal es realizar las modificaciones necesarias al robot existente,
tales como:
Agregar sensores de orientacin.
Agregar sensores de distancia.
Agregar sensores de de avance.
Agregar una cmara mvil.
Agregar un sistema de transmisin por radiofrecuencia.
Implementar un sistema de control de posicin con un perfil de velocidad trapezoide del
tipo proporcional integral (PI) para el movimiento del robot.

1.4 Justificacin
En la actualidad los robots ayudan a facilitar procesos que sin su ayuda sera imposible
realizarlos en el mismo tiempo en el que lo hacen y con la misma precisin. Tambin estos realizan
labores que serian muy peligrosas y arriesgadas para un humano por lo que llegan a ser
indispensables en ciertas reas tales como la industria, la medicina, la milicia, la seguridad, la
exploracin, la investigacin y el entretenimiento.
Hay que destacar las reas en las que con las modificaciones hechas al robot se podra tener una
aplicacin importante, como lo son en las reas de exploracin, la seguridad e investigacin.
Aparte se pretende que el robot sea un sistema modular, para que pueda ser base de otras
investigaciones y modificaciones y as poder crear un sistema ms robusto que pueda llevar acabo
nuevas tareas y objetivos.

1.5 Metodologa
El mtodo empleado para el desarrollo de la tesis es dividir los problemas bsicos del control
del sistema, esto quiere decir que toman parte por parte las necesidades y se clasifican las tareas que
se desarrollan dentro del sistema. Estas tareas se clasifican siete que son:
4
Captulo 1 Introduccin
5
Control de los motores que mueven al robot.
Control de motores de pasos para el movimiento de la cmara mvil.
Manejo y control de los sensores.
Control maestro de todos los sistemas que contiene el robot.
Manejo y control del sistema de comunicacin por radiofrecuencia.
Desarrollo de software para envo de seales por medio de la computadora.
Desarrollo de software para el seguimiento de trayectorias.
Esto permite tener sistemas independientes de manera que puedan ser modulares y adaptables.
Esta divisin de tareas hace ms sencillo probar, modificar o cambiar alguno de los bloques por
otro ms eficiente en diferencia de que estuviera todo el sistema con uno slo circuito.

1.6 Contenido de la Tesis
En este captulo se present una breve introduccin del tema de tesis. La descripcin detallada
de los componentes utilizados en el sistema como son los sensores, motores,
microcontroladores, etc.; es presentada en el captulo dos. En el captulo tres se aborda todo lo
relacionado con los mdulos diseados y se describe su funcionalidad dentro del sistema
completo. Dentro del captulo cuatro se describe el software desarrollado y se presentan los
diagramas de flujo de los mismos. En el captulo cinco se presentan las pruebas y los resultados
obtenidos de stas. Las conclusiones de la realizacin del trabajo son presentadas en el captulo
seis.
Captulo 2 Materiales y Elementos
Captulo 2

Materiales y Elementos

Los robots en la actualidad estn formados por un gran nmero de partes que en su conjunto
generan movimientos como lo son los motores, elementos que miden el entorno que rodea al robot
llamados sensores, elementos que almacenan la energa elctrica que nos permite el funcionamiento
de los dispositivos elctricos, elementos mecnicos que nos dan el soporte para el funcionamiento,
entre otros tipos de materiales. Existen una gran variedad de materiales que pueden servir para la
construccin de un robot, sin embargo, la eleccin de stos se debe enfocar a las necesidades que se
desean cubrir.
Los elementos que componen el diseo implementado en ste trabajo son una gran cantidad de
estos dispositivos por lo que se decidi agruparlos en siete grupos de elementos:

Motores.
Microcontroladores.
Elementos de potencia.
Elementos de aislamiento.
Elementos Mecnicos.
Elementos de energa.
Sensores.
Estos grupos son descritos a detalle en los siguientes apartados del captulo.

2.1 Microcontroladores
Los microcontroladores son circuitos digitales programables que por su bajo costo y su gran
nmero de funciones son ideales para el desarrollo de sistemas completos de control e
instrumentacin.
6
Captulo 2 Materiales y Elementos
Especficamente se utilizan tres tipos de microcontroladores de la familia Microchip de las
series PIC16f877A, PIC18f2431 y PIC16f84. Estos fueron elegidos por sus caractersticas
especficas de cada uno.
Se usa el microcontrolador PIC16f877A, por su gran versatilidad y popularidad, ya que para
este microcontrolador hay una gran cantidad de documentacin, tambin por su bajo costo. Se tienen
dos de ste tipo, uno que realiza las funciones de circuito maestro, y otro que realiza la funcin de
circuito secundario donde se controla el movimiento del robot.
La ventaja de usar un microcontrolador es que se puede programar una secuencia de datos y
modificar si es necesario, se tienen entradas, salidas, mdulos contadores, etc. En la figura 2.1 se
muestra una imagen del circuito. Las caractersticas ms importantes se muestran a continuacin
[Microchip 2009].

35 instrucciones de una palabra que duran un ciclo en ejecutarse excepto los saltos de
programa que tardan dos ciclos.
Puede trabajar a una frecuencia mxima de 20MHz con ciclos de instruccin de 20ns.
Hasta 8K palabras de 14 bits para la memoria de cdigo, tipo flash.
Hasta 368 bytes de memoria de datos RAM.
Hasta 256 bytes de memoria de datos EEPROM.
Hasta 14 fuentes de interrupcin internas y externas.
Modos de direccionamiento directo, indirecto y relativo.
Guardin del sistema (WDT).
Cdigo de proteccin programable.
Modo Sleep de bajo consumo.
Programacin serie en circuito con 2 patitas.
Voltaje de alimentacin comprendido entre 2 y 5.5 voltios.
Bajo consumo (menos de 2 mA a 5 V y 5 Mhz).
Un contador/temporizador de 8 bits (Timer0) con 8 bits de pre-escalado.
Un contador/temporizador de 16 bits (Timer1) con pre-escalador.
Un contador/temporizador de 8 bits con un registro de periodo de 8 bits, post-escalador
y pre-escalador.
Dos mdulos de captura, comparacin y PWM.
7
Captulo 2 Materiales y Elementos
Un puerto serial de comunicacin sncrona y I
2
C.
Convertidor A/D de 8 canales y 10 bits.
Un mdulo comparador.


Figura 2.1 Microcontrolador PIC16F877A.

El microcontrolador PIC18F2431 es muy til para el control de motores por una de sus
caractersticas principales. sta es que el microcontrolador tiene un mdulo dedicado a la medicin
de velocidad y posicin de sensores en cuadratura de tres canales, pticos o magnticos. ste es un
circuito integrado de 28 pines y cuenta con las siguientes caractersticas [Microchip 2009]:

Un mdulo PWM de cuatro canales con salidas complementarias.
Un mdulo de realimentacin de movimiento con tres canales independientes de
captura.
Un convertidor analgico-digital de 10bits con 9 canales.
Capacidad de usar un oscilador de 40Mhz.
Capacidad de comunicacin serial (SPI, I
2
C, EUSART).
8
Captulo 2 Materiales y Elementos
Cuatro contadores.

Figura 2.2 Microcontrolador PIC18f2431.

El microcontrolador PIC16f84 se eligi por pequeo y para un propsito especial, el de
controlar los motores de pasos. Y tiene las siguientes caractersticas [Microchip 2009]:
Velocidad de operacin de 4 MHz.
1024 instrucciones de palabra simple de memoria del programa.
68 bytes de memoria RAM.
64 bytes de memoria EEPROM.
Instrucciones de 14-bits.
15 Funciones especiales de registros de hardware.
Cuatro fuentes de interrupcin:
- External RB0/INT pin.
- TMR0 timer overflow.
- PORTB<7:4>interrupt-on-change.
- Data EEPROM write complete.
13 pines individuales de entrada y salida.
1 Timer/contador de 8 bits con preescalador programable.
9
Captulo 2 Materiales y Elementos

Figura 2.3 Microcontrolador PIC16f84.

2.2 Elementos de Potencia
Los elementos de potencia en el robot son utilizados para poder suministrar la potencia
necesaria a los elementos que requieren que su voltaje y corriente sean mayores a los manejados por
los circuitos de control.
Cuando se requiere controlar cargas grandes con un microcontrolador es necesario utilizar
circuitos que suministren la corriente necesaria, de lo contrario se podra generar un problema
cuando se trata de hacer uso de las salidas del microcontrolador, debido a que las seales de salida
de un microcontrolador tienen niveles TTL y con una capacidad de suministrar corriente muy
pequea.
Los motores de corriente directa (CD) trabajan aplicando voltaje de corriente directa a sus
terminales y dependiendo de la polaridad de alimentacin ser el sentido de giro del motor. Existen
algunas maneras de poder variar la velocidad de un motor, una de ellas puede ser variando el voltaje
de las terminales de la armadura del motor y para ello en los motores de CD se puede hacer por
medio de una seal cuadrada de corriente directa en la que se pueda controlar el tiempo en alto a
esta forma de control de voltaje se le llama modulacin de ancho de pulso (PWM). La seal
modulada permite variar el voltaje eficaz variando nicamente el ciclo de trabajo de la seal de
alimentacin. La seal modulada se puede generar mediante circuitos adicionales, como un
microcontrolador, un 555 o un circuito especifico para generacin de una seal PWM como el
circuito TL494.
10
Captulo 2 Materiales y Elementos
Los motores de corriente directa tambin tienen la caracterstica de que si se cambia la
polaridad del voltaje aplicado a sus terminales, el motor girar en sentido contrario al que estaba
girando. La direccin de giro de los motores de CD esta controlada por el cambio de polaridad de la
fuente de potencia aplicada.
La direccin puede ser controlada con un circuito que haga internamente el cambio de
polaridad, un circuito con sta caracterstica es un Puente-H que puede ser implementado con
interruptores, relevadores o con circuitos electrnicos de estado slido que integren en s el arreglo,
como el circuito LMD18200.
En la figura 2.4 se muestra el diagrama del circuito del Puente H, cuando los interruptores A
y D son cerrados mientras los interruptores B y C permanecen abiertos, la corriente circula de
izquierda a derecha. Cuando los interruptores B y C se cierran y los interruptores A y D la corriente
circula en sentido opuesto con lo que se obtiene el cambio de la direccin.

Figura 2.4 Esquema bsico de un Puente-H.

El circuito integrado que se utiliza para el manejo de los motores que dan el movimiento del
robot fue el LMD18200 que es un Puente-H de 3 Amperes, diseado para aplicaciones de control de
movimiento. Soporta una corriente pico de 6 Amperes. Es ideal para aplicaciones de control de
movimiento con motores de corriente directa. Internamente el circuito se compone de un puente H
compuesto por cuatro mosfets que tienen tambin cuatro diodos de proteccin, as tambin
proteccin contra cortocircuito en la carga y dos protecciones contra sobrecalentamiento que corta al
circuito a los 170 C.
El circuito LMD18200 tiene entradas compatibles TTL y CMOS. Tiene como salidas los pines
donde se conecta el motor y como entradas tiene tres seales que son la de direccin, la de freno y la
de entrada de la seal PWM. El voltaje de operacin del circuito es hasta de 55volts [National
2009].
11
Captulo 2 Materiales y Elementos
Para el control de cada motor que le da movimiento al robot se requiere tener un mdulo con un
circuito LMD18200 donde se alimenta directamente con los 12 volts de la batera y tiene un
disipador para evitar el sobrecalentamiento. En la figura 2.5 se muestra el diagrama de conexin del
circuito LMD18200 que genera el movimiento de los motores.

Figura 2.5 Conexin del motor con el circuito LMD18200.

2.3 Elementos de aislamiento
El aislamiento elctrico es importante par evitar que partes del sistema de control se vean
afectadas por problemas en el sistema de potencia, ste tipo de protecciones siempre son necesarias
cuando tenemos un sistema con seales en las que importa mucho la forma que tienen y en las que
no deseamos que se vean modificadas.

Existen muchas maneras de aislar las partes de un circuito, estas pueden ser mediante
aislamiento magntico y aislamiento ptico, donde el aislamiento ptico es el ms utilizado. El
asilamiento ptico es donde transmitimos mediante una seal lumnica la seal en el punto donde
desee aislar la seal a otro donde un receptor lo detecte. El aislamiento ptico se puede hacer
mediante circuitos integrados que ya incorporan dentro de un mismo empaquetado un emisor, un
receptor y un medio de transmisin de la seal que deseamos aislar. Un ejemplo de ste tipo de
circuitos es el circuito H11L1 que es un optoacoplador que en su interior tiene un emisor infrarrojo y
12
Captulo 2 Materiales y Elementos
un fototransistor que nos permite transmitir seales a alta velocidad, y a la salida incorpora una
compuerta de disparo Schmit que ayuda a tener alta inmunidad al ruido. Otro aspecto fundamental
para la eleccin del dispositivo de aislamiento es el tiempo que tarda el circuito en cambiar de un
estado a otro, ya que de esto determina la velocidad de las seales que se van a aislar. En el circuito
H11L1 la velocidad mxima a la se puede transmitir es de 1Mhz [Fairchild 2009].

El circuito de la figura 2.6 fue el implementado para aislar las seales. En el robot es necesario
que las seales con las que se controlan los motores de movimiento del robot sean asiladas. Para
cada seal se debe tener un circuito que asle la etapa de control de la etapa de potencia. En total se
tienen cuatro circuitos integrados H11LM aislando las cuatro seales conectadas entre los mdulos
de control de movimiento del robot y los mdulos de potencia.

Figura 2.6 Diagrama del circuito de aislamiento

2.4 Elementos mecnicos
Los elementos mecnicos del sistema estn formados por los acoplamientos que unen las ruedas
y motores y la estructura del robot que esta hecha de metal.
Se tienen tres ruedas, dos grandes de 12 cm. de dimetro por 4cm. de ancho, estas son las ruedas
que le dan el movimiento al robot, la tercera rueda es una rueda giratoria de 4 cm. de dimetro por
2.5cm de ancho. Las ruedas grandes fueron colocadas en una varilla que forma un eje para sostener
una en cada extremo, sta varilla esta soldada a la estructura metlica del robot.
La rueda giratoria o rueda loca se puso en la parte de atrs para dar soporte a la estructura y
hacer que el giro del robot fura ms natural. Para acoplar los motores a las ruedas fueron utilizadas
cadenas y estrellas de bicicletas adaptadas para poder transmitir el movimiento y fuerza de los
motores como se muestra en la figura 2.7, a), 2.7 b) y 2.8.
13
Captulo 2 Materiales y Elementos

(a) (b)
Figura 2.7 a) Estrellas en las ruedas. b) Estrellas en los motores.

Figura 2.8 Acoplamiento de las ruedas a los motores.

En la parte correspondiente a la estructura en la que se montan todos las partes del sistema,
tiene forma rectangular de 24.5 cm. de ancho por 26 cm. de largo y una estructura trasera que
sobresale 8 cm., la varilla que sirve como eje de las ruedas de movimiento del robot es de 1.5 cm.
de dimetro a todo lo ancho, Tiene cuatro perforaciones, una en cada esquina de la estructura, en las
cuales van varillas de 14 centmetros de alto y 6.3 milmetros de grosor para soportar una plataforma
de base para los circuitos de control, y dos escuadras metlicas laterales de soporte para los motores,
la estructura puede observarse en la figura 2.9.
14
Captulo 2 Materiales y Elementos

Figura 2.9 Vista superior de la estructura.

2.5 Elementos de energa
En el sistema es necesario tener una fuente de energa que provea al sistema para llevar a cabo
sus funciones, se puede tener una fuente que se conecte elctrica del lugar donde se encuentre pero
esto es poco prctico por el problema de estar limitado a un cable de suministro conectado a una
pared, por lo que es poco recomendable. Otra alternativa es tener una fuente de energa almacenada
como pueden ser las bateras, sta es la mejor opcin ya que no se depende de un cable para el
movimiento del robot. Hay que tomar en cuenta la capacidad de almacenamiento que tiene las
bateras dependiendo de los materiales y tipo de bateras. A continuacin se describen algunos tipos
de bateras.

Alcalinas: No son muy comunes las bateras alcalinas recargables. Por lo que se requiere
hacer cambios de batera cada vez que se descargan. Las bateras alcalinas, estn compuestas por
dixido de manganeso y zinc, y las comunes por zinc y carbono.
Nquel-Cadmio (NiCd): Son las ms habituales. Interiormente tienen dos electrodos, el de
cadmio (negativo) y el de hidrxido de nquel (positivo), separados entre s por un electrolito de
hidrxido de potasa. Llevan tambin un separador situado entre el electrodo positivo y la envoltura
exterior y un aislante que las cierra hermticamente. Antes de recargarlas es necesario haberlas
agotado completamente ya que en caso contrario su vida se va acortando.
15
Captulo 2 Materiales y Elementos
Nquel-Hidruro Metlico (NiMh): Este tipo de bateras tienen una mejora de un 40% de
capacidad (autonoma) a las de NiCd de un volumen equivalente. Son un poco ms ligeras, no estn
sujetas al efecto memoria que es un fenmeno que reduce la capacidad de las bateras con cargas
incompletas. Se produce cuando se carga una batera sin haber sido descargada del todo: se crean
unos cristales en el interior de estas bateras, a causa de una reaccin qumica al calentarse la batera,
bien por uso o por las malas cargas. Tienen una vida media de unas 600 a 700 ciclos de carga. Se
usan habitualmente en dispositivos porttiles y telfonos mviles.
Litio-Ion (Li-IO): Estas bateras tienen un gasto de produccin elevado y muy costoso que
se refleja en su precio final. Su ciclo de vida se sita entre los 500-600 ciclos de carga/descarga. Sin
embargo ofrece una capacidad equivalente y ms fiable, dando una densidad de energa ms elevada
y constante que las bateras de NiCd o NiMh. Su uso est recomendado para los usuarios exigentes y
con trabajo intenso. Todos hemos sufrido alguna vez en nuestra cmara digital cuando al sacar
alguna foto el indicador de batera indica sin carga y tras unos segundos vuelve a estar estable;
con las bateras de Li-IO este efecto no sucede.
Plomo-cido: Las bateras de plomo cido son las preferidas e insuperables por el amplio
campo de aplicaciones que tienen. El plomo es abundante y no demasiado caro y es por esta razn
por la cual es idneo para la produccin de bateras de buena calidad en grandes cantidades.
Este tipo de bateras es nico en cuanto a que utiliza el plomo, material relativamente barato,
tanto para la placa positiva como para la negativa. El material activo de la placa positiva es xido de
plomo (PbO
2
). El de la placa negativa es plomo puro esponjoso y el electrolito est disuelto en
Acido sulfrico (H
2
SO
4
).
Los tipos ms comunes de bateras de plomo son:
Bateras de traccin: para carretillas elevadoras, sillas de ruedas elctricas y automviles
elctricos. Las bateras de traccin estn sujetas a una constante y relativamente pequea
descarga, durante largos perodos de tiempo, lo que supone un alto grado de descarga. Hay
que procurar recargarlas, preferiblemente de 8 a 16 horas cada da antes de que se vuelvan a
descargar. Las bateras de traccin tienen electrodos muy gruesos con rejillas pesadas y un
exceso de material activo.
Bateras estacionarias: para fuentes de alimentacin de emergencia y fuentes de
alimentacin ininterrumpida para usos de informtica (UPS). Las bateras estacionarias estn
constantemente siendo cargadas y se debe tener cuidado de evitar que se sequen. El
16
Captulo 2 Materiales y Elementos
electrolito y el material de la rejilla del electrodo estn diseados de forma que se minimice
la corrosin.
Bateras de arranque: para arrancar automviles y otros vehculos de motor diesel y
gasolina. Tienen que ser capaces de descargar el mximo de corriente posible en un corto
espacio de tiempo manteniendo un alto voltaje. Tienen que ser capaces de aguantar muchas
descargas incluso con cambios fuertes de temperatura. Para poder cumplir su tarea principal
que es arrancar un motor, se necesita mucha energa en un periodo corto de tiempo; se puede
lograr con una gran rea de superficie de electrodo, un pequeo espacio entre placas y unas
conexiones "heavy-duty" (resistentes a duros servicios) entre celdas. El peso, el diseo y la
forma son tambin caractersticas determinantes. Estas bateras de arranque tienen
generalmente una baja resistencia interna.

Las dos bateras elegidas para el robot mvil son las bateras modelo BR-1212 y BR-1207, de
plomo-cido de la marca steren una para energizar a los motores que nos dan el movimiento al
motor y la segunda para energizar los circuitos de control. Sus caractersticas son las siguientes
Modelo BR-1212: Batera recargable marca Steren, sellada, de cido-plomo, 12 volts de corriente
directa, 12 Ah y hasta 1000 ciclos de carga/descarga. No tiene efecto de memoria y cuenta con
sistema de proteccin para carga excesiva. Soporta hasta 300 C sus dimensiones son: 150 mm de
largo, 97 mm de ancho, 95 mm de alto (con terminales de 100 mm) y peso de 4 kilos. Se utiliza para
telecomunicaciones, fuentes de poder ininterrumpibles (no-break), equipo mdico, sistemas de
seguridad entre otras aplicaciones [Steren 2009]. Una imagen de la batera se presenta en la figura
2.10.

Figura 2.10 Batera Modelo BR-1212.
17
Captulo 2 Materiales y Elementos
Modelo BR-1207: Batera recargable Marca Steren, sellada, de acido-plomo, 12 Volts de corriente
directa, 7Ah, y hasta 1000 ciclos de carga/descarga. No tiene efecto de memoria y cuenta con
sistema de proteccin para carga excesiva. Soporta hasta 300 C. Sus dimensiones son: 150 mm de
largo, 65 mm de ancho, 94 mm de alto (Con terminales 100 mm) y peso de 2,8 kilos. Se utiliza para
telecomunicaciones, fuentes de poder ininterrumpibles (No-break), equipo medico, sistemas de
seguridad, entre otras aplicaciones [Steren 2009]. La figura 2.11 muestra la batera BR-1207.

Figura 2.11 Batera Modelo BR-1207.
2.6 Motores
Los motores utilizados para el movimiento del robot, son motores de CD de la marca
Matsushita modelo GMX-6MP009A, figura 2.12. Estos son motores reversibles, funcionan con 12
V, giran a una velocidad de 1800 revoluciones por minuto en la flecha del motor, El motor cuenta
con un sistema de engranes que reducen la velocidad a 410 revoluciones por minuto (RPM) en la
salida y que da un torque de 16 in/lb y adems tiene integrado un encoder de cuadratura de 2 canales
y un ndice.


Figura 2.12 Motor de CD utilizado.
18
Captulo 2 Materiales y Elementos
Motores de Pasos
Los motores paso a paso son ideales para la construccin de mecanismos en donde se requieren
movimientos muy precisos. La caracterstica principal de estos motores es el hecho de poder
moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90 hasta
pequeos movimientos de 1.8 por cada paso.
Estos motores poseen la habilidad de poder quedar fijos en una posicin o bien totalmente
libres.
Bsicamente estos motores estn constituidos normalmente por un rotor sobre el que van
aplicados distintos imanes permanentes y por un cierto nmero de bobinas excitadoras bobinadas en
su estator.
Las bobinas son parte del estator y el rotor es un imn permanente. Toda la conmutacin (o
excitacin de las bobinas) deber ser externamente manejada por un controlador.

Existen dos tipos de motores paso a paso de imn permanente bipolar y unipolar.
Los motores de pasos bipolares se componen de 2 bobinas y requieren un controlador que
permita el cambio de la direccin de la corriente en sus bobinas algo como un Puente-H.
Los motores unipolares tienen cuatro bobinas, este se puede diferenciar por la cantidad de
cables. En la figura 2.13 se muestra la representacin de las bobinas dentro de los motores de pasos.


(a) (b)
Figura 2.13. a) Esquema de un motor Unipolar. b) Esquema de un motor Bipolar.

Para hacer que un motor de pasos avance o retroceda es necesario que en sus terminales de las
bobinas se les aplique una secuencia de pasos definidos, dependiendo si el motor es bipolar o
unipolar. Los motores con los que contamos son motores unipolares. La conexin de los motores
19
Captulo 2 Materiales y Elementos
unipolares se realiza uniendo las conexiones intermedias de las bobinas y conectndolas al positivo
de la fuente de energa, para generar el giro del motor se conectan al negativo en una secuencia
definida. Como en los motores reciclados en los que no se tiene una hoja de datos es difcil saber el
orden en el que se ha de enviar la secuencia es necesario realizar una prueba para la identificacin de
ellas. La prueba de identificacin consiste en identificar primero conexiones intermedias de las
bobinas esto se hace midiendo la resistencia entre los cables. El cable central de cada bobina ser el
que midiendo entre ste y dos de los cinco cables restantes se tenga la mitad de la mayor resistencia
medida, para llegar a esto hay que hacer un proceso de eliminacin hasta encontrar las dos. Ya que
se han encontrado los dos cables intermedios se procede a conectarlos al positivo de la fuente de
alimentacin, que es generalmente 12volts, se elige uno de los cuatro cables restantes y se conecta al
negativo de la fuente de alimentacin. Arbitrariamente llamaremos a este cable como A, y sin
desconectar el cable A conectamos otro de los tres cables restantes buscando que al conectarlo
produzca un giro en sentido contrario a las manecillas del reloj, si no produce este giro probamos
con otro hasta encontrarlo. A este segundo cable lo llamaremos B. Ahora conectamos uno de los
dos cables restantes y uno producir un giro en sentido de las manecillas del reloj, a este cable lo
llamaremos D y por eliminacin el ultimo cable que al conectarlo al negativo no produce ningn
movimiento lo llamaremos C [Todo-R 2009]
.
Una vez identificados los cables del motor de pasos unipolar podremos conectar de forma
consecutiva como se muestra en la Tabla 2.1

Tabla 2.1 Secuencia de pasos de un motor unipolar.
Paso Cable A Cable B Cable C Cable D
1 on off off off
2 on on off off
3 off on off off
4 off on on off
5 off off on off
6 off off on on
7 off off off on
8 on off off on
20
Captulo 2 Materiales y Elementos
Para el manejo de los motores de pasos fue necesario agregar un circuito que nos diera la
capacidad de aumentar la corriente de las salidas de un microcontrolador para realizar la secuencia
de pasos.
Son utilizados tres motores de pasos unipolares, dos para el movimiento de una cmara de
video y uno para mover un sensor ultrasnico. Los motores que se tienen fueron extrados de
aparatos que dejaron de funcionar sin embargo estos motores no tienen ningn dao y estn en
buenas condiciones de operacin.
De los motores no se pudieron obtener muchas caractersticas de sus datos nominales sin
embargo nos fue posible saber el orden de las bobinas y la cantidad de pasos por giro. Dos de los
motores dan 24 pasos por giro y el tercer motor da 32 pasos por giro.

2.7 Sensores
Un sensor es un dispositivo que nos sirve para medir alguna variable fsica y transformarla en
una seal elctrica.
Los sensores nos permiten medir el entorno en el que el robot se desempea. Las seales fsicas
que se pueden medir por los sensores son: distancia, orientacin, distancia avanzada, e imgenes del
recorrido.

Los sensores que nos permiten medir la distancia son sensores ultrasnicos, estos nos sirven
para medir la distancia alrededor del robot y as saber el espacio que se est moviendo.
Los sensores ultrasnicos tienen la particularidad de que para medir una distancia lo hacen de
manera indirecta, esto es, que para conocer la distancia que se esta midiendo emiten un sonido a una
alta frecuencia y miden el tiempo en que el eco del sonido llega al sensor tomando en cuenta que la
velocidad del sonido en el aire es aproximadamente de 340 metros por segundo, se calcula la
distancia que ha recorrido el sonido en ir y regresar, mediante el tiempo que tarda el sonido en el
recorrido. Sabiendo la velocidad y el tiempo es fcil conocer la distancia, esto se hace dividiendo la
velocidad entre la mitad del tiempo del recorrido del sonido. Para obtener los datos de la medicin
se hace mediante la comunicacin serial entre el sensor y un microcontrolador.
Los sensores ultrasnicos usados son el robot SRF08 y el SRF02 como se muestra en las figuras
2.14 a) y 2.14 b).
21
Captulo 2 Materiales y Elementos

(a) (b)
Figura 2.14 a) Sensor ultrasnico SRF08. b) Sensor ultrasnico SRF02.

Estos sensores tienen la caracterstica de tener un microcontrolador que realiza la medicin del
tiempo que tarda la seal de ultrasonido en ir y rebotar en algn objeto y tambin se encarga de
enviar el valor de la medicin mediante un protocolo de comunicacin serial llamado I
2
C que se
trata en un capitulo posterior de ste trabajo.
El sensor SRF08 es capaz de detectar objetos desde 2cm a una distancia mxima de 6 metros,
consume una corriente tpica de 15 mA. La frecuencia del sonido que se emite es de 40khz, por tener
dos emisores-receptores de ultrasonido que ayudan a ampliar el ngulo de recepcin del sensor. El
sensor cuenta con 5 pines de conexin como se muestra en la figura 2.15, el primer pin se conecta a
5 volts, el segundo pin con el nombre SDA es la conexin serial por la que se envan los datos al
sensor, el tercer pin con el nombre SCL sirve para recibir la seal de reloj de un circuito maestro, el
cuarto pin no se debe conectar ya que solo es usado en la fabricacin del circuito, el ultimo pin se
conecta al negativo de la fuente [Robodacta 2009].

Figura 2.15 Pines de conexin del sensor SRF08.
22
Captulo 2 Materiales y Elementos
El sensor SRF02 es fsicamente ms pequeo comparado con el sensor SRF08 por que solo
tiene un transductor para el envo y recepcin del ultrasonido que reduce el ngulo de recepcin del
sonido en comparacin con el SRF08, esta caracterstica hace ms direccional la medicin de la
distancia. Tiene un rango de medicin de 15cm a 6m. Consume una corriente de 15mA tpicamente.
La frecuencia del sonido de que se enva y recibe es de 40Khz [Robodacta 2009]. Los pines de
conexin son idnticos a los del sensor SRF08, con la diferencia de que ste sensor adems de poder
comunicarse con el protocolo I
2
C, tambin se puede realizar la comunicacin mediante seales
seriales asncronas a niveles TTL estndar [Robot-e 2009]. Al conectar a tierra el pin MODO se
cambia el modo de transmisin a la transmisin serial asncrona y los pines SDA y SCL son
utilizados como pines de recepcin y transmisin respectivamente como se muestra en la figura
2.16.

Figura 2.16 Pines de conexin del sensor SRF02.

Otro sensor que es indispensable es uno que nos indica la orientacin en la cual el robot avanza.
Esto se hace mediante un sensor de comps, que mediante la medicin de la orientacin del circuito
con respecto al campo magntico de la tierra se sabe hacia donde esta orientado el robot. Con esto es
posible indicarle al robot la orientacin en la que se debe dirigir.

El circuito que se utiliza para medir la orientacin es el circuito CMPS03 que es una brjula
digital que ofrece una precisin de hasta 4 o 5 grados y una exactitud menor a 1. Tiene un
consumo de 25mA. Este circuito al igual que los sensores ultrasnicos tiene incorporado un
microcontrolador que realiza la medicin y la guarda en un dato digital. Con un microcontrolador
externo al sensor es posible utilizar los datos de la medicin mediante la comunicacin serial con el
protocolo I
2
C, entre el sensor y un microcontrolador maestro. Tambin tiene la opcin de entregar el
valor de la orientacin a travs una seal PWM, donde el ciclo de trabajo depende de la orientacin.
23
Captulo 2 Materiales y Elementos
En la figura 2.17 se muestran los pines de conexin del sensor del que se tienen los pines de
transmisin para el protocolo I
2
C los pines de conexin a la fuente de alimentacin y adems se
tienen dos pines extras que sirven para la calibracin y dos pines que no tienen conexin [Robot-e
2009].

Figura 2.17 Sensor de orientacin.
Otro sensor utilizado en el robot mvil es el que nos ayuda a medir la distancia que recorren las
ruedas esta medicin se hace mediante los motores GMX-6MP009A que tiene integrado un encoder
ptico de dos canales para medir la velocidad, la posicin o la direccin de giro de los motores.
Mediante la medicin a travs del microcontrolador PIC18F4431 es posible conocer la posicin
y la velocidad de cada motor y por lo tanto tambin del robot en general.
El sensor con el que se cuenta es de la serie HEDS-5500#I06 que tiene un circuito ptico de
deteccin que por medio de un led emisor, un receptor y una rueda codificada se detecta el sentido
del giro la velocidad y la posicin de la flecha del motor.
Como se puede apreciar en la figura 2.18 a) el sensor que se utiliza para medir la posicin de los
motores consta de un diodo emisor de luz. La luz emitida por el led pasa a travs de la rueda
codificada y el circuito receptor interpreta las seales de luz y genera seales elctricas que
representa el movimiento del motor. Las seales de salida se obtienen por los canales A, B e ndice
del sensor (figura 2.18 b) y como vemos las seales estn desfasadas con esto es posible conocer la
direccin de giro del motor mediante un procesamiento posterior.

El voltaje de alimentacin del sensor es de 5V y las seales de salida en los canales A, B e
ndice varan segn las especificaciones del fabricante de la siguiente manera[Avagotech 2009]:
Para un nivel alto de voltaje (un 1 lgico) 2.5Vcomo valor mnimo.
Para un nivel bajo de voltaje (un 0 lgico) 0.4V como valor mximo.
24
Captulo 2 Materiales y Elementos

(a) (b)
Figura 2.18 a) Diagrama del encoder. b) Seales de salida.


La rueda codificada no genera ninguna carga adicional al motor y por el tamao y peso de la
rueda y su inercia es despreciable. El nmero de perforaciones en la rueda es de 512 en la figura
2.19 se muestra una imagen de la rueda con los orificios por donde pasa la luz y es detectada por el
sensor ptico.

Figura 2.19 Rueda codificada.

Otro dispositivo que nos ayuda a conocer el entorno por donde se mueve el robot es una mini-
cmara de la marca J MK del modelo WS-309AS, con la que es posible ver imgenes y escuchar el
sonido del entorno del lugar por el que transita. Esta cmara por su tamao que es alrededor de
1.5cm
3
es posible montarla sobre motores que pueden darle movimiento y as tener una cmara
25
Captulo 2 Materiales y Elementos
mvil. La seal de video y el sonido de la cmara pueden ser transmitidos a distancia a un televisor
o una computadora sin necesidad de cables, ya que cuenta con un transmisor inalmbrico, la cmara
tiene las siguientes caractersticas:
Sensores CMOS.
Sistema NTSC
Definicin de 380 lneas.
Iluminacin mnima de 3 LUX.
Frecuencia de transmisin de 900 Mhz ~1200 Mhz.

2.8 Mdulos de radiofrecuencia
En el robot es necesario tener un control a distancia de sus movimientos, para hacer ms eficaz
esta se tienen dos transmisores y dos receptores que trabajan a diferentes frecuencias. Un transmisor
y un receptor son tienen los nmeros TWS315 y RWS315 respectivamente, estos transmiten en
modulacin por desplazamiento en la amplitud (ASK) a una frecuencia de 315MHz tienen la
capacidad de enviar y recibir datos a 4800bits por segundo y a una distancia mxima de 60 metros
aproximadamente [Robodacta 2009].
El otro par de transmisor y receptor tienen los nmeros TWS434 y RWS434 respectivamente,
estos transmiten tambin por medio de la modulacin por desplazamiento en la amplitud a una
frecuencia 434Mhz. Las capacidades de transmisin son muy similares en cantidad de bits por
segundo y en el rango de la transmisin. Ambos modelos de sensores tienen la forma que se ve en la
imagen de la figura 2.20.

Figura 2.20 Mdulos de radio frecuencia

Al tener dos transmisores y dos receptores a diferentes frecuencias, se ayuda a tener una
26
Captulo 2 Materiales y Elementos
transmisin en dos sentidos, esto se logra poniendo un transmisor de 315Mhz con un receptor de
434Mhz en el robot y el otro par en una computadora o un control remoto. La forma de conectar los
transmisores y receptores [Robodacta 2009] se muestra en las figuras 2.21 y 2.22

Figura 2.21 Conexin de los transmisores.

Figura 2.22 Conexin de los receptores.

2.9 Conclusiones
Los materiales en cada robot pueden variar dependiendo de las necesidades y de las
caractersticas deseables en el robot.
La facilidad de usar microcontroladores que atiendan diversas actividades en el robot da la
flexibilidad de poder cambiar partes del sistema y de mejorar los programas existentes. El uso de
diferentes microcontroladores nos permite aprovechar las caractersticas especiales de cada uno de
ellos, como es el caso del PIC 18F2431 que tiene incorporado un mdulo que nos ayuda a recibir las
27
Captulo 2 Materiales y Elementos
28
seales directamente de los sensores de los motores sin necesidad de agregar circuitos codificadores
de pulsos.
Algunos de los materiales utilizados fueron reciclados. Cuando tenemos algo que se
descompone, no siempre dejan de funcionar todas sus partes. Los motores de pasos que son fciles
de utilizar fueron reutilizados de dos impresoras que se tenan descompuestas de partes de sus
circuitos que ya estaban destinadas a desecharse. Esta es una buena manera de conseguir materiales
para la construccin de proyectos pero no siempre la mejor, por que algunos elementos despus de
que tienen un uso prolongado se desgastan, cuando son reutilizados pueden fallar, por eso es
necesario verificar su buen funcionamiento.
Los sensores son la parte ms imprtate del sistema, por que sin ellos no se podra tener
informacin del entorno. Los sensores tienen buenas caractersticas, se busc que fueran baratos,
que fuese fcil conseguirlos y que existiera informacin de ellos. Se busc la manera de poder
utilizar el mnimo posible de sensores y que cubrieran los aspectos bsicos de medicin.
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
Captulo 3

Descripcin de los Mdulos en el Robot Mvil

Los componentes utilizados en la implementacin del robot mvil fueron elegidos para formar
parte de pequeos sistemas con entradas y salidas cada uno de estos mdulos realiza una funcin
especifica. La divisin de las tareas da la flexibilidad de tener mdulos que independientemente de
los dems realizan su funcin como una caja negra. En este captulo se har una descripcin mas
detallada de cada uno de stos mdulos, donde se explicar el proceso que llev a su
implementacin.

3.1 Esquema general de conexin.

Cada uno de los bloques tiene un conjunto de elementos que realizan una funcin, as tambin
tenemos en cada uno entrada o entradas y salida o salidas. Los bloques en el diagrama simplificado
tienen en si mismos un sistema individual. El diagrama simplificado del sistema se muestra en la
figura 3.1

3.2 Mdulo de radiofrecuencia.
Este sistema de radiofrecuencia se compone por el transmisor y receptor de los modelos
RWS434 y TWS315, que transmiten a una frecuencia de 434Mhz y 315Mhz. La diferencia en las
frecuencias de transmisin y recepcin es para que se puedan tener dos canales de comunicacin
uno para la transmisin y otro para recepcin en diferentes frecuencias. Las seales digitales de
transmiten por medio de la modulacin en la amplitud (ASK), estos elementos envan los datos de
manera serial donde despus de probar con velocidades diferentes elegimos la velocidad de
9600baudios por que fue en donde se obtuvo menos ruido.

29
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
F
i
g
u
r
a

3
.
1

D
i
a
g
r
a
m
a

g
e
n
e
r
a
l

s
i
m
p
l
i
f
i
c
a
d
o
.



30
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

Figura 3.2 Diagrama de las seales de entrada y salida del mdulo de radiofrecuencia.

En este mdulo se tienen un par de seales de entrada y salida que son transmitidas por medio
del aire. Se tiene un receptor de de 434Mhz y un transmisor de 315Mhz en este mdulo que recibe
las seales en el robot. En el control remoto estn conectados un receptor de 315Mhz y un
transmisor de 434Mhz Los transmisores y receptores cuentan con una antena de 30cm
aproximadamente, ya que sin ellas no es posible la transmisin y la recepcin. Esto permite tener la
capacidad de tener una comunicacin en los dos sentidos al mismo tiempo si es necesario. Las
conexiones se son de acuerdo a las figuras 2.23 y 2.24.

3.3 Mdulo de movimiento de la cmara.
El movimiento de la cmara funciona mediante dos motores de pasos unipolares acoplados de
manera que uno gira de forma vertical y otro en forma horizontal dando un movimiento esfrico. El
movimiento esfrico ayuda a apreciar el entorno que rodea al robot. En la figura 3.3 se aprecia como
estn acoplados los dos motores. El motor mas grande sostiene el un motor pequeo. Este motor
pequeo tiene en su flecha acoplada una pieza plstica circular en la que se monta la cmara.
Cuando se hace girar el motor pequeo la cmara gira verticalmente. Cuando se hace girar el motor
que sirve de base la cmara gira de manera horizontal. El movimiento combinado de los motores
genera un movimiento esfrico. La esfera que describe el movimiento de la cmara es una esfera de
5 centmetros de radio aproximadamente.

Para el control de los motores de pasos se utiliza un mdulo que est formado por un
microcontrolador y un circuito de potencia con los que se controla la secuencia de pasos y la
31
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
velocidad de los motores, este circuito es controlado mediante tres seales una de avance una de
retroceso y una de paro, que deben ser enviadas por otro microcontrolador que controle el
funcionamiento. Es necesario tener un mdulo para cada motor de pasos.

Movimiento
Horizontal
Movimiento
Vertical
Figura 3.3 Cmara montada en motores.

Como se puede apreciar en la figura 3. se utiliza el microcontrolador PIC16F84A en donde los
pines 0, 1 y 2 del puerto B son utilizados como entradas con los que seleccionamos si avanza el
motor (RB0), si retrocede (RB1) o si deseamos que se detenga (RB2). La seal de salida del
microcontroladores conecta a un circuito integrado para aumentar la corriente de la seal de salida.
El mdulo consiste en 4 pines de que se conectan directamente al motor de pasos que se desea
controlar. Por medio de stos pines se enva una secuencia que genera el giro del motor.

Salidas
Entradas
Figura 3.4 Circuito y mdulo de control de motores de pasos.

3.4.1 Sensores de distancia y comps
Los sensores que se utilizan para medir la distancia y orientacin y proporcionan las mediciones
en un dato binario sin necesidad de realizar operaciones adicionales en nuestro microcontrolador ya
32
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
que en los mismos sensores ya se encuentra un microcontrolador que realiza los clculos para
obtener las mediciones en una unidad de medida estndar. Los sensores se comunican por
comunicacin serial mediante un protocolo llamado I
2
C (por sus siglas en ingles Inter-Integrated
Circuit) que consiste en dos lneas de comunicacin que simplifican la interconexin de dispositivos
al microcontrolador, este protocolo fue desarrollado por Philips.

3.8.1 Comunicacin I
2
C.

Figura 3.5 Esquema de conexin del protocolo I
2
C.

Las lneas de conexin en este tipo de comunicacin serial son llamadas SDA (System Data) y
SCL (System Clock) ste par de lneas de conexin (llamado tambin bus) son bidireccionales y
estn conectadas al positivo de la fuente de 5 volts mediante resistencia de "pull-up" de forma que
en reposo estn a nivel alto. La lnea SDA es donde se transmiten los datos de manera bidireccional
y en la lnea SCL se transmiten pulsos para sincronizar la transmisin, tambin es necesario que se
comparta la lnea de referencia (o tierra).
En el bus existen circuitos maestros (que generan la seal de SCL y controlan la comunicacin)
y esclavos que responden a peticiones del maestro.
El dato en SDA debe estar estable durante el periodo ALTO de reloj. SDA slo puede cambiar
mientras SCL se encuentre a nivel BAJO. La excepcin a esta regla son condiciones de INICIO y
PARO. La condicin de INICIO se da cuando la seal de reloj se encuentra en alto mientras la seal
SCL se encuentra en alto mientras se produce un cambio de la seal de SDA de un estado alto a un
33
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
estado bajo. La condicin de PARO se da cuando la seal de SCL se encuentra en alto mientras la
seal de SDA cambia de un estado bajo a un estado alto.
En la transmisin de los datos es necesario que el maestro identifique con que otro dispositivo
se esta comunicando para esto cada dispositivo conectado tiene un nmero identificador (o
direccin) y cada que se inicia la comunicacin con un dispositivo se debe enviar esta direccin, la
direccin esta formada por 7 bits segn el dispositivo conectado.
Como es lgico, para iniciar una comunicacin entre dispositivos conectados al bus I
2
C se debe
respetar un protocolo. Tan pronto como el bus est libre, un dispositivo maestro puede ocuparlo
generando una condicin de inicio. El primer byte transmitido despus de la condicin de inicio
contiene los siete bits que componen la direccin del dispositivo de destino seleccionado y un
octavo bit correspondiente a la operacin deseada (lectura o escritura). Si el dispositivo cuya
direccin se apunt en los siete bits est presente en el bus ste responde enviando el pulso de
reconocimiento ACK. Seguidamente puede comenzar el intercambio de informacin entre los
dispositivos (figura 3.6 y figura 3.7). Cada

Figura 3.6 Escritura de un dato mediante el protocolo I
2
C.

Figura 3.7 Lectura de un dato mediante el protocolo I
2
C
34
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

El dispositivo maestro puede dejar libre el bus generando una condicin de parada (Stop). Si se
desea seguir transmitiendo, el dispositivo maestro puede generar otra condicin de inicio el lugar de
una condicin de parada. Esta nueva condicin de inicio se denomina "inicio repetitivo" y se puede
emplear para direccionar un dispositivo esclavo diferente para alterar el estado del bit de
lectura/escritura (R/W).

Los sensores de distancia ultrasnicos y el comps electrnico que forman parte del robot
utilizan este protocolo. Dado que se utilizan 2 sensores ultrasnicos en el robot y que son fabricados
por la misma compaa las direcciones o nmeros identificadores en ellos son las mismas E0 y por
esto se cambiaron para evitar colisiones de datos en el bus y para poder identificar a que medicin se
refiere cada dato obtenido del bus. El circuito SRF08 tiene la direccin 0xE0 (en hexadecimal) y el
SRF02 tiene la direccin 0xE2. Para obtener la medicin se tiene que seguir un procedimiento de
acuerdo al protocolo I
2
C y el valor que se obtiene es un dato digital que contiene un numero entre 0
y 255, ste nmero esta expresado en centmetros. En esta secuencia se deben enviar comandos para
realizar una medicin con el sensor.
- 1. Enviar condicin de inicio
- 2. Enviar 0xE0 (La direccin de dispositivo del SRF08 con el bit de lectura/escritura en bajo)
- 3. Enviar 0x00 (direccin interna del registro de comando)
- 4. Enviar 0x51 (el comando para comenzar la medicin del SRF08)
- 5. Enviar condicin de parada

El proceso de la medicin tarda aproximadamente 65milisegundos luego de esto se debe leer la
medicin de la distancia. La direccin de la secuencia cambia para el SRF02 a 0xE2 y los dems
comandos son los mismos

Con respecto al sensor de comps tiene sensores que toman las mediciones con respecto al norte
magntico de la tierra por lo que es necesario calibrarlo una nica vez al comenzar a utilizarlo esto
se hace mediante los pines de calibracin (vase figura 2.19). Para calibrar el sensor es necesario
tener una brjula de aguja magntica u otro dispositivo calibrado. La calibracin se hace
alimentando el circuito y conectando el pin 5 al negativo de la fuente de 5 volts, despus alienando
35
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
el circuito a uno de los puntos cardinales se conecta por un instante el pin 6 al negativo, se
desconecta y se vuelve a alinear el circuito con otro de los puntos cardinales y se realiza lo misma
accin de conectar por un instante el pin 6. El procedimiento se repite con los cuatro puntos
cardinales sin importar el orden en el que se haga, lo importante es que se realice en los cuatro
puntos cardinales, ya que si se omite alguno o se repite un punto cardinal la calibracin no tiene
efecto alguno. Para tener una correcta medicin es necesario que el circuito del sensor est lo las
horizontal posible para disminuir el grado de error que pudiera tener por la inclinacin, y tambin
como una brjula de aguja magntica, la medicin del sensor es desviada en presencia de objetos
ferromagnticos ya sean bobinas energizadas o imanes naturales por lo que est montado en el
centro de rotacin en la parte superior alejado de todas las piezas magnticas.

La comunicacin con el comps electrnico es similar a la de los sensores ultrasnicos aun que
tambin tiene otras maneras de comunicarse pero por facilidad se utiliza la comunicacin I
2
C la
direccin en la que esta orientado el sensor se puede obtener en una escala de 0 a 255 o de 0 a 3599
en un giro completo del sensor.
La secuencia de comandos para la obtencin de la medicin es la siguiente.

- 1. Enviar condicin de inicio
- 2. Enviar 0xC0 (La direccin de dispositivo del CMPS03 con el bit de lectura/escritura en
bajo)
- 3. Enviar 0x01 (direccin interna del registro de ngulo en valor 0-255)
- 4. Enviar una secuencia de inicio (inicio reiterado)
- 5. Enviar 0xC1 (La direccin de dispositivo del CMPS03 con el bit de lectura/escritura en
alto)
- 6. Leer un byte de dato desde el CMPS03
- 7. Enviar condicin de parada

3.4 Microcontrolador maestro (microcontrolador A).
El microcontrolador PIC16F877A que se utiliza para la recepcin de comandos utiliza varios
puertos para la comunicacin con los diversos mdulos con los que esta conectado como se muestra
en la figura 3.8.
36
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

Figura 3.8 Diagrama de conexiones del microcontrolador A.

Para la conexin con el mdulo de radiofrecuencia, se utiliza la comunicacin serial por medio
de los pines RC6 y RC7 que estn especialmente designados para este propsito (figura 2.1). Para la
conexin con los sensores se utiliza comunicacin serial del tipo I
2
C para lo que el microcontrolador
internamente tiene un mdulo que tiene dos pines el RC4 y el RC3.
Para la conexin con el microcontrolador que controla el movimiento del robot se utiliza el
puerto B completo que tiene 8 pines de conexin y tambin se tiene el pin RC0 que indica cuando se
han finalizado las acciones el microcontrolador B y puede recibir una nueva instruccin.
Para la conexin con los mdulos de movimiento de la cmara se requiri de seis pines del
puerto D.

3.5 Organizacin de movimientos del robot (microcontrolador B).

El microcontrolador que es empleado para la organizacin de los movimientos del robot es de la
misma serie que el de la seccin anterior un PIC16F877A y se dedica principalmente a recibir
comandos del microcontrolador maestro y transmitir los comandos a los mdulos de movimiento de
manera organizada indicando si se va a avanzar, retroceder, girar y enva los comandos de posicin.
En la figura 3.9 se muestra como el microcontrolador B esta conectado al microcontrolador
maestro que le enva comandos por medio de los ocho pines del puerto B, el pin RC0 sirve para que
se enviar la seal de finalizacin de los movimientos ordenados. El microcontrolador tambin esta
conectado a los mdulos de movimiento del robot mediante los pines RC6 y RC7 que son los
37
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
destinados a la transmisin y recepcin serial (figura 2.1) en niveles TTL respectivamente. La
conexin con el modulo de movimiento del sensor SRF08 se realiza mediante los primeros cuatro
pines del puerto A con los que se enva la secuencia de pasos a un circuito de potencia ULN2803
que suministra la corriente necesaria para generar el movimiento del motor de pasos que mueve al
sensor ultrasnico.

Figura 3.9 Diagrama de conexin del microcontrolador B.

3.6 Mdulo de control remoto RF.
Un control remoto permite la manipulacin de los movimientos del robot a distancia. El control
remoto esta compuesto por un microcontrolador PIC18F2431, dos palancas analgicas de control,
un mdulo de radiofrecuencia la conexin serial que permite conectar el control remoto a una
computadora (figura 3.10). Haciendo uso de los mdulos de radiofrecuencia se envan y reciben los
comandos codificados, enviados desde el control remoto y son interpretados en el robot o viceversa.
Las palancas analgicas de control fueron recicladas de un control de un juego de video, solo se
le adapto un conector con cable plano para poderlas conectar al microcontrolador. Para cada una de
las palancas se tiene dos potencimetros acoplados en un circuito donde se tienen voltajes que
cambian dependiendo de cmo se mueve la palanca como se muestra en figura 3.10 y en la figura
3.11 se ve la imagen del control remoto con sus dos palancas de control. El mdulo puede ser
conectado a la computadora ya que tiene un circuito que acopla las seales seriales a los niveles del
protocolo serial RS232 que maneja la computadora.
38
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

Figura 3.10 Diagrama de conexiones del Control Remoto.

Palanca y
botn
Izquierdos
Palanca y
botn
derechos
Figura 3.11 Control remoto.


3.7 Mdulos de control de movimiento.
Los mdulos de movimiento de las ruedas que dan el movimiento al robot estn formado por el
circuito PIC18F2431 reciben comandos del microcontrolador B. En el diagrama e la figura 3.12
podemos ver que se tiene un sistema de lazo cerrado donde las salidas del mdulo de movimiento
son una seal modulada en su ancho de pulso (PWM) y una seal que indica la direccin del motor
39
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
(DIR). Estas seales pasan a travs del mdulo de aislamiento y llegan al mdulo de potencia (figura
2.5) que enva la accin de control al motor, del motor se obtienen los canales del sensor de posicin
que enva las seales para la realimentacin y cerrar el ciclo de control. Las seales de los sensores
estn conectadas a los pines RA2 RA3 y RA4 del microcontrolador (figura 2.12). Cada modulo de
movimiento se conecta de igual manera.

Figura 3.12 Diagrama de conexin del mdulo de movimiento.

Para poder controlar la posicin de los motores es necesario conocer la distancia real que
recorre el robot al obtener cada pulso del sensor de posicin, para esto hay que tener en cuenta todo
lo que est conectado al motor que en este casos el motor se utiliza tiene acoplada en la flecha una
estrella de bicicleta y con una cadena esta unida a una de las ruedas que le dan el movimiento al
robot por lo que el diagrama cambia un poco. La cadena con la que estn unidas la estrella y la
rueda, acta de manera que el movimiento en la llanta es proporcional a la relacin de radios entre la
rueda y la estrella del motor, lo que da como resultado que por cada vuelta de la llanta la estrella de
1.5 vueltas aproximadamente.
Tambin hay que recordar que el motor tiene internamente engranes que reducen la velocidad y
por cada vuelta que da la estrella el encoder que esta acoplado en la flecha del motor da 8 vueltas.
sea que por cada vuelta de la llanta el encoder gira 12 veces. Y tomando en cuenta que la llanta
mide 12.5cm de dimetro la circunferencia y que el encoder tiene 512 perforaciones, y el mdulo
del microcontrolador cada ciclo completo del canal A o el canal B genera cuatro pulsos que
aumentarn la cuenta de la posicin o la disminuirn segn el sentido de giro del la rueda. Entonces
tenemos que:
40
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

( ) cm = cm) ( = ncia circunfere 39.21699 12.5 t (3.1)

Pulsos en una vuelta vuelta pulsos = ) vuelta)( pulsos)( ( = 24576 4 12 512 (3.2)

Ahora como la llanta tiene un permetro de 39.21699cm que es la distancia que se recorre en
24576pulsos contados en el microcontrolador, as para un centmetro se tiene:

Pulsos en 1cm ( ) pulsos = cm
cm
pulsos
= 626.6 1
39.21699
24576
|
.
|

\
|
(3.3)

Por lo que por cada centmetro que avance la llanta tendremos 627 pulsos aproximadamente, lo
que sirve de unidad en el esquema de control.

3.8.1 Algoritmo de control de posicin.
En la figura 3.13 se muestra el diagrama de bloques del sistema de de control de posicin para
las dos ruedas del robot.

Figura 3.13 Diagrama de bloques del sistema de posicin

Se puede apreciar que la parte dentro de la lnea punteada es la que el microcontrolador va a
realizar y que se trata de la parte digital del control. El bloque Gp(s) es nuestra planta que incluye la
etapa de aislamiento, la etapa de potencia, el motor, la reduccin por los engranes y la cadena.

41
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
3.8.2 Algoritmo de control de posicin.
El algoritmo de control de posicin propuesto se basa en la idea de Takashi Kenjo de su libro
Power Electronics [Kenjo], en done se propone una tabla constante que relaciona la velocidad con
el error de posicin.
La posicin y velocidad de la flecha del rotor estn relacionadas por la siguiente ecuacin:
=

dt
(3.4)
Esto implica que para controlar la posicin de requiere controlar la velocidad y la relacin entre
el par Tm proporcionado por el motor y la velocidad del rotor esta dada por la ecuacin dinmica
Newtoniana:
Tm = D +
dt
d
) J + (J
l m
(3.5)
Donde: J
m
= momento de inercia del motor.
J
l
= momento de inercia de la carga.
D = coeficiente de amortiguamiento viscoso.
Para la accin de control de la posicin se plantean tres etapas:

1) Aceleracin: El motor es aclarado por un par constante Tm generado por la mxima
corriente permisible. En este caso la solucin a la ecuacin de la ecuacin (3.5) est
dada por:

(

|
|
.
|

\
|

l m
J + J
Dt
D
Tm
= exp 1 (3.6)
La relacin de con respecto al tiempo se muestra en la figura 3.14.

2) Velocidad constante: Si la derivada de la ecuacin(3.5) es cero, la solucin a la ecuacin
es:

=
CS
=
Tm
D
(3.7)
42
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

Figura 3.14 Curva de aceleracin.

Donde:
CS
es la velocidad que se mantiene constante, en la fase anterior

3) Desaceleracin El motor es desacelerado aplicando una corriente negativa que
proporciona un par negativo. Si se logra el termino D

la ecuacin dinmica (3.5) puede


ser cambiar a:
Tm =
dt
d
) +J (J
l m
(3.8)

La solucin a la ecuacin es:
t
J + J
Tm
=
l m
CS
(3.9)

De esta manera el perfil de velocidad para el control de posicin esta mostrado en la figura 3.15.

Este perfil esta dividido en cinco regiones: aceleracin, velocidad constante, desaceleracin,
ajuste y paro.
43
Captulo 3 Descripcin de los Mdulos en el Robot Mvil

C
S
Figura 3.15 Perfil de velocidad

Aceleracin: el contador de error (error de posicin) ordena un valor mximo de velocidad
hacia el cual el rotor es acelerado de acuerdo a la dinmica del motor y el controlador de velocidad
empleado.
Velocidad constante: Cuando el rotor alcanza la velocidad mxima deseada se mantiene
constante esta velocidad, por medio del controlador de velocidad.
Desaceleracin: Para frenar al rotor con aceleracin constante, el comando se debe dar de
acuerdo con la siguiente ecuacin:
( ) 2q =
C
(3.10)
Donde: q = error de posicin (la diferencia al valor deseado de posicin dado en pulsos del
encoder montado en la flecha del motor).
= aceleracin negativa o razn de desaceleracin en pulsos/seg
2
.

Ajuste: Idealmente el motor se debera para en la posicin deseada y no debera viajar ms all
de esa posicin. En la prctica, sin embargo, existe la posibilidad de que el rotor vaya ms all de la
posicin deseada, debido a que los comandos de velocidad no son dados en forma de funcin lineal
ideal, sino en forma discontinua debido a la cuantizacin digital. El sistema de control se disea
para que el rotor eventual se detenga en el objetivo despus de varios ciclos de oscilacin alrededor
de la referencia.

44
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
Paro: Se alcanza cuando el rotor se detiene en la posicin deseada.

Para lograr el perfil de velocidad deseado, mostrado en la figura 3.15, el microcontrolador
genera los comandos de la velocidad que dependen del error de posicin, de acuerdo a ecuacin
(3.10). As estos comandos se calculan de acuerdo a las reglas, las cuales se muestran grficamente
en la figura 3.16.
i) si q = q < q <
ref f max
2 0 (3.11)
ii) si q = < q < q
ref f max
2 0 (3.12)
iii) si
max max
= q < q < q
ref f
(3.13)
iv) si
max max
= q < q < q
ref f
(3.14)
Donde:

q
f
= valor del error a partir del cual de comienza la regin de frenado( este valor
define indirectamente el tiempo de frenado).

ref
= valor deseado de velocidad.

max
= valor digital que representa la desaceleracin mxima utilizada.
q
max
= error de posicin mximo.

ref

max

-q
max
-q
f
+q
f +q
max
-
max
Figura 3.16 Relacin de error de posicin y los comandos de velocidad.
45
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
3.8.3 Algoritmo de control de velocidad.
Para el control de velocidad se implement un control proporcional Integral (PI) digital, El lazo
de control se muestra en la figura 3.17 en su forma analgica.

U(s)

ref
E(s)
Figura 3.17 Diagrama de control de velocidad

La accin de control PI tiene su ecuacin en el dominio del tiempo se muestra en la ecuacin
3.15.
}
+ =
t
dt t e
Ki
Kp
t e Kp t U
0
) ( ) ( * ) ( (3.15)
Donde:
Kp = ganancia proporcional analgica.
Ki = ganancia integral analgica.

ref
= velocidad deseada.
La accin de control digital para el controlador PI que se propone se puede implementar
fcilmente mediante una aproximacin de la ecuacin diferencial para llegar a una ecuacin de
diferencias.
El trmino integral de la ecuacin diferencial se puede aproximar a la suma de las reas de las
muestras considerando que entre muestra y muestra no existe un cambio significativo en la seal
medida, La figura 3.18 muestra la grafica de cmo de hace el calculo de la integral del error esta
forma de hacer la integral tiene el problema de al realizar el calculo de la integral por un periodo
grande de tiempo puede darse el caso de que el valor de la integral sea demasiado grande y por lo
46
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
tanto a tiempos de estabilizacin mucho muy grandes, por lo que es necesario limitar el crecimiento
de la integral, en ste caso con el control de la velocidad fijamos el valor mximo de la integral igual
al mximo valor que puede recibir nuestra accin de control.


}
) 1 (
0
) (
k T
dt t e
T kT e dt t e
kT
k T
* ) ( ) (
) 1 (
}

~
Figura 3.18 Calculo de la integral.

El trmino proporcional se calcula simplemente multiplicando cada periodo de muestreo el
valor del error por una constante Kp. El la accin de control se calcula solo sumando cada trmino
como se muestra en la ecuacin 3.16
(3.16) ( ) T iT e kT e Kp kT U
k
i
* ) ( ) ( *
0

=
+ =

3.8.4 Ganancias proporcional e integral.
Existen varios mtodos para la eleccin de las ganancias ptimas para el sistema como las
reglas de sintonizacin de Ziegler-Nicols. Para la eleccin de las ganancias del controlador PI se
eligi hacerlo de manera manual viendo los efectos de cambiar las ganancias en el programa del
microcontrolador, en la Tabla 3.1 se muestra como varan las caractersticas de la respuesta cuando
se hacen variar las ganancias de control proporcional e integral, de acuerdo a estos efectos se decidi
dejar las ganancias como Ki=10 y Kp =30 ya que con estas se obtuvieron buenos resultados.

47
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
Tabla 3.1 Efectos del incremento de las variables de control.
Parmetro Tiempo de subida Sobre impulso Tiempo de establecimiento
Error de estado
estable
Kp
Se reduce Se incrementa Cambia poco Se reduce
Ki
Se reduce Se incrementa Se incrementa Se elimina


3.8 Mdulo de Movimiento del sensor de distancia SRF08.
Este mdulo se compone por un circuito ULN2803 que es un arreglo de 8 transistores
darlington, para suministrar la corriente necesaria para energizar las bobinas de un motor de pasos.
El motor de pasos tiene acoplado un sensor ultrasnico que mide la distancia al frente del robot
como se muestra en la figura 3.19.

Salidas Entradas
Mdulo
Sensor
SRF08
Figura 3.19 Mdulo de movimiento del sensor SRF08.

El circuito ULN2803 recibe una secuencia de pasos para el movimiento del motor de pasos, esta
secuencia es igual a la que se presenta en la tabla 2.1. Este modulo ayuda a orientar el sensor en
diferentes direcciones para obtener la medicin de todo el frente del modulo. Tambin ayuda cuando
se encuentra en un recorrido y se detecta un objeto que interrumpe el trayecto, esto se hace
moviendo el sensor a la izquierda y derecha y detectando si hay un objeto por la derecha o la
izquierda del robot as se puede evitar el objeto.
48
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
3.9 Mdulo secuencial de movimiento del sensor de distancia
SRF02.
El sensor SRF02 sirve para medir la distancia desde el sensor hacia el suelo, y con esto se puede
saber si hay algn desnivel. Pero el problema de tener un solo sensor es que no puede cubrir todo el
frente del robot por esto el sensor esta montado en una varilla roscada que al girar hace mover de
manera lineal el sensor izquierda a derecha y viceversa. El movimiento se genera por un modulo
secuencial que esta compuesto por dos compuertas NOR conectadas al circuito de potencia L293
como se muestra en la figura 3.20.

Figura 3.20 Circuito de movimiento secuencial.
El circuito al conectar el pin marcado como izquierda a cero volts el giro del motor hace el
sensor se mueva a la izquierda. Si se hace lo mismo con el pin marcado como derecha el motor hace
girar la varilla hacia la derecha. Para activar los pines derecha e izquierda se tienen dos interruptores
que los conectan a tierra. Cada interruptor esta en un extremo de la varilla y cuando el sensor llega a
49
Captulo 3 Descripcin de los Mdulos en el Robot Mvil
50
uno de los extremos presiona el interruptor que hace girar el motor en sentido opuesto hasta llegar al
otro extremo. En la figura 3.21 se muestra como est montado el sensor en la varilla y se aprecia del
lado izquierdo el motor que le da movimiento.

Figura 3.21 Sensor SRF02 montado en el Robot.
3.10 Conclusiones.
En este captulo se mostraron todos mdulos y la funcin que tiene cada uno de ellos por que al
dividir las tareas se hace mas sencillo modificar el funcionamiento de cada uno de los mdulos y el
mejoramiento del mismo con modificaciones por mdulos y no tener que cambiar todo el sistema.
Los mdulos donde se tiene un microcontrolador como parte principal hacen ms sencilla la
tarea de modificar y hacer ms eficiente su funcionamiento, ya que el programa que tienen se puede
modificar a conveniencia.
Se tomaron las precauciones necesarias para que se pudieran aislar los mdulos de control
conectados a los mdulos de potencia. Se colocaron reguladores de voltaje en todos los mdulos
para evitar variaciones de voltaje y sobrecalentamiento de los reguladores.
Las funciones de los mdulos solucionan cada uno alguno de los problemas que se tienen y en
conjunto hacen un sistema
Captulo 4 Software de Control del robot Mvil
Captulo 4

Software de Control del Robot Mvil

El software es una de las partes ms importantes que conforman nuestro sistema ya que sin un
programa que dirija las acciones el sistema no realiza nada.
En ste capitulo se describen los programas que se disearon para cada uno de los mdulos que
estn compuestos por un microcontrolador.

4.1 Programa para el microcontrolador A.
En el programa del microcontrolador A interpretan las seales recibidas y dependiendo que
comando que se recibe realiza una accin. Hay dos tipos de comandos que puede reconocer el
microcontrolador:
Comandos de Velocidad.
Comandos de posicin.
Comando de trayecto.

Los comandos de velocidad indican que se enviar la referencia de la velocidad a seguir al
microcontrolador B que se encarga de enviar los comandos a los mdulos de movimiento, el
microcontrolador A despus de enviar el comando de velocidad espera y realiza mediciones de los
sensores hasta que finaliza la ejecucin del comando.
Los comandos de posicin que son recibidos, indicando la distancia de avance o retroceso, la
cantidad de giro que se dar, despus de identificar los comandos se enva el comando al
microcontrolador B para que organice y enve los comandos a los mdulos de movimiento. El
microcontrolador A despus de enviar los comandos de posicin se espera y realiza mediciones con
los sensores hasta que finalice la accin.

51
Captulo 4 Software de Control del robot Mvil
El comando de trayecto cuando se recibe indica que se va a realizar un trayecto definido en la
memoria del microcontrolador A. Este trayecto se realiza mediante una repetida serie de comandos
de velocidad y posicin que en conjunto definen un trayecto trazado donde el robot despus de ser
puesto en la posicin de inicio sigue hasta finalizar con los comandos de la matriz
As tambin el microcontrolador A se encarga de realizar las mediciones de los sensores de
distancia y del sensor de comps peridicamente para evitar choques mientras el robot se mueve y
controlar la cantidad de giro que se da cuando el robot esta girando. El diagrama de flujo se muestra
en la figura 4.1.

Figura 4.1 Diagrama de Flujo del microcontrolador A.
52
Captulo 4 Software de Control del robot Mvil
El diagrama describe las acciones que se toman, en primer lugar el programa conduce a la
inicializacin de variables globales y configuracin de puertos despus se inicia la recepcin de
comandos del puerto serial. Al recibir el comando se identifica si ste es un comando conocido y por
lo tanto valido para continuar la ejecucin del programa, si es as se procede a identificar que tipo de
comando es. En el programa se diferencian tres comandos bsicos que son que son los de posicin,
de velocidad y trayecto, esto es:
Cuando se recibe un comando de velocidad se pueden tener varios movimientos como, avance,
retroceso giro a la derecha o giro a la izquierda. Tambin se reciben los comandos para el
movimiento de la cmara. Los movimientos del robot son realizados con una velocidad constante
indicada en los mdulos de movimiento del robot y que es constante. Cuando se ha identificado el
comando recibido se realiza una accin marcada segn la tabla 4.1.
Tabla 4.1 Comandos recibidos en el microcontrolador A
Instruccin recibida Accin del microcontrolador A
00000000 Detiene cualquier accin.
10110100 Enva el comando de avance.
10110000 Enva el comando de retroceso.
01111000 Enva el comando de giro a la izquierda.
01110000 Enva el comando de giro a la derecha.
11100001 Giro a la derecha de la cmara.
11100000 Giro a la izquierda de la cmara.
11010010 Giro hacia arriba de la cmara.
11010000 Giro hacia debajo de la cmara.

Los comandos de posicin indica la distancia de referencia que se ha de avanzar por las dos
ruedas hacia delante o hacia atrs.

El comando de trayecto indica que se har un recorrido en una secuencia definida en una matriz
de almacenamiento que tiene por el momento un espacio de 30 comandos consecutivos donde los
comandos describen la distancia que se debe recorrer y la orientacin en la que se debe hacer, cada
que se completa un comando se avanza al siguiente comando en la matriz, si en la matriz el
siguiente comando tiene un valor de cero de avance y cero de posicin se termina el ciclo del
trayecto. Durante el trayecto se envan comandos al microcontrolador B de dos tipos, que son los de
avance o retroceso del robot y de giro a la derecha o izquierda con velocidad constante. Los
comandos de posicin se envan en dos partes, la primera que enva un nmero identificador del
53
Captulo 4 Software de Control del robot Mvil
comando que se realizara en el microcontrolador B y la segunda parte, que es la distancia que tiene
que recorrer el robot. Las instrucciones enviadas como comandos se muestran en la tabla 4.2

Tabla 4.2 Comandos de posicin enviados al microcontrolador B
Instruccin enviada Accin del microcontrolador B
00001111 Enva el comando de avance
00001110 Enva el comando de retroceso.

Los comandos de giro del robot durante la secuencia del trayecto, se envan de igual manera que
los comandos de velocidad constante.
En la matriz del trayecto se compone por treinta filas de dos columnas, donde cada fila tiene en
la primera columna una orientacin y en la segunda columna una distancia. En el la secuencia del
trayecto se seleccionan fila por fila para realizar dos acciones, primero se enva el comando de giro
al robot donde se mide la orientacin con el sensor de comps, hasta llegar a la orientacin en la que
se debe recorrer la distancia, se detiene el giro del robot, despus se da el comando de posicin de
avance o retroceso y se enva la distancia del recorrido. Cuando se llega a la posicin final se
selecciona la siguiente fila para realizar la misma accin hasta llegar al final del recorrido.
Cuando se realiza el trayecto si el sensor ultrasnico un obstculo se activa una secuencia para
evitar el obstculo y continuar con el recorrido de acuerdo con el diagrama de flujo que se muestra
en la figura 4.2.

El llenado de la matriz de trayecto se realiza mediante la comunicacin serial, se recibe el
comando de llenado y se enva la seal de comienzo de la recepcin de comandos para el llenado de
la matriz. Para realizar la transmisin de los datos de la matriz del trayecto se dise un programa en
LabVIEW, en el que se realiza el llenado de la matriz y cuando se que tengan los datos en el panel
frontal se inicia el programa. En la Figura 4.2 se muestra el panel frontal donde se hace el llenado de
la matriz.
En el programa de LabVIEW se realiza una secuencia de acciones empezando por la
configuracin del puerto serial que es el que esta conectado con el control remoto que realiza las
transmisiones a una velocidad de 9600baudios, con datos de 8 bits, con un bit de parada, sin paridad
y sin control de flujo de los datos. Despus de la configuracin se espera a que se presione botn de
Enviar Datos, se enva el comando de trayecto y el comando de llenado de la matriz, despus se
54
Captulo 4 Software de Control del robot Mvil
espera a recibir la confirmacin del robot para iniciar el llenado de la matriz y se inicia el envo de
los datos para conformar la matriz del trayecto esto se hace de forma secuencial enviando primero el
comando de orientacin y despus el comando de distancia que se ha de recorrer hasta que se
completan los 30 elementos de las dos columnas de la matriz. En la siguiente figura se muestra el
diagrama de LabVIEW para el llenado de la matriz.



Figura 4.2 Diagrama de flujo para evitar obstculos.
55
Captulo 4 Software de Control del robot Mvil

Figura 4.3 Panel frontal del programa de llenado
4.2 Programa del control remoto.
El control remoto es un dispositivo que enva y recibe seales entre el robot, el control remoto y
la computadora. El diagrama de flujo del programa dentro del circuito PIC18F2431 se presenta en la
figura 4.4.

En el diagrama de flujo se muestran dos modos de uso que se seleccionan mediante los botones
debajo de las palancas de mando, para accionarlos se debe presionar las palancas hacia el circuito
hasta or un pequeo chasquido, con el botn de la palanca derecha se selecciona el modo de
movimientos controlados por el control remoto. Con el botn de la palanca izquierda se selecciona
el modo de trayecto, si se quiere seleccionar el llenado de la matriz del trayecto tiene que presionar
la el botn de la palanca derecha mientras se tiene el botn de la palanca izquierda presionado. Si se
quiere iniciar el recorrido solo se debe presionar dos veces el botn de la palanca izquierda.
Mientras el robot realiza la un trayecto si la computadora esta enviando los datos de la matriz
del trayecto el control remoto no responde a ninguna instruccin hasta que se finalicen las dos
instrucciones. Al finalizar las instrucciones el robot enva al control la seal de finalizacin.
. Cuando se recibe el fin de trayecto se vuelve a esperar un comando de los botones del control.
56
Captulo 4 Software de Control del robot Mvil

Figura 4.4 Diagrama de flujo del control remoto.
4.3 Programa microcontrolador B.
El microcontrolador B es el encargado de enviar los comandos al modulo de movimiento y
tambin de enviar la secuencia de pasos al modulo para mover el sensor ultrasnico dirigido al
frente del robot. Los comandos que se pueden recibir pueden ser de tres tipos:
Comandos de velocidad.
Comandos de posicin.
57
Captulo 4 Software de Control del robot Mvil
Comando de movimiento del sensor ultrasnico.

Estos comandos se reciben por medio del puerto B del microcontrolador que corresponde a
ocho bits, para identificar de qu comando se trata, se tienen los comandos en una lista y al recibir
un comando se compara con los de la lista, si se trata de un comando conocido se realiza una accin
de acuerdo al comando.

Los comandos velocidad se enfocan a mantener una velocidad constante como referencia para
la accin de control que se enva a los mdulos de movimiento, los comandos pueden ser de cinco
maneras:
o Movimiento hacia delante con velocidad constante.
o Movimiento hacia atrs con velocidad constante.
o Giro a la derecha con velocidad constante.
o Giro a la izquierda con velocidad constante.
o Parada de emergencia.

Cada uno de estos comandos tiene diferentes caractersticas para el envo de las instrucciones de
movimiento a los mdulos de la rueda derecha e izquierda Los comandos de velocidad recibidos en
el microcontrolador se muestra en la tabla 4.3.
Tabla 4.3 Comandos de velocidad recibidos en el microcontrolador B
Instruccin recibida Accin del microcontrolador B
00000000 Detiene cualquier accin.
11110001 Enva los comandos de avance.
11110010 Enva los comandos de retroceso.
11110011 Enva los comandos de giro a la izquierda.
11110100 Enva los comandos de giro a la derecha

Para los movimientos hacia delante o hacia atrs se enva el comando para que se muevan las
dos ruedas para que generen un movimiento con una velocidad constante, las dos ruedas giran en el
mismo sentido.
Para los movimientos de giro a la izquierda o derecha se envan comandos de movimiento a las
dos ruedas pero con la diferencia de que se indican sentidos de giro opuestos si la rueda derecha gira
a la hacia delante, la rueda izquierda hacia atrs, el robot gira a la izquierda y viceversa.
58
Captulo 4 Software de Control del robot Mvil
La parada de emergencia se utiliza para detener cualquier movimiento que se tenga de las
ruedas, esto es en caso de que alguno de los sensores ultrasnicos detecte algn obstculo.

Los comandos de posicin indican cuanto tiene que moverse el robot esto se hace al enviar un
comando a cada uno de los mdulos de movimiento indicando la posicin de referencia y con esto
generar movimiento con una distancia de recorrido fija que puede ser para avanzar o retroceder
solamente ya que para dar giros exactos se tiene en los comandos de velocidad una funcin que
realiza esta accin y con la ayuda del sensor de comps es posible tener una buena precisin en los
giros. Los comandos de posicin son los mostrados en la tabla 4.2.

El diagrama de flujo del microcontrolador B de la Figura 4.4 muestra en primer lugar el inicio
del programa seguido de la inicializacin de variables globales y puertos, despus lee el puerto B y
se revisa si se tiene un comando vlido, si es as se verifica si es un comando de velocidad o un
comando de posicin.
Cuando se identifica un comando de velocidad se verifica que sea el comando se a conocido,
cuando es conocido se selecciona de la lista de comandos de velocidad y se enva la referencia de
velocidad a los mdulos de movimiento.
En caso de que se trate de un comando de posicin se enva la referencia de posicin a los
mdulos de movimiento para iniciar el la accin.
En caso de se reciba de un comando para mover el motor de pasos del sensor ultrasnico
SRF08, dependiendo de la direccin que se quiere mover y la cantidad de pasos que se necesiten se
inicia en envo de la secuencia de pasos, al terminar la secuencia enva por el pin RC0 el aviso de
que finaliz el movimiento. Los comandos recibidos se muestran en la tabla 4.5.
Tabla 4.4 Comandos para el movimiento del motor del sensor SRF08
Instruccin enviada Accin del microcontrolador B
0111XXXX Enva secuencia para tener un giro a la derecha.
1111XXXX Enva secuencia para tener un giro a la Izquierda.
Donde: XXXX es el numero de pasos en binario desde 0 a 15.

Despus de finalizar todos los comandos se regresa el programa a leer de nuevo el puerto B para
verificar si se ha mandado un comando nuevo.
59
Captulo 4 Software de Control del robot Mvil

Figura 4.5 Diagrama de flujo del microcontrolador B
4.4 Programa de los mdulos de movimiento de la cmara.
Cada mdulo de movimiento de la cmara est compuesto por un microcontrolador PIC16F84
que contiene un programa que consiste en una secuencia de pasos (tabla 2.1) que genera un giro en
el rotor del motor de pasos. Cuando se quiere tener un giro en sentido opuesto lo nico que hay que
hacer es enviar la secuencia en forma inversa. En el programa del microcontrolador se tiene la
secuencia y dependiendo del estado de los pines RB0, RB1 y RB2 (figura 2.3), se enva la secuencia
en forma normal o invertida. En el diagrama de flujo de la Figura 4.5 muestra el diagrama de flujo
del programa.
60
Captulo 4 Software de Control del robot Mvil

Figura 4.5 Diagrama de flujo de los mdulos de movimiento de la cmara.
4.5 Programa de los mdulos de movimiento.
En el sistema se cuenta con dos mdulos de movimiento, cada uno para cada rueda del robot.
Los mdulos son idnticos en su construccin y tienen un el mismo programa en el
microcontrolador.
La funcin fundamental es controlar la velocidad de los motores que dan movimiento al robot.
Para ello se tienen un sensor en cada motor, el sensor da dos trenes de pulsos desfasados.
Dependiendo de la direccin y la velocidad que es medida con el sensor ptico acoplado en la flecha
del motor las seales de los canales (QEA y QEB) como se muestra en la Figura 4.6 se aumenta una
variable (POSCNT) o la reduce si va en sentido contrario.
Esto se aprovecha para que el microcontrolador se realice las funciones de medicin de
velocidad y posicin. La medicin de la velocidad se realiza midiendo cada milisegundo, la cuenta
acumulada en el contador POSCNT del microcontrolador y teniendo la diferencia entre el valor
61
Captulo 4 Software de Control del robot Mvil
actual y el valor anterior del contador se puede saber la diferencia entre las mediciones y as
obtenemos la cantidad de pulsos por milisegundo.

Figura 4.6 Diagrama de pulsos del sensor ptico de posicin.

El programa en el PIC18F4431 Recibe los comandos por el puerto serial y puede recibir dos
tipos de instrucciones donde se recibe la referencia de posicin o la referencia de velocidad. En la
figura 4.7 se muestra el diagrama de flujo del programa.

Figura 4.7 Diagrama de flujo del modulo de movimiento.
62
Captulo 4 Software de Control del robot Mvil
63

Cuando recibe un comando de velocidad se fija la referencia de velocidad y la direccin de giro
del motor, la referencia de velocidad permanece as hasta que se reciba un nuevo comando.
Cuando se recibe un comando de posicin se fija la referencia de posicin he inicia la rutina
para llegar a la posicin de referencia. Para llegar a la referencia de posicin se utiliza la rutina de
control de posicin de acuerdo a la seccin 3.8.2. Mientras se est cambiando la referencia de
posicin para realizar la accin de control, tambin se verifica si no se activa el puerto serial, ya que
cuando se detecta un objeto cerca es necesario detener el robot. Cuando se activa el puerto serial el
robot se detiene y el modulo del motor derecho enva el error de posicin al microcontrolador B para
verificar si se tiene espacio para evitar el obstculo.

4.6 Conclusiones.

En el capitulo se presentaron los diagramas de flujo de los programas que son una
representacin de los programas que se tienen en los circuitos programables del sistema.
Tambin se diseo un programa en LabView para enviar datos al robot.
Los programas pueden ser mejorados y dar una mejor respuesta en el comportamiento del
sistema, en los programas tambin se pueden aadir mejoras para en manejo de nuevos mdulos.
Explicando las funciones del programa sirve para entender el funcionamiento e interaccin de
los mdulos, es por eso que se hicieron diagramas de flujo que hacen mas clara la explicacin del
programa.
Captulo 5 Pruebas y resultados
Captulo 5

Pruebas y resultados
Dado que el robot esta diseado por mdulos que se interconectan entre s las pruebas fueron
enfocadas a los mdulos por separado y en conjunto.
5.1 Pruebas de hardware.
Los mdulos al momento de la construccin de los circuitos se revisaron y se probaron en su
funcionamiento en de la siguiente manera

Receptor de radio frecuencia: Se realizaron pruebas para verificar la velocidad de transmisin y
a la que se puede transmitir, con la velocidad de 115200baudios se vio que no se reciba siempre la
misma seal que se enviaba por lo que se probo con velocidades menores y se obtuvieron buenos
resultados con velocidades desde 9600bausios hasta 1200baudios y se convino usar una velocidad
de 9600baudios que es la mas rpida. Se realizaron diferentes transmisiones para revisar que los
datos enviados y recibidos coincidieran. La antena fue colocada en los mdulos segn la
documentacin de los mdulos de radiofrecuencia [Robodacta 2009].
Mdulos de motores de pasos: se verific que los motores de pasos y la secuencia estuvieran en
el correcto orden para que el motor gire adecuadamente, tambin se probaron los comandos con los
que se controla el movimiento.
Cmara: se prob que la cmara tuviera un correcto funcionamiento en el envo de la seal de
video y en el movimiento correspondiera al ordenado desde el control remoto.
Sensor de comps: Se calibro el sensor antes de realizar las pruebas de medicin como lo
recomienda el fabricante [Robot-e 2009], y se verific que las mediciones fueran las correctas.
Sensores ultrasnicos: Se cambio la direccin del sensor SRF02 para que cada uno tuviera una
diferente y no haya colisiones en el bus de datos. Tambin se realizaron pruebas de mediciones en el
rea de medicin verificando el correcto funcionamiento y las distancias.
Etapa de potencia: se verifico que el estado de los puentes H fuera optimo para hacer funcionar
los motores, tambin se verifico que no hubiera sobrecalentamiento de los circuitos.
Etapa de aislamiento ptico: Se verific que las seales de entrada se reflejaran en la salida.
64
Captulo 5 Pruebas y resultados
Tambin se verifico que la frecuencia del PWM no fuera mayor a la recomendada por el fabricante,
tambin se tomo en cuenta que el voltaje a la salida fuera el necesario para controlar el modulo de
potencia.

Modulo del control de movimiento del robot: que las salidas y entradas pudieran ser activadas
por las seales correspondientes.

Motores: Se verific que la parte fsica del motor estuviera fija al armazn del robot, tambin se
ajusto la cadena para evitar problemas de rigidez. Se verifico las seales de los encoders que se
encuentran en la flecha del rotor de cada motor fueran bien recibidas.
5.2 Pruebas de Software.
El software que se realizo para los microcontroladores se realizo en el siguiente orden.

Prueba al PIC16F84: En este se verifico que la frecuencia entre los cambios de secuencia fueran
los adecuados para los motores se movieran suavemente, tambin se verifico que la secuencia de
cada uno de los mdulos funcionara con los motores de pasos que forman parte de el sistema fsico
de la cmara.

Prueba al PIC16F877A: Se realizaron pruebas en dos partes al microcontrolador A y al
microcontrolador B.
Microcontrolador A: Se realizaron las pruebas de deteccin de comandos del modulo
de radio frecuencia. Se realizo el envo de comandos de movimientos al robot. Se
verific que durante el seguimiento de trayecto enve bien los comandos al
microcontrolador B. Tambin se probo que la secuencia de evasin de obstculos, en
los que se obtuvieron buenos resultados pero se encontr que esta rutina tiene
limitaciones con objetos con que ocupen tamaos mayores a 60 cm
2
.
Microcontrolador B: Se realizaron las pruebas de recepcin de comandos del
microcontrolador A y se verificaron las salidas hacia los mdulos de movimiento.
Prueba al PIC18F2431: Se realizaron pruebas por separado a cada modulo de movimiento
indicando diferentes referencias tanto de posicin como de velocidad. En estas pruebas se verifico
un buen comportamiento de las acciones de control de velocidad y de posicin teniendo unos muy
65
Captulo 5 Pruebas y resultados
bajos errores de posicin. El comportamiento del control se verific haciendo pruebas con los
motores sin carga y con la carga que representa el peso del robot obteniendo un buen resultado en
los movimientos.
5.3 Pruebas de conjunto.
El prototipo fue probado en condiciones de un suelo plano y regular. Las pruebas consistieron
en probar que el control remoto enviara las seales y que los movimientos correspondieran a las
instrucciones que el usuario indicaba.
Se prob el envo de los comandos desde la computadora para el llenado de la matriz del
trayecto. Se hicieron pruebas para ver la respuesta del sistema de control de velocidad de los
motores que dan el movimiento al robot, y para realizar estas pruebas se diseo un programa en el
entorno de LabVIEW para recibir las mediciones hechas por los mdulos de movimiento del robot
por el puerto serial. La grafica de la velocidad en lazo cerrado se muestra en la figura 5.1.

Figura 5.1 Respuesta en lazo cerrado del sistema de control
En la grafica se aprecia que el sistema tiene un tiempo de establecimiento de 120 milisegundos
que es una muy buena respuesta. Algo importante es que no se tiene sobre impulso. Esta respuesta
corresponde a la rueda derecha, pero tambin se prob en la rueda izquierda obteniendo la misma
respuesta.
Tambin se comprob el perfil de velocidad deseado en el la accin de control de posicin
donde tambin se recibieron los datos por medio del programa de LabVIEW y se grafic su
respuesta que se muestra en la figura 5.2 la referencia de velocidad fue de cuatro centmetros y el
66
Captulo 5 Pruebas y resultados
error de posicin que se tiene es menor a 5 milmetros. Esta prueba fue realizada en las dos ruedas y
se obtuvieron resultados muy similares.

Figura 5.2 Perfil de velocidad real.

Otra de las pruebas realizadas fue para ver el funcionamiento del seguimiento de trayectoria que
en un trayecto de prueba realizado en la que se tienen cuatro pares de datos que representan un
recorrido en la matriz del trayecto, el trayecto de prueba se presenta en la tabla 5.1, en donde se
tienen los recorridos unitarios en los segmentos AB, BC, CD y DE. Los datos de cada segmento del
recorrido son los de orientacin y distancia. La orientacin esta expresada con nmero de 0 a 255
que representa el giro completo, donde por cada unidad de ste nmero representa 1.41 del giro del
robot. La orientacin esta expresada en centmetros, la mxima distancia que se puede avanzar en un
solo paso es de 255 centmetros, que es el valor mximo que puede contener la variable de ocho bits
dentro del programa.
Tabla 5.1. Datos de la trayectoria de la figura 5.3.
Recorrido Orientacin Distancia (cm)
AB 245 50
BC 54 65
CD 245 30
DE 54 50
67
Captulo 5 Pruebas y resultados
(255, 30)
(255, 30)
(255, 30)
(255, 30)
D
C
E
B
A

Figura 5.3 Trayecto de Prueba.

El resultado de sta prueba fue satisfactorio donde se obtuvo un pequeo error en los giros al
orientarse ya que el giro solo esta controlado por el sensor de comps y no por el control de posicin
y lo nico que se realiza medir la orientacin mientras gira el robot, y al llegar a la posicin de
referencia se detiene el robot, y el error del giro se da cuando el robot por la inercia del giro avanza
unos grados mas que dan un error de orientacin. En las distancias recorridas se tiene un pequeo
error que es menor a un centmetro en cada seccin del trayecto.

5.4 . Posicin de los elementos dentro del robot
Todos los elementos dentro del robot tienen una posicin especfica para que el sistema pueda
operar de una manera adecuada. En la figura 5.4 se muestra la posicin en la base metlica. Los
mdulos estn distribuidos en dos tablas de madera puestas en las varillas roscadas como se muestra
en la figura 5.5.

Los elementos en el primer nivel los circuitos estn distribuidos de manera que exista espacio
entre los mdulos para poder interconectarlos. En la primera capa como se muestra en la figura 5.6
se tienen la mayora de los componentes, los microcontroladores A y B, el modulo de
radiofrecuencia, los sensores de distancia, el sensor de comps en el centro de giro del robot, el
mdulo de aislamiento y los mdulos de potencia.
68
Captulo 5 Pruebas y resultados

Batera de potencia
Batera de
control
Motores
Figura 5.4 Elementos montados en la base metlica.


Figura 5.5 Vista frontal del Robot.

Los circuitos montados en la tabla mostrada en la figura 5.6 ocupan la mayor parte del rea y
estn puestos a una distancia suficiente para poder conectar cada circuito con los que le
corresponden evitando enredar los cables.
69
Captulo 5 Pruebas y resultados
Mdulos de
Potencia
Mdulo de RF
Interruptores
Generales
Mdulo de
Aislamiento
Microcontrolador
B
Sensor
Microcontrolador
A
Sensor de
Comps
Mdulos de
movimiento de
los sensores
ultrasnicos Ultrasnico

Figura 5.6 Primer nivel de circuitos.
En el segundo nivel se pusieron los mdulos de movimiento, la cmara, los motores de pasos
que dan movimiento a la cmara y los mdulos de los motores de pasos como se aprecia en las
imgenes de la figura 5.7.


Mdulos de los
motores de pasos
Mdulo de movimiento
de la rueda derecha
Mdulo de movimiento
de la rueda izquierda
Cmara mvil
Figura 5.6 Parte inferior y superior del segundo nivel.
70
Captulo 5 Pruebas y resultados
En la figura 5.7 se muestra el frente del robot y se sealan las posiciones de los sensores
ultrasnicos, el sensor SRF08 sobre el motor de pasos que lo hace girar y el sensor SRF02 en la
varilla roscada que lo hace moverse de derecha a izquierda y viceversa.

Sensores
Ultrasnicos
Figura 5.7 Vista frontal del robot.

Se realizo tambin una prueba para probar la cmara mvil. En esta prueba se conecto el
receptor inalmbrico en un televisor para ver la seal de la cmara se tomo una fotografa de esta
prueba que se presenta en la figura 5.8.

Figura 5.8 Prueba de la cmara inalmbrica.
71
Captulo 5 Pruebas y resultados
72
5.5 Conclusiones
Las pruebas nos permiten conocer que la eficiencia del trabajo realizado, permite reconocer y
modificar en caso de haber errores en los diseos.
Las pruebas muestran que se tienen buenas caractersticas y buen desempeo de todos los
mdulos en el robot.
Las pruebas siempre son realizadas desde la construccin y dependiendo de los resultados de
estas se mejoran los mdulos hasta llegar a satisfacer las necesidades del mdulo y del sistema.


Captulo 6 Conclusiones
Captulo 6

Conclusiones

6.1 Conclusiones Generales

Los conocimientos aplicados en el proyecto son un conjunto de diversas reas tales
como la electrnica, la programacin, la electrnica de potencia.
Los materiales en cada robot pueden variar dependiendo de las necesidades y de las
caractersticas deseables en el robot.

La facilidad de usar microcontroladores que atiendan diversas actividades en el robot la
flexibilidad de poder cambiar partes del sistema y de mejorar los programas existentes. El
uso de diferentes microcontroladores permite aprovechar las caractersticas especiales de
cada uno de ellos, como es el caso del PIC 18F2431 que tiene incorporado un mdulo que
ayuda a recibir las seales directamente de los sensores de los motores sin necesidad de
agregar circuitos codificadores de pulsos.
Algunos de los materiales utilizados fueron reciclados. Cuando tenemos algo que se
descompone, no siempre dejan de funcionar todas sus partes. Los motores de pasos que son
fciles de utilizar fueron reutilizados de dos impresoras que se tenan descompuestas de
partes de sus circuitos que ya estaban destinadas a desecharse. Esta es una buena manera de
conseguir materiales para la construccin de proyectos pero no siempre la mejor, por que
algunos elementos despus de que tienen un uso prolongado se desgastan, cuando son
reutilizados pueden fallar, por eso es necesario verificar su buen funcionamiento.

Los sensores son la parte mas imprtate del sistema, por que sin ellos no se podra
tener informacin del entorno. Los sensores tienen buenas caractersticas, se busc que
73
Captulo 6 Conclusiones
74
fueran baratos y que fuese fcil conseguirlos. Se busc la manera de poder utilizar el
mnimo posible de sensores y que cubrieran los aspectos bsicos de medicin.
Cuando se tienen mdulos con el propsito de que sean como cajas negras donde se
tienen entradas y salidas, se puede mejorar el funcionamiento de los mismos o cambiarlos o
agregar mas mdulos dependiendo de las necesidades del sistema.
Los mdulos hechos son susceptibles de mejoras y cambios para hacerlos mas
eficientes.
El objetivo del trabajo fue el de mejorar un robot agregando caractersticas para que
ste pudiera ser capaz de ser manejado a distancia, que pudiera recorrer trayectos por s
mismo y que pudiera evadir obstculos. Estos objetivos fueron cumplidos como se muestra
en ste trabajo, los errores de en los comandos de posicin y velocidad son pequeos, en los
comandos de posicin las el error es menor a un centmetro, en los comandos de velocidad
siempre se llega a la velocidad final gracias al algoritmo de control PI. Con este algoritmo
no se obtuvieron sobre-impulsos y el tiempo en el que se llega a la velocidad final es
pequeo de alrededor de 0.2 segundos.
Es posible controlar el robot a distancia sin necesidad de estar en el mismo sitio donde
el robot se mueve ya que se cuenta con una cmara inalmbrica y un control remoto con los
que se puede estar a una distancia de aproximadamente 40 metros sin ningn problema
viendo el entorno donde se est moviendo el robot.

Con las caractersticas y la experiencia que se obtuvo en la realizacin de este proyecto
es posible sugerir los siguientes trabajos futuros.
a) Desarrollo de un algoritmo de exploracin de espacios.
b) Prueba de alguna alternativa diferente de control de posicin del robot.
c) Realizacin de un algoritmo robusto de evasin de obstculos.

Apndice

A.1 Listados de los Programas.
/////////////////////////////////////////////////////////////////
// Programa microcontrolador A
/////////////////////////////////////////////////////////////////
#include <pic.h>
#include "delay1.c"
#include "pserie.c"
#include evita.c
///////////definiciones de comandos////////////////////////////
#define stop 0b00000000
#define avan 0b11110001
#define ret 0b11110010
#define giraI 0b11110011
#define giraD 0b11110100

/////////definiciones de variables//////////////////////////////
void config(void); // Configuracion de los puertos y regstros para la comunicacion i2c
void mpasos(unsigned char n); // Controla el movimiento de los motores de pasos
unsigned int medir(unsigned char direcc); // me da la distancia de cualquiera de los sensores ultrasonicos
unsigned char d; // variable de recepcion
unsigned char Ang[4]; // variable para la medicion del compas
unsigned char tol08 =10; // tolerancia en cm del srf08
unsigned char tol02 =14; // tolerancia en cm del srf02
unsigned char cont1=0;
unsigned char cont2=0;
unsigned char comp=0xC0;
unsigned int col=0;
unsigned int dista1=0;
unsigned int dista2=0;
unsigned char tray[30][2]={{0,0}, //Matriz del trayecto
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0},{0,0},
{0,0},{0,0}};

////////definiciones de subprogramas /////////////////////////
void decide(unsigned int dist[], unsigned char tr); // Define los Subprogramas
void compas(unsigned char *comp);
void SecTr(unsigned char orien,unsigned char dist);


void main(void) // programa principal
{
config(); //configuraciones generales
init_pserie_9600(); // Inicializa puerto serial a 9600 baudios
init_trans_rec(); // Inicializa transmisin y recepcin
75
PORTB=0b01110111;
PORTA=0b00000000;
while(1) //ciclo infinito
{
d=recibe();
switch(d)

{
case 'a':
//Caso de comandos de Velocidad
{
d=recibe();
switch(d)
{
default: //detenido todo
{
PORTA=0b00000000;
break;
}
case 0b11100001: //giro a la izquierda de la cmara
{
PORTA=0b11110001;

break;
}
case 0b11100000: //giro a la derecha de la cmara
{
PORTA=0b00100111;
//transmite('3');
break;
}
case 0b11010010: //giro hacia arriba de la camara
{
PORTA=0b01110001;

break;
}
case 0b11010000: //giro hacia abajo de la camara
{
PORTB=0b01110010;

break;
}
case 0b10110100://Comando de velocidad del robot hacia adelante
{
PORTB=avan;

break;
}
case 0b10110000://Comando de velocidad del robot hacia atrs
{
PORTB=ret;

break;
}
case 0b01111000://Comando de velocidad del robot giro a la izquierda
76
{
PORTB=giraI;

break;
}
case 0b01110000://Comando de velocidad del robot giro a la derecha
{
PORTB=giraD;

break;
}
}
}
case 'b': //comandos de posicin
{
PORTB=0b00001111;//comando de posicin microcontrolador B hacia
adelante
d=recibe();
//recibe la referencia del serial
DelayUs(10); //Espera un tiempo
PORTB=d;
while(RC0==0); //espera a que finalice el movimiento
}
case 'c':
{
PORTB=0b00001110;//comando de posicin microcontrolador B hacia atrs
d=recibe();
//recibe la referencia del serial
DelayUs(10); /Espera un tiempo
PORTB=d;
while(RC0==0); //espera a que finalice el movimiento
}
case 't': //trayecto
{
d=recibe(); //recibe la referencia del serial
switch(d)
{
default: //detenido todo
{
break;
}
case 'm': //llenado de matriz de trayecto
{

transmite('i'); //envia seal de inicio de llenado
for(col=0;col>30;col++)
{
d=recibe();
tray[col][0]=d;
d=recibe();
tray[col][1]=d;
}
break;
}
case 'S': //inicia recorrido
{
77
fot(cont=0;cont<29;cont++)
SecTr(tray[cont][0], tray[cont][1]);
break;
}
}
}
}

}

}
//////////////rutina de seguimiento de trayecto///////////////////
void SecTr(unsigned char orien,unsigned char dist)
{
unsigned char cont=0;
unsigned char ban=0;
unsigned char angl[4];
unsigned char tol=5;
compas(angl);
while(ban==0) //dirige al robot en la direccin del avance
{
if(orien<127)
{
if(orien<tol)
{
if((angl[1]<(orien+127))&&(angl[1]>orien))
{
PORTB=giraI;
while(angl[1]>(orien+tol))
{
compas(angl);
}
PORTB=0x00;
}
else
{
PORTB=giraD;
while(angl[1]<(255-(tol-orien)))
{
compas(angl);
}
PORTB=0x00;
}
}
else
{
if((angl[1]<=(orien+127))&&(angl[1]>orien))
{
PORTB=giraI;
while(angl[1]>(orien+tol))
{
compas(angl);
}
PORTB=0x00;
}
else
78
{
PORTB=giraD;
while((angl[1]<(orien-tol))&&(angl[1]>(orien+127)))
{
compas(angl);
}
PORTB=0x00;
}
}
}
else if(orien>=127)
{
if((255-orien)<tol)
{
if((angl[1]>=(orien-128))&&(angl[1]<(orien)))
{
PORTB=giraI;
while(angl[1]<(orien-tol))
{
compas(angl);
}
PORTB=0x00;
}
else
{
PORTB=giraD;
while(angl[1]<(255-orien))
{
compas(angl);
}
PORTB=0x00;
}
}
else
{
if((angl[1]>=(orien-128))&&(angl[1]<(orien)))
{
PORTB=giraI;
while(angl[1]<(orien-tol))
{
compas(angl);
}
PORTB=0x00;
}
else
{
PORTB=giraD;
while((angl[1]>(orien+tol))&&(angl[1]<(127-(255-orien))))
{
compas(angl);
}
PORTB=0x00;
}
}
}
}
79
PORTB=stop;
while(RC0==0) //enva la distancia a recorrer
{
PORTB=0b00001111;
PORTB=dist;
if(dista1<tol08||(dista2<tol02)
{
evita();
}
}
}
unsigned int medir(unsigned char direcc)
{
unsigned int dist;

// Esta primera parte enva el comando a la direccin especificada arriba
SEN =1; // enva bit de inicio
while(SEN); // y espera a que sea cero
SSPIF =0; // bit de interrupcin en cero
SSPBUF =direcc; // enva direccin del sensor
while(!SSPIF); // espera a la interrupcin
SSPIF =0; // entonces la cambiamos a cero de nuevo
SSPBUF =0; // se enva direccin de comandos del sensor
while(!SSPIF); // espera a la interrupcin
SSPIF =0; // entonces la cambiamos a cero de nuevo
SSPBUF =81; // comando de la medicin en CM
while(!SSPIF); //
SSPIF =0; //
PEN =1; // se enva bit de parada
while(PEN); // se espera a que finalice
// Ahora se es pera a que la medicion concluya.
DelayMs(70);
// finalmente obtendremos la distancia
SEN =1; // enviamos bit de inicio
while(SEN); // y esperamos que se haga cero
ACKDT =0; // ponemos el bit de reconocimiento en cero
SSPIF =0;
SSPBUF =direcc; // enviamos la direccin
while(!SSPIF); // esperamos a la interrupcin
SSPIF =0; // la hacemos cero otra vez
SSPBUF =2; // le enviamos la direccin que se va a leer- el bit alto del resultado
while(!SSPIF); // esperamos
SSPIF =0; // y hacemos cero
RSEN =1; // enviamos bit de reinicio
while(RSEN); // esperamos a que sea cero
SSPIF =0; //
SSPBUF =direcc+1; // enviamos la direccin - con el bit de lectura puesto
while(!SSPIF); // esperamos a la interrupcin
SSPIF =0; // y lo hacemos cero
RCEN =1; // enviamos bit de inicio de recepcin
while(!STAT_BF); // y esperamos a que se guarde en el buffer-la parte alta
dist =SSPBUF<<8; // y lo guardamos
ACKEN =1; // iniciamos secuencia de reconocimiento
while(ACKEN); // esperamos a que termine
RCEN =1; // iniciamos recepcin
while(!STAT_BF); // y esperamos a que se reciba la parte baja
80
dist +=SSPBUF; // y la guardamos
ACKDT =1; //
ACKEN =1; //
while(ACKEN); //
PEN =1; // enviamos bit de parada
while(PEN); // y esperamos a que termine
return dist; // regresamos el dato obtenido
}
void compas(unsigned char *comp)
{
//Comando para obtener la lectura de posicin del comps electrnico
//via i2c
SEN =1; // enva bit de inicio
while(SEN); // y espera a que sea cero
ACKDT =0; // bit de reconocimiento
SSPIF =0;
SSPBUF =0xC0; // Enva la direccin
while(!SSPIF); // espera a la bandera
SSPIF =0; //limpia la bandera.

SSPBUF =0; // lee de la direccin 0x00
while(!SSPIF); //
SSPIF =0; //

RSEN =1; // enva el bit de reinicio
while(RSEN); // espera a que sea cero

SSPIF =0;
SSPBUF =0xC1; // direccin de lectura
while(!SSPIF); //
SSPIF =0; //

RCEN =1; // empieza a recibir
while(!STAT_BF); // espera el buffer
comp[0] =SSPBUF; // lo guarda
ACKEN =1; // enva bit de reconocimiento
while(ACKEN); //espera

RCEN =1; // recive el Segundo dato
while(!STAT_BF); //
comp[1] =SSPBUF; //
ACKEN =1; //
while(ACKEN); //

RCEN =1; //
while(!STAT_BF); //
comp[2] =SSPBUF; //
ACKEN =1; //
while(ACKEN); //
RCEN =1; //
while(!STAT_BF); //
comp[3] =SSPBUF; //
ACKDT =1; //
ACKEN =1; //
while(ACKEN); //

81
PEN =1; // enva bit de parada
while(PEN); //
}

void config(void)
{
TRISC =0b00011000; //configuracin para la comunicacin i2c como entradas
PORTC =0xff; //Puerto C en 1 para todos
TRISB =0x00; //configuracin de salidas en el puerto B
PORTB =0x00; //El puerto B en cero para todos
ADCON1 =0x06; //Configuracin de i/o digitales en el puerto A
TRISA =0x00; //puerto A como salidas
PORTA=0x00; //puesto A todo a cero
T1CON=0b00110010; //Configuracin del timer1
INTCON =0b11000000; //Configuracin de interrupciones
PIE1=0b00000001; //
PIR1=0b00000000;
RCIF=0; //
SSPSTAT =0x80; //configuracin I2c
SSPCON =0x38; //
SSPCON2 =0x00; //
SSPADD =50; // SCL =91khz con un oscilador de 20Mhz


}

void interrupt inte(void)
{
if(TMR1IF) //Interrupcin TIMER1
{
TMR1ON=0;
dista1 =medir(0xE0); //Mediciones de Distancias
dista2 =medir(0xE2);
TMR1H=0
TMR1L=0
TMR1ON=1;
TMR1IF=0;
}
}
82
////////////////////////////////////////////////////////////////////////
//Progrma PIC B
////////////////////////////////////////////////////////////////////////
#include<pic.h>
#include "delay.c"
#include "pserie.c"
#define MEDIO 0x80
#define MIN 0xFF
#define MAX 0x00

unsigned char valor=0;
unsigned char ret=0;
const unsigned char pasos[5]= {0b00000000, //tabla de los pasos
0b00000011,
0b00000110,
0b00001100,
0b00001001};
unsigned char pas=0;
unsigned char REF=0;


main()
{
Init_PWM();
init_pserie_9600();
init_trans();
TRISB=0xFF; //Entrada de los comandos puerto B
PORTB=0;
ADCON1=0x06; //configura PORTA con entradas o salidas digitales
TRISA=0x00; //Salida motor de pasos
TRISD=0x00; //
PORTD=0;
//TRISC=0xFF;
PORTC=0;
while(1)
{ //ciclo principal
/*************************************
HACE LA BUSQUEDA DEL DATO EN LA TABLA
**************************************/
valor=PORTB;

switch(valor)
{
default:
{
DelayUs(1);
transmite('s');//Detiene el movimiento
break;
}
case 0b11110001: //Hacia adelante
{
transmite('I'); //selecciona el modulo de la izquierda a
transmite('A'); //comando de velocidad Avanza
transmite('D'); //selecciona el modulo de la
transmite('A'); //Comando de velocidad Avanza
transmite('Y'); //enva a ambos el comando de iniciar
83
break;
}
case 0b11110010: //Hacia atrs
{
transmite('I'); //selecciona el modulo de la izquierda
transmite('R'); //comando de velocidad Retrocede
transmite('D'); //selecciona el modulo de la derecha
transmite('R'); //Comando de velocidad Retrocede
transmite('Y'); //enva a ambos el comando de iniciar
break;
}
case 0b11110011: //Izquierda
{
transmite('I'); //selecciona el modulo de la izquierda
transmite('R'); //comando de velocidad Retrocede
transmite('D'); //selecciona el modulo de la
transmite('A'); //Comando de velocidad Avanza
transmite('Y'); //enva comando de inicio a ambos
break;
}
case 0b11110100: //Derecha
{
transmite('I'); //selecciona el modulo de la izquierda
transmite('A'); //comando de velocidad Avanza
transmite('D'); //selecciona el modulo de la derecha
transmite('R'); //Comando de velocidad Retrocede
transmite('Y'); //enva comando de inicio a ambos
break;
}
case 0b01110000: //
Movimiento del motor de pasos del RSF08 a la izqierda
{
pas=valor&0b00001111;
while(pas!=0)
{

if(pas<1)
pas=4;
PORTA=pasos[pas];
DelayMs(250);
DelayMs(250);
DelayMs(250);
pas--;
}
PORTA=0;

break;
}
case 0b11110000: // Movimiento del motor de pasos a la derecha
{
pas=valor&0b00001111;
while(pas!=0)
{

if(pas<1)
pas=4;
84
PORTA=pasos[pas];
DelayMs(250);
DelayMs(250);
DelayMs(250);
pas++;
}
PORTA=0;
break;
}
case 0b00001111: //comando de avance controlando la posicin
{
RC0=0; //Bandera de ocupado
while(valor==PORTB);//Espera la referencia a avanzar
REF=PORTB;
transmite('M'); //selecciona los dos mdulos
transmite(REF); //Enva la referencia de posicin
DelayUs(10); //Espera un tiempo
transmite('P'); //enva a ambos el comando de iniciar

ret=recibe();
RC0=1;

break;
}
case 0b00001110: //comando de retroceso controlando la posicin
{
RC0=0; //Bandera de ocupado
while(valor==PORTB); // Espera la referencia a avanzar
REF=PORTB;
transmite('N'); //selecciona los dos mdulos
transmite(REF); //Enva la referencia
DelayUs(10); //Espera un tiempo
transmite('P'); //Enva a ambos el comando de iniciar
ret=recibe(); //recibe finalizacin
RC0=1;
break;
}
}
}
}

85
/////////////////////////////////////////////////////////////////
// Programa de los mdulos de Velocidad
/////////////////////////////////////////////////////////////////

#include <p18f2431.h>
#include "pserie.c"
#include "QEI.h"
#include "motor_PWM.h"
#include "PWM_MOD.c"
#include "tabla.c"
#define FOSC 20e6
#define T 0.001
#define ki 30
#define kp 30

#pragma config OSC=HS
unsigned int el=0,em=0;
unsigned int A=0;
unsigned int pos=0;
unsigned int pos1=0,conv=0;
unsigned int velAc=0,velAn=0;
unsigned char d1=0;
unsigned char d2=0;
unsigned int RefP=0;
unsigned int Posi=0xffff,Posi1=0xffff;
unsigned char Cvel=50; //velocidad constante en comandos de v
unsigned int factor=627;
signed int inte=0,deri=0,prop=0,error=0, errorAn=0;
signed int AC=0;// ACan=0;
signed int Ref=0;

void InterruptHandlerHigh(void);
void main(void)
{

unsigned int cont=0;
unsigned int c2=0;
unsigned char com=0;
init_pserie_1200(); // Inicializa puerto serial
init_trans_rec(); // Inicializa transmisin y recepcin
initQEI(4); // Configura el modulo QEI
DFLTCON=0b00111000; //
RCON=0b10000000;
INTCON=0b11000000;
PIE3=0b00000101; //habilita bit0 TMR5IE y bit2 IC2QEIE
PIR3=0b00000000; //limpia las banderas de interrupcin bit1 IC1IF bit2 IC2QEIF
IPR3=0b00000101; //bit0 TMR5 y bit2 QEI en alta prioridad
//inicializa los demas puertos y los pone en cero para evitar entradas no esperadas
ANSEL0= 0b00000001;
TRISA =0b00111001;
LATA = 1;
TRISB = 0;
LATB =0;

setPDC0(0);
enablePWM( PWM_EN_0_1 &
86
PWM_01_COMPLEMENTARY);

configPWMFreq(18000); //configura la frecuencia del PWM


#define PERIOD_COUNT(period,prescale) ((20000000/4)*period/prescale-1)
T5CON =0b00001000; //1:2 prescale
PR5H =(unsigned int)PERIOD_COUNT(T,2)/256;
PR5L =(unsigned int)PERIOD_COUNT(T,2)%256;


while(1)
{

com=recibe();
if(com=='I') //seleccion del modulo
{
com=recibe();
if(com=='R') //retrocede
{
com=recibe();
if(com=='Y')
{
PORTBbits.RB2=1;
T5CONbits.TMR5ON=1;
}
}
if(com=='A') //avanza
{
if(com=='Y')
{
PORTBbits.RB2=0;
T5CONbits.TMR5ON=1;
}

}

}
if(com=='M') //control de velocidad
{
com=recibe();
RefP=(int)com*factor;
PORTBbits.RB2=1;
T5CONbits.TMR5ON=1;
while(1)
{

PIE3=0b00000001;
initQEI(4);
PORTAbits.RA0=1;
RefP=1625;//6500;

/////////////////////control de posicion por tabla//////////////////////////
while(Posi>1000)
{
conv=(unsigned int)(POSCNTH*256)+(unsigned int)POSCNTL;
87
Posi=RefP-conv;
Ref=63;
if(PIR1bits.RCIF==1)
{
Ref=0;
T5CONbits.TMR5ON=0;
for(A=0;A<65535;A++);
transmite(Posi/factor);
Posi=2000
break;
}


}
Posi1=Posi1;
Ref=(Posi-5)>>4;
while(Posi<1000&&Posi<0)
{

conv=(unsigned int)(POSCNTH*256)+(unsigned int)POSCNTL;
Posi=RefP-conv;
if(Posi1==Posi)
{
Posi1=Posi;
}
else
Ref=Tabla[Posi]>>4;
if(PIR1bits.RCIF==1)
{
Ref=0;
T5CONbits.TMR5ON=0;
for(A=0;A<65535;A++);
transmite(Posi/factor);
Posi=0
break;
}
Posi=0;
Ref=0;
T5CONbits.TMR5ON=0;
}

}

if(com=='s')
{
Ref=0;
Posi=0;
T5CONbits.TMR5ON=0;
}
}
}

//----------------------------------------------------------------------------
// Vector de alta prioridad de interrupcin

#pragma code InterruptVectorHigh =0x08
88
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh //salta a la rutina de interrupcin
_endasm
}
//----------------------------------------------------------------------------
// Rutina de alta prioridad de interrupcin

#pragma code
#pragma interrupt InterruptHandlerHigh

void InterruptHandlerHigh(void)
{
if(PIR3bits.IC2QEIF)
{
if(QEICONbits.UP_DOWN)
pos1=2048-pos1;
else
pos1=2048+pos1;
PIR3bits.IC2QEIF=0;
}
if(PIR3bits.TMR5IF)
{
pos=getQEIPos(); //obtiene la posicin actual
if(QEICONbits.UP_DOWN)
if((pos-pos1)>200)
{}
else
velAc=pos-pos1;
else
if((pos1-pos)>200)
{}
else
velAc=pos1-pos;
pos1=pos;


/////////////Algoritmo de controlde velocidad//////////////////
error=(Ref-velAc);
prop=error*kp;
inte=(kp/ki)*(inte+error);
if(inte>1000)
inte=1000;
AC=inte+prop;

if(AC>1000)
AC=1000;
else if(AC<0)
{
AC=AC^0xFF;
AC++;
PORTAbits.RA0=1;
}
else
PORTAbits.RA0=0;
89

setPDC0(AC); //enva la accin de control
PIR3bits.TMR5IF=0; //pone bandera en 0
}
}

//------------------------------------------------------------------------
90
/////////////////////////////////////////////////////////////////
// Programa de los mdulos movimiento de la cmara
/////////////////////////////////////////////////////////////////

#include <pic.h>
#include "delay1.c"

//secuencia de pasos
const unsigned char pasos[9]= {0b00000000, 0b00000001,
0b00000011,
0b00000010,
0b00000110,
0b00000100,
0b00001100,
0b00001000,
0b00001001};

void main(void)
{

unsigned char cont=0;
TRISD =0x00;
TRISB =0xFF;
PORTD =0x00;
PORTB =0x00;

while(1)
{
//PORTA=0xFF;
//DelayMs(255);
//PORTA=0x00;
//DelayMs(255);

while(RB2) //si RB2 es uno no avanza ni retrocede (stop)
{
if(RB0) // si RB2 yRB0 son 1 avanaza
{
cont++;
if(cont>8)
cont=1;
}
else if(!RB1) //si RB2=1 RB0=0 y RB1=1 el motor retrocede
{
cont--;
if(cont<1)
cont=8;
}
PORTD=pasos[cont];
DelayMs(10);

}

}
}
91
#include <p18f2431.h>
#include "pserie.c"
#define uno(var,numbit) ((var)|=1<<(numbit)) //pone un 1 en la variable var y en el numero de bit numbit
#define cero(var,numbit) ((var)&=~(1<<(numbit))) //pone un 0 en la variable var y en el numero de bit numbit

unsigned char ret=0; //variable de comandos

void comp(unsigned char canal,unsigned int dat);

void main(void)
{
//unsigned char com=0;
unsigned char channel=0;
unsigned int conv=0;

TRISA=0xFF; // RA0-RA3
//inicializa todo lo que no se usa en cero para evitar entradas flotantes
ANSEL0=0b00001111; //Entradas AN0-AN3 habilitadas
LATA = 0;
TRISB =0b11000000; // RB0-RB3 salida de RF
LATB =0;
TRISC =0b00001111; // RC0-RC3 entrada de RF
LATC =0;
init_pserie_1200(); // Inicializa puerto serial
init_trans_rec(); // Inicializa transmisin y recepcin

//ADC setup
ADCON0 =0b00000001; // Single-shot y seleccion manual de canales de conversion
ADCON1 =0b00000000; // Se usa los voltajes del PIC como referencias y no se usa el bufer FIFO
ADCON2 =0b00000000; // Se justifica a la derecha
ADCON3 =0b00000000; // Sin disparadores
ADCHS =0b00000000; // Se usan los canales AN0-AN3

while(1)
{
for(channel=0;channel<4;channel++)
{
if(channel==0)
ADCON0 =0b00000001;
if(channel==1)
{
ADCON0 =0b00000101;
}
if(channel==2)
{
ADCON0 =0b00001001;
}
if(channel==3)
{
ADCON0 =0b00001101;
}
ADCON0bits.GO_DONE=1;
//Inicia la conversion
while(ADCON0bits.GO_DONE){}
//espera a que finalice la conversion
conv=(unsigned int)(ADRESH*256)+(unsigned int)ADRESL;//convertimos int
92
comp(channel,conv);
//conascii_Int(conv);
//transmite(' ');
}
if(PORTBbits.RB0)
{
transmite('t');
if((PORTBbits.RB0==1)&&(PORTBbits.RB1==1))
transmite('m');
else
transmite('sm');
}
if(PORTBbits.RB1)
{
transmite('a');
transmite(ret);
}

}

}
void comp(unsigned char canal,unsigned int dat)
{
if(canal==0)
{
if(dat<25000)
{
cero(ret,0);
cero(ret,4);
}
else if(dat>45000)
{
uno(ret,0);
cero(ret,4);
}
else
{
cero(ret,0);
uno(ret,4);
}
}
if(canal==1)
{
if(dat<25000)
{
cero(ret,1);
cero(ret,5);
}
else if(dat>45000)
{
uno(ret,1);
cero(ret,5);
}
else
{
cero(ret,1);
93
uno(ret,5);
}
}
if(canal==2)
{
if(dat<25000)
{
cero(ret,2);
cero(ret,6);
}
else if(dat>45000)
{
uno(ret,2);
cero(ret,6);
}
else
{
cero(ret,2);
uno(ret,6);
}
}
if(canal==3)
{
if(dat<25000)
{
cero(ret,3);
cero(ret,7);
}
else if(dat>45000)
{
uno(ret,3);
cero(ret,7);
}
else
{
cero(ret,3);
uno(ret,7);
}
}
}
94
/////////////////////////////////////////////////////////////////
// Tabla de desaceleracin
/////////////////////////////////////////////////////////////////
//#pragma romdata array=0x1760
static rom unsigned int Tabla[1000]={
0,31,44,54,63,70,77,83,89,94,100,104,109,114,118,122,126,130,134,137,141,144,148,151,154,158,
161,164,167,170,173,176,178,181,184,187,189,192,194,197,200,202,204,207,209,212,214,216,219,221,223,
225,228,230,232,234,236,238,240,242,244,246,249,251,252,254,256,258,260,262,264,266,268,270,272,273,
275,277,279,281,282,284,286,288,289,291,293,294,296,298,300,301,303,304,306,308,309,311,313,314,316,
317,319,320,322,324,325,327,328,330,331,333,334,336,337,339,340,342,343,344,346,347,349,350,352,353,
354,356,357,359,360,361,363,364,366,367,368,370,371,372,374,375,376,378,379,380,382,383,384,386,387,
388,389,391,392,393,394,396,397,398,400,401,402,403,404,406,407,408,409,411,412,413,414,415,417,418,
419,420,421,423,424,425,426,427,428,430,431,432,433,434,435,437,438,439,440,441,442,443,444,446,446,
447,448,449,450,451,452,453,454,456,457,458,459,460,461,462,463,464,465,466,467,469,470,471,472,473,
474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,498,499,
500,501,502,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,
524,525,526,527,528,529,530,531,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,
548,549,550,551,552,553,554,554,555,556,557,558,559,560,561,562,563,563,564,565,566,567,568,569,570,
570,571,572,573,574,575,576,577,577,578,579,580,581,582,583,583,584,585,586,587,588,589,589,590,591,
592,593,594,594,595,596,597,598,599,600,600,601,602,603,604,604,605,606,607,608,609,609,610,611,612,
613,614,614,615,616,617,618,618,619,620,621,622,622,623,624,625,626,626,627,628,629,630,630,631,632,
633,634,634,635,636,637,637,638,639,640,641,641,642,643,644,644,645,646,647,648,648,649,650,651,651,
652,653,654,654,655,656,657,658,658,659,660,661,661,662,663,664,664,665,666,667,667,668,669,670,670,
671,672,673,673,674,675,676,676,677,678,678,679,680,681,681,682,683,684,684,685,686,687,687,688,689,
689,690,691,692,692,693,694,694,695,696,697,697,698,699,700,700,701,702,702,703,704,704,705,706,707,
707,708,709,709,710,711,712,712,713,714,714,715,716,716,717,718,719,719,720,721,721,722,723,723,724,
725,725,726,727,728,728,729,730,730,731,732,732,733,734,734,735,736,736,737,738,738,739,740,740,741,
742,742,743,744,744,745,746,746,747,748,749,749,750,751,751,752,752,753,754,754,755,756,756,757,758,
758,759,760,760,761,762,762,763,764,764,765,766,766,767,768,768,769,770,770,771,772,772,773,773,774,
775,775,776,777,777,778,779,779,780,781,781,782,782,783,784,784,785,786,786,787,788,788,789,789,790,
791,791,792,793,793,794,794,795,796,796,797,798,798,799,800,800,801,801,802,803,803,804,804,805,806,
806,807,808,808,809,809,810,811,811,812,813,813,814,814,815,816,816,817,817,818,819,819,820,820,821,
822,822,823,824,824,825,825,826,827,827,828,828,829,830,830,831,831,832,833,833,834,834,835,836,836,
837,837,838,839,839,840,840,841,842,842,843,843,844,844,845,846,846,847,847,848,849,849,850,850,851,
852,852,853,853,854,854,855,856,856,857,857,858,859,859,860,860,861,861,862,863,863,864,864,865,866,
866,867,867,868,868,869,870,870,871,871,872,872,873,874,874,875,875,876,876,877,878,878,879,879,880,
880,881,882,882,883,883,884,884,885,886,886,887,887,888,888,889,889,890,891,891,892,892,893,893,894,
894,895,896,896,897,897,898,898,899,900,900,901,901,902,902,903,903,904,904,905,906,906,907,907,908,
908,909,909,910,911,911,912,912,913,913,914,914,915,915,916,917,917,918,918,919,919,920,920,921,921,
922,923,923,924,924,925,925,926,926,927,927,928,928,929,930,930,931,931,932,932,933,933,934,934,935,
935,936,937,937,938,938,939,939,940,940,941,941,942,942,943,943,944,944,945,946,946,947,947,948,948,
949,949,950,950,951,951,952,952,953,953,954,954,955,956,956,957,957,958,958,959,959,960,960,961,961,
962,962,963,963,964,964,965,965,966,966,967,967,968,969,969,970,970,971,971,972,972,973,973,974,974,
975,975,976,976,977,977,978,978,979,979,980,980,981,981,982,982,983,983,984,984,985,985,986,986,987,
987,988,988,989,989,990,990,991,991,992,992,993,993,994,994,995,995,996,997,997,998,998,999,999};
//#pragma romdata
95
96
A.2 Copia del Articulo Publicado.

S. Ramrez, N. Barrera e I. I. Lzaro, Robot Barredora Dcima Reunin de Otoo de Potencia,
Electrnica y Computacin ROPEC 2008, Morelia Michoacn 2008.

g

Aplicacin de un Robot mvil
S. Ramrez, N. Barrera e I. I. Lzaro


ResumenEl presente articulo muestra una aplicacin de la
Robtica mvil. Se plantea el diseo de un robot mvil autnomo
o controlado por el usuario, empleado para la limpieza domestica
en un espacio fsico, que aprovecha la base de una escoba
elctrica swivel sweeper. El robot mvil esta basado en
microcontroladores de la familia PIC. Este microcontrolador
activa los motores de corriente directa que mueven al robot a
travs de una etapa de potencia. El robot tambin tiene sensores
que le permiten conocer algunos parmetros del entorno donde
se mueve Con la informacin que se obtiene de los sensores y que
es procesada por el microcontrolador es posible realizar la tarea
de limpieza en el espacio fsico deseado. Se describe el
funcionamiento de los sensores, as como de la construccin del
robot.

Temas clavesRobtica, Instrumentacin, barredora y
Prototipo.

I. INTRODUCCIN
n el campo de la ingeniera electrnica y en especial en
la rama de la robtica y de control y automatizacin, se
busca poder crear robots para diferentes aplicaciones y usos.

Los robots se clasifican, segn su movilidad, de dos formas:
robots manipuladores y mviles. Los manipuladores estn
formados de una cadena cinemtica abierta formada por un
conjunto de eslabones o elementos de cadena
interrelacionados mediante articulaciones o pares cinemticas.
Son empleados comnmente para mover piezas, herramientas
o dispositivos y se programan para ejecutar este tipo
especfico de tareas. Por otro lado, dentro del desarrollo de los
robots mviles se han implementado robots mviles con patas,
robots mviles con pndulo invertido, robots mviles que
vuelan, robots mviles humanoides y robots mviles con
ruedas [1].

Los robots mviles con ruedas, pueden estar constituidos
por diversos materiales y sensores, estas configuraciones son
utilizadas para satisfacer las diversas aplicaciones, como
extender las actividades realizadas por un manipulador a
travs de la movilidad por tener caractersticas como: tele-
operacin, funcionamiento repetitivo y autonoma e
inteligencia, as como, el reconocimiento de lugares y

97


Incluir filiacin en este prrafo:
Salvador Ramrez e Isidro Ignacio Lzaro laboran en la Universidad
Michoacana de San Nicols de Hidalgo en la Facultad de Ingeniera Elctrica.
(e-mail: szavala@zeus.umich.mx y ilazaro@zeus.umich.mx).
Noe Barrera es estuante de la misma Universidad. (e-mail:
a0001125x@correo.fie.umich.mx).

personas, la construccin de mapas, soldar, pintar, etc. [2]

El mundo ha experimentado cambios muy significativos en
los ltimos veinte aos. Nuevos descubrimientos y
aplicaciones han sido realizados en los campos de la
Electrnica y la Ingeniera. Dichas innovaciones han
impactado poco hasta ahora significativamente en los
electrodomsticos del hogar. La domtica y el
comportamiento automtico como el de los robots, empiezan a
abandonar las pantallas de cine de ciencia ficcin y los
laboratorios para lentamente llegar a nuestros hogares y dar a
luz a dispositivos inteligentes que liberen la necesidad de la
intervencin directa de un ser humano en tareas sencillas [3].

Los robots han sido desarrollados en un principio para
automatizar y hacer ms eficientes las actividades que las
personas realizan. Es el caso de las actividades domesticas,
donde ahora con la forma de vida que lleva la sociedad en
general no se tiene el tiempo necesario para realizar todas las
actividades que se necesitan en la casa. Ya existen varios
electrodomsticos que de manera automtica desarrollan sus
funciones haciendo ms fcil las tareas en el hogar como lavar
la ropa, hacer el caf a una hora especfica, etc. Sin embargo
hay actividades que por el momento no se dispone de un
aparato comercial de fcil acceso que las realice, como es el
caso de los robots limpiadores.

As que el objetivo principal de este trabajo, es la
construccin de un prototipo de robot barredor autnomo o
controlado por el usuario que realice la limpieza de un espacio
fsico, no importando si en este existen obstculos o no.
II. ESTRUCTURA GENERAL DEL ROBOT MVIL
El robot mvil que se desarrollo para la aplicacin de
barredora, esta compuesto a partir de una estructura metlica
sobre la cual estn montados diversos dispositivos como lo
son llantas que le proporcionan movilidad a la estructura, el
sistema de control y sensores.

En la Fig. 1 se muestra el diagrama de bloques del sistema
diseado. Este muestra las partes constitutivas ms generales
del sistema desarrollado.

Las partes que conforman el sistema son: un
microcontrolador PIC16F877 (PIC1), el cual contiene el
programa principal para el control de las funciones del
sistema, dos sensores ultrasnicos, uno que mide la distancia a
la que se encuentran objetos y otro que mide los desniveles
del terreno en el que s esta transitando, un sensor de comps
que realiza la funcin de una brjula electrnica y proporciona
E

la direccin en la que el robot esta orientado con respecto al
campo magntico terrestre, dos motores de corriente directa
(CD) que nos dan el movimiento del robot y que son
accionados por un microcontrolador PIC16F877 (PIC2),
donde estn programados cuatro movimientos especficos de
los motores de movimiento: avance, retroceso, giro a la
izquierda y giro a la derecha. Adems este segundo
microcontrolador (PIC2) controla tambin dos motores de
pasos, que permite mover una pequea mini cmara que
transmite la seal a control remoto a un monitor, para ver los
movimientos del robot. El robot mvil tambin tiene un
sistema de comunicacin para la recepcin de instrucciones
del un supervisor que puede manipular los movimientos del
robot y de la cmara [4] [5].


Fig. 1 Diagrama de bloques del sistema.

II. MODOS DE OPERACIN
El robot puede operar de dos maneras distintas como se
muestra en la Tabla I.

TABLA I
MODOS DE OPERACIN DEL ROBOT BARREDOR
Modos de
operacin
Acciones del robot barredor
Modo 1 -El operador controla el robot barredor.
Modo 2 -Rutina de recorrido no asistido (autnomo).

98

El primer modo de operacin es que el usuario genere las
instrucciones del movimiento del espacio fsico a barrer,
mediante un control remoto inalmbrico. El segundo modo de
operacin es que mediante un algoritmo de movimiento
definido, el robot se mueva en toda el rea de manera que se
cubra en su totalidad el espacio fsico deseado a barrer.

A. Modo de operacin controlado por el usuario (Modo 1)
El robot recibe rdenes a travs de seales de
radiofrecuencia que son generadas por medio de un control
remoto como se ve en la Fig. 2, estas seales son interpretadas
por un microcontrolador PIC1 y dependiendo del comando se
realizan ciertas acciones.

Cuando se esta en este modo el uso de la mini cmara es
imprtate, ya que con esta se puede observar por donde esta
barriendo el robot sin estarlo vigilando de cercas, adems
debido a que es posible que se acerque demasiado a los
objetos y chocar con ellos, el sistema del robot esta midiendo
con los sensores la distancia los objetos alrededor de el, con el
fin de no permitir que el usuario con las instrucciones
enviadas choque deliberadamente.

Fig. 2 Control remoto inalmbrico.

La palanca derecha controla el movimiento del avance de
el robot, si esta palanca se mueve hacia arriba, el robot
avanzara durante 0.5seg., si la palanca se mueve hacia abajo el
robot retroceder durante 0.5seg., si la palanca se mueve hacia
la derecha o izquierda el robot girara sobre su mismo lugar a
la derecha o a la izquierda respectivamente, en caso de que
haya objetos delante del robot que sean detectados por los
sensores de distancia el microcontrolador que controla los
motores de avance (PIC2), no realizara ningn movimiento.

La palanca de la izquierda controla el movimiento de los
motores de paso, que sostienen a la mini cmara. Si la palanca
se mueve hacia arriba o hacia abajo, el motor de pasos que
genera el giro vertical se mueve, haciendo que la cmara gire
hacia arriba o hacia abajo respectivamente, Si la palanca se
mueve hacia la izquierda o hacia la derecha el motor de pasos
que genera el giro horizontal hace que la cmara gire hacia la
izquierda o la derecha respectivamente. Con esto podemos
tener movimientos combinados de los motores de forma
esfrica, el giro horizontal de la cmara esta limitado a 180
del motor horizontal debido a los cables del motor la Fig. 3 se
muestra este arreglo.


Giro
Vertical
Fig. 3 Mini cmara montada sobre los motores de paso.
B. Modo de operacin no asistido (Modo 2)
Giro Horizontal
En este modo de operacin, el microcontrolador PIC1 le da
la instruccin de iniciar la rutina de movimiento libre o la
rutina de movimiento recorrido no asistido.

La rutina de recorrido no asistido consta de una secuencia
de movimientos que se muestran en la Fig. 4 En el que el
robot debe colocarse en cualquier esquina de la habitacin
como punto de inicio, de frente al rea que se desea barrer.
Cuando se oprime el botn de inicio el robot empieza a
avanzar mientras no haya ningn obstculo en el trayecto, en
el caso de que se encuentre un obstculo, el microcontrolador
evala que tipo de obstculo es, esto con la ayuda de los
sensores de ultrasonido. Si se detecta que es un obstculo
pequeo, el robot lo rodea, pero si es mas grande que la
distancia que puede medir los sensores, lo toma como una
pared y el robot gira 90, avanzando una distancia de 30 cm.
que es el espacio que cubre la barredora, despus vuelve a
girar 90 para avanzar de nuevo hasta encontrar otro obstculo
como una pared y realizar el mismo movimiento de un
extremo a otro. Para hacer un recorrido por franjas y as
recorrer toda el espacio fsico deseado. La distancia recorrida
por el robot, es fijada medida con un tiempo, en cual se
recorre la distancia necesaria cubrir por partes la habitacin
como se muestra en la Fig. 4.


99

Fig. 4 Trayectoria tpica.

Cuando se encuentra un obstculo en el recorrido detectado
por el sensor de ultrasonido y que no sea detectada como una
pared, dependiendo de que lado del obstculo sea detectado, el
robot decide rodearlo ya sea por el lado derecho o por el lado
izquierdo y despus de superado el obstculo vuelve a su
camino.

Se tiene el otro sensor que mide la distancia que hay hacia
el suelo y si la distancia es mayor a 19 cm. quiere decir que
hay un desnivel mayor y en ese caso retroceder una distancia
de 40cm y girar 90 despus avanza 30cm, vuelve a girar 90
y empieza a avanzar nuevamente continuando con el
recorrido.
III. CARACTERSTICAS DE LOS ELEMENTOS DE ROBOT
El robot esta compuesto de un conjunto de elementos tales
como; motores, microcontroladores, sistema de control de
motores, estructura mecnica, bateras y sensores.

El robot tiene una estructura metlica que sirve de apoyo a
todo el hardware. La estructura metlica tiene forma
rectangular de 24.5 cm. de ancho por 26 cm. de largo y una
estructura trasera que sobresale 8 cm.como se puede apreciar
en la Fig. 5. Cuenta con cuatro perforaciones, una en cada
esquina de la estructura, en las cuales van varillas para
soportar las plataformas de base para los circuitos de control.


Fig. 5. Estructura metlica.

El robot mvil est construido con tres ruedas, colocadas
como se muestra en la Fig. 6a. Las dos ruedas delanteras
donde esta el sistema de traccin. Para ello se acopla, en cada
rueda, un conjunto de estrellas, de las usadas en las bicicletas
de velocidades. A los motores tambin se les coloc una
estrella en su eje. Estas estrellas estn acopladas mediante una
cadena de eslabones, como se muestra en la Fig. 6b. La rueda
trasera es de libre movimiento que puede girar 360, no esta
controlada y sirve solo de soporte.













Fig. 6. (a) Colocacin de las ruedas, (b) Acoplamiento entre motor y rueda
llanta acoplada con el motor.

Los motores utilizados para la traccin son motores de CD.
Los cuales son alimentan con una batera independiente a la
del sistema de control.

Para el manejo de los motores se utilizan dos circuitos
integrados de Puentes-H (LMD18200), diseado para
aplicaciones de control de movimiento. Ideal para manejar
motor de CD. Estos Puentes-H estn acoplados a un
microcontrolador PIC1 por medio de Optoacopladores
INICIO
FIN
30cm

(H11L1), de esta forma queda total mente aislada la etapa de
potencia de la etapa de manejo de los motores [6].
Como se puede apreciar en la Fig. 5, se muestran las dos
bateras que son la fuente de energa del robot. La razn por la
que se tienen dos bateras es para tener por separado la energa
que alimenta a los motores y la energa que alimenta los
circuitos de control, las bateras son de 12 Volts de 12
Amperes-hora y 8 Amperes-hora respectivamente.

Adems del microcontrolador PIC1 que controla el sistema
y el microcontrolador PIC2 que controla el movimiento o
traccin del robot, exciten dos microcontroladores PIC16F84
[4][5], que controlan las secuencias de pasos de los motores
de pasos que sostienen la mini cmara. Esto se hace para
poder tener el diseo del robot en forma modular.

En la parte frontal de la estructura del robot se montaron
dos sensores de ultrasonido (SRF08 y SRF02), uno que
permite ver la distancia que hay al frente del motor, el cual se
encuentra montado en un motor a pasos permitiendo
monitorear hasta 180
0
y el segundo que permite saber si hay
algn tipo de desnivel en el suelo, montado en una varilla
roscada, que gira y hace que el sensor se desplace de un lado
al otro del robot de manera secuencial, cuando llega al
extremo de un lado presiona un botn y un circuito lgico
hace cambiar el sentido de giro del motor. El sensor se mueve
de un lado a otro a razn de 4 vueltas por minuto (Fig. 7),
adems se tiene un sensor de comps (CMPS03) para saber la
orientacin que tiene el robot en cualquier momento. [7] [9].


100

Fig. 7 Parte frontal del robot

Un elemento importante es la barredora elctrica de la
marca swivel sweeper modelo XR-DC080200 que realiza el
trabajo de ir limpiando el rea por la que se va transitando,
esta barredora esta colocada en la parte de atrs del robot.

Para el modo de operacin controlado por el usuario (modo
1). El microcontrolador PIC 1 recibe las seales de comandos
que enva el control remoto por medio de un modulo de radio
frecuencia (RWS315) a una velocidad de transmisin de 9600
baudios/segundo, cada comando que se recibe es un numero
binario de 8bits Los comandos que son recibidos son
interpretados y dependiendo del comando se realiza una
accin. Las acciones que se pueden realizar se muestran en la
Tabla II.

TABLA II
INSTRUCCIONES DEL PIC 1
Instruccin
recibida.
Acciones del robot barredor.
0000XXXX El robot inicia el recorrido de limpieza.
11110000 Detiene cualquier movimiento del robot
11100001
Mueve el motor del movimiento horizontal
de la cmara hacia la derecha.
11100000
Mueve el motor del movimiento horizontal
de la cmara hacia la izquierda.
11010010
Mueve el motor del movimiento vertical de
la cmara hacia arriba.
11010000
Mueve el motor del movimiento vertical de
la cmara hacia abajo.
10110100
Enva la instruccin al PIC 2 para que el
robot avance
10110000
Enva la instruccin al PIC 2 para que el
robot retroceda
01111000
Enva la instruccin al PIC 2 para que el
robot gire sobre su eje a la derecha.
01110000
Enva la instruccin al PIC 2 para que el
robot gire sobre su eje a la izquierda.
Donde: X: indica que no importa si es 1 0.
1: indica un voltaje lgico alto.
0: indica un voltaje lgico bajo.
Mini cmara

El microcontrolador PIC2 se dedica solo a seguir las
instrucciones que recibe del microcontrolador PIC1. Las
instrucciones que enva el microcontrolador PIC1 son
enviadas mediante tres pines de un puerto digital (C) y estos
van conectados a un puerto digital (B) del microcontrolador
PIC2. El microcontrolador PIC2 cada vez que termina uno de
los comandos realizados enva una seal de finalizacin
mediante un pin del puerto B y es recibida esta seal en el un
pin del puerto C del microcontrolador PIC1. Estos comandos
se muestran en la Tabla III.
Motor
Sensores
ultrasnicos

TABLA III
INSTRUCCIONES DEL PIC 2
Instruccin
recibida.
Accin del PIC 2
000 Detiene cualquier accin.
001 Avanza
010 Retrocede
011 Gira hacia la Derecha.
100 Gira a la Izquierda.
101 Gira el motor de pasos a la Derecha.
110 Gira el motor de pasos a la Izquierda.
111 No realiza ninguna accin


En la Fig. 8, se muestran la distribucin de los circuitos de
control colocados en la tabla que va encima del robot.


101
Fig. 8 Distribucin de los circuitos de control montados en el robot.

En la parte superior del robot solo se encuentra solamente
la pequea mini cmara con los motores de pasos que
permiten su movimiento como se muestra en al Fig. 9.


Fig. 9 Parte superior del robot.
IV. PRUEBAS REALIZADAS
Las pruebas realizadas al prototipo iniciaron desde que se
construyo cada uno de los mdulos para verificar que se
tuviera el comportamiento adecuado de los mdulos por
separado ya que se diseo una distribucin modular, una vez
hecho esto se procedi con la conexin con de todos los
mdulos.

Despus de interconectar todos los circuitos que componen
al robot mvil, fue necesario probar que los programas
tuvieran un funcionamiento adecuado primero para el
microcontrolador PIC1 y luego para el microcontrolador
PIC2.

Se probaron ambos modos de funcionamiento del robot,
primero para el modo de control hecho por un operador y
despus para el modo de recorrido no asistido, verificando
primero que el primer modo siguiera las instrucciones de
acuerdo a los movimientos realizados desde el control remoto,
para el segundo modo se puso el robot a barrer un espacio
fsico sin obstculos para ver el comportamiento en el
recorrido, despus se probo con obstculos realizando una
buena tarea el robot.

Las tolerancias de cercana fueron ajustadas midiendo el
acercamiento mnimo con el cual se puede girar sin tocar los
objetos a su alrededor. Como se muestra en la Fig. 10, la
barredora fue fijada en la parte de atrs del robot para ser
remolcada, as se permite que la barredora valla limpiando
todo el recorrido que el robot est haciendo.


30cm
Fig. 10 Robot barredor construido.
V. CONCLUSIONES
Se ha logrado disear una aplicacin de un robot mvil
para el uso casero, especficamente como barredora de fcil
uso, que permite desplazarse dentro de un espacio fsico con
mucha facilidad, seguridad e independencia ante la presencia
de objetos no deseados. Esto debido a que el sistema
desarrollado aumenta la informacin acerca de algunos
obstculos que la barredora pueda encontrar en su camino y
pueda tomar la decisin acerca de la ruta para su
desplazamiento.

La utilizacin de los sensores como fuentes de informacin
del estado del medio ambiente en el que se desenvuelve la
barredora brinda al robot barredor la posibilidad de ayudarle a
alcanzar una trayectoria libre de obstculos. Se comprob el
buen desempeo de los sensores al permitir realizar
trayectorias deseadas.

Se comprob la funcionalidad de manejo de la barredora,
presentando buenas caractersticas en los dos modos de

trabajo diseados.

El desarrollo del presente proyecto permiti observar que el
campo de aplicacin de los robots mviles, es muy extenso y
un slo proyecto puede crecer tanto como la creatividad, el
conocimiento, el tiempo y el recurso econmico lo permita,
dejando el presente proyecto como base para futuros
proyectos.

Debido a que la barredora se mueve junto con el robot
cuando este da vuelta, la barredora tiene un movimiento
circular, esto no permite limpiar adecuadamente las esquinas y
rincones cercanos a las paredes, otro inconveniente que se
observo es que el robot por su tamao no permite limpiar
debajo de los objetos como mesas pequeas o camas.

Referencias

[1] http://www.ece.buap.mx/robocatepetl/espanol/jgx.htm
[2] http://acm.asoc.fi.upm.es/sigbot/docus/introRobotica2004.pdf
[3] Cerezo Echevarra, Mikel, Snchez Miralles lvaro Aspiradora
inteligente para limpieza automtica de suelos ICAI- Universidad
Pontificia Comillas
[4] Angulo J ., Microcontroladores PIC Diseo Practico de Aplicaciones,
McGraw Hill 1997.
[5] Manual del microcontrolador PIC16F87xA, y PIC16F84,
http://www.microchip.com.
[6] Muhammad H. Rashid. Power Electronics Circuts, Devices and
Applications. Prentice-Hall 1993.
[7] Robodacta http://www.robodacta.com.mx/
[8] Santafe Y. E., J ugo D., Cote P., Gonzlez M., Sistema de deteccin de
obstculos por sonar ultrasnico para personas invidentes (Bastn
ultrasnico), Memorias del II Congreso Colombiano de Ingeniera e
Ingeniera Biomdica, Bogot, Octubre 2005.
[9] Herrera A., J aramillo R., Diseo y construccin de un dispositivo para
la alerta de obstculos (DAO), Revista Ingeniera Biomdica, ISSN
1909-9762, numero 1, mayo 2007, Pgs. 23-27.
BIOGRAFA

102
ntrol e
Instrumentacin.
de inters son Electrnica de Potencia, Robtica,
Control e Instrumentacin
uo. Sus reas de inters son
alidad de la Energa, Control e Instrumentacin.


Salvador Ramrez Zavala naci en Morelia, Mich. Recibi
el grado de Ingeniero Electricista en la Universidad
Michoacana de San Nicols de Hidalgo, el grado de
Maestro en Ingeniera Elctrica en la misma Institucin en
1990 y 1998 respectivamente. Sus reas de inters son
Electrnica de Potencia, Robtica, Co

Noe Barrera Gallegos naci en Morelia, Mich, pasante de Ingeniera
Electrnica de la Universidad Michoacana de San Nicols de Hidalgo en la
Facultad de Ingeniera Elctrica. Actualmente se encuentra terminando se
trabajo de tesis. Sus reas

Isidro Ignacio Lzaro Castillo naci en Crdoba, Veracruz,
Mxico. Recibi el grado de Ingeniero Electricista en la
Universidad Michoacana de San Nicols de Hidalgo, el grado
de maestro en Ingeniera Elctrica en la misma Institucin en
1992 y 1999 respectivamente. Actualmente es Profesor
Investigador de tiempo completo de la misma Facultad. Autor
del libro Ingeniera de Sistemas de Control Contin
C





























































103

Referencias

[Rodrigez 2005]
Ing. Ren Rodrguez Zalapa, Robot mvil controlado por infrarrojos, Tesis de Licenciatura
Agosto de 2005, Universidad Michoacana de San Nicols de Hidalgo
[Ramrez 1998]
MC. Salvador Ramrez Zavala, Diseo y construccin de un manipulador con dos grados de
libertad y orientacin del efector final, Tesis de Maestra Octubre de 1998, Universidad
Michoacana de San Nicols de Hidalgo
[Kenjo]
Takashi Kenjo, Power Electronics for the Microprocessors Age, Oxford Science Publications
1994.
[Barrientos 2007]
A. Barrientos, Fundamentos de Robtica, McGraw Hill 2007
[Ogata 1997]
Katsuhiko Ogata, Sistemas de Control en Tiempo discreto, Prentice Hall 1996
[Ogata 1993]
Katsuhiko Ogata, Ingeniera de Control Moderna, Prentice Hall 1993
[Robodacta 2009]
Robodacta, Pagina principal, Mxico, 10 de enero de 2009, http://www.robodacta.com.mx/.
[Robot-e 2009]
Robot electronics, Pagina principal, Reino unido, 10 de enero de 2009, http://www.robot-
electronics.co.uk.
[Avagotech 2009]
Avago Technologies, Pagina principal, Estados Unidos, 10 de enero de 2009,
http://www.avagotech.com/pages/home/.
[Microchip 2009]
Microchip Technology Inc. Pagina principal, Estados Unidos, 10 de enero de 2009,
http://www.microchip.com.


103
104
[Fairchild 2009]
Fairchild Semiconductor, Pagina principal, Estados Unidos, 10 de enero de 2009,
http://www.fairchildsemi.com/.
[National 2009]
National Semiconductor Corporation, Pagina principal, Estados Unidos, 10 de enero
de 2009, http://www.national.com/.
[Steren 2009]
Steren, Pagina principal, Mxico, 10 de enero de 2009, http://www.sterenl.com.mx/.
[Todo-R 2009]
Todo Robot, Tutorial sobre Motores Paso a Paso, Argentina, 15 de enero de 2009,
http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm.

Das könnte Ihnen auch gefallen