Anda di halaman 1dari 10

DISEO E IMPLEMENTACIN DE UN ROBOT CAMINANTE TIPO HEXAPOD

UTILIZANDO EL MICROCONTROLADOR PIC 16F877


Barn Marco Aurelio Azprua Auyanet, marcoazpurua@gmail.com
Universidad Nacional Experimental Politcnica de la Fuerza Armada Nacional, Venezuela
Departamento de Ingeniera en Telecomunicaciones

Resumen - La robtica es rama de la ciencia que se ocupa del estudio y desarrollo de aplicaciones de los robots.
Los robots son dispositivos provistos de sensores que reciben datos de entrada y que procesan estas seales a
travs de circuitos electrnicos diseados para responder inteligentemente a los mismos. Los robots pueden portar
un microprocesador o un microcontrolador que le provea autonoma de decisin en funcin de los estmulos que
reciban de los sensores y del programa que se halla cargado en el dispositivo. La lnea de microcontroladores PIC
de Microchip ha tenido gran xito en el rea de la robtica amateur ya que provee una alternativa econmica y de
fcil programacin a travs de los entornos de programacin de alto nivel, como es el caso de Proton IDE. En el
siguiente articulo se propone una metodologa de diseo e implementacin de un robot del tipo Hexapod Walker
basado en el PIC 16F877, especificado tanto las caractersticas mecnicas, electrnicas e informticas del mismo.
Palabras Claves: Hexapod, Microcontroladores, PIC 16F877, Proton IDE, Robtica.
Abstract - Robotics is the branch of science that studies and develops robots applications. Robots are devices
provided with sensors that receive data as input and process this signals using electronic circuits designed to
respond intelligently to them. Robots can carry a microprocessor or a microcontroller that provides them with the
autonomy to make decisions based on the stimulation received trough the sensors and on the program loaded in the
device. Microchips PIC line of microcontrollers have had great success in the amateur robotics area because it
provides an economic and easy to program using high level development environments, such as Proton IDE,
alternative. In this paper its presented a methodology to design and realize a Hexapod Walker robot based on the
PIC 16F877, specifying not only its mechanical characteristics but also its electronic system and software.
Keywords: Hexapod, Microcontroller, Proton IDE, PIC 16F877, Robotics.
1.

INTRODUCCIN

De forma general, la Robtica se define como el


conjunto de conocimientos tericos y prcticos que
permiten concebir, realizar y automatizar sistemas
basados en estructuras mecnicas poli articuladas,
dotados de un determinado grado de "inteligencia"
creada electrnicamente.
Un sistema robtico se puede describirse, como
aquel que es capaz de recibir informacin, de
comprender su entorno a travs del empleo de modelos,
de formular y de ejecutar planes, y de controlar o
supervisar su operacin. Por lo tanto, la robtica es
esencialmente pluridisciplinaria y se apoya en las reas
de conocimiento como: la informtica en lo
concerniente a la programacin y la inteligencia
artificial, en la mecnica en lo relativo a la estructura
mvil del robot, la seleccin de los materiales segn la
aplicacin requerida y el anlisis de fuerzas del sistema
y por ultimo, el elemento vinculante entre estas dos
reas, la electrnica digital que permite interactuar con

el medio para extraer la informacin sobr la cual el


robot tomara decisiones a nivel de software y en
consecuencia retornar seales destinadas corregir las
actividades del robot.
La importancia del desarrollo del rea de la
robtica recae en las repercusiones que acarrea en todos
los campos de trabajo; ya que las nuevas tecnologas
permiten la sustitucin paulatina del factor humano en
las tareas cotidianas.
2.

PLANTEAMIENTO DEL DISEO

Se propone disear un robot de tipo Hexapod


Walker controlado por un microcontrolador PIC 16F877
programado utilizando lenguaje BASIC y el entorno de
programacin PROTON IDE. El robot debe cumplir
con las siguientes funciones:

Desplazamiento autnomo con dos grados de


