Vous êtes sur la page 1sur 18

Informe Final de Diseño Electrónico

Rodik Matamala Toloza Carrera: Ingeniería Civil Electrónica


Mario Maragaño Uribe Carrera: Ingeniería Civil Electrónica

Introducción

Hexápodo Autómata es una creación 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 característica de ser lo suficientemente robusto para poder tomar decisiones adecuadas
ante la gran gama de situaciones a que puede estar sometido en su desempeño.
Para el caso particular del Hexápodo este debe cumplir en una primera instancia con la
condición de poder dezplazarse de forma fluida y elegante por una superficie lo más regular
posible, realizando coordinadamente el movimiento de caminar hacia adelante y hacia atrás
dependiendo como la situación lo amerite. En su desplazamiento este autómata debe salvar de
forma adecuada los obstáculos que se le puedan presentar como lo pueden ser principalmente los
de tipo sólidos en forma frontal, ejecutando alguna estrategia de control para lograr continuar su
camino, el autómata también debe verse enfrentado a la misión de recibir estímulos 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 diseñar una rutina
de control compuesta principalmente por software y en nivel menor de hardware para lograr que
este modelo se desplace en forma armónica. Las etapas que se han planteado anteriormente se
han tratado de ir solucionando de forma sistemática y gradual para así llegar a la armonía final, es
de importancia que la filosofía de trabajo es la de quemar etapas por separado e ir probando
periódicamente las diversas partes que al unirlas formaran y darán 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 desesperación crítica la cual no aportaría en
nada al resultado, es obvio que la metodología de trabajo experimentada por este grupo de trabajo
fue la de evaluar en una primera instancia problemas menores y complejidad mínima para así
luego de previas sesiones de trabajo y estudio arduo ir solucionando instancias superiores.
La característica fundamental de trabajo es que a medida que se quemaban etapas se
visualizaba que el objetivo final se aclaraba y se tornaba cada vez más realizable, considerando
siempre las nuevas ideas que por parte de los instructores florecían y que siempre tratamos de
darles una respuesta lo más adecuada posible.

Diseño a nivel de Bloques

Como diagrama general de la solucion propuesta, es el que se muestra en la Figura1,


cada bloque en forma general sera explicado a continuacion.
Figura 1. Diagrama general de bloques

Cada bloque ya sea de entrada o salida interactua con el bloque central que es el
microcontrolador. El hexapodo como estructura posee tres servo en forma independiente
enumerados del uno al tres. Siendo el servo 2 el de la posicion central.

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

q Malla divisora de voltaje : Corresponde al circuito basico resistivo que realiza la conversion
Ohm/ voltaje.

q 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 diseñados.

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

q Microcontrolador(Pic 16C71) : Dispositivo programable que posee un conjunto de instrucciones


y capacidad de memoria predeterminada. Posee puertos de entradas y salidas e incluye un
convertidor Analogo a Digital.

q Servos 1, 2, 3 : Servo motores, que determinan el paso del hexapodo respondiendo a la señal
de control que entrega el microcontrolador.
Especificación de componentes por módulo

1 Modulo de sensores LDR y Malla divisora de voltaje:

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 diseño una malla de adaptacion, que entrega un valor en
voltaje al microcontrolador en proporcion a la intensidad de la luz.
La implementacion se diseño en un circuito impreso en forma de una cabeza de hormiga
con valores de resistencias adecuados para una correcta conversion analoga – digital.

1 Circuito Oscilador y Microcontrolador PIC:

Como componente fundamental de este circuito se utilizo una malla RC de valores diseñados.
Esta malla proporciona la frecuencia de trabajo del microcontrolador Como se muestra en la
figura.

Figura 2.
Generación de PWM para realizar movimientos apoyándonos en servo
motores de la línea Hi-Tec, modelo:

