Upload
franklin-barra
View
13
Download
0
Embed Size (px)
Citation preview
Universidad Austral de Chile
Facultad de Ciencias de la Ingeniería Escuela de Ingeniería Civil Electrónica
ROBOT EDUCACIONAL PROGRAMABLE DESDE EL PC, UTILIZANDO TECNOLOGIA MICROCHIP Y
RABBIT, PARA LABORATORIOS DE LA UNIVERSIDAD AUSTRAL DE CHILE
Trabajo para optar al título de: Ingeniero Electrónico. Profesor Patrocinante: Sr. Jorge Morales Vilugrón Ingeniero Electrónico Diplomado en Ciencias de la Ingeniería Magíster en Administración de Empresa
CLAUDIO ALDO ANTONIO HERRERA CONTRERAS VALDIVIA –CHILE
2010
- 2 -
Comisión de Titulación
Profesor Patrocinante:
Sr. Jorge Morales Vilugrón. Firma:
Profesores Informantes:
Sr. Pedro Rey Clericus. Firma:
Sr. Luis Álvarez González Firma:
- 3 -
Agradecimientos y Dedicatorias
A mi toda mi familia en particular a mis padres Luis y Soledad quienes siempre
me han apoyado en todo lo que he decidido a lo largo de mi vida, ellos son mi
aliento y mi fortaleza, a mi hermana quien me ha apoyado junto con mi sobrina
Camila quien me brinda una energía que no puedo expresar en palabras, a mi
abuela Laura quien con su cariño y preocupación ha compartido grandes
momentos, su alegría me ha motivado a continuar gran parte de mi paso por la
Universidad.
A mi novia Katherine quien me ha acompañado a lo largo de este tiempo en que
comenzó el desarrollo de la tesis quien siempre me ha motivado a continuar y no
dejar de pensar en terminar esta etapa y poder avanzar a la siguiente.
A Jorge Morales, “Profe”, como siempre le llamo, por su cálido recibimiento al
durante los años que me desempeñé como su ayudante, por la paciencia y
confianza depositada en mi.
Finalmente y no menos importante a Dios quien ha estado ayudándome durante
estos años de enseñanza Universitaria, en quien me he apoyado en momentos
difíciles y también en momentos de alegría.
A estas personas les agradezco de todo corazón y les dedico este trabajo de
titulación.
- 4 -
Contenido
Capitulo I. Planteamiento del Problema. ............................................. - 12 -
I.1. Robótica. ............................................................................................................. - 12 -
I.1.1. Clasificación de los Robot. ........................................................................... - 14 -
I.2. Robótica y Educación. ......................................................................................... - 18 -
I.2.1. Robots en la Universidad. ............................................................................ - 19 -
I.3. Descripción del Problema. .................................................................................. - 22 -
Capitulo II. Diseño del Robot Educacional. .......................................... - 24 -
II.1. Características del diseño. ................................................................................. - 24 -
II.2. Microcontrolador PIC. ........................................................................................ - 26 -
II.3. Microprocesador Rabbit. ................................................................................... - 32 -
II.4. Servomotores. .................................................................................................... - 37 -
II.5. Sensores. ............................................................................................................ - 40 -
II.5.1. Ultrasonido. ................................................................................................. - 43 -
II.5.2. Acelerómetro. ............................................................................................. - 48 -
Capitulo III. Construcción del Robot Educacional. ................................ - 53 -
III. 1. Estructura del Robot educacional. ................................................................... - 53 -
III. 2. Placa Electrónica para montaje del PIC. .......................................................... - 56 -
II. 3. Montaje Final del Robot educacional. .............................................................. - 59 -
Capitulo IV. Programación del Robot Educacional. .............................. - 62 -
IV. 1. Programación PIC. ........................................................................................... - 63 -
- 5 -
IV. 1. 1. PIC BASIC PRO. ........................................................................................ - 64 -
IV. 2. Programación en RABBIT. ................................................................................ - 65 -
Capitulo V. Experiencias Realizadas. .................................................... - 70 -
V. 1. PIC USB. ............................................................................................................. - 70 -
V. 2. Rabbit Servos. ................................................................................................... - 76 -
V. 3. Rabbit PIC Control. ............................................................................................ - 80 -
VI. Conclusiones. ................................................................................. - 86 -
VII. Referencias Bibliográficas. ............................................................ - 88 -
VIII. Anexos. ........................................................................................ - 89 -
VIII. 1. Carga de un Programa para PIC. ................................................................... - 89 -
VIII.2. Carga de un Programa en Rabbit. ................................................................... - 91 -
- 6 -
Resumen
El presente trabajo de titulación comprende el diseño, construcción y puesta en
marcha de un Robot Educacional programable, desde la idea de la mejora de los
ya existentes elementos electrónicos programables de la Universidad, tomando
en cuenta todas las características que estos poseen, expandiéndolas con las
tecnologías existentes actualmente en la Universidad; la tecnología PIC y la
Rabbit, ambas unidades lógicas programables, fueron utilizadas en este trabajo
para desarrollar un Robot que permita la enseñanza de robótica, electrónica e
informática en las salas de clases de la presente casa de estudios.
Tomando en cuenta el diseño desde su idea, medidas y elementos que lo
componen, como también sensores y dispositivos electromecánicos para
desarrollar su arquitectura y su hardware electrónico, experiencias de ejemplo,
dando a conocer algunas de las capacidades de este Robot Educacional y
midiendo paso a paso sus potencialidades de este tipo de robot que no tiene un
solo fin sino que es amplio para abarcar casi todo tipo de problema a solucionar.
- 7 -
Summary
this work includes the design, construction and operation of a programmable
Educational Robot,from the idea of improving existing programmable electronic
elements of the University,taking into account all the characteristics that these
have and expand with the technologies currently available in the University;PIC
technology and the Rabbit, both programmable logic units,were used in this
work to develop a robot that allows the teaching of robotics,electronics and
computers in classrooms of this university.
Bearing in mind the design from his idea, measures and elements that compose
it, as also sensors and electromechanical devices to develop hisarchitecture and
his electronic hardware, experiences of example, announcing some of the
capacities of this Educational Robot and measuring stepwise hispotentials of this
type of robot that does not have an alone end but it is wide to include almost all
kinds of problem to solving.
- 8 -
Introducción
El presente trabajo de titulación toma como tema principal la robótica en el
ámbito educativo dentro de la Universidad Austral de Chile, en ésta se
encuentran dos tipos de robots, conocidos pero con potencialidades limitadas a
la hora de tomar un problema, la comunicación con otros dispositivos y también
la recepción de datos del medio se hace compleja dado que se tienen que utilizar
los sensores de su fabricante.
Es por esto que tomando la idea de crear un robot que rompa con estas
limitantes se diseñará un robot educacional capaz de tomar cada una de las
características que tengan éstos y agregándole un mayor numero de capacidades
tanto electrónicas, de comunicación con otros medios e informáticas, con la
ayuda de las tecnologías existentes actualmente en la Universidad se podrá
generar un robot que cumpla con estas expectativas, estableciendo así una
avance en la robótica Austral.
Tomando la tecnología PIC se podrá tener conversores análogos digitales que
permitirán tomar variables del medio y convertirlas en variables digitales que
pueden ser procesadas, además se podrá interactuar con el computador por
medio de puertos seriales, paralelos y USB, en los cuales se puede tomar
información para análisis inmediato entre otras características.
Con conocimientos en el microprocesador Rabbit se podrá enviar algún tipo de
información digital a cualquier lugar que deseemos gracias a su modulo WIFI,
además de poder controlar cualquier actuador electromecánico, como
- 9 -
servomotores o Relays, dándonos la capacidad de controlar un sistema a
distancia.
Con estas dos tecnologías unidas y funcionando cooperativamente se lograra
explotar todas las capacidades que con los robot existentes sería prácticamente
imposible.
- 10 -
Objetivo General
Desarrollar un sistema autónomo con fines educativos para la Universidad
Austral de Chile, implementando nuevas tecnologías Rabbit y PIC.
Objetivos Específicos
• Construir un robot autónomo programable.
• Desarrollar interfaz electrónica para el control del sistema autónomo.
• Desarrollar software para distintos problemas, en ámbito educacional.
• Utilizar diversos sensores para lograr experiencias didácticas.
• Utilizar elementos electromecánicos para la movilidad del Robot.
• Lograr la comunicación por medio de USB y WIFI con el PC.
• Expandir las capacidades de los robots existentes en la Universidad.
- 11 -
Metodología
La metodología del trabajo se realizará mediante primero la adquisición de
conocimientos previos de las materias necesarias para la comprensión de lo que
es un robot y como actúa la robótica en la educación y las características que
poseen hoy en día los robots utilizados en las salas de clases de la universidad.
Continuando con el diseño a partir de estas características e incorporando
mejoras y además de la incorporación de nuevas tecnologías como la del
microprocesador Rabbit y nuevos sensores como el acelerómetro, el diseño de
los elementos que contendrá y las características de los elementos que se
incluirán finalmente en la construcción final.
Para Luego continuar con el proceso de construcción del robot paso a paso,
esqueleto y medidas de elementos como el servomotor entre otros, el montaje
del circuito electrónico y el montaje final de cada uno de los elementos que
componen el Robot.
Además, presentar una serie de experiencias de cada uno de los elementos
programables, además de una experiencia final en la que interactúen ambas
tecnologías, donde se mostrarán las capacidades que tendrá finalmente este tipo
de Robot Educacional.
Para terminar desarrollando, en este trabajo, las conclusiones desprendidas del
informe en general, dejando algunas ideas que podrán darle continuidad a este
tipo de documento de fin de carrera.
- 12 -
Capitulo I. Planteamiento del Problema.
Para poder realizar el planteamiento del problema de forma cabal es necesario
antes estudiar y conocer conceptos que están relacionados directamente con él
en relación a este trabajo de titulación, tales como robótica, la robótica y la
educación y las diferentes herramientas para desarrollar un robot capaz de
ayudar en el aprendizaje de la robótica dentro de las aulas de la Universidad.
Para esto, a continuación se mostraran tales conceptos para comprender el
problema.
I.1. Robótica.
La robótica es la ciencia y la tecnología de los robots. Se ocupa del diseño,
manufactura y aplicaciones de los Robot. Es la encargada de combinar diversas
disciplinas como son: la mecánica, la electrónica, la informática, la inteligencia
artificial y la ingeniería de control. Otras áreas importantes en robótica son el
álgebra, los autómatas programables y las máquinas de estados.
El término robot se popularizó con el éxito de la obra RUR (Robots Universales
Rossum), escrita por Karel Capek en 1920. En la traducción al inglés de dicha
obra, la palabra checo robota, que significa trabajos forzados, fue traducida al
inglés como robot.
Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo
general un sistema electromecánico que, por su apariencia o sus movimientos,
- 13 -
ofrece la sensación de tener un propósito propio. El termino robot puede
referirse tanto a mecanismos físicos como a sistemas virtuales de software,
aunque suele aludirse a los segundos con el término de bots.
No existe un consenso sobre qué máquinas pueden ser consideradas robots,
pero sí existe un acuerdo general entre los expertos y el público, sobre los
robots que tienden a moverse, hacer funcionar un brazo mecánico, sentir y
manipular su entorno y mostrar un comportamiento inteligente, especialmente
si ése comportamiento imita al de los humanos o a otros animales.
Aunque las historias sobre ayudantes y acompañantes artificiales, así como los
intentos de crearlos, tienen una larga historia, las máquinas totalmente
autónomas aparecieron alrededor el siglo XX. El primer robot programable y
dirigido de forma digital, el Unimate, fue instalado en 1961 para levantar piezas
calientes de metal de una máquina de tinte y colocarlas.
Por lo general, las personas reaccionan de forma positiva ante los robots con los
que se encuentran. Las máquinas electrónicas programadas domésticas para la
limpieza y mantenimiento del hogar son cada vez más comunes en los hogares.
No obstante, existe una cierta ansiedad sobre el impacto económico de la
automatización y la amenaza del armamento robótico, una ansiedad que se ve
reflejada en el retrato a menudo perverso y malvado de robots presentes en
obras de la cultura popular. Comparados con sus colegas de ficción, los robots
reales siguen siendo limitados.
- 14 -
I.1.1. Clasificación de los Robot.
Existen dos clasificaciones más comunes que se le atribuyen a los robots dadas
sus capacidades o nivel de inteligencia, que van desde la primera generación
hasta la cuarta generación, también otro tipo de clasificación de estas máquinas
electromecánicas es según su apariencia y las características para lo que fueron
diseñados.
I.1.1.1. Según Capacidades.
Esta clasificación depende, a grandes rasgos del nivel de inteligencia que los
robot presentan, donde sus capacidades serán lo que se considerará como el
parámetro de cada categoría.
1ª Generación: en esta selección se encuentran los robots
Manipuladores, que son sistemas mecánicos multifuncionales con un
sencillo sistema de control, que puede ser manual, de secuencia fija o de
secuencia variable.
2ª Generación: aquí se encuentran los Robots de aprendizaje, estos
repiten una secuencia de movimientos que ha sido ejecutada
previamente por un operador humano. El método de hacerlo es a través
de un dispositivo mecánico, el operador realiza los movimientos
requeridos mientras el robot lo sigue y los memoriza.
- 15 -
3ª Generación: estos son Robots con control sensorizado, el controlador
es una computadora que ejecuta las órdenes de un programa y las envía
al manipulador para que realice los movimientos necesarios.
4ª Generación: aquí los robots son inteligentes, son similares a los
anteriores, pero tienen una característica agregada que es la lectura de
sensores que envían información a la computadora de control sobre el
estado del proceso, permitiendo una toma inteligente de decisiones y el
control del proceso en tiempo real.
I.1.1.2. Según su arquitectura.
La siguiente clasificación hace referencia más que todo a los dispositivos y
mecanismos que pueden agruparse bajo la denominación genérica del robot, son
muy diversos y es por tanto difícil establecer una clasificación coherente de los
mismos que resista un análisis crítico y riguroso, es entonces que se dividen
según sus características más visibles en base a su arquitectura.
Poliarticulados: En este grupo están los robot de muy diversa forma y
configuración cuya característica común es la de ser básicamente
sedentarios (aunque excepcionalmente pueden ser guiados para efectuar
desplazamientos limitados) y estar estructurados para mover sus
elementos terminales en un determinado espacio de trabajo según uno o
más sistemas de coordenadas y con un número limitado de grados de
libertad. En este grupo se encuentran los manipuladores, los Robots
industriales, los Robots cartesianos y se emplean cuando es preciso
- 16 -
abarcar una zona de trabajo relativamente amplia o alargada, actuar
sobre objetos con un plano de simetría vertical o reducir el espacio
ocupado en el suelo.
Móviles: Son Robots con grandes capacidad de desplazamiento, basados
en carros o plataformas y dotados de un sistema locomotor de tipo
rodante. Siguen su camino por telemando o guiándose por la información
recibida de su entorno a través de sus sensores. Estos Robots aseguran el
transporte de piezas de un punto a otro de una cadena de fabricación.
Guiados mediante pistas materializadas a través de la radiación
electromagnética de circuitos empotrados en el suelo, o a través de
bandas detectadas fotoeléctricamente, pueden incluso llegar a sortear
obstáculos y están dotados de un nivel relativamente elevado de
inteligencia.
Androides: Son Robots que intentan reproducir total o parcialmente la
forma y el comportamiento del ser humano. Actualmente los androides
son todavía dispositivos muy poco evolucionados y sin utilidad práctica, y
destinados, fundamentalmente, al estudio y experimentación. Uno de los
aspectos más complejos de estos, y sobre el que se centra la mayoría de
los trabajos, es el de la locomoción bípeda. En este caso, el principal
problema es controlar dinámica y coordinadamente en el tiempo real el
proceso y mantener simultáneamente el equilibrio del Robot.
Zoomórficos: Los Robots zoomórficos, que considerados en sentido no
restrictivo podrían incluir también a los androides, constituyen una clase
caracterizada principalmente por sus sistemas de locomoción que imitan
- 17 -
a los diversos seres vivos. A pesar de la disparidad morfológica de sus
posibles sistemas de locomoción es conveniente agrupar a los Robots
zoomórficos en dos categorías principales: caminadores y no
caminadores. El grupo de los Robot zoomórficos no caminadores está
muy poco evolucionado. Los experimentados efectuados en Japón
basados en segmentos cilíndricos biselados acoplados axialmente entre sí
y dotados de un movimiento relativo de rotación. Los Robot zoomórficos
caminadores son muy numeroso y están siendo experimentados en
diversos laboratorios con vistas al desarrollo posterior de verdaderos
vehículos terrenos, piloteados o autónomos, capaces de evolucionar en
superficies muy accidentadas. Las aplicaciones de estos Robot serán
interesantes en el campo de la exploración espacial y en el estudio de los
volcanes.
Híbridos: Estos Robot corresponden a aquellos de difícil clasificación cuya
estructura se sitúa en combinación con alguna de las anteriores ya
expuestas, bien sea por conjunción o por yuxtaposición. Por ejemplo, un
dispositivo segmentado articulado y con ruedas, es al mismo tiempo uno
de los atributos de los Robots móviles y de los Robots zoomórficos. De
igual forma pueden considerarse híbridos algunos Robots formados por la
yuxtaposición de un cuerpo formado por un carro móvil y de un brazo
semejante al de los Robots industriales. En parecida situación se
encuentran algunos Robots antropomorfos y que no pueden clasificarse
ni como móviles ni como androides, tal es el caso de los Robots
personales.
- 18 -
I.2. Robótica y Educación.
La Robótica en la Educación se plantea como un espacio de experimentación,
basado en aprendizaje activo y constructivista, en el que se propone un
problema y los estudiantes buscan maneras creativas y posibles para
solucionarlo. En la práctica, se utilizan kits para robótica o Robots Educativos;
estos últimos compuestos por fichas de Lego (aproximadamente 800), un ladrillo
programable (RCX), Robot educación RAMBAL y algunos sensores (tacto,
luminosidad, etc.). Los robots que se construyen con estos kits son resistentes y
no se requieren conocimientos de electrónica para hacerlos funcionar.
La introducción de la robótica en las clases de o en forma de Clubes de Robótica
busca facilitar, mediante experimentación, el aprendizaje de conceptos de
razonamiento mecánico (física aplicada) tales como: fuerza, torque, engranajes,
ventaja mecánica, centro de gravedad, trabajo, potencia, fricción (rozamiento),
relaciones, transmisión, velocidad, aceleración etc.
El papel del docente en la realización de las actividades de robótica es
fundamental por que estas debe cuestionar permanentemente a los estudiantes
con preguntas retadoras y pertinentes que los orienten y les permitan deducir
los conceptos que se desea que estos aprendan. Adicionalmente, mediante
actividades de programación de robots, se ofrece a los estudiantes la
oportunidad para desarrollar la creatividad, el pensamiento algorítmico y la
habilidad para solucionar problemas.
- 19 -
De esta forma, actualmente se encuentran dictando algunos ramos en la carrera
de Ingeniería Civil Informática, basados en la utilización de robot educacionales
de dos tipos, diferentes entre si, pero persiguiendo el mismo fin la enseñanza de
algún conocimiento en particular.
I.2.1. Robots en la Universidad.
En la actualidad se encuentran dos tipos de robots diferentes dentro de la
Universidad Austral de Chile que se utilizan para la enseñanza, estos son los
Rambal y los Lego Mindstorms, quienes con la guía del profesor a cargo de los
ramos, llevan a alumno a completar sus competencias para el entendimiento de
la robótica, donde la descripción de las características las señalo a continuación.
I.2.1.1. Rambal.
Estos robot educacionales son programables desde PC, es decir, ejecutan el
programa ingresado desde una computadora, pudiendo ser modificados
fácilmente, realizando cambios para así ir alcanzando las metas necesarias para
el fin que se desea, constan un una gama bastante amplia de sensores dedicados
a este tipo de robot, ultrasonido, infrarrojo, de presión, entre otros.
Donde su cerebro esta compuesto por una Microcontrolador PIC y su lenguaje de
programación es el BASIC STAMP, mediante el cual se le aplican distintos
códigos, para obtener el resultado que se desea finalmente, dentro de este tipo
de robots en la universidad se utiliza el diseño BOE – BOT, ver imagen 1.
- 20 -
Imagen 1. Robot BOE-BOT, Rambal.
El robot de la imagen 1:
Velocidad del Procesador: 20 mhz
Velocidad de Instrucciones realizadas: 4,000 inst/sec
Memoria de Programa: 2K Bytes
Puertos de Entrada / Salida de datos: 16
Alimentación: 5 to 12 Vdc
Comandos de programación: 36
Comunicación con PC: USB-Serial.
Este tipo de robot posee una área de trabajo libre compuesta por un pequeño
protoboard, para el montaje electrónico de sensores y componentes visuales
(LED, Display de segmentos, LCD), donde son conectados para aumentar el nivel
de la programación y el aprendizaje de algún problema en particular, posee
también dos Servomotores que unidos a las ruedas que le dan la capacidad de
movimiento al robot.
- 21 -
Unido todo esto al lenguaje de programación sencillo que consta solamente de
36 instrucciones para el control del robot y de los elementos que pueden ser
conectados a éste.
I.2.1.2. Lego Mindstorms.
En caso del robot educacional Lego se utiliza el modelo NXT, que tiene una
minicomputadora inserta en un bloque especializado, que mediante una serie de
sensores puede leer datos de su entorno, procesar información, impulsar
motores y controlar dispositivos de luz. Esta microcomputadora puede
programarse con un lenguaje muy sencillo de programación gráfica. El sistema
permite que los usuarios arrastren y suelten íconos que representan diversas
órdenes para el robot; estas son transmitidas por medio de una comunicación
inalámbrica y finalmente se producen los movimientos deseados.
Imagen 2. NXT Lego Mindstorms.
- 22 -
Las características del robot de la imagen 2 son las siguientes.
Microprocesador ARM7.
Memoria Flash de 256Kb.
Memoria RAM de 64Kb.
Puerto de entrada y salida posee 4.
Comunicación mediante el PC puede ser por Bluetooth o cable USB.
Este robot es sencillo de utilizar, dado que se encuentra bajo el desarrollo de
Lego, posee piezas para armar y formar diferentes formas que requieran o
donde se pueda llegar con la imaginación, dejando esto en forma abierta dada a
la gran cantidad de piezas con las que se encuentra. Posee sensores infrarrojos,
de sonido, luminosos y motores que permiten la interacción con el medio y el
movimiento del robot.
I.3. Descripción del Problema.
Como ya se vio anteriormente en la Universidad existen diferentes y muy
completos robots educacionales, Legos NXT ideados básicamente para comenzar
a conocer todas las potencialidades que podría suponer un robot, constan de
pocos puertos de entrada y salida de datos siendo difícil la conexión de un
Display de segmentos o quizás la utilización de varios sensores diferentes
interactuando para conocer el medio donde se encuentra el robot, además de no
- 23 -
poseer un área en donde innovar dado que todos los elementos de este ya
vienen prediseñados y para una utilidad en particular, sin considerar que su baja
capacidad de memoria para soportar un programa de mayor envergadura.
Los conocidos Rambal, que utilizan un leguaje muy aplicado en la área industrial
que es el Basic Stamp y una gran cantidad de sensores aplicados para estos
dispositivos, posee un área de trabajo demasiado pequeña donde se dificulta
colocar mas de dos o tres tipos de conexiones para sensores y componentes
activos limitando la capacidad del robot en nuevas experiencias, como también
la poca capacidad de memoria de este tipo de procesador.
Ambos poseen desventajas criticas como el elevado costo para adquirir uno de
estos dispositivos y su limitada gama de experiencias a realizar por los
estudiantes de esta rama de la ingeniería, dejando el deseo de poder realizar
muchas otras experiencias y soluciones a problemas industriales y por la falta de
potencialidad y de poco desempeño no podrían realizarse de forma integra y con
un buen cometido, con estos dispositivos solo se comienza a dar un paso en el
mundo de la robótica, pero este no es el final en la robótica educativa siempre se
tiende a ir mucho mas allá donde la limitante sólo sea la imaginación y la
creatividad de los participantes de este aprendizaje.
Con esto se puede establecer la necesidad de crear un nuevo robot educacional
que sea una mejora sustancial a todas estas dificultades que poseen estos dos
tipos de robot que actualmente se encuentran en las aulas de la Universidad.
- 24 -
Capitulo II. Diseño del Robot Educacional.
Para realizar el diseño de este nuevo robot educacional se tomará en cuenta el
robot BOE-BOT, de Rambal, como referencia para tener este punto de partida en
donde se expandirán sus limitantes y se mejorarán sus desventajas a la hora de
trabajar con este robot, teniendo en cuenta sus características técnicas y
también sus componentes adjuntos como son el área de trabajo, sus puertos de
entrada y salida de datos y su conexión con otros medios de interacción con otro
tipo de elemento electrónico como un PC, por medio de una comunicación
inalámbrica de gran potencialidad como lo es WIFI, estas serán entonces mis
características a grandes rasgos.
II.1. Características del diseño.
Se tomará como referencia el robot de Rambal con sus principales características
las cuales son:
Microcontrolador PIC de 16 E/S.
Velocidad del Microcontrolador de 20Mhz.
Memoria para Programación de 2kb.
Área de trabajo pequeña (Protoboard).
Movilidad gracias a sus Servomotores.
Programación por medio del PC.
Estas son entonces las principales características que se pueden desprender del
robot BOE-BOT, de las cuales algunas pueden mejorarse y otras tan solo se
- 25 -
mantendrán para establecer un correcto funcionamiento del robot final (Imagen
1).
Las mejoras que se harán al nuevo robot serán entonces referente a las
características del robot de Rambal, estas comprenderán en mejoras del
microcontrolador PIC, colocando uno de 16 bits, de la familia de los 18fxxxx, lo
cual aumentará tanto la capacidad de memoria para soportar el programa, como
también nos ampliará la cantidad de puertos disponibles tanto en número como
en utilidad de los diferentes pines, logrando tener 21 pines de entrada o salida
de datos, de estos, cinco pueden trabajar o no como conversores análogo digital,
que el en caso de Rambal no posee esta característica, la cual es fundamental
para lograr la interacción con otro tipo de sensores electrónicos, además de un
puerto serial dedicado y un puerto USB dedicado, donde este ultimo será
utilizado en una experiencia en este trabajo. Donde se mantendrá la arquitectura
del robot Rambal, es decir, será un robot móvil de 3 ruedas (dos controladas
bajo servomotores y una de apoyo), aumentando el área de trabajo por un
Protoboard de mayor tamaño para así tener mayor espacio de trabajo en la
conexión de elementos diferentes al microcontrolador PIC.
Utilizarán también un microprocesador Rabbit el cual podrá funcionar de forma
independiente con el microcontrolador PIC, de esta forma este tendrá la
posibilidad de trabajar solo con el microcontrolador PIC o solo con el
microprocesador Rabbit y también ambos a la vez haciendo uno de maestro y
otro de esclavo, siendo un conjunto de elementos que son comandos por el un
software de computación con comunicación WIFI, el que provee el
microprocesador Rabbit.
- 26 -
A modo de resumen, en este nuevo tipo de robot se tendrá dos diferentes tipos
de cerebros que funcionarán uno o ambos a la vez, teniendo en un solo
dispositivo, diferentes modos de programación y diferentes tipos de interacción
con el medio.
Pero antes de tener el diseño final se explicaran algunos conceptos que son
necesarios para llegar a un buen diseño de este tipo de dispositivo
electromecánico que se pretende realizar, conceptos como microcontrolador
PIC, microprocesador Rabbit con modulo WIFI , Servomotor y algunos sensores.
II.2. Microcontrolador PIC.
Los PIC son una familia de microcontroladores tipo RISC (del inglés Reduced
Instruction Set Computer, Computadora con conjunto de instrucciones reducidas.)
fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente
desarrollado por la división de microelectrónica de General Instrument.
Imagen 3. Microcontrolador PIC.
El nombre actual no es un acrónimo. En realidad, el nombre completo es
PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller
(controlador de interfaz periférico).
- 27 -
El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000.
Siendo en general una buena CPU, ésta tenía malas prestaciones de E/S, y el PIC
de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando
peso de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM
para realizar estas tareas; y aunque el término no se usaba por aquel entonces,
se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.
Imagen 4. Descripción de Pines del PIC.
Estos microcontroladores se encargan de obtener y procesar información desde
sus pines de entrada o salida dependiendo del tipo de aplicación en los que son
introducidos, hoy en día constan de innumerables familias, las que nacieron para
diferentes tipos de soluciones a problemas comunes de comunicación, de
obtención de datos y de distintos tipos de protocolos electrónicos, entre otras.
- 28 -
La arquitectura del PIC es sumamente simple. Esta caracterizada por las
siguientes prestaciones:
Área de código y de datos separadas (Arquitectura Harvard).
Un reducido número de instrucciones de largo fijo.
La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución
(4 ciclos de clock), con ciclos de único retraso en las bifurcaciones y
saltos.
Un solo acumulador (W), cuyo uso (como operador de origen) es implícito
(no está especificado en la instrucción).
Todas las posiciones de la RAM funcionan como registros de origen y/o
de destino de operaciones matemáticas y otras funciones.
Una pila de hardware para almacenar instrucciones de regreso de
funciones.
Una relativamente pequeña cantidad de espacio de datos direccionable
(típicamente, 256 bytes), extensible a través de manipulación de bancos
de memoria.
El espacio de datos está relacionado con el CPU, puertos, y los registros
de los periféricos.
El contador de programa esta también relacionado dentro del espacio de
datos, y es posible escribir en él (permitiendo saltos indirectos).
- 29 -
Imagen 5. Arquitectura Harvard.
A diferencian de la mayoría de otros CPU, no hay distinción entre los espacios de
memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y
esta es normalmente referida como "archivo de registros" o simplemente,
registros.
Para transferir el código de un ordenador al PIC normalmente se usa un
dispositivo llamado programador. La mayoría de PICs que Microchip distribuye
hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie
incorporada) o LVP (Low Voltage Programming, programación a bajo voltaje), lo
que permite programar el PIC directamente en el circuito destino. Para la ICSP se
usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como
el GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR para activar el modo
programación aplicando un voltaje de 13 voltios Existen muchos programadores
de PICs, desde los más simples que dejan al software los detalles de
comunicaciones, a los más complejos, que pueden verificar el dispositivo a
diversas tensiones de alimentación e implementan en hardware casi todas las
funcionalidades. Muchos de estos programadores complejos incluyen ellos
mismos PICs pre programados como interfaz para enviar las órdenes al PIC que
- 30 -
se desea programar. Uno de los programadores más simples es el TE20, que
utiliza la línea TX del puerto RS232 como alimentación y las líneas DTR y CTS para
mandar o recibir datos cuando el microcontrolador está en modo programación.
El software de programación puede ser el ICprog, muy común entre la gente que
utiliza este tipo de microcontroladores. Entornos de programación basados en
intérpretes BASIC ponen al alcance de cualquiera proyectos que parecieran ser
ambiciosos. Lo mejor es que el código final es traducido directamente a .HEX,
con lo que disponemos fácilmente de programas bastante rápidos, al nivel de
máquina, contrario a lo que los detractores de BASIC afirman.
Los PIC actuales vienen con una amplia gama de mejoras hardware
incorporados:
Núcleos de CPU de 8/16 bits con Arquitectura Harvard modificada
Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes
Puertos de E/S (típicamente 0 a 5,5V)
Temporizadores de 8/16 bits
Tecnología Nanowatt para modos de control de energía
Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART
Conversores analógico/digital de 8-10-12 bits
Comparadores de tensión
Módulos de captura y comparación PWM
Controladores LCD
Periférico MSSP para comunicaciones I²C, SPI, y I²S
Memoria EEPROM interna con duración de hasta un millón de ciclos de
lectura/escritura
Periféricos de control de motores
- 31 -
Soporte de interfaz USB
Soporte de controlador Ethernet
Soporte de controlador CAN
Soporte de controlador LIN
Soporte de controlador Irda
Donde para el desarrollo de proyecto final se utilizara un microcontrolador PIC
de la familia 18fxxxx, la cual presenta la siguiente tabla de características.
Imagen 6. tabla de características de la familia de PIC 18f.
De la que se puede desprender el PIC 18F2550 por las siguientes características,
memoria flash de 32Kb, 24 pines de entrada y salida de datos, puerto serial
dedicado y puerto USB para conexión con el PC. El cual es elegido para el
desarrollo de la aplicación de este trabajo final.
Es importante hacer notar que estos microcontroladores PIC, necesitan de un
código de funcionamiento o instrucciones lógicas referidas a un programa de
funcionamiento, esta programación se realiza con el set de instrucciones que
trae el PIC, dependiendo de su familia en el caso del microcontrolador elegido
este puede ser programado bajo su lenguaje madre ASSEMBLER, el cual es el
principal lenguaje de programación de estos microcontroladores, pero hoy en
- 32 -
día se encuentran librerías y programas que nos permiten tomar otros lenguajes
de programación adaptando finalmente una conversión desde el leguaje escrito
hacia ASSEMBLER y luego hacia el código HEX que finalmente será cargado al PIC,
los lenguajes mas utilizados para programar el microcontrolador son el PIC C, PIC
BASIC y el ASSEMBLER, donde los dos primeros utilizan librerías para traducir el
código en ASSEMBLER y poder realizar la conversión al HEX. Tanto el PIC C,
como el PIC BASIC, toman sus raíces de sus respectivos códigos lo que seria
entonces el C y Basic, respectivamente, manteniendo las estructuras básicas de
sus lenguajes.
II.3. Microprocesador Rabbit.
El Microprocesador RABBIT es un sistema Embebido o Empotrado, esto es una
pequeña placa (PCB) donde está montado principalmente un microprocesador
(Rabbit 2000, 3000, etc.) las memorias (RAM, FLASH, …) y todos aquellos
componentes necesarios para poder trabajar con el microcontrolador (como los
relojes, y otra serie de componentes externos). Estas pequeñas placas cuentan
con conectores (en Rabbit tienen 1 ó 2 conectores de inserción) para poder
incorporarlos en los diseños. Donde sus características mas relevantes son
código más eficaz y rápido, funcionales y flexibles en cuanto a pines de entrada y
salida hasta la fecha. Los módulos Rabbit son soluciones de control y
conectividad sencillas de utilizar que facilitan el desarrollo de dispositivos de
forma rápida y económica.
- 33 -
Imagen 7. Microprocesador Rabbit.
Actualmente en el mercado, Rabbit posee una serie de módulos con distintas
funcionalidades en donde se presentan dependiendo del tipo de
microprocesador estos son.
Rabbit 2000
Este es el microprocesador de Rabbit de menores prestaciones. Es un
microprocesador de 8 bits pero que supera en cuanto a prestaciones a muchos
microprocesadores de 16bits. Trabaja a 5V a una velocidad máxima de reloj de
30Mhz. Dispone de 4 puertos serie de alta velocidad (hasta un máximo de la
velocidad de 460800 bps) y un bus de direccionamiento de 20bits. Dispone de 40
pines I/O de propósito general, RTC, Watchdog y permite trabajar en bajo
consumo (32KHz).
Rabbit 3000
Evolución de la familia Rabbit 2000. Es también un micro de 8bits de altísimas
prestaciones. La tensión de trabajo es de 1.8-3.6V, pero es también tolerante a
5V (muy útil cuando trabajamos con otros componentes que operan a este
voltaje). La frecuencia máxima de reloj es de 55Mhz. Cuenta con 6 puertos serie
de ata velocidad (hasta un máximo de 460800bps), un bus de direccionamiento
- 34 -
de 20 bits (lo que le permite direccionar hasta 1MB), 10 timers de 8 bits y 1 timer
de 10bits, RTC y 56 pines de I/O de propósito general. También es posible
trabajar en modo bajo consumo (32Khz) y ultrabajo consumo (16,8,2 KHz).
Rabbit 4000
El último diseño de Rabbit, evolución del Rabbit 3000. Como características
principales es que sigue siendo un micro de 8 bits (pero de altísimas
prestaciones). La tensión de trabajo es 1.8 voltios, aunque las I/O también
pueden trabajar a 3.3 voltios (en este caso ya no es tolerante a 5v). La frecuencia
de trabajo es de hasta 60Mhz y ya viene integrado con un controlador Ethernet
(cosa que para los anteriores modelos es necesario utilizar un chip externo de
Realtech). En este caso el bus de direcciones es de 24 bits (frente a los 20 de la
serie 3000). También dispone de 12 timers (diez de 8 bits, uno de 10 bits y otro
de 16bits), 8 canales DMA, 40GPIOs de propósito general y permite trabajar
también en modo bajo consumo (32Khz) y ultrabajo consumo (16,8,2 KHz).
Además de estas características que son propiamente del microcontrolador, es
necesario destacar que es un sistema que se encuentra dentro de un dispositivo
que pose características agregadas dependiendo del modulo y su diseño se
encuentran módulos Rabbit con conexión a red con protocolo TPC/IP, con
comunicación inalámbrica ZIGBEE y también con comunicación a red inalámbrica
WI-FI, este ultimo es el que utilizaré en el trabajo final, dada la característica de
ser inalámbrico le da la posibilidad al robot educacional de estar comunicado en
cualquier superficie sin necesidad se estar conectado a la red por medio de algún
componente físico que lo limite, este modulo Rabbit será entonces el RW
4400W, que veremos mas detalladamente a continuación.
- 35 -
Imagen 8. Rabbit 4400W.
El módulo Rabbit que se utilizará será el RCM 4400W, el cual consta de las
siguientes características:
Pequeño tamaño: 47mm de ancho, 72 mm de largo y 13mm de grosor.
Microprocesador Rabbit 4000 a una velocidad de 58.98Mhz.
35 pines de entrada y salida de propósito general.
Voltaje de líneas de entrada y salida de 3.3v.
6 puertos seriales CMOS, 4 de puertos configurables con Clock (SPI) y 2
puertos configurables como SDLC/HDLC.
512Kb memoria Flash, 512Kb memoria SRAM y 512Kb para la ejecución
del programa.
Transmisor del protocolo inalámbrico 802.11b, WIFI.
- 36 -
Estas son las características principales del módulo Rabbit elegido, es importante
hacer notar que para que este dispositivo pueda funcionar correctamente en el
robot, se utilizará una placa de ensayo que viene con el módulo de aprendizaje,
de este dispositivo el cual trae inserto una fuente de poder diseñada para las
altas exigencias de corriente que presenta al estar funcionando con WIFI, que es
sobre los 400mA. Estable.
Imagen 9. Kit de desarrollo del modulo Rabbit.
La programación para este tipo de módulo como para los módulos anteriores de
RABBIT es a través de su lenguaje propio llamado Dynamic C, este lenguaje
posee un entorno de programación que integra las siguientes operaciones de
desarrollo, Edición, Compilación, _ Linkeado, Cargado en el controlador y
Depuración.
- 37 -
II.4. Servomotores.
Es un dispositivo actuador que tiene la capacidad de ubicarse en cualquier
posición dentro de su rango de operación, y de mantenerse estable en dicha
posición. Está formado por un motor de corriente continua, una caja reductora y
un circuito de control, y su margen de funcionamiento generalmente es de
menos de una vuelta completa.
Imagen 10. Servomotor.
El componente principal de un servo es un motor de corriente continua, que
realiza la función de actuador en el dispositivo: al aplicarse un voltaje entre sus
dos terminales, el motor gira en un sentido a alta velocidad, pero produciendo
un bajo par. Para aumentar el par del dispositivo, se utiliza una caja reductora,
que transforma gran parte de la velocidad de giro en torsión.
Dependiendo del modelo del servo, la tensión de alimentación puede estar
comprendida entre los 4 y 8 voltios. El control de un servo se reduce a indicar su
posición mediante una señal cuadrada de voltaje: el ángulo de ubicación del
motor depende de la duración del nivel alto de la señal.
- 38 -
Cada servo, dependiendo de la marca y modelo utilizado, tiene sus propios
márgenes de operación. Por ejemplo, para algunos servos los valores de tiempo
de la señal en alto están entre 1 y 2 ms, que posicionan al motor en ambos
extremos de giro (0° y 180°, respectivamente). Los valores de tiempo de alto
para ubicar el motor en otras posiciones se halla mediante una relación
completamente lineal: el valor 1,5 ms indica la posición central, y otros valores
de duración del pulso dejarían al motor en la posición proporcional a dicha
duración.
Para bloquear el servo en una posición, es necesario enviarle continuamente la
señal con la posición deseada. De esta forma, el sistema de control seguirá
operando, y el servo conservará su posición y se resistirá a fuerzas externas que
intenten cambiarlo de posición. Si los pulsos no se envían, el servo quedará
liberado, y cualquier fuerza externa puede cambiarlo de posición fácilmente
Imagen 11. Movimiento Servomotor no modificado.
- 39 -
El potenciómetro del sistema de control del servo es un potenciómetro de
menos de una vuelta, de modo que no puede dar giros completos en un mismo
sentido. Para evitar que el motor pudiera dañar el potenciómetro, el fabricante
del servo añade una pequeña pestaña en la caja reductora del motor, que impide
que éste gire más de lo debido. Es por ello que los servos tienen una cantidad
limitada de giro, y no pueden girar continuamente en un mismo sentido. Es
posible, sin embargo, realizar modificaciones al servo de modo que esta
limitación se elimine, a costa de perder el control de posición.
Hay dos tipos de modificación realizables. El primero es la completa eliminación
del sistema de control del circuito, para conservar únicamente el motor de
corriente continua y el sistema de engranajes reductores. Con esto se obtiene
simplemente un motor de corriente continua con caja reductora en un mismo
empaquetado, útil para aplicaciones donde no se necesite del control de
posición incorporado del servo. La segunda modificación realizable consiste en
un cambio en el sistema de control, de modo que se obtenga un sistema de
control de velocidad. Para ello, se desacopla el potenciómetro de realimentación
del eje del motor, y se hace que permanezca estático en una misma posición. Así,
la señal de error del sistema de control dependerá directamente del valor
deseado que se ajuste (que seguirá indicándose mediante pulsos de duración
variable). Ambos tipos de modificación requieren que se elimine físicamente la
pestaña limitadora de la caja reductora.
Esta modificación puede ser realizada de forma casera o bien la adquisición de
servomotor ya modificado de vuelta completa (360 grados de libertad), los
cuales son necesarios para tener el movimiento del robot que se necesita para
- 40 -
darle autonomía y pueda avanzar hacia algún lugar y poder ubicarse. En donde la
siguiente imagen muestra como se hace el control de los giros del servo.
Imagen 12. Movimiento servomotor modificado para vuelta completa.
De esta forma al aplicarle un ancho de pulso de 1ms al servomotor se moverá
hacia la izquierda o en contra del sentido horario y de forma opuesta aplicando
un ancho de pulso de 2ms y para detenerlo sin dejar que el exterior pueda
moverlo de posición es necesario aplicar a su pin de control un ancho de pulso
de 1.5ms.
II.5. Sensores.
Un sensor es un aparato capaz de transformar magnitudes físicas o químicas,
llamadas variables de instrumentación, en magnitudes eléctricas. Las variables
de instrumentación dependen del tipo de sensor y pueden ser por ejemplo:
- 41 -
temperatura, intensidad lumínica, distancia, aceleración, inclinación,
desplazamiento, presión, fuerza, torsión, humedad, pH, etc. Una magnitud
eléctrica obtenida puede ser una resistencia eléctrica (como en una RTD), una
capacidad eléctrica (como en un sensor de humedad), una tensión eléctrica
(como en un termopar), una corriente eléctrica (como un fototransistor), etc.
Un sensor se diferencia de un transductor en que el sensor está siempre en
contacto con la variable a medir o a controlar. Hay sensores que no solo sirven
para medir la variable, sino también para convertirla mediante circuitos
electrónicos en una señal estándar (4 a 20 mA, o 1 a 5VDC) para tener una
relación lineal con los cambios de la variable censada dentro de un rango, para
fines de control de dicha variable en un proceso.
Entre las características técnicas de un sensor destacan las siguientes:
Rango de medida: dominio en la magnitud medida en el que puede
aplicarse el sensor.
Precisión: es el error de medida máximo esperado.
Offset o desviación de cero: valor de la variable de salida cuando la
variable de entrada es nula. Si el rango de medida no llega a valores nulos
de la variable de entrada, habitualmente se establece otro punto de
referencia para definir el offset.
Linealidad o correlación lineal.
Sensibilidad de un sensor: relación entre la variación de la magnitud de
salida y la variación de la magnitud de entrada.
Resolución: mínima variación de la magnitud de entrada que puede
apreciarse a la salida.
- 42 -
Rapidez de respuesta: puede ser un tiempo fijo o depender de cuánto
varíe la magnitud a medir. Depende de la capacidad del sistema para
seguir las variaciones de la magnitud de entrada.
Derivas: son otras magnitudes, aparte de la medida como magnitud de
entrada, que influyen en la variable de salida. Por ejemplo, pueden ser
condiciones ambientales, como la humedad, la temperatura u otras como
el envejecimiento (oxidación, desgaste, etc.) del sensor.
Repetitividad: error esperado al repetir varias veces la misma medida.
Por lo general, la señal de salida de estos sensores no es apta para su lectura
directa y a veces tampoco para su procesado, por lo que se usa un circuito de
acondicionamiento, como por ejemplo un puente de Wheatstone,
amplificadores y filtros electrónicos que adaptan la señal a los niveles apropiados
para el resto de la circuitería.
Existen una serie de sensores que se encuentran disponibles hoy en día para
distintas magnitudes y puede apreciarse en la siguiente tabla.
Magnitud Transductor Características
Posición Lineal o Angular Potenciómetro Analógica
Encoder Digital
Velocidad lineal y angular Dinamo tacométrica Analógica
Encoder Digital
Detector inductivo Digital
Servo-inclinómetros A/D
RVDT Analógica
Giróscopo
- 43 -
Temperatura Termopar Analógica
RTD Analógica
Termistor
NTC Analógica
PTC Analógica
Bimetal I/0
Proximidad Sensor final de carrera
Sensor capacitivo
Ultrasonido I/O
Tabla 1. Sensores y sus características.
En la tabla solo se muestran algunos de los sensores con sus respectivas
características de salida de la información obtenida de la medición, para lo cual
en el robot educacional se pueden utilizar toda la gama de sensores existentes,
pero para el trabajo final solo utilizare dos de ellos que darán a conocer a
continuación.
II.5.1. Ultrasonido.
Los ultrasonidos son antes que todo sonido, exactamente igual que los que
oímos normalmente, salvo que tienen una frecuencia mayor que la máxima
audible por el oído humano. Ésta comienza desde unos 16 Hz y tiene un límite
superior de aproximadamente 20 KHz, mientras que nosotros vamos a utilizar
sonido con una frecuencia de 40 KHz. A este tipo de sonidos es a lo que
llamamos Ultrasonidos.
- 44 -
El funcionamiento básico de los ultrasonidos como medidores de distancia se
muestra de una manera muy clara en el siguiente esquema, donde se tiene un
receptor que emite un pulso de ultrasonido que rebota sobre un determinado
objeto y la reflexión de ese pulso es detectada por un receptor de ultrasonidos:
Imagen 13. Principio de funcionamiento del Sensor de Proximidad.
La mayoría de los sensores de ultrasonido de bajo coste se basan en la emisión
de un pulso de ultrasonido cuyo lóbulo, o campo de acción, es de forma cónica.
Midiendo el tiempo que transcurre entre la emisión del sonido y la percepción
del eco se puede establecer la distancia a la que se encuentra el obstáculo que
ha producido la reflexión de la onda sonora, mediante la fórmula:
Donde V es la velocidad del sonido en el aire y t es el tiempo transcurrido entre
la emisión y recepción del pulso.
- 45 -
A pesar de que su funcionamiento parece muy sencillo, existen factores
inherentes tanto a los ultrasonidos como al mundo real, que influyen de una
forma determinante en las medidas realizadas. Por tanto, es necesario un
conocimiento de las diversas fuentes de incertidumbre que afectan a las medidas
para poder tratarlas de forma adecuada, minimizando su efecto en el
conocimiento del entorno que se desea adquirir. Entre los diversos factores que
alteran las lecturas que se realizan con los sensores de ultrasonido cabe
destacar:
El campo de actuación del pulso que se emite desde un transductor de
ultrasonido tiene forma cónica. El eco que se recibe como respuesta a la
reflexión del sonido indica la presencia del objeto más cercano que se
encuentra dentro del cono acústico y no especifica en ningún momento
la localización angular del mismo. Aunque la máxima probabilidad es que
el objeto detectado esté sobre el eje central del cono acústico, la
probabilidad de que el eco se haya producido por un objeto presente en
la periferia del eje central no es en absoluto despreciable y ha de ser
tenida en cuenta y tratada convenientemente.
- 46 -
Imagen 14. Incertidumbre angular en la medida de un ultrasonido
Un factor de error muy común es el conocido como falsos ecos. Estos
falsos ecos se pueden producir por razones diferentes: Puede darse el
caso en que la onda emitida por el transductor se refleje varias veces en
diversas superficies antes de que vuelva a incidir en el transductor (si es
que incide). Este fenómeno, conocido como reflexiones múltiples, implica
que la lectura del sensor evidencia la presencia de un obstáculo a una
distancia proporcional al tiempo transcurrido en el viaje de la onda; es
decir, una distancia mucho mayor que a la que está en realidad el
obstáculo más cercano, que pudo producir la primera reflexión de la
onda.
Otra fuente más común de falsos ecos, conocida como crosstalk, se
produce cuando se emplea un cinturón de ultrasonidos donde una serie
de sensores están trabajando al mismo tiempo. En este caso puede
ocurrir (y ocurre con una frecuencia relativamente alta) que un sensor
- 47 -
emita un pulso y sea recibido por otro sensor que estuviese esperando el
eco del pulso que él había enviado con anterioridad (o viceversa).
Imagen 15. Ecos falsos
Las ondas de ultrasonido obedecen a las leyes de reflexión de las ondas,
por lo que una onda de ultrasonido tiene el mismo ángulo de incidencia y
reflexión respecto a la normal a la superficie. Esto implica que si la
orientación relativa de la superficie reflectora con respecto al eje del
sensor de ultrasonido es mayor que un cierto umbral, el sensor nunca
reciba el pulso de sonido que emitió.
Imagen 16. Reflexión de las Ondas.
- 48 -
El sensor de ultrasonido que se ocupara para el trabajo final será el sensor de
Parallax PING))), el cual se representa en la siguiente imagen.
Imagen 17. Sensor Ultrasonido de Parallax.com.
Este sensor como se aprecia en la imagen anterior consta de tres pines de
conexión los cuales son Tierra (GND), Alimentación (5V) y la señal de entrada y
salida (SIG), como se puede intuir mediante la imagen este tipo de sensor se
alimenta con 5V y el pin de entrada es el mismo pin de salida de datos.
II.5.2. Acelerómetro.
Un acelerómetro es un dispositivo que permite medir el movimiento y las
vibraciones a las que está sometido un dispositivo (o una parte de él), en su
modo de medición dinámico y la inclinación (con respecto a la gravedad), en su
modo estático.
- 49 -
El acelerómetro es uno de los transductores más versátiles, siendo el más común
el piezoeléctrico por compresión. Este se basa en que, cuando se comprime un
retículo cristalino piezoeléctrico, se produce una carga eléctrica proporcional a la
fuerza aplicada.
Los elementos piezoeléctricos están hechos normalmente de circonato de
plomo. Los elementos piezoeléctricos se encuentran comprimidos por una masa,
sujeta al otro lado por un muelle y todo el conjunto dentro de una caja metálica.
Cuando el conjunto es sometido a vibración, el disco piezoeléctrico se ve
sometido a una fuerza variable, proporcional a la aceleración de la masa. Debido
al efecto piezoeléctrico se desarrolla un potencial variable que será proporcional
a la aceleración. Dicho potencial variable se puede registrar sobre un
osciloscopio o voltímetro.
Este dispositivo junto con los circuitos eléctricos asociados se puede usar para la
medida de velocidad y desplazamiento además de la determinación de formas
de onda y frecuencia. Una de las ventajas principales de este tipo de transductor
es que se puede hacer tan pequeño que su influencia sea despreciable sobre el
dispositivo vibrador. El intervalo de frecuencia típica es de 2 Hz a 10 KHz.
- 50 -
Imagen 18. Acelerómetro piezoeléctrico de cuarzo
Los acelerómetros electrónicos permiten medir la aceleración en una, dos o tres
dimensiones, esto es, en tres direcciones del espacio ortonormales. Esta
característica permite medir la inclinación de un cuerpo, puesto que es posible
determinar con el acelerómetro la componente de la aceleración provocada por
la gravedad que actúa sobre el cuerpo.
Un acelerómetro también es usado para determinar la posición de un cuerpo,
pues al conocerse su aceleración en todo momento, es posible calcular los
desplazamientos que tuvo. Considerando que se conocen la posición y velocidad
original del cuerpo bajo análisis, y sumando los desplazamientos medidos se
determina la posición.
Actualmente es posible construir acelerómetros de tres ejes (X,Y,Z) en un sólo
chip de silicio, incluyendo en el mismo la parte electrónica que se encarga de
procesar las señales.
- 51 -
El principio de operación de los dispositivos, acelerómetros e inclinometros de
tecnología de sistemas micro electromecánicos, están basados en el traspaso
térmico, por convección natural.
Estos dispositivos miden cambios internos, de la transferencia de calor causada
por la aceleración, ofreciendo ventajas significativas, sobre el empleo de una
estructura tradicional sólida de masas de prueba.
Ya que la masa de prueba en el diseño de estos sensores, son moléculas de gas,
las estructuras móviles mecánicas, son eliminadas dentro del acelerómetro
Imagen 19. Acelerómetro ADXL3XXX, de 3 ejes.
En la imagen anterior se muestra un acelerómetro de tres ejes en donde sus
salidas, marcadas como X , Y y Z, son valores variables de voltaje de
alimentación, estos valores son señales analógicas las cuales deben ser tratadas
por un conversor análogo digital, para su correcto procesamiento, este tipo de
sensor es alimentado con 3.3v. en donde sus señales análogas vendrán dadas
desde 0 a 3.3v. Marcando el mínimo y el máximo valor de inclinación y un
termino medio de voltaje como su estado neutral o sin inclinación.
- 52 -
Este tipo de sensor se utilizará en el robot educacional para medir la inclinación
como el movimiento del robot en el área de trabajo donde este operando,
entregando información analógica que será convertida a digital y enviada a su
procesamiento final.
- 53 -
Capitulo III. Construcción del Robot Educacional.
La parte física de un robot es conocida como el hardware, que lo componen
mecánica y electrónica, el dónde y cómo hacer que todos los elementos
electrónicos y electromecánicos tengan un lugar a base de una estructura que le
permita ser intuitiva para el usuario final.
De esta forma se tomará como referencia la estructura del robot Rambal BOE-
BOT, un trípode de ruedas con dos motores principales, un esqueleto que
mantenga estos dos motores y una tercera rueda de apoyo libre además de
soportar las placas electrónicas, en el tope superior el área de trabajo final,
correspondiente al Protoboard, interruptor de encendido y bornes de puertos.
III. 1. Estructura del Robot educacional.
El diseño se basa en una estructura capaz de sostener los elementos necesarios
para que el robot educacional sea autónomo, sin depender de cables de
alimentación externa o algún sistema de conexión a la computadora para
obtención de datos, es decir, este diseño debe ser suficiente para soportar tanto
la placa electrónica como también el área de trabajo electrónico además de la
batería de alimentación.
Donde el diseño esquemático se realizó en el programa AUTOCAD 2007, para
obtener un correcto control en las piezas que componen el chasis del robot final,
que es la que muestra a continuación.
- 54 -
Imagen 20. Plano Realizado en AutoCad 2007.
En estos planos mostrados en la imagen 20. son el diseño sin las cotas de
medidas que se mostrarán mas detalladas en el anexo correspondiente a los
planos del chasis del Robot Educacional. Esta muestra básicamente un
rectángulo de 22 centímetros de largo y 13 centímetros de ancho, cortados de
forma que exista mayor área de contacto entre superficies para realizar el
pegado de estas, de modo de, obtener mayor firmeza de la estructura.
- 55 -
Donde a continuación en la imagen 21. se presenta el diagrama isométrico del
diseño de este chasis para comprender de mejor forma su correspondiente
estructura.
Imagen 21. Vista isométrica del diseño del Robot Educacional.
Para la construcción se utilizó acrílico de 4 milímetros de grosor, la razón por la
que se eligió este tipo de material es por el fácil corte de las piezas con una
herramienta Dremel. De esta forma queda el diseño del chasis final que se
muestra en un siguiente apartado.
- 56 -
III.2. Placa Electrónica para montaje del PIC.
La placa electrónica del PIC se diseño en un software llamado EAGLE, el cual
permite establecer el circuito electrónico esquemático para poder diseñar el
circuito final al cual se aplicará una técnica de serigrafía para obtener la placa
final de las pistas y puntos de unión, entre elementos electrónicos, y así crear la
placa electrónica de control para el Robot Educacional.
Imagen 22. Esquemático del circuito electrónico en EAGLE.
En la Imagen 22. Se muestra el esquema de forma que la base de este es el
microcontrolador PIC 18F2550, el que necesita para su correcto funcionamiento,
un cristal de cuarzo que le dará la velocidad de procesamiento y una pequeña
fuente de control de voltaje para la alimentación del circuito, además de la
conexión de sus pines disponibles para la programación de forma ordenada.
- 57 -
Imagen. 23. Diseño placa final en Eagle.
De esta forma se tomó una impresión en blanco y negro donde se aprecien nada
mas que las pistas y conexiones, se aplicará una técnica de serigrafía para
imprimir estas líneas de circuito en una placa de cobre y así tener el circuito final
el cual consta de lo necesario, que anteriormente se propuso en el diseño del
robot, donde una vez soldado los elementos electrónicos a la placa la electrónica
final queda completa.
- 58 -
Imagen. 24. Esquema de placa final con elementos soldados.
Los elementos que se aprecian en la imagen 24. son los diseñados en la parte
esquemática (vista superior) y los propuestos en el diseño del circuito
electrónico para el robot, cabe destacar la utilización de un condensador en un
pin del puerto C, este se encarga de mantener un voltaje necesario para
cualquier tipo de conexión al puerto USB, consta de los tres puertos de conexión
del PIC, cumpliendo así con los márgenes del diseño anteriormente comentado.
- 59 -
III.3. Montaje Final del Robot educacional.
En el montaje final se consideran todas las partes y piezas que comprenden el
Robot educacional en si, esto corresponde tanto a elementos del área de trabajo
como a unidades más pequeñas de montaje como pernos y tuercas que
dependerán la estructura para mantener su firmeza.
Así es como se comienza el montaje, primero el chasis con los elementos
actuadores, los servomotores, los cuales se figan en el lugar destinado
previamente en el diseño de la estructura de acrílico, junto a esto se colocan las
ruedas, además de la rueda de soporte que es de libre movimiento, fijada en la
parte trasera del chasis, luego se coloca el circuito electrónico del
microcontrolador con sus respectivas conexiones y finalmente el área de trabajo,
que esta compuesta por dos protoboard de ensamble que nos permite
maximizar el área de conexiones electrónicas y el conector de pines de la placa
electrónica del PIC, esto fijado correctamente con pernos y tuercas de manera
que impidan el desplazamiento vertical.
Luego de esto se colocó la batería, la que se encuentra en la parte inferior del
robot, que se fija en una base, que ayuda al correcto soporte de esta, luego de
esto, se realiza el montaje del sensor ultrasonido en la parte frontal del acrílico,
para finalmente montar el microprocesador Rabbit en el chasis, esto es a
grandes rasgos el montaje final del robot, tomando cada una de las partes que lo
comprenden.
- 60 -
Imagen 25. Vista lateral del Robot Educacional.
- 61 -
Imagen 26. Vista Frontal del Robot Educacional.
Imagen 27. Vista superior del Robot Educacional.
En la última imagen se puede apreciar el área de trabajo electrónico
comprendido de dos Protoboard de montaje pequeño con esto se máxima el
área de trabajo, lo cual nos da la posibilidad de conexión de dos líneas para
Circuitos Integrados que son ampliamente utilizados para comunicaciones, otros
tipos de sensores y también controladores de motores de corriente continua.
- 62 -
Capitulo IV. Programación del Robot Educacional.
Luego de haber realizado el montaje completo del Robot, es necesario destacar
que este tipo de robot presenta dos cerebros en blanco que pueden funcionar de
forma conjunta o sin tener que interactuar entre ellos, de esta manera se puede
utilizar uno de ellos para realizar alguna experiencia o ambos para realizar alguna
tarea de mayor envergadura.
Como se tendrá a disposición dos motores de procesamiento de datos también
se tendrá dos tipos de programación a la cual se debe atender para llegar a
solucionar algún problema o realizar una experiencia educativa en las aulas de la
Universidad.
Se cuenta primero con el microcontrolador PIC 18F2550 con todos los
elementos electrónicos necesarios para su correcto funcionamiento y con su
puerto de programación que unido a un circuito electrónico se puede conectar al
computador para realizar la carga del programa que contiene las instrucciones a
ejecutar por el PIC.
Del mismo modo el microprocesador Rabbit, posee dentro de su configuración
electrónica su circuito de carga de su programa por lo que es necesario
únicamente disponer de un conversor de USB a serial para ser conectado con el
computado, permitiendo realizar la caga de las instrucciones para este tipo de
elemento programable. De esto es lo que se refiere este capítulo que se
detallará a continuación.
- 63 -
IV. 1. Programación PIC.
La programación de un microcontrolador PIC puede realizarse en su lenguaje
nativo, ASSEMBLER, este se entrega por parte del fabricante y que se estipula
también en sus hojas de datos de cada uno de los microcontroladores PIC en el
mercado, esto con el paso del tiempo y dada la complejidad del código a grandes
programas, se ha adaptado a diferentes tipos de lenguajes que son ampliamente
conocidos en el mundo, como lo son el BASIC y C que son entendidos tanto por
ingenieros electrónicos como informáticos. Es importante dar a conocer que
estos entre si tienen sus ventajas y desventajas, comparándolo con el lenguaje
nativo también pierden un poco de potencialidad, donde la mayor desventaja
con el lenguaje nativo es la velocidad a la cual realizan la lectura del siguiente
comando en procesar.
La forma en que funcionan estos códigos, BASIC y C, es a base de librerías que
cada uno de estos poseen. Los comandos útiles de cada uno de estos lenguajes
tanto en C como en BASIC son estructuras de ASSEMBLER las cuales son las
necesarias para el microcontrolador, es decir, que al tener un programa hecho
en BASIC para PIC es necesario transformarlo a lenguaje Assembler y luego este
compilarlo a el código hexadecimal, que es finalmente el lenguaje que se
introduce dentro del PIC, conteniendo las instrucciones que finalmente realizará
el microcontrolador, esto se detalla de forma grafica en la imagen 28 que se
muestra a continuación.
- 64 -
Imagen 28. Diagrama de bloques de transformación de código para PIC.
IV. 1. 1. PIC BASIC PRO.
El lenguaje que se escogerá para este trabajo de titulación es el BASIC y el
nombre que tiene el conjunto de librerías es PIC BASIC PRO, este lenguaje nos
permite crear el código de las instrucciones que se le darán al microcontrolador
que luego serán compiladas para obtener el programa necesario para el PIC; este
programa no es mas que una serie de librerías Assembler para cada código o
comando de este, es similar al “BASIC STAMP II” y tiene muchas de las librerías y
funciones de BASIC STAMP I y II las que se utilizan para programas en PIC.
Lo importante es la estructura del lenguaje que tiene la raíz en el código BASIC,
donde unidos a instrucciones como HIGH y LOW se pueden generar programas
básicos para la enseñanza de la programación, un ejemplo de código se muestra
a continuación en la imagen 29.
- 65 -
Imagen 29. Estructura BASIC del programa PIC BASIC PRO.
IV. 2. Programación en RABBIT.
La programación del microprocesador Rabbit al contrario del PIC, donde existen
varias opciones para elegir el tipo de código, el fabricante entrega su propio
programa de programación con su respectivo lenguaje este es el DYNAMIC C.
muy parecido al lenguaje C en su estructura, pero diseñado para este
microprocesador.
- 66 -
Dynamic C tiene una gran cantidad de características sobresalientes y
diferencias, si se lo compara con otros compiladores C. Generalmente, otros
compiladores requieren un gran número de archivos de inclusión (include files),
potencialmente diferentes para cada fuente, para proveer definiciones y
prototipos de funciones. En Dynamic C, las bibliotecas de funciones se ocupan de
manejar esto de forma automática; la mayor parte de la tarea de portar código
consiste en reorganizar las fuentes y prototipos de funciones en bibliotecas de
Dynamic C.
Existen, además algunas diferencias en las reglas empleadas por Dynamic C con
respecto a otros compiladores para sistemas dedicados. Estas resultan en su
mayoría del hecho de que Dynamic C compila la totalidad del código del archivo
fuente y las bibliotecas en vez de compilar varios módulos independientes y
luego linkearlos en un paso aparte.
Cuando es posible y deseable, Dynamic C sigue los lineamientos del standard
ISO/ANSI. Como éste no toma en consideración las necesidades especiales de los
sistemas dedicados, es necesario, alejarse del mismo en algunas áreas, como las
relacionadas con memorias de solo lectura o inclusión de código Assembler. Por
esta razón, los compiladores orientados a sistemas dedicados no suelen cumplir
completamente con el standard, sino que en realidad lo utilizan como una guía.
A modo de aproximación, se requiere de un día de trabajo para portar unas mil
líneas de código, sin considerar diferencias de hardware de I/O, drivers y código
de inicio.
- 67 -
SI bien las funciones de I/O no son comunes, en el ambiente PC, el utilizar
funciones tales como inportb() y outportb() para realizar operaciones de
entrada-salida. Dynamic C incluye funciones específicas para acceder a puertos
tanto en el espacio de I/O interno (I, periféricos en chip) o externo (E):
BitRdPortE(), BitRdPortI() : Lee el estado de un bit en un puerto.
BitWrPortE(), BitWrPortI(): Escribe el estado de un bit en un puerto.
RdPortE(), RdPortI(): Lee un puerto.
WrPortE(), WrPortI(): Escribe un puerto.
Estas son algunas de las mejoras por sobre el standard ANSI C que encontramos
en Dynamic C:
Encadenado de funciones, un concepto único de Dynamic C. Permite que
segmentos especiales de código puedan estar embebidos en una o más
funciones. Cuando se ejecuta una cadena, se ejecutan todos los
segmentos que la componen.
Co-sentencias (costatements). Implementan construcciones del tipo
usado en máquinas de estados, permitiendo simular procesos paralelos
concurrentes en un mismo programa.
Co-funciones (cofunctions), permiten simular procesos cooperativos en
un mismo programa.
Sentencias de partición (slice statements), permiten procesos de tipo
preemptive en un mismo programa.
Soporte de código Assembler.
Palabras clave para identificar datos compartidos por contextos
diferentes o almacenados en memoria no volátil: compartida y protegida.
- 68 -
Una de las cosas que hacen atractivo al Dynamic C es su capacidad de Multitarea
donde una característica de una tarea es una lista ordenada de operaciones a
realizar. En un este tipo de entorno, más de una tarea (cada una representando
una secuencia de operaciones), pueden aparentar ejecutarse en paralelo. En
realidad, un solo procesador puede ejecutar sólo una instrucción a la vez; si una
aplicación debe realizar múltiples tareas, el software de multitarea usualmente
saca provecho de las demoras naturales en cada tarea para mejorar la
performance global del sistema. Cada tarea realiza parte de su trabajo mientras
las otras están esperando que ocurra algún evento. De esta forma, las tareas se
ejecutan casi en paralelo.
Multitarea cooperativo es una forma de realizar varias tareas diferentes,
virtualmente a la vez. Un ejemplo sería realizar una secuencia de operaciones en
una máquina y dialogar a la vez con el operador mediante un teclado. Cada tarea
por separado cede voluntariamente su tiempo de procesador cuando no
necesita realizar ninguna actividad inmediata.
- 69 -
Imagen 30. Programa Dynamic C con un código de ejemplo.
La imagen anterior muestra el entorno de programación del Dynamic C, mostrando un código a modo de ejemplo, para visualizar el parecido en estructura al lenguaje C.
- 70 -
Capitulo V. Experiencias Realizadas.
Para conocer el potencial tecnológico del Robot Educacional que se presenta en
este trabajo de titulación se realizaron tres tipos de experiencias diferentes para
mostrar las diferentes características que posee este tipo de robot educacional,
en las que se puede mencionar a grandes rasgos la potencialidad de la
comunicación en el campo inalámbrico, mediante la utilización del protocolo
802.11b, mas ampliamente conocido como WIFI, además de tener a mano una
comunicación directa con un computador mediante un puerto USB, al cual se
puede controlar y dar ordenes, sin dejar de lado la movilidad de un robot que
puede ser autónomo o bien controlado por un usuario remoto en cualquier parte
del mundo.
V. 1. PIC USB.
Una aplicación ampliamente destacable en el campo de la electrónica e
informática es la interacción con los distintos puertos que posee un computador,
como lo es, con el puerto paralelo y el puerto serial, pero hoy en día vemos que
estos puertos han pasado a la historia, viendo que en cada PC de nueva
generación estos puertos han sido reemplazados por el conocido puerto USB, el
cual ha ganado mucho terreno en los últimos años.
Es aquí donde se apreció un punto te interés en la realización de este robot
capaz de realizar una conexión HID (Human Interface Device), es decir, un
dispositivo de interfaz humana USB, esto es un tipo de conexión extensible y
robusta capaz de realizar una conexión y ejecutarse al instante sin necesidad de
- 71 -
realzar la instalación previa de algún controlador, esto se puede apreciar de
forma cotidiana con los mouse USB, teclados USB, entre otros.
Este tipo de conexión se realiza gracias a una aplicación del PIC 18F2550, que
posee este tipo de comunicación con el puerto USB, para poder utilizarlo es
necesario contar con las libreras tanto en PIC BASIC PRO como también para el
software de aplicación en Visual Basic, también dar un número de producto y su
correspondiente número de Identificación, esto para el caso del programa PIC
USB, serán genéricos experimentales ya que para acceder comercialmente a
estos es necesario acceder a una licencia.
El programa PIC USB, consta de dos partes, primero la que comprende
esencialmente al hardware que implica tanto la programación del PIC para
activar este tipo de aplicación USB, mediante el código necesario para el
microcontrolador y la configuración electrónica para visualizar lo se requiere,
segundo, un software capaz de llevar este tipo de aplicación a buen puerto en el
computador, de forma que en él se puedan enviar datos como también
mostrarlos de forma comprensible, este software se diseñará en Visual Basic 6.0.
y lo que se realizó para comprender este tipo de comunicación, es el control de
un Display de 7 segmentos.
- 72 -
Imagen 31. Display de 7 segmentos.
El cual esta conformado por una matriz de LED configurada de forma que se
visualicen todos los números desde el cero hasta el nueve, además en esta
configuración también se puede obtener algunas letras, dependiendo de que pin
se eleve un voltaje se encenderá un led y dependiendo de la cantidad de pines
en estado alto se puede mostrar distintos datos de forma visual.
Imagen. 32. Configuración interna de la Matriz de Led en el Display.
Con esto se puede realizar una experiencia sencilla, PIC USB para el control de un
Display de 7 segmentos a través del computador, esto se logró realizando una
configuración electrónica mediante la interacción del Robot educacional con el
computador a través un cable USB además de un circuito que conecte
correctamente este Display con el elemento electrónico. En donde el diagrama
electrónico se muestra en la imagen 33.
- 73 -
Imagen 33. Esquema de circuito Electrónico PIC USB para control del Display.
En la imagen anterior se visualiza el esquema electrónico que es necesario
montar en el área de trabajo que dispone el Robot, se utilizan resistencias de 220
Ohm, para obtener el voltaje necesario en los Led del Display y asegurar la
corriente en los estándares necesarios recomendados por el fabricante del
microcontrolador, también se utilizó el puerto B del PIC para obtener 7 bit que
nos darán el juego de todos los Led encendidos cuando todos los bits utilizados
de este puerto estén en estado alto, además de la conexión de los pines del
puerto USB en el puerto C del PIC en donde se encuentra la aplicación de la
conexión USB.
- 74 -
Imagen 34. Conexiones en el Área de trabajo del Robot.
La imagen anterior (Imagen 34.) muestra como se conectan los diferentes
elementos electrónicos para realizar este tipo de experiencia en el área de
trabajo del robot educacional, esto permite la visualización de cómo esta
conectado visualmente los elementos en el Robot.
- 75 -
Imagen 35. Software de control del Display.
El software que realizará el control de este display fue diseñado en Visual Basic
6.0. como lo muestra la imagen 35 y su funcionamiento es primero a base de la
introducción del dato, donde este corresponde a un número desde el 0 hasta el
128 de forma decimal, el que será enviado a través del puerto USB hacia el PIC y
colocado en el puerto B del PIC de forma binaria activando así los LED del
Display, así como también posee la característica de realizar la comprobación si
el dato enviado corresponde al dato recibido, el que controla el visor en el lado
derecho del programa PIC USB mostrando que Led se ha encendido de forma
que cuando se envié un dato el o los LED se mostrarán también en la pantalla,
también se ha introducido en el software de control diferentes secuencias de
interés, las cuales son la visualización de un contador ascendente o como
descendente, entre otras secuencias de encendido de Led en el Display.
- 76 -
V.2. Rabbit Servos.
El segundo programa se realizará a través del microprocesador Rabbit
exclusivamente, el cual tiene la capacidad de realizar la conexión WIFI y controlar
los servos que le darán el movimiento al robot, este movimiento mediante la
característica de la conexión inalámbrica es de una gran potencialidad dado que
tiene un gran alcance tanto en terreno abierto como con obstáculos, este tipo de
conexión se realiza mediante un Router que administra las conexiones de red,
asignando las correspondientes direcciones IP, para esto se realizó la
programación en forma de cliente y servidor, de este modo el Robot Educacional
será el cliente que deberá conectarse con el servidor que será una computadora
que finalmente controlara todos los movimientos.
Esto conlleva entonces la creación de un programa capaz de realizar esta función
de servidor y también la programación del microprocesador para realizar su
tarea de cliente, además de tener la configuración para el accionar de los
servomotores de forma que avance, gire y retroceda según las ordenes enviadas
desde el programa servidor en el computador.
Para esto es necesario realizar las conexiones desde Rabbit hacia los conectores
de los servomotores que serán parte importante para esta experiencia, a través
de la utilización de dos pines de uno de los puertos del microprocesador.
- 77 -
Imagen 36. Diagrama electrónico de conexión Rabbit Servomotores.
Como se puede apreciar en la imagen 36. que conexión en este punto es directa
ya que los servos son solo elementos actuadores, reciben la información y
ejecutan lo que ellos reciben como dato.
- 78 -
Imagen 37. Diagrama de conexiones en el área de trabajo.
Como se aprecia en la imagen 37. la conexión para realizar el movimiento de los
servomotores es bastante sencilla y de fácil entendimiento (en el área de
trabajo), solo se conectan la alimentación para la energía que requieren los
servomotores y la señal de dato que requiere para accionar.
El software servidor esta diseñado de forma de obtener pequeños pasos hacia
todos los lados posibles (Adelante, Atrás, Derecha e Izquierda), esto para realizar
- 79 -
movimientos finos para corregir dirección y comprobar distancias en caso de
poseer un sensor de proximidad, que lo veremos en el siguiente tema de este
capitulo, también consta de pasos mas largos para realizar movimientos rápidos
en menor tiempo, acelerando el paso de ambos servos también hacia todas las
direcciones posibles.
Imagen 38. Software servidor para el control de servomotores.
- 80 -
La Imagen 38. se visualiza programa servidor tiene que iniciarse apretando el
botón “Comenzar Sistema”, en donde este procederá a esperar el llamado del
cliente y cuando estos se logran comunicar se pueden realizar todos los
movimientos anteriormente descritos, tanto los pasos largos (10 pasos pequeños
a la vez), como también los pasos pequeños individuales.
V.3. Rabbit PIC Control.
Este es el programa final de las experiencias, trata de englobar de forma general
ambos cerebros presentes en el Robot educacional, y lograr una simbiosis entre
estos dos elementos electrónicos de diferentes características para darle una
gran potencialidad y diversidad a la robótica dentro de la Universidad.
Rabbit PIC Control consta de la relación al igual que la anterior experiencia, de
cliente servidor, donde el trabajo de conexión estará basado en la comunicación
inalámbrica WIFI entre el Rabbit y el computador, además de tener una
comunicación serial con el microcontrolador PIC de forma que este ultimo actué
meramente como captador del medio en donde esta inserto, es decir, el PIC
tomará datos del mundo exterior y los transformará estos datos en código
digital, el cual será enviado al Rabbit y este procederá a enviar estos datos al
computador siendo éste último, quien pueda visualizar qué tipo de
características tiene el medio en donde esta inserto el robot, siendo este quien
también pueda accionar los movimientos del robot para conocer en mayor
envergadura el medio.
- 81 -
De esta forma es necesario primero contar con algún elemento que le permita
conocer el estado del medio externo al robot, para esto se utilizará un sensor de
proximidad de objetos, a través ultrasonido, el cual captara la distancia a la que
se encuentra un objeto, también se podrá ver el nivel del medio en donde
interactúa el robot, esto por medio de un acelerómetro que estará captando las
deformidades del medio, estos sensores estarán conectados con
microcontrolador PIC, que se encuentra programado para obtener las señales
analógicas del acelerómetro y también obtener la distancia que se encuentre
algún objeto. Por medio de una conexión serial serán enviados estos datos al
Rabbit quien se encargara de enviarlos nuevamente al PC de forma inalámbrica,
para visualizar los datos obtenidos y éste podrá tomar decisiones, además tendrá
la libertad de movimiento por los servomotores capaces de llevar el Robot hacia
donde el usuario lo requiera.
Para esto, es necesario realizar la conexión electrónica de los elementos aquí
descritos, tanto el acelerómetro como también el sensor de ultrasonido al PIC,
así luego la conexión serial al Rabbit asimismo la conexión de los Servomotores a
este último.
- 82 -
Imagen 39. Diagrama electrónico de la experiencia Rabbit PIC Control.
Como se puede apreciar en la imagen 39. están descritas las conexiones que se
mencionó anteriormente, además de tener un pequeño conversor de voltaje el
cual administrara los niveles de tensiones correctos para ambas partes, tanto del
PIC que comprende un voltaje máximo de 5V. y el Rabbit que posee un voltaje
máximo de 3.3V. de esta forma se podrá realizar la conexión serial de forma
exitosa.
- 83 -
Imagen 40. Diagrama de conexiones en área de trabajo del Robot.
Se puede apreciar de forma más intuitiva en la imagen 40. el diagrama de
conexiones en el área de trabajo del Robot que es necesario realizar para esta
última experiencia, donde interactúan ambos elementos programables.
- 84 -
Imagen 41. Programa Servidor Rabbit PIC Control.
El programa Servidor estará montado en un Computador conectado su propia
Red llamada “WIFIRABBIT”, a través del Router, en donde una ves conectado
ambas partes, cliente y servidor, se podrá visualizar los datos entregados del PIC,
esto es, la distancia de colisión con algún objeto y nivel X e Y, del punto donde
este localizado el Robot, donde también se podrá cambiar este punto dándole
ordenes de movimiento al robot, para cambiar este punto de localización.
- 85 -
Así se podrá obtener tanto la inclinación que tiene el robot en un determinado
punto del medio, como también si existe algún objeto que se encuentre de
camino con el Robot, para hacer más sencillo su avance en el medio donde se
encuentra inserto.
En relación a las tres experiencias se adjuntaran los programas y códigos
utilizados dentro del anexo del presente trabajo de titulación.
- 86 -
VI. Conclusiones.
Se desarrollo un robot educacional, con el objetivo de dar mayor potencialidad a
los existentes en la actualidad dentro de la Universidad, logrando superar en
amplia parte todos los inconvenientes que poseen éstos (Rambal y Nxt), esto es;
1. Un área de trabajo mayor, aumentando su tamaño con la incorporación
de 2 Protoboard de montaje.
2. Con la característica del PIC 18F2550, la conversión de análogo a digital,
se logró conocer valores entregados por sensores de tipo analógico,
como el acelerómetro, sensores de temperatura entre otros.
3. Poseer la capacidad de doble procesamiento de código, dada la mejora
de tener dos cerebros electrónicos que programar.
4. El mejoramiento sustancial en el ámbito de la comunicación con otros
dispositivos electrónicos, como la conexión inalámbrica, con la cual,
conectarse con un computador dentro de una red local, pero esto nos
dice, también, puede ser una máquina electrónica desde cualquier parte
del mundo si contamos con una IP fija, y no solo puede ser un
computador, hoy en día también existe la posibilidad latente de otros
elementos como las PALM o los celulares TOUCH con WIFI o Tablet PC.
5. Sin dejar de lado, que al ser un robot con unidad programable y batería
de potencia, puede trabajar de forma autónoma, es decir, sin la
necesidad de tener un usuario tomando decisiones.
6. Se logró además, el control de un nuevo puerto de control (USB), poco
conocido dada la complejidad de este, explorando un poco mas allá de lo
conocido en lo que se refiere a puertos de comunicación del computador.
- 87 -
Pero este no es el fin, al contrario es un avance, un pequeño paso para mi pero
un gran salto para la robótica de la Universidad Austral de Chile, este robot
educacional tiene mucha mayor potencialidad que la mostrada en este trabajo
de titulación, dado que pueden ser insertas gran numero de variables para
obtener la solución a un problema, quizás el desafío planteado ahora es la
incorporación de alguna cámara de video para visualizar de forma remota el
medio, también que fuera un sistema autónomo capaz de entregar información
del medio en una base de datos SQL en internet y visualizarlos desde cualquier
parte del mundo, así mismo aulas de robótica a distancia vía internet.
Aquí solo se mostró una parte de lo que podría llegar a hacer un usuario solo con
la creatividad y la correcta guía, hacia el desarrollo y solución a un problema en
particular.
En este trabajo de tesis se logró cumplir los objetivos propuestos al inicio y dejo
abierta la puerta para nuevos desafíos, se entrega la herramienta base para
seguir avanzando en la robótica dentro la Universidad.
- 88 -
VII. Referencias Bibliográficas.
1. Wikipedia la enciclopedia libre.
http://es.wikipedia.org/wiki/Robotica
2. Rambal Educación.
http://www.rambal.com/educacion
3. Lego Mindstorms.
http://mindstorms.lego.com/en-us/Default.aspx
4. Microcontrolador PIC
http://www.microcontroladorespic.com/
5. Rabbit - Embedded Microprocessors for Control.
www.rabbit.com/
6. Servomotor.
http://www.x-robotics.com/motorizacion.htm
7. Acelerómetro ADXL.
http://protolab.pbworks.com/ADXL3xx-Accelerometers
8. Tutorial AutoCad 2007.
http://www.we-r-here.com/cad_07/tutorials_sp/index.htm
- 89 -
VIII. Anexos.
VIII. 1. Carga de un Programa para PIC.
Al tener la programación del código de algún ejemplo de instrucciones del
microcontrolador PIC, programado en código Basic, es necesario primero
compilarlo para obtener el archivo en Assembler(*.asm), donde luego es
necesario transformarlo nuevamente pero usando el programa del fabricante
(MPLAB) y esta vez se obtendrá el archivo Hexadecimal(*.hex).
Esté archivo es el que finalmente se introducirá dentro del microcontrolador PIC
para esto utilizaremos, primero un circuito cargador, un hardware de
comunicación entre el computador y el Microcontrolador, el Robot ya fue
diseñada la característica de dejar disponible los pines necesarios para la carga
del programa de instrucciones, y segundo utilizaremos el programa para realizar
la carga de este código, éste se llama Winpic800.
Imagen Anexo 1. Vista del Programa Winpic800
- 90 -
En este programa realiza primero la inspección sí el hardware electrónico esta
correctamente conectado, además de detectar automáticamente el PIC que esta
listo cargar el código del programa.
Para esto se realice con éxito es necesario tener conectado el puerto del Robot
(puerto de programación), con el hardware electrónico como se aprecia en la
siguiente imagen.
Imagen Anexo 2. Cargador PIC conexión con el Robot.
Donde una vez conectado el cargador PIC con el Robot, se conecta este
hardware al computador para que el programa Winpic800 lo detecte y además
proceda a identificar el PIC que esta listo para ser cargado.
- 91 -
Esta carga se realiza a través del botón en el mismo programa, donde éste
se encarga de enviar los datos que antes cargamos en el programa, estas son las
instrucciones antes programadas y compiladas hasta obtener el archivo
hexadecimal, donde finalmente una vez el cargador realiza el envió de los datos,
procede a realizar una verificación, si los datos están correctamente grabados en
la memoria del PIC nos avisará que todo fue un éxito.
VIII.2. Carga de un Programa en Rabbit.
Para realizar la incorporación de un programa el microprocesador Rabbit desde
Dynamic C, primero es necesario realizar la conexión del dispositivo de
comunicación USB Serial que posee el Kit de desarrollo de microcontroladores
Rabbit, este se conecta al Rabbit de la forma como se muestra en la siguiente
imagen.
Imagen Anexo 3. Conexiones para realizar la Carga de un código en Rabbit.
- 92 -
Como se muestra en la imagen Anexo 3. es indispensable tener la conexión del
elemento USB serial, además de energizar la placa de desarrollo, ambas
conexiones son necesarias para realizar el correcto programado de la placa
Rabbit desde el computador a través de Dynamic C.
Esta programación se realiza desde el mismo programa de escritura del código
Dynamic C a través del botón que se encuentra en la barra de herramientas
de la aplicación, este comenzará a ejecutar todas las librerías que fueron
ocupadas en el código, realizando finalmente todo el proceso carga del
programa en Dynamic C para el microprocesador Rabbit.