libertad. El patrn a seguir ser avanzar hacia el
frente del robot mientras no existan obstculos,
cuando se detecte un obstculo debe cambiar de

3.

direccin de la manera adecuada segn sea la


situacin. En este modo de funcionamiento tambin
se llevara un registro en la EPROM de los pasos del
robot, de los obstculos y de las direcciones de giro
del robot, a modo de poder construir un mapa de
ser necesario a partir de estos datos. [MODO DE
OPERACIN 1]
Desplazamiento controlado a travs de la interfaz
serial de la PC. El patrn de desplazamiento ser
dictaminado por el usuario, el cual enviar desde la
computadora,
utilizando
el
plug-in
de
comunicaciones seriales de PROTON IDE y a
travs del puerto serial de la PC, caracteres que el
PIC interpretar como la instruccin de
movimiento en determinada direccin. [MODO DE
OPERACIN 2]
Calculo de la longitud total recorrida, medida en
pasos. En este modo de operacin el PIC revisara
los datos guardados en la EPROM y a partir de
ellos extraer la cantidad de pasos recorridos
totales. [MODO DE OPERACIN 3]
Sensor de temperatura ambiental con visualizacin
porcentual en la LCD, adems cuenta con
movimiento autnomo como en el primer caso, y
enva al PC va puerto serial la informacin de la
temperatura. [MODO DE OPERACIN 4]

utilizar mas estos no son quienes levantan todas las


patas. El levantamiento de las mismas viene dada por el
servomotor que controla el movimiento de las patas
centrales, estas no movern hacia adelante ni hacia atrs
el robot, pero son las que inclinaran la placa o el cuerpo
del mismo, hacia un lado o hacia el otro generando el
levantamiento de las patas delanteras y traseras del lado
contrario simultneamente.
b) Movimiento de las patas
Como mencionado anteriormente, las patas no
pueden moverse a menos que estas sean levantadas, y
este trabajo le corresponde al servomotor que mueve las
patas centrales. Estas patas centrales no se movern
hacia adelante o hacia atrs, solamente hacia arriba o
hacia abajo y al hacer esto los servomotores delanteros
y traseros movern las patas hacia adelante.
En la siguiente figura se demuestra el ciclo de
movimiento de las patas:

Avanza

DISEO DEL HEXAPOD


Figura 2. Movimiento de avance
a) Armazn del Hexapod

El robot se compone de 6 patas las cuales se


encuentran equitativamente distribuidas en ambos lados
del robot. 3 patas a la derecha y 3 patas a la izquierda.
De estas 6 patas solamente 3 se movern
simultneamente para evitar que el robot se caiga hacia
un lado (2 de un lado y 1 del otro). El principio del
movimiento de las patas se muestra en la siguiente
figura:

Figura 1. Principio de movimiento de las patas


Los crculos rellenos representan las patas que
estn apoyadas sobre el suelo mientras los blancos
representan las patas levantadas. El control de las patas
hacia adelante viene dados por los servomotores a

Observe que en la figura 2, posicin A, dos de las


patas izquierdas estn levantadas mientras solo una de
la derecha se encuentra levantada, al realizar esto se le
permite la movilidad hacia delante de unos 25 (CW)
aproximadamente (posicin B). Inmediatamente
despus de que estas patas se muevan hacia adelante, el
servomotor central cambia la inclinacin de lado y se
levantan las del otro extremo mientras que las anteriores
se posan en el suelo (posicin C).
De la misma manera anterior las patas levantadas
se mueven 45 hacan enfrente (posicin D) y vuelven a
caer al suelo apoyando todo el cuerpo en el conjunto
completo formado por las extremidades delanteras y
traseras (posicin E). Al realizar esto, los servomotores
rotaran en el sentido contrario. Como el robot esta
apoyado en el suelo, la fuerza opuesta a la friccin del
suelo impulsara el cuerpo hacia adelante (posicin F).
La filosofa seguida por el movimiento de retroceso
es la misma pero al sentido contrario (CCW).

La secuencia se muestra en la siguiente figura:

Retroceder

