92
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

bmfcih565r.pdf

Embed Size (px)

Citation preview

Page 1: bmfcih565r.pdf

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

Page 2: bmfcih565r.pdf

- 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:

Page 3: bmfcih565r.pdf

- 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.

Page 4: bmfcih565r.pdf

- 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 -

Page 5: bmfcih565r.pdf

- 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 -

Page 6: bmfcih565r.pdf

- 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.

Page 7: bmfcih565r.pdf

- 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.

Page 8: bmfcih565r.pdf

- 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

Page 9: bmfcih565r.pdf

- 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.

Page 10: bmfcih565r.pdf

- 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.

Page 11: bmfcih565r.pdf

- 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.

Page 12: bmfcih565r.pdf

- 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,

Page 13: bmfcih565r.pdf

- 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.

Page 14: bmfcih565r.pdf

- 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.

Page 15: bmfcih565r.pdf

- 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

Page 16: bmfcih565r.pdf

- 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

Page 17: bmfcih565r.pdf

- 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.

Page 18: bmfcih565r.pdf

- 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.

Page 19: bmfcih565r.pdf

- 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.

Page 20: bmfcih565r.pdf

- 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.

Page 21: bmfcih565r.pdf

- 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.

Page 22: bmfcih565r.pdf

- 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

Page 23: bmfcih565r.pdf

- 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.

Page 24: bmfcih565r.pdf

- 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

Page 25: bmfcih565r.pdf

- 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.

Page 26: bmfcih565r.pdf

- 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).

Page 27: bmfcih565r.pdf

- 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.

Page 28: bmfcih565r.pdf

- 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).

Page 29: bmfcih565r.pdf

- 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

Page 30: bmfcih565r.pdf

- 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

Page 31: bmfcih565r.pdf

- 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

Page 32: bmfcih565r.pdf

- 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.

Page 33: bmfcih565r.pdf

- 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

Page 34: bmfcih565r.pdf

- 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.

Page 35: bmfcih565r.pdf

- 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.

Page 36: bmfcih565r.pdf

- 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.

Page 37: bmfcih565r.pdf

- 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.

Page 38: bmfcih565r.pdf

- 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.

Page 39: bmfcih565r.pdf

- 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

Page 40: bmfcih565r.pdf

- 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:

Page 41: bmfcih565r.pdf

- 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.

Page 42: bmfcih565r.pdf

- 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

Page 43: bmfcih565r.pdf

- 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.

Page 44: bmfcih565r.pdf

- 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.

Page 45: bmfcih565r.pdf

- 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.

Page 46: bmfcih565r.pdf

- 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

Page 47: bmfcih565r.pdf

- 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.

Page 48: bmfcih565r.pdf

- 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.

Page 49: bmfcih565r.pdf

- 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.

Page 50: bmfcih565r.pdf

- 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.

Page 51: bmfcih565r.pdf

- 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.

Page 52: bmfcih565r.pdf

- 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.

Page 53: bmfcih565r.pdf

- 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.

Page 54: bmfcih565r.pdf

- 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.

Page 55: bmfcih565r.pdf

- 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.

Page 56: bmfcih565r.pdf

- 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.

Page 57: bmfcih565r.pdf

- 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.

Page 58: bmfcih565r.pdf

- 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.

Page 59: bmfcih565r.pdf

- 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.

Page 60: bmfcih565r.pdf

- 60 -

Imagen 25. Vista lateral del Robot Educacional.

Page 61: bmfcih565r.pdf

- 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.

Page 62: bmfcih565r.pdf

- 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.

Page 63: bmfcih565r.pdf

- 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.

Page 64: bmfcih565r.pdf

- 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.

Page 65: bmfcih565r.pdf

- 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.

Page 66: bmfcih565r.pdf

- 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.

Page 67: bmfcih565r.pdf

- 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.

Page 68: bmfcih565r.pdf

- 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.

Page 69: bmfcih565r.pdf

- 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.

Page 70: bmfcih565r.pdf

- 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

Page 71: bmfcih565r.pdf

- 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.

Page 72: bmfcih565r.pdf

- 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.

Page 73: bmfcih565r.pdf

- 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.

Page 74: bmfcih565r.pdf

- 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.

Page 75: bmfcih565r.pdf

- 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.

Page 76: bmfcih565r.pdf

- 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.

Page 77: bmfcih565r.pdf

- 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.

Page 78: bmfcih565r.pdf

- 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

Page 79: bmfcih565r.pdf

- 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.

Page 80: bmfcih565r.pdf

- 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.

Page 81: bmfcih565r.pdf

- 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.

Page 82: bmfcih565r.pdf

- 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.

Page 83: bmfcih565r.pdf

- 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.

Page 84: bmfcih565r.pdf

- 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.

Page 85: bmfcih565r.pdf

- 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.

Page 86: bmfcih565r.pdf

- 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.

Page 87: bmfcih565r.pdf

- 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.

Page 88: bmfcih565r.pdf

- 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

Page 89: bmfcih565r.pdf

- 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

Page 90: bmfcih565r.pdf

- 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.

Page 91: bmfcih565r.pdf

- 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.

Page 92: bmfcih565r.pdf

- 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.