Cuando nos enfrentamos al desafío de lograr uno de los primeros objetivos, luego de
realizar el estudio profundo y detallado del problema, es el de lograr mover toda la estructura ya
montada con la generación de PWM (modulación por ancho de pulso) que tiene la más alta
prioridad para solucionarla pronto y de forma óptima, por lo cual esta la decidimos realizar
mediante software para así aprovechar de mejor forma las potencialidades que el microcontrolador
nos brinda teniendo la consideración que este PIC no contaba con módulos generadores de PWM,
por lo cual es de total invención propia la forma de generación que hemos adoptado.
Esta señal de tipo periódica llamada PWM, será generada mediante un programa que más
adelante mostraremos y la cual será hecha llegar a los diversos servos con los que contamos para
así lograr un desplazamiento armónico y agradable a la vista, a continuación mostramos algunas
características de los servos ocupados para así introducirnos en su funcionamiento.

Un servo motor es una dispositivo de tipo electromecánico el cual responde a estímulos


(señal de tipo eléctrica), los cuales deben tener características extremadamente bien definidas,
nos referimos a la señal de estímulo que lo logra hacer funcionar, que se define como PWM, esta
debe ser una señal de la forma que muestra la figura, en cuanto a las señales de alimentación y
de salida que este dispositivo cuenta son las siguientes.

Tensión de alimentación. 4.8 – 6 vdc.


Corriente de salida 25 mA.
Radio de Giro Entre –45 y +45 grados medidos desde su
posición de referencia.

Figura 3. Conector de Servo Motor


Figura 4. Señales y rangos aceptables por los servo motores.

La señal mostrada anteriormente es la única forma de onda que el o los servos


(genéricamente), reconocen para así lograr en ellos un movimiento ideal. Es interesante
mencionar que dichas formas deben respetarse en rigor ya que un incremento o decremento de
los tiempos mostrados trae de inmediatamente resultados erróneos.
En el caso de los servos usados y la mayoría de las familias de servos que existen los
pulsos representan lo siguiente:

Pulso de duración 1.0 msg

Este pulso que posee la duración ya descrita se encarga de posicionar el servo en la


posición de –45 grados respecto de su centro, es decir realiza un giro hacia la izquierda respecto
de su centro.

Pulso de duración 1.5 msg

Este pulso que posee la duración ya descrita se encarga de posicionar el servo en posición
de equilibrio o centro el cual puede ser regulado a voluntad, de acuerdo a un pequeño manejo
técnico muy cuidadoso.

Pulso de duración 2.0 msg

Este pulso que posee la duración ya descrita se encarga de posicionar el servo en la


posición de +45 grados respecto de su centro, es decir realiza un giro hacia la derecha respecto de
su centro.

Es importante la duración o intervalo de tiempo que existe entre la llegada de pulsos al


servo, como lo muestra la Figura 4. esta debe durar entre 15 y 20 msg, siendo éste el tiempo
necesario para que el servo este preparado para realizar un segundo o siguiente movimiento, es
decir es el mínimo tiempo de respuesta que se le debe dar al servo para variar en forma adecuada
su posición original.

Obs. Con la última consideración hecha es más que importante volver a resaltar que la duración
erronea de un pulso o del intervalo de respuesta provocaría en la práctica vibraciones en el servo
que representarían un cambio no definido en su proceder.

Con la anterior descripción del movimiento de los servos, los cuales son fundamentales
para nuestro accionar es casi obvio que la generación de PWM que nosotros hemos implementado
es realizar de forma alternada la generación de pequeños pulsos de duración tanto de 1.0 como de
2.0 msg en forma alternada haciéndolos llegar al pín de entrada de color amarillo que representa
entrada de PWM en el servo. El diagrama de bloques que representa el software necesario para la
generación de estos se muestra a continuación, cabe la consideración que hemos tenido que
mandar varios pulsos de 1.0 y luego varios de 2.0 msg para así asegurar que al menos uno de
ellos llegue en forma integra al servo y así mantener al servo durante un pequeño instante de
tiempo en una y otra posición, para así realizar el juego de movimientos necesarios para desplazar
al Hexápodo.
Como el Hexápodo consta de 6 extremidades o patas, la dos delanteras junto con las dos
traseras, deben realizar movimientos armónicos 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 información similar a las anteriores, la cual es igual cuando
avanzamos hacia delante y al revés cuando queremos retroceder, la siguiente figura representa la
señal de PWM necesaria para lograr el desplazamiento hacia delante y hacia atrás las cuales
están debidamente explicadas.