c) Construccin del cuerpo del Hexapod


El cuerpo est conformado por una lmina metlica
de 5 x 9 pulgadas de largo x 0.8 mm de grosor, en la
cual los servomotores estarn instalados. La siguiente
figura muestra la placa del cuerpo. En esta placa, los 4
hoyos de 11/64 son utilizadas para el colocar el centro
del servomotor. Los dos hoyos que estn en la parte
inferior del diagrama, sirven para colocar los pivotes
para las patas traseras, que son un poco ms largas que
las delanteras.

Figura 3. Movimiento de retroceso


La secuencia de pasos a realizar para cruzar a la
izquierda se muestra en la siguiente figura:

Cruzando a la izquierda

Figura 4. Movimiento de desplazamiento a la izquierda


Figura 5. Blaca base del cuerpo del Hexapod
Como se observa, en la posicin A, las patas que
corresponden el lado izquierdo se mueven hacia
adelante al estar elevadas, al moverse hacia adelante el
servomotor central cambia de posicin elevando el lado
derecho del cuerpo del robot. Seguidamente las patas
del lado derecho en vez de moverse en direccin CW,
hacen en direccin CCW, como muestra la posicin C.
Al hacer esto las patas centrales vuelven a su posicin
original para que las patas de los extremos se apoyen
sobre el suelo. Para finalizar todas las patas vuelven a
su posicin original haciendo girar el robot hacia la
izquierda como muestra la posicin D.
Para el lado contrario (Derecha) se hace el mismo
procedimiento con la diferencia en que las patas de la
izquierda se mueven hacia atrs y las derechas hacia
adelante.

La siguiente figura muestra cmo se dispone el


cuerpo conectado:

Figura 6. Cuerpo del Hexapod ensamblado

d) Construccin de las patas del Hexapod


Las patas del robot se realizan de aluminio, con un
grosor mnimo de 1/8 para poder aguantar el peso del
mismo. La siguiente figura muestra el plano de las
dimensiones de cada pata. Las dos patas traseras son un
poco ms grandes que las dos delanteras para poder
compensar la altura agregada por los servomotores en
uno de los extremos.

Como se haba mencionado anteriormente, la


misin de esta pata es elevar, a modo de palanca, uno de
los lados del robot para que se puedan realizar los
movimientos tanto hacia adelante como hacia atrs.
Debido a que esta pata solo realiza movimientos
verticales, se dobla una seccin en el centro como se
muestra para colocar el servomotor.
Esta pata es 1/8 ms corta que las delanteras y las
traseras en relacin a la altura, por lo tanto es obvio que
no van a soportar ningn peso del robot cunado est se
encuentre en la posicin inicial.

Figura 9. Patas para la inclinacin del Hexapod


e) Sensores de obstculos del Hexapod

Figura 7. Dimensiones de las patas del Hexapod

Los sensores estn conformados por un switch


cada uno que tiene una gran sensibilidad al tacto,
adems se le realizaron extensiones a de los contactos,
tal y como se muestra en la figura.

De la misma manera esta presenta una serie de


hoyos que se utilizaran para acoplar el servomotor, para
los tornillos y para el brazo metlico que realizar el
troqu entre las patas delanteras y traseras. Adems,
estas tienen un doblez de 90 en una zona como se
muestra en la figura para darles la forma de patas.
La pata central se compone de solo 1 lmina de
aluminio doblada en el centro de la siguiente manera:

Figura 10. Sensores de obstculos del Hexapod

Figura 8. Representacin de la pata central

Al momento que una de las antenas choque con


algn objeto, el switch se conmutar, el
microcontrolador detectar que existe un objeto que
debe ser evitado. Dependiendo del switch activado este
girar hacia la derecha o hacia la izquierda para evitar el
obstculo.

f)

Brazo Metlico

El brazo metlico no es ms que una barra de metal


