sensor de proximidad

Anuncio
SENSOR
DE
PROXIMIDAD
DIEGO GIL HERNANDEZ
IVAN PONSODA HERNANDEZ
IVAN SAUL CANTERO SIÑUELA
PROYECTO PAEEES 2005
GRUPO A02
INDICE
PAGINA
INTRODUCCION
3
FUNCIONAMIENTO
4
¾
¾
¾
¾
Circuito del sensor
Programa
Capture
Layout
LISTA DE COMPONENTES
4
6
7
10
13
INTRODUCCION
Este proyecto sencillamente quiere facilitar el aparcamiento con un
vehiculo, generalmente un coche, mediante la utililizacion de los
ultrasonidos como detectores de distancias.
La verdad es que siempre vamos corriendo a todos lados y sobre todo, en
nuestra zona, el aparcamiento no es que abunde. Por lo cual se nos ocurrio
esta solución que nos facilitaría el aparcamiento enormemente, a la vez que
evitamos darle esos pequeños golpes al coche que terminan estropeando la
carroceria de nuestro coche.
Este sensor de proximidad funciona dandonos un pequeño sonido de un
zumbador que va aumentando mediante nos vamos hacercando al vehiculo
trasero. Tambien dispone de un display que nos marca la distancia, en cm,
que nos encontramos del vehiculo contiguo.
Nuestra idea fue esta, pero como explicaremos hemos tenido varios
problemas con la adquisicion de datos del sensor de ultrasonidos y no
hemos podido conseguir nuestra meta. Pero en esta pagina dejamos toda la
informacion del proyecto para que cualquier persona que lo desee lo pueda
mejorar (y despues nos lo comunique sus mejoras).
FUNCIONAMIENTO
El funcionamiento de este circuito es bastante sencillo. Simplemente al alimentarlo, el
programa se pone en marcha y comienza a funcionar marcandonos la distancia en el
display.
En el micro generamos un señal, recomendada por el manual del sensor, de 40KHz de
0,4 ms de duracion cada 100 ms, y esta llega a un optoacloplador que reliza la funcion
de amplificar la señal a 12V para tener mayor precision (tambien utilizamos esto para
tener aislados los circuitos del PIC y del sensor). Teniendo la señal amplificada se la
mandamos al sensor que la emite. Al recivir la señal la amplificamos con dos
operacionales para conseguir mayor precisión y de esta pasa al puerto capture del PIC.
En programa esperamos recibir un cambio en la señal, y contando los tiempos desde que
enviamos asta que recibimos, hacemos las operaciones sabiendo que la velocidad del
sonido es de 344 m/s, realizamos las operaciones para conseguir la distancia. Despues
simplemente la imprimimos por pantalla. Tambien hicimos una función para controlar
un pitido que nos abisase de que estamos cerca del obstaculo o que nos estamos
alejando, todo esto mediante un sonido que varia en frecuencia.
El problema de que el circuito no funcionara lo obtuvimos devido a que no utilizamos
un sensor lo suficienmente preciso, ya que los que miravamos ascendian a 80€ y se nos
salia de presupuesto. Tambien el PIC se nos quedaba un poco pequeño, por solo
disponer de 2 puertos (Capture y PWM), que eran los que nos hacian falta para obtener
la precision que necesitamos.
CIRCUITO DEL SENSOR
Esto fue lo mas complicado del proyecto, ya que utilizamos un sensor nuevo que nadie
habia utilizado antes, y ademas la informacion dada por el fabricante no era la suficiente
por lo tanto empezamos a idear nuestro circuito.
Nos hicimos con una placa de pruebas, y empezamos a probar circuitos, empezando con
el del fabricante. Como el sensor era dual no conseguiamos ver nada claro, por lo que
probamos con dos sensores por separado. Como la señal se la mandabamos con el
generador de señales, no utilizabamos la señal recomendada por el fabricante, y cojimos
una placa de entrenamiento y, soldandole un cable a un puerto de CCP1, generamos la
señal recomendada para mandarsela al sensor.
Al ver que la señal que recibiamos era de mV tuvimos que pensar en la idea de un
amplificador operacional.
Seguimos haciendo pruebas ahora con el ampificador operacional y conseguimos
amplificar la señal a 5V emponces decimos quedarnos con ese circuito. Tambien le
añadimos un optoacoplador para aumentar la señal de 5V que manda el micro asta
12V(o la alimentacion que esta utilizando la placa asta 20V).
hasta que dimos con el actual:
PROGRAMA
Nuestra placa tiene como misión realizar una medición de la distancia que hay al coche
de atras, en el momento en que estas aparcando. Para ello utilizamos un PIC 16F877
que se encargara de recoger la señal del sensor y con los debidos cálculos hallara la
distancia. (La idea que teniamos era que el circuito comience a funcionar cuando se
engrana la marcha atras del coche). El objetivo, que era el de montar cuatro sensores en
el parachoques de un coche y que fuera haciendo medidas e imprimirlas por pantalla, no
lo hemos podido conseguir debido a que el PIC que utilizamos en la asignatura no es lo
suficiente potente para conseguir las medidas de 4 sensores.
Ya que el PIC solo tiene dos puertos utilizables en modo Capture/Compare/pwm , si
queriamos utlizar cuatro sensores, teniamos que multiplexar las señales a intervalos de
tiempo, despues amplificar la señal recivida y finalmente imprimir por pantalla la
medida mas pequeña de los 4 sensores.Pero tuvimos problemas con el multiplexor ya
que la señal recibida es analogica y el demultiplexor digital. Asi que tuvimos que
montar finalmente en la placa un solo sensor, pero manteniendo transmisor/receptor en
el mismo encapsulado.
Dicho esto, dando un vistazo general al programa, vamos a enumerar las funciones de
nuestro programa:
- Inicializamos todos los puertos del PIC indicando si van a ser salida o entrada y en el
caso de ser salida si su valor va a ser 1 ó 0 .
- Inicializamos el PWM: utilizamos uno de los puertos en concreto el CCP2 en modo
PWM para generar una frecuencia de 40khz recomendada por el fabricante del sensor.
- Inicializamos el TIMER2 ya que el PWM lo utiliza para poder generar la frecuencia de
40khz.
- TIMER0: Lo usamos para generar interrupciones cada 0,2048ms,ya que el fabricante
recomienda que emitamos un pulso de 0,4ms (modulados a 40khz) y esperemos 100ms
hasta emitir otro pulso.
- Inicializamos el modo Capture por el puerto CCP2 para recibir las señales del sensor y
el TIMER1 ya que el modo capture lo necesita.
-Inicializamos la pantalla LCD.
-Seguidamente vienen una serie de funciones que se encargan de obtener el tiempo y la
distancia del obstaculo.
Por último indicamos las funciones que tienen que realizar el PIC cuando esta en una
interrupción.
CAPTURE
Dentro del Pack Orcad 9.2. está la herramienta Capture que es el programa que
utilizaremos para indicar todas las conexiones entre los elementos. Antes de nada se
debe tener bien claro todas las partes y funcionalidades de nuestro circuito..
La Alimentación
La alimentacion se puede efectuar entre unos 9V y 35V, pero nosotros necesitaremos
alimentarla a unos 12V para cubrir las necesidades del sensor. Como notais existe una
resistencia que es de 0 O (R2),y esto se debe a que necesitamos diferenciar las dos
masas existentes.
El programador
El programador lo uniremos al PIC, mediante un conector RJ11 de 6 pines a la placa de
programación para poder programar el PIC. Como veis existe un JUMPER que sirve
para realizarle un reset a la placa cuando la tenemos funcionando.
El cristal y el condensador de desacoplo del PIC
El PIC controla nuestro circuito. El condensador de desacoplo sirve para proporcionar
alimentacion constante al PIC, y el cristal es el encargado de proporcionar la frecuencia
de reloj al PIC, en este caso utilizaremos un cristal de 20 Mhz(que es la maxima
frecuencia que soporta el PIC). Ambos circuitos deben estar próximos al PIC, es una de
las cosas que debemos tener clara a la hora de empezar con el Layout.
Display LCD
En el display es donde mostraremos los resultados obtenidos. El display que hemos
utilizado es de 16 pines de los cuales 14 son los que vamos a utilizar y los otros dos son
para suministrar masa y alimentación para iluminar la pantalla.
Sensor
Es el circuito que mas nos ha llevado de cabeza. Como vemos consta de un
octocoplador(TLP5214), dos amplificadores operacionales(324) y varias resistencias
que sirven para controlar la amplificacion de los operacionales. Hemos colocado una
regleta para la sujeccion de el sensor mediante unos cables y asi tener mas libertad de
control con el sensor.
Zumbador y led test:
El zumbador como hemos mencionado en la introduccion, lo utilizaremos para
avisarnos de la distancia mediante sonidos, y el led test es simplemente para tener un
control de que el PIC funciona correctamente.
LAYOUT
Dentro del Capture debemos modificar de todos los componentes la propiedad footprint,
es la encargada de asignar el tamaño real de todos los componentes, naturalmente antes
de nada debemos comprarlos. Aunque tambien podemos crear una lista de
componentes, y generar el archivo update. Podeis encontrar en la zona de descargas los
footpring que hemos utilizado para realizar la placa. Teneis los modiificados por
nosotros y los que ya teniamos de la libreria de EPSA.
Una vez asignados todos los footprints a los componentes, en tools le daremos a Create
netlist, habilitar la casilla pulgadas (inches) y aceptar, lo más seguro es que nos salgan
algunos errores que tendremos que corregir.
Una vez resueltos esos pequeños fallos, se creara un nuevo archivo con extensión
*.MNL, con Layout seleccionando new abriremos el archivo MNL y creara un archivo
*.MAX
Layout te pone los componentes todos en una fila es muy importante la colocación antes
de enrutar. Como ya hemos dicho el condensador de desacoplo, y el cristal deben estar
proximos al PIC. Tambien es importante que el programador este cerca del pic y que los
integrados que necesiten alimentacion tengan su condensador de desacoplo y hacer
grupos según las partes, el programador , la alimentación y no dejarlo todo
desperdigado por la placa.
Y ahora simplemente tenemor que unir las pistas manteniendo un orden entre ellas y
procurando pasarlas todas por la capa bottom.
Vista de la placa una vez que ya hemos ordenado los componentes:
Enrutar:Hay que tener en cuenta que no se pueden trazar rutas con 90º de inclinación
(por que se transforman en antenas), y las nets deben tomar los siguientes valores
20,30,40.
Detalles finales:
- Las lineas de alimentación siempre deben deben ser de ancho 40
- Colocar un marco de ancho 5 en las capas 0, 2, 23 (shift 23)
- Colocar el nombre del grupo, y recordar darle la vuelta (mirror)
- Todo Route-spacing a 40, antes plano de masa.
- Plano de masa, seleccionado obstacle tool, new – properties –Cooper poor – GND
Vista de la placa ya enrutada:
Placa finalizada, e insolada:
LISTA DE COMPONENTES
RESISTENCIAS Y
CONDENSADORES
3 R 100
2 R 4k7
5 R 1k
1 R 6k8
1 R 560k
1 R 1k2
1 R 10M
1 Potenciometro 10k
CONDENSADORES
4 C 100nF
2 C 18pF
1C 330nF
1 C 470uF
OTROS
1 Cristal 20 Mhz
1 Octocoplador TLP521-4
1 Sensor ultrasonidos MA40S5
1 LM324
9 Tornillos soporte
1 Zumbador
1 Regulador de tension LM7805
1 Pulsador
1 Conector 16 pines en serie
1 Pantalla Lcd 16x2 (conexion superior)
1 Diodo 1N4004
2 Led (rojo y verde)
1 Diodo 1N4118
RJ11
2 Bananas
2 Regletas de 2 tomas
1 Amplificador operacional LM324
3 Zocalos (16,14,40)
1 PIC 16F877
Descargar