Figura 5. Señal de PWM que se hace llegar a los servo 1 y servo 3 coherentemente
para realizar movimientos tanto hacia delante como hacia atrás.

Figura 6. Señal de PWM que se le hace llegar las dos patas centrales (servo2)
para realizar movimientos solo hacia delante.

Figura 7. Señal de PWM que se hace llegar al servo 2 para realizar movimiento exclusivamente
hacia atrás.
De las figuras anteriores apreciamos claramente que para realizar el movimiento hacia
atrás solo debemos alterar el movimiento de las patas centrales ya que son ellas quienes le dan el
apoyo al Hexápodo para su avance y las otras cuatro son las que le dan el impulso de avance.
La lógica 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 través 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 acción es de carácter cíclica por lo cual tendremos en esta instancia al Hexápodo
siempre caminando hacia delante. Es obvio que el autómata debe enfrentar ciertos problemas en
su caminar como lo es el choque con un obstáculo por lo cual lo siguiente es definir una estrategia
de control que se encargue de hacer retroceder al Hexápodo 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 obstáculo. Para detectar el
supuesto obstáculo hemos implementado en la cabeza del autómata un par de sensores de
choque los cuales los hemos fabricados con algunas piezas mecánicas y cableados al circuito de
control que llega a los pines de lectura de PIC, el circuito y sensores que realizan esta acción se
muestran a continuación:

Figura 9.
La filosofía de acción es la siguiente, cuando el autómata se encuentra caminando el o los
bits de estados que representan en sí el estado en que se encuentra el sensor estarán en un
estado lógico alto, es decir de tensión + 5vdc y en cuanto el autómata haga contacto con un
obstáculo gracias a su sensor de choque, inmediatamente el bit o los bits de estado se colocarán
en estado lógico bajo o de 0 volt por un pequeño instante, esto representará que a ocurrido un
choque de tipo frontal por lo cual debemos evadir dicho obstáculo, se debe tener la gran
consideración que la duración del estado lógico de 0 volt dura solo mientras el sensor de choque
se encuentra en contacto con el supuesto obstáculo, luego inmediatamente que retrocedemos el
bits de estado vuelvo al estado lógico alto por lo cual para poder retroceder un intervalo suficiente
para lograr evadir el obstáculo debemos enclavar nuestra acción por un intervalo de tiempo
adecuado, este inconveniente lo hemos resuelto generando un Monoestables mediante software,
el diagrama de bloques que indica las acción a seguir tanto para caminar hacia delante y hacia
atrás en cuanto detectamos un obstáculo es el siguiente, los programas en su integridad se
muestran al final en los anexos.

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 lógica para tomar la decisión se explica con el siguiente diagrama de
bloques.
Vemos aquí que la operación que se ejecuta para desencadenar el retroceso está basado
principalmente en el uso de instrucciones de carácter condicionada, según lo visto anteriormente y
luego de ser ejecutada en la práctica el Hexápodo retrocede cumpliendo nuestros requerimientos,
y es por ello que a continuación mostramos en detalle la descripción mediante diagrama de flujo
de la rutina de control para retroceder enclavando esta acción mediante la generación de un
Monoestables, diseño por software:
Analizando el diagrama de flujo anteriormente mostrado vemos que la acción de
retroceder se ejecuta cuando alguno de los dos sensores de choque hace contacto con un
obstáculo, acción que dura lo que el programa demora en decrementar el valor del registro
“retroceder” rutina que puede variar en su duración quedando solamente sometida al valor a
decrementar, el puede ser elegido a voluntad.