que va conectada entre las patas delanteras y las traseras
de cada uno de los lados del Hexapod, de modo que con
un solo servomotor se muevan dos patas de cada lateral.
Esto sirve para ahorrar mucha energa y adems hace el
robot ms ligero. Esto es muy importante y se puede
conocer debido al movimiento que realiza el robot para
desplazarse hacia enfrente o hacia atrs y tambin
asegura que exista sincrona en estos movimientos. Este
brazo metlico tiene la siguiente apariencia y va
conectado de la siguiente manera:

Un potencimetro que est sujeto a la flecha, mide


hacia dnde est ubicado en todo momento. Es as como
la tarjeta controladora sabe hacia dnde mover al motor.
La posicin deseada se le da al servomotor por medio
de pulsos. Todo el tiempo debe haber una seal de
pulsos presente en ese cable.

Figura 11. Brazo metlico del Hexapod


g) Servomotores
Figura 13. Control de posicin del servomotor
Un servomotor es bsicamente un motor elctrico
que slo se puede girar en un ngulo de
aproximadamente 180 grados. De los tres cables que
salen de su cubierta. El rojo es de voltaje de
alimentacin (+5V), el negro es de tierra (0V GND).
El cable blanco (a veces amarillo) es el cable por el cul
se le instruye al servomotor en qu posicin ubicarse
(entre 0 grados y 180). Dentro del servomotor, una
tarjeta controladora comunica a un pequeo motor de
corriente directa cuntas vueltas girar para acomodar la
flecha (el eje de plstico que sale al exterior) en la
posicin que se le ha pedido. En la figura 12 se observa
la ubicacin de estas piezas dentro del servomotor:

Figura 12. Estructura de un servomotor genrico

Como se observa en la figura 13, la duracin del


pulso dictamina el ngulo del eje. Ntese que las
ilustraciones y los tiempos reales dependen del
fabricante de motor. El principio, sin embargo, es el
mismo. El modelo de servo utilizado fue el FUTABA
S3003.
h) Microcontrolador PIC16F877
En la actualidad la elaboracin de robots se ha
convertido en una tarea accesible debido a la aparicin
de los microcontroladores. Un microcontrolador es un
circuito integrado o chip que incluye en su interior las
tres unidades funcionales de una computadora: CPU,
Memoria y Unidades de E/S, es decir, se trata de un
computador completo en un solo circuito integrado.
Los PIC son una familia de microcontroladores tipo
RISC fabricados por Microchip Technology Inc. y
derivados del PIC1650, originalmente desarrollado por
la divisin de microelectrnica de General Instruments.
Para el diseo del hexapod se utiliz el PIC 16F877 y
sus caractersticas principales se resumen en el siguiente
cuadro:

Tabla 1: Caractersticas principales del PIC 16F877

CARACTERSTICAS

16F877

Frecuencia mxima

DX-20MHz

Memoria de programa flash palabra


de 14 bits

8KB

Posiciones RAM de datos

368

Posiciones EEPROM de datos

256

Puertos E/S

A,B,C,D,E

Nmero de pines

40

Interrupciones

14

Timers

Mdulos CCP

Comunicaciones Serie

MSSP,
USART

Comunicaciones paralelo

PSP

Lneas de entrada de ADC de 10 bits

Juego de instrucciones

35
Instrucciones

Longitud de la instruccin

14 bits

Arquitectura

Harvard

CPU

Risc

Canales PWM

i)

Entorno de desarrollo para el PIC 16F877

El Protn IDE es un entorno de desarrollo


integrado profesional, visual y poderoso diseado
especficamente para el compilador Protn Plus. Utiliza
como lenguaje de programacin a BASIC. Ademas es
compatible con ICSP (In Circuit Serial Programming),
esto permite programar el PIC directamente en el
circuito destino, una vez que se le all cargado el
firmware de Protn.

j)

Diseo del sistema de control del Hexapod

Se comenzar la explicacin recordando que el


robot posee cuatro modos de operacin los cuales
dependern de 2 variables tipo bit llamadas opc1 y
opc2.
Tabla 2: Modos de funcionamiento del Hexapod
opc1 opc2 Modo de Operacin
0
0
1
0
1
2
1
0
3
1
1
4

