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