Vemos hasta el momento la descripción completa de las diversas estrategias de control diseñadas
para generar movimientos armónicos y de una complejidad notable, estableciendo claramente las
características que deben tener el caminar tanto hacia atrás como hacia delante, ya manejando
bien estas estrategias de control nos introducimos en lo que es la respuesta de nuestro Hexápodo
ante estímulos de tipo luminosos estos son capturados gracias a la ayuda de dos sensores,
independientes uno del otro, de tipo “LDR” , estos sensores no son más que resistencias de tipo
variables que experimentan un cambio en su valor óhmico de acuerdo a la intensidad luminosa
que a ellas les llega.

Obs. De carácter muy importante es esta consideración según la data del microcontrolador
que estamos utilizando el cual trae incluido un conversor de tipo A/D, se debe tener la
consideración que la impedancia de entrada al pín configurado como entrada analógica debe ser
menor que 10 KΩ, por lo cual lo primero es realizar la prueba de los márgenes de resistencias que
manejaremos cuando nos enfrentemos a los niveles extremos de luminosidad.

1era Prueba realizada a los sensores “LDR”

La primera prueba a la cual se sometió a los sensores fue a la de determinar su rango de


respuesta en cuanto a valores extremos de luminosidad y ver cual era el valor de resistencia que
nos entregaba.

a) Para una situación de máxima obscuridad el valor de resistencia entregado por el sensor es de
aproximadamente 10 a 15 MΩ.

b) Para una situación de máxima intensidad luminosa el valor de resistencia entregado por el
sensor es de aproximadamente 40 a 50 Ω.
Debido a que estos valores son casi extremos y muy pocas veces nos veremos
enfrentados a estas situaciones para efectos de diseño nosotros hemos optado por movernos entre
los rangos de 50 a 1M Ω, siendo estos valores muy importantes en una primera instancia para
diseñar el circuito adaptador de impedancia para la entrada de tipo analógica que irá hacia el PIC,
para así cumplir con la restricción de fábrica que exige como máximo una resistencia de 10KΩ
para poder realizar una conversión adecuada. La siguiente figura muestra el circuito de adaptación
de impedancia que se utilizó para poder realizar una correcta conversión A/D
Donde:

Rs : Resistencia interna de la fuente de alimentación (5 vdc), en este caso la hemos


despreciado.
R1, R2: Resistencia a diseñar para cumplir con la restricción en condiciones de trabajo.
LDR : Sensor de luminosidad.
Rth : La hemos denominado resistencia de Thevenin, que tiene valor de 10 KΩ, resistencia de
entrada al pín de carácter analógico

Diseño para determinar los valores de R1 y R2.

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

50K
si R 2 = 1K ⇒ + 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Ω.

2da Prueba realizada a los sensores “LDR”

La finalidad de esta prueba es verificar que si con el diseño del circuito anterior logramos
realizar la conversión de la señal analógica capturada en primera instancia solo por LDR, para ello
debemos realizar un pequeño programa que se encargue de esta función ya que el mismo
microcontrolador realiza internamente la conversión A/D, recordemos que de ante mano ya hemos
aclarado quienes son los pines que se configuraran como entradas analógicas, a continuación
mostramos el diagrama de flujo que refleja el software necesario para realizar la conversión de
buena forma.

Del diagrama de flujo anterior vemos una seria de configuraciones tanto de I/O, como de
definir si la variable es de tipo analógica 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 conversión culminó o no y en el momento en que esto ocurra el resultado se reflejará en el
puerto destinado a salida, siguiendo realizado la conversión A/D de forma cíclica.
Resultados obtenidos a partir de la segunda prueba.

Recomendaciones para la mejora o ampliación SI corresponde.


Requerimientos de potencia. Rangos de operación y limitaciones.

Gracias a este pequeño programa probamos que el módulo de conversión A/D funciona de
manera correcta, a continuación mostraremos los resultados obtenidos luego de realizar la
conversión de un canal en particular, mostrando la codificación obtenida en 8 bits, de una señal
luminosa que variaba entre 0 y 5vdc.