Figura 14. Diagrama de flujo general


Tambin es importante resaltar que al inicio del
programa se inicializan algunas variables como lo son
address y pasos y adems se escribe en la EPROM
con el comando EData la cadena fin, la cual servir
de referencia para medir distancias en el MODO 3.
Dentro del MODO 1, se programaron subrutinas
que al ser ejecutadas varias veces proveen trenes de
pulsos con diferente ciclo de trabajo, de modo que se
puedan controlar la posicin de los servomotores a
travs de los mismos. Para ellos se emplearon
principalmente las instrucciones DelayMs y DelayUs y

los ciclos FOR-NEXT. En este modo tambin se


incrementa la variable que lleva el registro de los pasos
entre obstculo-obstculo e inicio y obstculo.
Adems en el MODO 1 se activo la interrupcin
externa de cambio en la parte alta del Puerto B, ya que
en este puerto estarn conectados los sensores de
obstculos. Estos sensores se implementaron con
microswitches sensibles a la presin, que al cerrarse
debido a la presencia un obstculo, ejecutaran una
interrupcin que indicar al robot que debe retroceder y
girar en el lado opuesto al que se encuentra en
obstculo. Para esto se utilizaron varias sentencias
condicionales [If-Then]-[ElseIf-Then]-[EndIf]. Otra
funcin inmersa en la interrupcin fue la de escribir en
la EPROM, con el comando EWrite, la secuencia
Giro, nmero de pasos, fin. Cada uno de estos
segmentos ocupa 4 bytes correspondientes a 3
caracteres (der o izq) y el carcter nulo, variable
DWord y nuevamente 3 caracteres y el carcter nulo.

serial que brinda el plug-in de PROTON-IDE. Si el


carcter es 8, 2, 4 o 6 el robot se mover hacia
delante, hacia atrs, hacia la izquierda o hacia la
derecha respectivamente y adems muestra en una
pantalla LCD la direccin en la que se realizara el
movimiento. En este modo se utiliza el comando
HSerIn. Obsrvese en la simulacin en PIC simulator,
como al enviar un carcter, este entra en la opcin que
le corresponde y realiza las funciones programadas:

Figura 16. Simulacion del Modo 2


Segunda
Opcin

Primera
Opcin

Recibir por la
USART

si

Mover hacia
adelante
Incrementar pasos

Avanza hacia
delante

Carcter igual a 8?

no
si

no

Avanza a la
izquierda

Carcter igual a 4?

Obstaculo?

no
si

si

Derecha

Direccin

Avanza hacia
atras

Carcter igual a 2?

no

Izquierda
si

Grabar en la
EPROM
PASOS + GIROS

Grabar en la
EPROM
PASOS + GIRO

Actualizar las
direcciones de la
EPROM

Actualizar las
direcciones de la
EPROM

Retroceder y Girar
a la izquierda

Retroceder y Girar
a la derecha

Avanza a la
derecha

Carcter igual a 6?

Borra pantalla
Muestra por LCD
la Direccin

Principal

Figura 16. Diagrama de flujo Modo 2


Principal

Figura 15. Diagrama de flujo Modo 1


El segundo modo de operacin da la opcin de
comunicarse con el PIC a travs de la interfaz serial
para elegir el movimiento del robot. Para ello se enva
un carcter a travs de la interfaz de comunicacin

El tercer modo de funcionamiento corresponde al


clculo de la distancia en pasos tomando los datos que
fueron almacenados en la EPROM. El programa
verifica el primer carcter almacenado en la EPROM, si
no es f incrementa la direccin en 4 locaciones y lee 4
bytes como una variable DWord, luego incrementa la
direcciones en cuatro locaciones mas y repite el proceso
hasta que encuentra la f. Las cantidades que se leen

desde la EPROM pasan a una variable acumuladora que


