Professional Documents
Culture Documents
Introduccin
Hexpodo Autmata es una creacin de tipo artificial la cual se encuentra destinada a
realizar diversas funciones, las cuales deben ser comandadas por un sistema de control que debe
tener la caracterstica de ser lo suficientemente robusto para poder tomar decisiones adecuadas
ante la gran gama de situaciones a que puede estar sometido en su desempeo.
Para el caso particular del Hexpodo este debe cumplir en una primera instancia con la
condicin de poder dezplazarse de forma fluida y elegante por una superficie lo ms regular
posible, realizando coordinadamente el movimiento de caminar hacia adelante y hacia atrs
dependiendo como la situacin lo amerite. En su desplazamiento este autmata debe salvar de
forma adecuada los obstculos que se le puedan presentar como lo pueden ser principalmente los
de tipo slidos en forma frontal, ejecutando alguna estrategia de control para lograr continuar su
camino, el autmata tambin debe verse enfrentado a la misin de recibir estmulos luminosos y
tomar ciertas decisiones de acuerdo a la estrategia de control que se este ejecutando dependiendo
directamente de las cantidades de luz o sombra que este est recibiendo. Cuando toda esta gama
de limitantes se conjugan en una sola, nos veremos enfrentados a la tarea de disear una rutina
de control compuesta principalmente por software y en nivel menor de hardware para lograr que
este modelo se desplace en forma armnica. Las etapas que se han planteado anteriormente se
han tratado de ir solucionando de forma sistemtica y gradual para as llegar a la armona final, es
de importancia que la filosofa de trabajo es la de quemar etapas por separado e ir probando
peridicamente las diversas partes que al unirlas formaran y darn paso al resultado final. No se
puede realizar desde un principio un solo montaje esperando resultados ptimos de forma
inmediata ya que ello puede desembocar en una desesperacin crtica la cual no aportara en
nada al resultado, es obvio que la metodologa de trabajo experimentada por este grupo de trabajo
fue la de evaluar en una primera instancia problemas menores y complejidad mnima para as
luego de previas sesiones de trabajo y estudio arduo ir solucionando instancias superiores.
La caracterstica fundamental de trabajo es que a medida que se quemaban etapas se
visualizaba que el objetivo final se aclaraba y se tornaba cada vez ms realizable, considerando
siempre las nuevas ideas que por parte de los instructores florecan y que siempre tratamos de
darles una respuesta lo ms adecuada posible.
Sensores LDR : Corresponden a los ojos del hexapodo. Estos sensores son tipo resistivo,
variando su valor ohmico a medida que aumente o disminuya la intensidad de la luz.
Malla divisora de voltaje : Corresponde al circuito basico resistivo que realiza la conversion
Ohm/ voltaje.
Circuito Oscilador : Circuito que genera una frecuencia de oscilacion para que pueda trabajar
el microcontroaldor. La oscilacion se realiza con una malla RC de valores diseados.
Sensores de choque : Correspondientes a las antenas del hexapodo. Cada antena esta en
forma independiente a un voltaje positivo entregados por el microcontrolador y rodeadas por
un anillo que esta a tierra. La idea del choque es que en el momento en que se realiza, se le
entregue un cero a microcontrolador el cual ejecuta una rutina programada.
Servos 1, 2, 3 : Servo motores, que determinan el paso del hexapodo respondiendo a la seal
de control que entrega el microcontrolador.
Sensores LDR :Este bloque esta compuesto por dos sensores de tipo LDR correspondientes a los
ojos del hexapodo. Estos dispositivos aumentan o disminuyen su valor ohmico dependiendo de la
intensidad de la luz. El esquema del dispositivo es el que se muestra a continuacion:
Junto con estos sensores se diseo una malla de adaptacion, que entrega un valor en
voltaje al microcontrolador en proporcion a la intensidad de la luz.
La implementacion se diseo en un circuito impreso en forma de una cabeza de hormiga
con valores de resistencias adecuados para una correcta conversion analoga digital.
1
Como componente fundamental de este circuito se utilizo una malla RC de valores diseados.
Esta malla proporciona la frecuencia de trabajo del microcontrolador Como se muestra en la
figura.
Figura 2.
Tensin de alimentacin.
Corriente de salida
Radio de Giro
4.8 6 vdc.
25 mA.
Entre 45 y +45 grados medidos desde su
posicin de referencia.
ellos llegue en forma integra al servo y as mantener al servo durante un pequeo instante de
tiempo en una y otra posicin, para as realizar el juego de movimientos necesarios para desplazar
al Hexpodo.
Como el Hexpodo consta de 6 extremidades o patas, la dos delanteras junto con las dos
traseras, deben realizar movimientos armnicos y coherentes por lo cual el dato que
suministramos a ambos siempre ser el mismo, es decir siempre mandamos primero los pulsos de
1.0 msg y luego los de 2.0 msg para as avanzar hacia delante, las extremidades medias , es decir
las dos patas centrales reciben informacin similar a las anteriores, la cual es igual cuando
avanzamos hacia delante y al revs cuando queremos retroceder, la siguiente figura representa la
seal de PWM necesaria para lograr el desplazamiento hacia delante y hacia atrs las cuales
estn debidamente explicadas.
Figura 5. Seal de PWM que se hace llegar a los servo 1 y servo 3 coherentemente
para realizar movimientos tanto hacia delante como hacia atrs.
Figura 6. Seal de PWM que se le hace llegar las dos patas centrales (servo2)
para realizar movimientos solo hacia delante.
Figura 7. Seal de PWM que se hace llegar al servo 2 para realizar movimiento exclusivamente
hacia atrs.
De las figuras anteriores apreciamos claramente que para realizar el movimiento hacia
atrs solo debemos alterar el movimiento de las patas centrales ya que son ellas quienes le dan el
apoyo al Hexpodo para su avance y las otras cuatro son las que le dan el impulso de avance.
La lgica de control para el desplazamiento hacia delante es la que refleja el siguiente
diagrama de flujo:
Figura 8.
Como podemos apreciar de el diagrama de bloques anterior lo nico que realizamos es a
partir de una predefinida rutina de retardos generar nuestro PWM, hacerlo llegar a los servos
correspondientes a travs de los pines del PIC (microcontrolador) que hemos definido como Out,
luego de lo cual generamos nuevamente el PWM y lo sacamos por el puerto de salida (pines de
salida), esta accin es de carcter cclica por lo cual tendremos en esta instancia al Hexpodo
siempre caminando hacia delante. Es obvio que el autmata debe enfrentar ciertos problemas en
su caminar como lo es el choque con un obstculo por lo cual lo siguiente es definir una estrategia
de control que se encargue de hacer retroceder al Hexpodo por un cierto intervalo de tiempo y
luego de ello continuar su camino, durante el intervalo en que se encuentra retrocediendo este
movimiento tiene un cierto giro gracias al cual le permitir evadir el obstculo. Para detectar el
supuesto obstculo hemos implementado en la cabeza del autmata un par de sensores de
choque los cuales los hemos fabricados con algunas piezas mecnicas y cableados al circuito de
control que llega a los pines de lectura de PIC, el circuito y sensores que realizan esta accin se
muestran a continuacin:
Figura 9.
Figura 10.
El bloque donde se consulta si existe choque o no es interesante ya que se realiza un
manejo de bits a bits, la lgica para tomar la decisin se explica con el siguiente diagrama de
bloques.
Vemos aqu que la operacin que se ejecuta para desencadenar el retroceso est basado
principalmente en el uso de instrucciones de carcter condicionada, segn lo visto anteriormente y
luego de ser ejecutada en la prctica el Hexpodo retrocede cumpliendo nuestros requerimientos,
y es por ello que a continuacin mostramos en detalle la descripcin mediante diagrama de flujo
de la rutina de control para retroceder enclavando esta accin mediante la generacin de un
Monoestables, diseo por software:
Donde:
Rs
R th = ( R s + R 2 ) // LDR + R 1
Cuando LDR 50
Considerando Rs 0
R 2 // LDR + R 1 10K
R 2 LDR
+ R 1 10K
R2 + LDR
50 R 2
+ R 1 10K
R 2 + 50
si R 2 = 1K
50K
+ R 1 10K R1 10K 47.62 R 1 9952.38ohm
1050
Cuando LDR 1M
Considerando Rs 0
1M R 2
+ R 1 10K
1M + 50
1 e9
si R 2 = 1K
+ R 1 10K R1 10K 999.95 R 1 9000.05ohm
1000050
Como apreciamos de las ecuaciones anteriores hemos obtenido dos rangos donde se
puede ubicar el valor de la resistencia R1, para nuestros efectos consideraremos que el valor a
utilizar es el de 9K, por lo tanto los valores finales con los cuales montaremos en placa los dos
circuitos que adaptan la impedancia de los sensores de luz (es un circuito por cada sensor de luz),
son de:
R1=1K.
R2=9K.
Del diagrama de flujo anterior vemos una seria de configuraciones tanto de I/O, como de
definir si la variable es de tipo analgica o digital, todo ese detalle se especificar en los anexos ya
que es all donde se muestran a cabalidad y en detalle los programas realizados, en este caso
cabe mencionar y explicar la importancia de la consulta btfsc adcon0, go donde lo que se pregunta
es si la conversin culmin o no y en el momento en que esto ocurra el resultado se reflejar en el
puerto destinado a salida, siguiendo realizado la conversin A/D de forma cclica.
Gracias a este pequeo programa probamos que el mdulo de conversin A/D funciona de
manera correcta, a continuacin mostraremos los resultados obtenidos luego de realizar la
conversin de un canal en particular, mostrando la codificacin obtenida en 8 bits, de una seal
luminosa que variaba entre 0 y 5vdc.
Tensin de entrada(volts) B7 B6
0
0
0
0.1
0
0
0.2
0
0
0.3
0
0
0.4
0
0
0.5
0
0
0.6
0
0
0.7
0
0
0.8
0
0
0.9
0
0
1.0
0
0
1.1
0
0
1.2
0
x
1.4
0
1
1.6
0
1
1.8
0
1
2.0
0
1
2.1
0
1
2.2
0
1
2.3
0
1
2.4
0
1
2.5
1
0
2.6
1
0
2.7
1
0
2.8
1
0
2.9
1
0
3.0
1
0
3.2
1
0
3.4
1
0
3.6
1
0
3.8
1
1
4.0
1
1
4.2
1
1
4.4
1
1
4.6
1
1
4.8
1
1
5.0
1
1
x: dont cares
B5 B4 B3 B2 B1 B0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
x
0
1
1
1
0
0
1
0
0
0
0
x
1
0
0
1
1
0
1
0
1
0
1
x
1
1
0
0
1
1
1
1
1
0
0
x
1
1
1
1
0
0
x
x
x
x
x
x
0
0
1
1
0
x
0
1
0
1
0
0
1
0
0
0
0
x
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
x
0
0
1
0
x
x
0
x
x
x
x
x
0
1
0
1
1
0
0
1
0
1
1
1
x
x
x
x
x
x
1
0
1
0
0
1
1
1
0
1
0
x
1
1
1
1
1
0
0
0
1
0
x
x
0
1
0
0
0
0
0
1
1
1
0
0
1
0
x
x
x
x
1
1
0
0
0
1
1
1
1
1
0
x
1
1
1
1
1
1
Vemos la exactitud de un conversor de 8 bits como con el que en este caso contamos, se
aprecia fielmente que en zonas de mxima intensidad por ende mnima tensin de entrada en el
pn de entrada anloga la conversin es 00h, en zonas medias obtenemos el valor de f 0h y en
regiones de mxima obscuridad encontramos un resultado de f fh.
Ahora, luego de esta prueba preliminar en cuanto a la conversin A/D tomaremos
decisiones de acuerdo a niveles luminosos predeterminados y en torno a ellos realizaremos
rutinas de control especficas, es decir mostraremos el diagrama de flujo que representa el
programa que se encargar de comandar el caminar del Hexpodo hacia atrs en presencia de luz
y hacia adelante en presencia de obscuridad, cabe recordar que estos niveles son niveles medios
ya que nunca trabajaremos casi en los extremos.
diagrama de flujo adjunto existen dos conversiones de parada debido a que se les pregunta a
ambos sensores de luz si alguno de ellos a llegado a la zona predeterminada, si as no fuese el
autmata sigue dezplazndose y realizando cclicamente todas sus rutinas de sensado para en
algn momento detener su marcha, momento en el cual ha encontrado el objetivo. El diagrama de
flujo mostrado es el asociado a la bsqueda de obscuridad, para el caso de la bsqueda de zonas
luminosas el programa solo vara en algunas sentencias, ambos programas y todos los asociados
a algn diagrama de flujo anteriormente mostrado se muestran en detalle en el anexo.
Conclusiones
La experiencia asignada al grupo en cuestin fue desarrollada de la forma ms sistemtica
posible y con la responsabilidad que la asignatura amerita.
Han quedado algunas situaciones que principalmente por falta de tiempo no fueron
desarrolladas, ellas son:
a) Desarrollar un sensor de piso de tipo contacto con la finalidad de que el Hexpodo pueda
dezplazarse sobre una superficie con limites u elevada, para que este no caiga.
b) Implementar la referencia de la seal analgica mediante hardware para as solo con un
pequeo potenciometro graduarla a voluntad sin la necesidad de cambiar programas a
cada instante.
c) Optimizar de la forma ms adecuada la generacin de PWM, siempre mediante software,
para as evitarnos la gran cantidad de memoria utilizada en lneas extremadamente
repetitivas y para la visin de un programador con experiencia intiles, pero para nosotros
de 100% de resultados ptimos.
d) Realizar un filtro mediante software, el cual nos permita discriminar con un mayor grado
de fidelidad tensiones resultantes de la conversin.
e) Realizar una mayor discriminacin entre los resultados de la conversin de cada ojo
(sensor de luz) por separado, para as saber si girar a la izquierda o derecha en la
bsqueda ms rpida de nuestro objetivo, ya sea luminosidad u obscuridad.
f) Implementar una vuelta ms ptima en cuanto al radio de giro, es decir tratar a partir de la
experiencia ya adquirida lograr una vuelta elegante y coherente que cuente con un radio
de giro menor que el actual.
g) Optimizar en su globalidad el o los programas para as con la memoria disponible por este
microcontrolador , realizar rutinas de control de un nivel mucho mayor.
Los objetivos planteados en un comienzo tanto por profesores, como los que se fueron
presentando en el camino se han logrado casi en su totalidad y si alguno no lo fue totalmente
logrado solo fue por falta de tiempo o por que surgi en una fecha ya muy avanzada, cuando
las prioridades eran otras.
Para una aplicacin de esta ndole sera conveniente la asignacin de un microcontrolador un
poco ms poderoso en cuanto a la regin de memoria disponible para propsito general,
siendo solo una alternativa que incluyera mdulos de generacin de PWM, ya que eso
ahorrara casi 1 mes de trabajo, pero traera como consecuencia el no dominio del tema tan a
fondo como creemos que lo hemos logrado.
Hemos aprendido y experimentado en todo tipo de situaciones tanto de programacin,
electrnica digital, anloga y parte mecnica donde en la mayora de los casos solucionamos
los inconvenientes con la ayuda de la experiencia, apoyo docente, de compaeros y de la
buena y mala suerte.
El tiempo disponible este semestre fue extremadamente limitado creyendo que para una
asignatura del nivel de Diseo Electrnico es bastante poco.
Existen algunas conclusiones de tipo especificas orientadas principalmente a situaciones
enfrentadas, ellas las resumimos en las siguientes
a) Sera conveniente que para enfrentar una situacin como la desarrollada que la asignacin
de PWM fuese independiente para par de extremidades, con esto pensamos que se
lograra una mejor armona en los movimientos y un mejor radio de giro, nos referimos a
un radio de giro menor ya que por casualidad lo experimentamos una vez y result muy
bien.
b) Tratar de realizar la oscilacin del microcontrolador con un circuito que conste de un
oscilador de cristal ya que segn al literatura es mucho ms fino el resultado obtenido para
las aplicaciones que as lo requieren y siendo este caso una de ellas, ya que
principalmente la generacin de PWM se hace un poco inestable cuando no se tiene la
experiencia adecuada.
c) Cuando se comienza a trabajar con frecuencia altas del orden superior a 1Mhz, se hace
indispensable montar lo antes posible los circuitos en placas impresas con la menor
cantidad de soldaduras y cobres al aire ya que producen distorsiones en las seales que a
simple vista no tienen razn de ser.
d) La familia de microcontroladores PIC es conveniente segn nuestro punto de vista
programarlos en lenguaje Asembly ya que existe bastante literatura en la cual apoyarse y
el set de instrucciones con el cual cuentan es bastante amigable y de fcil comprensin.
e) Cuando se realiza la estructura del programa y se cuenta con muchas rutinas de retardo
es conveniente colocarlas todas al comienzo como cabeceras de programacin ya que es
muy probable que si no se hace as que el programa caiga en lups (ciclos) y no salga
nunca de ellos, esto lo descubrimos solo probando diversas posiciones no es para nada
una explicacin cientfica pero s prctica y en estos casos son muy importantes tenerlas
en cuenta.
f) Una opcin muy recomendada es el uso de las fuentes de interrupcin externas o que el
microcontrolador brinda mediante software, es conveniente que para una nueva aplicacin
sean consideradas.
La experiencia desarrollada fue bastante entretenida, nos a dejada mucho por aprender pero
satisfechos por lo logrado y esperando profundizar en los temas abordados.
Bibliografa y referencias
[1] Naranjo, J., "Microcontroladores PIC 16C71", Electronica & computadores CEKIT, numero
7,1996.
[2] Naranjo, J., "Rutinas de Programacion PIC", Electronica & computadores CEKIT, numero 5,
1995.
[3] Huircan, J.,"Apuntes de Herramientas de Programacion ", Depto. Ingeniera Elctrica, 1996.
[4] Duque, E.,Caracteristicas Especiales de los PIC, Electronica & computadores CEKIT, 1996.
[5] http://www.geocities.com/Siliconvalley/way/5807/.
[6] http://www.hobby-electronics.com/
[7] http://www.picpoint.com
[4] Microchip. http://www.microchip.com
Anexos
*
Listado de programas :
a) Programa 1: Avance hacia delante, de acuerdo a un nivel de Sombra, para y da vuelta derecha: Somb
b) Programa 2: Rutina de Choque: Choque
c) Programa 3: Rutina que busca Luz: Bluz
d) Programa 4: Rutina que busca Sombra: Bsomb
e) Programa 5: Avance hacia delante o hacia atrs de acuerdo a un cierto nivel luminoso: Luz
f) Programa 6: Avance hacia delante o hacia atrs de acuerdo a un cierto nivel de Sombra: Sombra
Se Adjuntan en un Diskette.