Tensión de entrada(volts) B7 B6 B5 B4 B3 B2 B1 B0
0 0 0 0 0 0 0 0 0
0.1 0 0 0 0 1 0 0 1
0.2 0 0 0 0 1 0 1 1
0.3 0 0 0 1 0 0 1 1
0.4 0 0 0 1 1 0 0 x
0.5 0 0 0 1 1 1 0 0
0.6 0 0 1 0 0 0 0 x
0.7 0 0 1 0 0 1 1 0
0.8 0 0 1 0 1 0 1 x
0.9 0 0 1 1 0 0 1 1
1.0 0 0 1 1 1 0 0 x
1.1 0 0 1 1 1 1 0 0
1.2 0 x x x x x x x
1.4 0 1 0 0 1 1 0 x
1.6 0 1 0 1 0 1 0 0
1.8 0 1 1 0 0 0 0 x
2.0 0 1 1 0 1 0 1 0
2.1 0 1 1 0 1 1 1 1
2.2 0 1 1 1 0 1 0 1
2.3 0 1 1 1 1 0 1 1
2.4 0 1 1 1 1 1 1 0
2.5 1 0 0 0 0 1 0 x
2.6 1 0 0 0 1 0 x x
2.7 1 0 0 x x x x x
2.8 1 0 0 1 0 1 1 0
2.9 1 0 0 1 0 1 1 1
3.0 1 0 x x x x x x
3.2 1 0 1 0 1 0 0 1
3.4 1 0 1 1 0 1 0 x
3.6 1 0 1 1 1 1 1 0
3.8 1 1 0 0 1 0 x x
4.0 1 1 0 1 0 0 0 0
4.2 1 1 0 1 1 1 0 0
4.4 1 1 1 0 x x x x
4.6 1 1 1 1 0 0 0 1
4.8 1 1 1 1 1 1 0 x
5.0 1 1 1 1 1 1 1 1

x: don’t cares
Vemos la exactitud de un conversor de 8 bits como con el que en este caso contamos, se
aprecia fielmente que en zonas de máxima intensidad por ende mínima tensión de entrada en el
pín de entrada análoga la conversión es 00h, en zonas medias obtenemos el valor de f 0h y en
regiones de máxima obscuridad encontramos un resultado de f fh.
Ahora, luego de esta prueba preliminar en cuanto a la conversión A/D tomaremos
decisiones de acuerdo a niveles luminosos predeterminados y en torno a ellos realizaremos
rutinas de control específicas, es decir mostraremos el diagrama de flujo que representa el
programa que se encargará de comandar el caminar del Hexápodo hacia atrás 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.

En el diagrama de flujo anterior se puede apreciar que el movimiento del Hexápodo se


torna cada vez más complejo debido a que su desplazamiento se encuentra condicionado a varias
restricciones, como lo son los niveles luminosos a los cuales se enfrenta y además la posibilidad
siempre latente de chocar en forma frontal con un obstáculo al que obviamente debe evadir y
proseguir su camino. Cuando caemos ya sea en la decisión de caminar hacia adelante o hacia
atrás debemos recurrir al diagrama de flujo que mencionamos anteriormente, el cual considera
obviamente las posibilidades de choque.
Desarrollo de experiencia de búsqueda de zonas luminosas u obscuras
desencadenando la parada al encontrar objetivo.

Es importante mencionar que uno de los objetivos primordiales es la búsqueda de zonas


luminosas u obscuras y luego que lleguemos a ella debemos culminar nuestro recorrido, el
siguiente diagrama de flujo refleja el software que comanda dicha operación

Debido a la extensión de los programas el diagrama de flujo anterior es mucho más