se encargara de recibir el resultado de la distancia.
Adems el resultado se manda a imprimir en la LCD.
En esta seccin se usan los comandos ERead,
Condicionales [If-Then]-[ElseIf-Then]-[EndIf] y ciclos
For-Next. Vase la simulacin de este modo a
continuacin:

Por ultimo el MODO 4, el cual se mover


autnomamente y censara una variable analgica, la
cual se muestrear y cuantificar cada 50us con 10 bits
de resolucin. El comando usado es ADIn y se graba la
salida del ADC en la variable analgico, que luego es
llevada a porcentaje. Por ultimo se muestra el valor
porcentual en la LCD y se enva desde el PIC a la PC
por el puerto serial usando el comando HSerOut. A
continuacin se muestran las capturas de pantalla de la
simulacin.

Figura 17. Simulacion del Modo 3


El estado de la variable que cuenta los pasos en el
momento de activar el modo era 87 en hexadecimal. Por
lo tanto: 0X87 + 0X47 + 0X16 + 0X1D + 0X1A +
0X18
+
0X1F
debe
ser
igual
a
135+71+22+30+26+24+31 en decimal, lo cual es
idnticamente igual a 339 pasos en total.

Figura 18. Diagrama de flujo Modo 3

Figura 19. Simulacin del Modo 4

de diferentes tecnologas como la de actuadores,


sensores, materiales de construccin, componentes.
Es importante destacar que el proyecto en todo
momento
tuvo
Enfoque
Pedaggico.
Las
consideraciones realizadas a lo largo del desarrollo del
presente proyecto se han orientado para que sirvan de
ayuda a futuros proyectos alternativos o de mejora del
diseo presentado.
Tambin es resaltante observar que se ha intentado
enfocar cada mdulo significativo del desarrollo como
un todo, con una funcionalidad clara. Se han establecido
as diferentes niveles de abstraccin y funcionamiento,
consiguiendo analizar de manera profunda, general e
independiente cada uno de ellos.
Por otro lado tambin se busc que los materiales
de construccin, las herramientas manipulacin de los
mismos, los componentes electrnicos (microcontrolador, conectores), etc. fueran econmicos y de
fcil adquisicin.

BIBLIOGRAFIA
[1] J. H. ANDREAE. Associative learning for
a robot intelligence. Inerial College Press, 1998.

Figura 20. Diagrama de flujo del Modo 4


CONCLUSIONES
El propsito del diseo se centra en la robtica
mvil, y ms concretamente en la micro-robtica cuya
funcionalidad bsica es la de caminar. La eleccin del
modelo y cantidad de servomotores se justificaron a
travs de un estudio del conjunto de los movimiento de
la extremidad. Adems, a travs de esta tcnica se logra
la implementacin de un robot caminante, utilizando la
cantidad mnima de servomotores posibles.
Adems se present la informacin referente a las
herramientas de diseo que se emplearon para el
desarrollo de cada una de las partes, reflejando las
experiencias y simulaciones que se obtuvieron en su
momento con cada una de ellas.
Como aportacin se establecen dos aspectos
fundamentales; el desarrollo de una arquitectura general
para este tipo de diseos, y la construccin de un
prototipo de micro-robot caminante de seis
extremidades con posibilidades de expansin, a travs

[2] Jose M ANGULO, Susana ROMERO,


Igncio ANGULO. Micro-robtica. Paraninfo.
Espaa. 1999.
[3] K. ASADA. Robot analysis and Control.
Wiley-Interscience 1992.
[4] Antonio BARRIENTOS. Fundamentos de
Robtica. McGraw Hill, 1999
[5] Soledad DELGADO SANZ. Robots que
caminan. Departamento de Arquitectura
[6] Luis DAZ VILLANUEVA. Diseo,
implementacin y construccin de extremidades
para micro-robots caminantes. Departamento
de Arquitectura y Tecnologa de Sistemas
Informticos, Facultad de Informtica de la
Universidad Politcnica de Madrid, 2002.
[7] John IOVINE. Pic Robotics -- A Beginner's
Guide To Robotic. McGraw-Hill. 2004

Anda mungkin juga menyukai