Beruflich Dokumente
Kultur Dokumente
MICROCONTROLADORES 2010
Integrantes:
Cassola Maximiliano
Serritella Sebastin
1
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Hoy en da estn conquistando el mundo y estn presentes en nuestra vida, en general. Se pueden
encontrar controlando el funcionamiento de diversos dispositivos como teclados de
computadoras, telfonos, hornos microondas , televisores, entre otros.
2
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Introduccin al Proyecto
El proyecto que se presenta a continuacin est relacionado a la Materia Optativa Taller de
Microcontroladores del ao 2010 de la facultad de Cs. Exactas de la UNICEN. Y como se introduce
en la seccin anterior, va a ser programando sobre microcontroladores.
La idea de ser aplicado a vehculos a radiocontrol viene dado a las limitaciones que presentan
actualmente los microcontroladores, principalmente las relacionadas a la potencia de clculo de
los mismos.
Se program este trabajo sobre un microcontrolador PIC modelo 18F4550. El cual pertenece a los
microcontroladores PIC18 de gama alta. Posee una arquitectura RISC (reduced instruction set
computer) de 16 bits longitud de instrucciones y 8 bits de datos. El modelo fue elegido teniendo
en cuenta las caractersticas especficas del dispositivo como Mdulos PWM, Conversores
Analgico-Digital, USART, adems por sus tipos de memorias, perifricos incluidos, ancho de
palabras, etc., necesarias para el funcionamiento del proyecto.
Controlar movimiento de servos: permite controlar los diferentes servos del vehculo para
moverlos segn el Angulo resultante a doblar.
Para navegar, se le debe cargar al proyecto una ruta o camino de puntos (sentencias NMEAS) la
cual indica el recorrido que se quiere realizar. Adems el proyecto utiliza un dispositivo GPS para
tomar sentencias NMEAS para determinar la posicin actual del mvil y realizar los clculos
correspondientes para su movilidad y navegacin.
(que hace y para que sirve o servira y si hay algn proyecto como este en la web
3
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
desventajas del MIcrocontrolador, direccionan poca memoris, son demasiado sansibles ala
electrostatica, aun con una memoria externa limitan su actividad a algo basico asi como su set de
instrucciones
seerte y espero que esto te sirva de algo
Una idea general de que es lo que hace el vehculo-dirigido es tratar de seguir una camino de
puntos GPS cargada previamente y sin chocarse con obstculos.
Para el direccionamiento se realizaron clculos matemticos en el que intervienen la ubicacin
actual y la ubicacin a la que desea dirigirse.
Y para esquivar los obstculos se utilizaron varios sensores de proximidad ubicados en lugares
claves del vehculo.
La realizacin de este proyecto podra servir para distintas aplicaciones dentro de la variedad de
vehculos no tripulados, en el que su utilizacin puede otorgar a la inteligencia militar el
reconocimiento de campo enemigo tanto para vehculos terrestres como areos.
Tambin en un futuro se podra utilizar para transporte de personas o de objetos ya que su alto
desarrollo de ir por el camino correcto y adems la forma de esquivar obstculos podra
proporcionar una gran ayuda para el hombre y algo que hoy en da se valoriza mucho es la
reduccin de costos, por lo que se podra ahorrar en un conductor. Sera algo as como un Piloto
automtico constante.
http://www.buenastareas.com/ensayos/Navegador-Gps-Microcontrolado/1457467.html
http://conexionelectronica.net/index.php?option=com_content&task=view&id=16&Itemid=2
http://issuu.com/todomicrostamp/docs/gps
4
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Una vez que se cargan los puntos de checkpoints, se conecta un dispositivo GPS en los pines
correspondientes al RS232 (PIN_C6 y PIN_C7) para que el mismo tome los datos NMEA actuales
del vehculo. Se debe desactivar el pulsador de checkpoint PIN_E0 para indicar que el dato que se
recibe por serie es proveniente del GPS.
Los datos que se cargan por los pines PIN_C6 y PIN_C7 para cualquiera de los dos casos (ruta de
checkpoint o dispositivo GPS) son sentencias NMEA, de las cuales se interpretan como vlidas las
de encabezado $GPRMC. El programa se encarga de tomar estos datos provenientes del puerto
serie, con una especie de autmata y guardarlos en forma de cadena de caracteres para que luego
se seleccionen los campos necesarios (latitud, longitud y sentido).
Una vez que se lee un dato del puerto serie proveniente del dispositivo GPS, se calcula el ngulo
entre el punto al que se debe llegar (checkpoint) y el punto obtenido recientemente por el
dispositivo GPS. Con el ngulo obtenido, se analizan los sensores del vehculo por si es necesario
cambiar el ngulo a doblar, en caso de que se detecten obstculos. Una vez calculado esto se
procede a mover los servos. El proceso comienza nuevamente recibiendo una nueva sentencia
NMEA por el dispositivo GPS y se repite hasta que se alcanzan todos los puntos de checkpoint
guardados.
5
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Estructuras Utilizadas
Para el desarrollo de este proyecto se decidi dividir y utilizar las siguientes clases como se
muestra a continuacin:
Automata.c: mquina de estados que toma los datos NMEA del rs232 y los guarda en
forma de cadena de caracteres.
Automata.h: almacena las estructuras y variables necesarias que utiliza la clase
autmata.c.
Gps.c: encargada de interpretar, leer y devolver los datos NMEA que guarda el autmata.
Gps.h: almacena las estructuras y variables necesarias que utiliza la clase Gps.c.
6
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
ngulos
Referencia a la funcin calcular del pseudocdigo del funcionamiento del proyecto. Calcula el
ngulo a doblar entre los datos NMEA.
Si la latitud resultante de la diferencia entre las latitud proveniente del checkpoint y del
dispositivo GPS es positiva entonces:
Si la latitud resultante de la diferencia entre las latitud proveniente del checkpoint y del
dispositivo GPS es negativa entonces:
7
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Sensores
Referencia a la funcin leer sensores del pseudocdigo del funcionamiento del proyecto. Dado el
ngulo a doblar y el valor de los sensores retorna el ngulo que se deben mover los servos.
8
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
El sensor tiene como salida un voltaje entre 0 y 3 voltios dependiendo de la distancia del
obstculo, pero este dato no es suficiente para saber a qu distancia est el objeto. Para ello
hemos recogido los siguientes puntos tomados de dicho sensor:
9
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
1.4 20
1.12 25
0.96 30
0.85 35
0.75 40
0.68 45
0.62 50
0.58 55
0.52 60
0.5 65
0.47 70
0.44 75
0.41 80
Estos datos son precargados en el proyecto sobre un arreglo, por lo tanto cuando se produce la
lectura de los sensores de proximidad se determina la distancia a un objeto si existe.
Consideramos ms apropiada la distancia de 40 cm. para alertar por un objeto ya que es una
distancia suficientemente grande para que el vehculo pueda doblar, igualmente este valor est
almacenado en una CTE y puede ser restaurado en cualquier momento de ser necesario.
10
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Las tcnicas que utilizamos para redireccionar el ngulo a doblar son las siguientes:
Si un objeto est a una distancia menor a 40cm. (detecta el objeto) del sensor izquierdo
(SI) o del sensor derecho (SD) y el sensor del centro(SC) no detecta objeto (mayor a 40cm.
de distancia), entonces si el ngulo a doblar es para la izquierda (de 0 a 90) y el SI avisa
que hay un objeto, entonces se hace un clculo para llevar el vehculo hacia la derecha (de
90 a 180). Lo mismo pasa para el lado derecho, y se intenta llevar el auto hacia la
izquierda. En los casos cruzados, es decir, cuando el ngulo a doblar es para la izquierda y
el sensor que se activa esta sobre la derecha, y viceversa, entonces el ngulo a doblar es el
mismo que se haba calculado en las funciones de ngulos.
Servos
Referencia a la funcin mover servos del pseudocdigo del funcionamiento del proyecto. Dado el
ngulo a doblar proveniente de las funciones de los sensores, hace mover a los mismos este
ngulo.
11
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Los servos que simulamos tienen un radio de giro de 180. Estn conectamos directamente al PIC
en los puertos B. El control de posicin de los servos lo hacemos por PWM utilizando el timer0,
soportamos hasta 8 servos, se puede ajustar a los que se necesiten.
Seal de Control
PWM y Timer0
12
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Una vez obtenido el tick, se calcula, con una regla de 3, el valor para que el Timer0 retarde el
tiempo correspondiente a dicho valor del tick.
Ventajas y Desventajas
Presentamos las ventajas y desventajas de programar este tipo de proyecto en
microcontroladores,
13
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Ejemplo Funcionamiento
A continuacin detallamos en un ejemplo los diferentes pasos y el resultado obtenido de simular
el proyecto sobre Proteus.
En el ejemplo aparecen 4 servos (de los cuales dos de arriba estn conectados), un osciloscopio,
un display, 4 sensores (de los cuales el de abajo esta desconectado), el PIC y una UART con el fin
de facilitar y testear la simulacin.
$GPRMC,195155.00,A,3719.183,S,5411.733,W,0.660,200.0,300809,,,A*5B
$GPRMC,195155.00,A,3719.190,S,5411.760,W,0.660,200.0,300809,,,A*5B
$GPRMC,195155.00,A,3719.184,S,5411.734,W,0.660,200.0,300809,,,A*5B
14
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Donde vamos a utilizar la primera como punto de checkpoint y las otras 2 como provenientes del
dispositivo GPS. El campo marcado en rojo es la latitud, en verde la longitud y el azul el sentido,
notar que el sentido que se necesitan son los provenientes del dispositivo GPS.
En un principio cargamos el primer NMEA por rs232, recordar que el botn correspondiente al
pulsador de checkpoint debe estar activo para indicar que el dato que se carga en un punto de
checkpoint.
Luego desactivamos el botn correspondiente al pulsador de checkpoint para indicar que el dato
que entra por UART es de un dispositivo GPS y cargamos la segunda sentencia NMEA.
15
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Se puede observar que en el display aparece un grado G, que es el ngulo que sale de hacer la
funcin correspondiente a ngulos entre dos sentencias NMEAS, y A que corresponde al valor que
sale luego de revisar los sensores y es el ngulo que deben doblar los servos. Como se observa los
sensores estn en cero, por lo tanto no tienen ningn objeto cerca y por ende el valor de A es igual
al valor de G. Se puede notar tambin que los servos que estn funcionando (los dos de arriba) se
movieron el grado correspondiente a A. El valor que sale de 85 grados, hace referencia que el
vehiculo se mueve 5 a la izquierda.
Ahora vemos que pasa si se activa el sensor izquierdo. Recordar que para activarlo le tenemos
que poner un valor de voltaje mayor a 0.75v, es decir, le estamos indicando que se encuentra a
una distancia menor a 40 cm. Para esto cargamos nuevamente la segunda sentencia NMEA por la
UART.
16
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Como se observa por el display el grado G, sigue siendo igual ya que el ngulo que se calcula es
sobre las mismas sentencias NMEAS. Al cambiar el valor del sensor izquierdo, se puede ver que el
valor de A tambin cambi e intenta llevar al vehculo para el lado derecho. Este cambio tambin
se observa sobre los servos los cuales siempre van a doblar el grado correspondiente a A.
Ahora observemos que pasa si tambin se activa el servo de la parte frontal del vehculo.
Nuevamente cargamos la misma sentencia NMEA para ver el resultado:
17
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Como era de esperar, el valor de A cambi a 135 tal como habamos detallado anteriormente en
la parte de los sensores. Y por ende los servos tomaron este valor.
Algo importante de aclarar es que la sentencia NMEA que hace referencia a que se carga por un
dispositivo GPS (todas las que aparecen en la UART menos la primera) no llega a un radio prximo
a la sentencia que hace referencia al checkpoint (la primera) y por lo tanto no se puede avanzar al
siguiente checkpoint o marcar que se lleg a destino.
La tercer sentencia NMEA que aparece en el principio del ejemplo, si cumple con esta condicin de
checkpoint comparndola con el mismo punto de check, es decir que se encuentra en un radio
prximo, esto se puede observar mirando latitud y longitud de ambas sentencias.
Entonces ahora vamos a cargar dicha sentencia para que se vea que cumple el checkpoint y se
pasa al siguiente check, en nuestro caso debe finalizar ya que cargamos nicamente un punto de
check para el ejemplo.
18
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
En el display se ve, como habamos mencionado, que se cumple la condicin de check y se intenta
pasar al siguiente check, pero como no hay ms se llega al final del recorrido. Los valores de los
servos no se modificaron, estn marcando los del ejemplo anterior, ya que la verificacin de
checkpoint se comprueba antes de empezar a calcular el nuevo ngulo a doblar.
Si se quiere se puede seguir probando combinaciones de sentencias NMEA y ver cmo van
variando los servos, pero se muestran algunas para que se entienda principalmente su
funcionamiento.
El proyecto fue testeado con varios puntos de checkpoint y varios provenientes de GPS y anduvo a
la perfeccin. Se debe tener en cuenta para su buen funcionamiento que se deben cargar por
rs232 las sentencias NMEAS de a una por una para no obstruirlo.
19
PROYECTO FINAL TALLER DE MICROCONTROLADORES 2010
Conclusin
conclusin contando que es lo que se propusieron, que problemas o que sorpresas les dio al
realizarlo y que problemas se presentaran al pasarlo a un autito real.
20