compacto en cuanto a información que ya se ha mencionado en repetidas oportunidades como lo
son las rutinas de choque, las de retroceso y por supuesto las de avance frontal por lo cual solo las
hemos indicado sin mayor profundidad, cabe destacar la incorporación de que hace referencia a
una primera conversión, la finalidad de esta es la de enganchar al Hexápodo sobre un nivel de
tensión predeterminado (en el caso que se esté buscando obscuridad, recordando que mientras
más obscuro implica mayor tensión), ahora si estamos bajo dicha referencia el autómata deberá
girar hacia la izquierda para poder escanear en un radio de 180 grados y analizar el instante justo
en que se posiciona sobre la referencia, luego de quedar enganchado sobre la referencia
comienza la labor de buscar el estímulo correcto para parar, es decir llegar al lugar donde se
encuentra la intensidad predeterminada para ejecutar la parada, como se puede apreciar en el
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
autómata sigue dezplazándose y realizando cíclicamente todas sus rutinas de sensado para en
algún momento detener su marcha, momento en el cual ha encontrado el objetivo. El diagrama de
flujo mostrado es el asociado a la búsqueda de obscuridad, para el caso de la búsqueda de zonas
luminosas el programa solo varía en algunas sentencias, ambos programas y todos los asociados
a algún diagrama de flujo anteriormente mostrado se muestran en detalle en el anexo.

Conclusiones

Ø La experiencia asignada al grupo en cuestión fue desarrollada de la forma más sistemática


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 Hexápodo pueda
dezplazarse sobre una superficie con limites u elevada, para que este no caiga.
b) Implementar la referencia de la señal analógica mediante hardware para así solo con un
pequeño potenciometro graduarla a voluntad sin la necesidad de cambiar programas a
cada instante.
c) Optimizar de la forma más adecuada la generación de PWM, siempre mediante software,
para así evitarnos la gran cantidad de memoria utilizada en líneas extremadamente
repetitivas y para la visión de un programador con experiencia inútiles, 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 conversión.
e) Realizar una mayor discriminación entre los resultados de la conversión de cada ojo
(sensor de luz) por separado, para así saber si girar a la izquierda o derecha en la
búsqueda más rápida de nuestro objetivo, ya sea luminosidad u obscuridad.
f) Implementar una vuelta más ó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 aplicación de esta índole sería conveniente la asignación de un microcontrolador un
poco más poderoso en cuanto a la región de memoria disponible para propósito general,
siendo solo una alternativa que incluyera módulos de generación de PWM, ya que eso
ahorraría casi 1 mes de trabajo, pero traería 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 programación,
electrónica digital, análoga y parte mecánica donde en la mayoría de los casos solucionamos
los inconvenientes con la ayuda de la experiencia, apoyo docente, de compañeros y de la
buena y mala suerte.
Ø El tiempo disponible este semestre fue extremadamente limitado creyendo que para una
asignatura del nivel de Diseño Electrónico es bastante poco.
Ø Existen algunas conclusiones de tipo especificas orientadas principalmente a situaciones
enfrentadas, ellas las resumimos en las siguientes
a) Sería conveniente que para enfrentar una situación como la desarrollada que la asignación
de PWM fuese independiente para par de extremidades, con esto pensamos que se
lograría una mejor armonía 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 oscilación del microcontrolador con un circuito que conste de un
oscilador de cristal ya que según al literatura es mucho más fino el resultado obtenido para
las aplicaciones que así lo requieren y siendo este caso una de ellas, ya que
principalmente la generación 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 señales que a
simple vista no tienen razón de ser.
d) La familia de microcontroladores PIC es conveniente según 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 fácil comprensión.
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 programación ya que es
muy probable que si no se hace así que el programa caiga en lup’s (ciclos) y no salga
nunca de ellos, esto lo descubrimos solo probando diversas posiciones no es para nada
una explicación científica pero sí práctica y en estos casos son muy importantes tenerlas
en cuenta.
f) Una opción muy recomendada es el uso de las fuentes de interrupción externas o que el
microcontrolador brinda mediante software, es conveniente que para una nueva aplicación
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.

Bibliografía 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. Ingeniería Eléctrica, 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 atrás de acuerdo a un cierto nivel luminoso: “Luz “

f) Programa 6: Avance hacia delante o hacia atrás de acuerdo a un cierto nivel de Sombra: “Sombra “

*
Se Adjuntan en un Diskette.

Vous aimerez peut-être aussi