Aporte: Estacionamiento asistido (parking aid) NO ultrasonido

En esta oportunidad, les ofrezco mi primer prototipo de un sistema de ayuda de estacionamiento para automoviles, con la novedad que NO funciona por ultrasonido sino por un sistema llamado "capaciflector"

Me llevo 6 meses de estudio y desarrollo en mis ratos libres, pero el resultado valio la pena.

Esto tiene la ventaja de no poseer puntos ciegos, como el ultrasonido sino que detecta todo tipo de objetos a lo largo de todo el parachoques del auto, en cualquier angulo.

Funciona con un oscilador, conectado a un microcontrolador PIC 12F675. Se puede utilizar cualquier PIC que tenga entrada T1CKI (para contar pulsos en 16 bits) como ser el 16F628. Se podria usar un 16F84 en T0CKI pero la desventaja es que el contador es de 8 bits asi que habria que bajar mucho la frecuencia de operacion y tiempos de sample.

Este oscilador baja su frecuencia (o la aumenta, depende el preset) segun se acerque un objeto. La curva de frecuencia es exponencial, o la inversa. Basicamente es un capacitor que es afectado en su capacitancia en cercania de objetos.

Para realizar el sensor, yo utilize cinta de aluminio autoadhesiva para aislar caños de PVC a lo largo de todo el interior del paragolpes (en mi caso, un chevrolet corsa, 160x4cm) Esto seria el "positivo" del capacitor, y la carroceria del auto, el "negativo".

El esquematico tiene un pin llamado SHIELD, este terminal lo utilizaban en los diagramas originales del oscilador poniendolo en una tira igual al sensor, entre este y el chassis (masa) del auto. Se supone que esto mejora la sensibilidad pero en mi caso la redujo. Por lo tanto les recomiendo que en la primera prueba lo hagan sin conectar SHIELD.

En el adjunto hay:
1)- Esquematico en formato imagen JPG
2)- Esquematico en formato livewire
3)- PCB en formato PCB wizard. ATENCION: yo lo hice con componentes SMD, de no disponer tendran que realizar un pcb propio.
4)- PDF con la patente del sistema capaciflector (para leer sobre sus principios)
5)- Imagen del circuito original del oscilador, en el cual me base.
6)- Programa HEX para el PIC del diseño, y codigo fuente en CCS C.

Esta version del programa setea 3 distancias (cerca, medio y lejos) para emitir distintos patrones de "beeps" para cada una.

Al iniciar por primera vez, el micro se pone en "modo programa" que es donde regulamos el preset y le indicamos las distancias.

Dispongo de poco tiempo en este momento para seguir escribiendo, si a alguien le interesa armarlo, exponga sus dudas (especialmente del programa del pic) aqui y me explayare en como construir el sensor, calibrar el circuito y entender el programa del pic.

La version del programa es prototipo, se puede mejorar mucho. Se dispone de salidas de CLOCK y DATA para conectar a un 4094 con un par de componentes mas para disponer de una barra de leds que indique distancia aproximada.

Sobre los operacionales. el TL082 es el operacional designado (funciona, probado), pero como yo lo hice SMD tuve que recurrir a dessoldar un operacional doble sacado de lectora de CD, o de placa de disco duro. (operacional tipo LM324 pero doble) Pueden probar con otros operacionales dobles.

El circuito se puede mejorar implementando un transistor, capacitor y resistencia para que se active con la marcha atras, pero que no se desactive hasta un cierto tiempo de quitarla. (yo suelo dejar caer el auto en bajada hacia atras sin tener el cambio puesto).

Esta primera version, se conecta al chassis del auto, al 12V del foco de marcha atras y a la tira de aluminio que hace de sensor. El mismo se debe poner a una altura de mas o menos 50 cm del piso, por atras del paragolpes plastico.

Demostracion de un producto comercial del cual saque la idea:
http://www.youtube.com/watch?v=UWMKDbc_J90&feature=related

http://www.parkingdynamics.co.uk/

En mi caso, el rango de deteccion es desde unos 70cm, mas que suficientes para la aplicacion.

Aclaracion: Esto lo probe y funciona detectando personas. Tambien detecto objetos como una silla, o metalicos. Aun me falta probar que sucede con autos, en situaciones reales (deberia funcionar sin problemas, un auto es mucho mas grande y masivo que yo) y probablemente hacer mejoras en el programa.

Toda sugerencia, pregunta o idea es mas que bienvenida. El circuito es MUY sencillo de realizar, lo que es en cierta forma dificil es construir el sensor adecuado. No se rindan, funciona.

Cuando disponga de un poco mas de tiempo, pondre fotos y quiza algun video.

Que lo disfruten tanto como yo! y lo mejoremos entre todos.
 

Adjuntos

  • parking.zip
    221.6 KB · Visitas: 1,205
Última edición por un moderador:
Grande Sebastian!!! Y una vez empecé con algo similar y desistí.
Ideal para poner en las Van que uno no puede ver hacia atrás, o por lo menos lo que hay debajo del vidrio trasero.
Felicitaciones y gracias por el aporte!!:aplauso::aplauso:
 
Gracias por tus palabras bushell, ya somos viejos conocidos jeje.
Te comento que por poco desisto yo tambien ya que tuve muchos fracasos hasta encontrar como hacer el sensor adecuado, pero dije "esto a mi no me va a ganar" y lo saque adelante.

Igualmente esto es una "beta", especialmente en cuanto al software. Lo ire mejorando y subiendo aqui por supuesto. Toda idea, correccion o sugerencia es bienvenida.
 
Muy buen aporte... lastima que 0 idea de programación.

Felicitaciones... es un honos realizar un proyecto desde 0 y ver que al fin funciona...


Suerte
 
Muy buen aporte... lastima que 0 idea de programación.

Felicitaciones... es un honos realizar un proyecto desde 0 y ver que al fin funciona...

Suerte

Bebeto, gracias por tus felicitaciones. ¿te referis a vos o a mi en lo que es programacion? Te lo pregunto porque precisamente soy programador hace 22 años y trabajo de eso!

Si hablas de vos, no haria falta mucha idea. Tan solo con saber compilar el programa para el PIC que uses, o utilizar el mismo PIC que el diseño (con el HEX) y saber grabar el pic, alcanzaria para hacerlo funcionar.
 
Me refería a mi... no dudo de tus conocimientos en programación.
No tengo ni idea de programación.

Por el momento voy a tener en cuenta tu proyecto.

Algun día me armaré una placa entrenedora y comenzaré con el mundo de los PIC.

Chau.
 
Gracias mnicolau! ojala me salieran prolijitos como los tuyos ;) jeje

Ahora, con un poco de tiempo y continuando con las explicaciones del proyecto:

Calibracion y primer encendido del aparato:

Si verifican el programa, al encontrar vacias las posiciones de memoria de la EEPROM correspondientes a las 3 distancias memorizadas, el programa ira a la rutina modo_programa()

Esta rutina tambien se ejecuta al presionar el pulsador, y consiste en un ciclo de calibracion de preset, y 3 ciclos de memoria de pulsos, para las 3 distancias (cerca, medio y lejos).

Al ingresar a la rutina, se emite un beep, y el programa queda dentro de un ciclo en donde tenemos:

2 beeps graves: indica que el oscilador esta a una frecuencia demasiado baja
1 beep agudo: indica que el oscilador esta en el punto "optimo"
1 beep grave: indica que el oscilador esta a una frecuencia mas elevada. (no es tan importante, en realidad en mi instalacion lo tengo oscilando a una frecuencia mayor que la del beep agudo)

Este punto de calibracion depende mucho del sensor construido y de la instalacion (no deben moverse los cables, por ejemplo, ni tener el cable del sensor demasiado cerca de masa).

Esta calibracion se debe realizar con el paragolpes del auto a la distancia "cerca" de otro auto. Aprox. unos 20 cm.

Cuando decidimos que esta "calibrado" presionamos el boton y se oira un tono agudo largo. Luego hay 1 segundo de silencio y el circuito comienza a emitir 1 beep corto por segundo, durante 30 segundos aprox. (esto sirve para que preparemos el auto para moverlo)
Aqui hay un problema que aun tengo que solucionar y es que para la primera calibracion deberiamos conectar el positivo a una luz fija del auto, no a de la marcha atras porque no podriamos tener la marcha atras puesta si no estamos en el volante presionando el embrague ;) A menos que dispongamos de un ayudante.

Transcurridos esos 30 segundos, el circuito se prepara para la grabacion del dato "cerca" emitiendo 5 beeps graves, grabando el dato leido y una vez grabado, emite un beep agudo largo.

Luego, hay una demora de 3 segundos en los cuales debemos mover el auto un poco mas lejos del vehiculo que esta cerca del paragolpes. Digamos a unos 35-40 cm.

Alli empezara otra vez una cuenta de 5 beeps graves para grabar el dato "media distancia", y lo mismo para el dato "lejana distancia" que deberia estar en unos 50-60 cm

Es importante dejar un "margen" entre distancia "lejos" y donde el sensor pierde sensibilidad. Este margen sera el punto "neutro" en donde el circuito ya funcionando no deberia emitir sonidos.

Una vez grabados los 3 datos, el circuito comienza en modo funcionamiento normal, ya podriamos probar si responde bien a las distancias.

Probablemente haya que realizar esta programacion algunas veces hasta encontrar la oscilacion y las distancias que nos conformen.

Ojala que haya sido un poco mas claro. Saludos a todos.
Sebastian
 
Última edición:
Aqui adjunto 2 fotos, una del circuito armado y la mas importante, como se pone en el parachoques el sensor. Es una tira de aluminio autoadhesivo de las que se usan para cubrir y proteger los caños de PVC. Probablemente cualquier otra tira de aluminio sirva. Tiene unos 4 cm de ancho.
 

Adjuntos

  • 17-03-10_2008.jpg
    17-03-10_2008.jpg
    28.8 KB · Visitas: 545
  • 31-12-09_1539.jpg
    31-12-09_1539.jpg
    40.2 KB · Visitas: 521
Gracias a los moderadores por el "destacado" :)

Realice la primera prueba en el auto, funciono sin problemas pero al otro dia, al poner la marcha atras suena como si tuviera un objeto en la distancia mas cercana, a pesar de no tener ninguno.

Se me ocurre que pueda ser un cambio de capacitancia del sensor debido al cambio de humedad ambiente. ¿Podra ser esto cierto?

Si es asi, me queda cambiar el programa para que sense la frecuencia al iniciar, y tome esa de base. El problema es que con esto perderia las 3 "marcas" y tendria que calcular la curva de crecimiento exponencial de la frecuencia.

Otra posibilidad, es realizar ese sensado al poner marcha atras, y calcular la diferencia entre la marca "lejos" y dicho sensado, para aplicar ese offset de frecuencia a cada medicion.

¿Sugerencias o ideas?
 
Sigo con problemas en el software. Implemente el "offset" y mejora pero no funciona correctamente.

Ahora probare un algoritmo para detectar los cambios en puntos porcentuales de la frecuencia con respecto a la previa sensada. De esta forma quiza logre marcas mas definidas y automaticas. Cuando supere los x puntos porcentuales de cambio, avanzamos el puntero a la proxima marca.
 
hola, te hago una consulta, es de lo mas basico:

el sensor propiamente dicho podrias explicarlo.
yo no suelo usar operacionales por lo que me cuesta verlo en el esquema (parking- esquematico) ...sera las salidas SHIELD - SENSOR ?? .

me interesa poder "visualizarlo" , donde y como es que se conforma el capacitor ese virtual y si lo has medido entre que valores esta.

saludos y gracias
 
Hola fernando. Como dije mas arriba, la parte del oscilador la obtuve de un circuito, para el mismo proposito pero sin micro (esta incluido en el zip).

El capacitor estaria entre GND y el terminal que dice "sensor". De hecho si conectas un capacitor real (digamos un 103) en esos terminales, la oscilacion queda a una frecuencia fija.

En el circuito original, su creador utiliza tambien shield como una tira igual al sensor, pero ubicada fisicamente entre este y GND. Despues de leer mucho entendi que este shield contrasta la carga de la tira de sensor (al osciloscopio veo que es una onda triangular con el mismo periodo y sincronizada, estimo, con el pin de sensor, que es una onda cuadrada).

Sin embargo en la practica vi que si no conecto el pin shield obtengo mucha, pero mucha mas distancia de deteccion, o mas bien, de interferencia en la frecuencia generada, que si lo tuviese conectado. (Con shield hasta unos 3 cm, sin shield, hasta unos 70cm)

Esta descartado que sean los 50hz de linea a traves de nuestro cuerpo lo que afecte, porque tambien funciona igual en exteriores, alejado de las lineas de tension y de otras fuentes de interferencia directa.

El sensor entonces, estimo yo, es un capacitor puesto en paralelo con R1, del circuito original, de 2.2M

A no ser que haya entendido yo todo muy mal y esto funcione de otra forma, pero segun lei en todos los articulos sobre capaciflector que pude encontrar, es esta la forma.

Quiza alguien con mas conocimientos pueda aportar un poco mas de luz sobre exactamente "como" funciona esto, estaria muy bueno y probablemente podriamos corregir los problemas actuales.

Como dato extra, la empresa que vende un producto parecido, en su video de demostracion de instalacion habla de una "antena" que va a lo largo del paragolpes y que segun veo, la conectan con un terminal simple. Asumo yo que esto es el terminal "sensor" de este circuito y el GND es la carroceria del auto. En base a esta presuncion es que copie el oscilador y agregue el micro.

En la siguiente url (en ingles):
http://www.electro-tech-online.com/...33485-parking-car-electromagnetic-sensor.html
esta el diseño del oscilador en el cual me base, y tratan sobre un tema igual.
 
Gracias jalva. Te aclaro igualmente que aun esta en desarrollo, y lo postee aqui para que entre todos podamos hacerlo funcionar bien.

Supuestamente solo queda desarrollar en la parte software, ya que el hardware asumo que esta bien. Lo tengo instalado en mi auto haciendole pruebas. Aun no logro el algoritmo adecuado que detecte las distancias bajo condiciones diferentes. (En iguales condiciones funciona mas o menos estable)

Lamentablemente dichas condiciones cambian en el tiempo, humedad, temperatura, etc. afectan la constante dielectrica del capacitor que hace que la frecuencia varie. Todo esto es teoria.

El que lo quiera funcionando YA puede modificar el programa para establecer un solo limite, como una especie de "barrera" en donde cualquier frecuencia menor a X haga sonar una alarma. De ahi tendriamos una deteccion simple de una distancia segura de estacionamiento.
 
Última edición:
Seaarg:
Una pregunta luego de leer el pdf que incluíste en el archivo...
Si variamos la frecuencia de modo controlado con la cual se ataca al "capacitor", se podría "buscar" el obstáculo a una determidada frecuencia...?
... y si se lo encuentra ver a que frecuencia es detectado y así establecer a que distancia se encuentra de modo mas preciso...
Te parece posible ...?
En cuanto a la forma del capacitor y el shield del capacitor, habría que hacer unas cuantas pruebas para conseguir mas precisión, como por ejemplo darle un dielectrico mas definido ( buscar materiales y espesores) y no esperar que la chapa del auto cierre el capacitor.
Por favor corrijanme si me equivoco, tanto el "shield" como el "sensor" estan en fase por lo que tambien es necesario definir un plano de tierra detras del shield y si entendí bien la instalación el lado sensor está hacia mirando al exterior del auto, por lo que el shield tiene como función darle mas "dirección" al capacitor.
En http://bdml.stanford.edu/DML/previous_projects/capaciflector/capaciflector.html está bastante claro de lo que lo puedo explicar... ( pero en ingles)
 
Bueno jalva, al fin alguien que se "copa" para intentar estudiar estos metodos!

Lo que te voy a decir es solo una opinion no una verdad, Creo que no podriamos buscar el objeto precisamente porque este es el que afecta la capacitancia, haciendo variar la frecuencia (Lo que vos propones es al reves y estaria muy bueno pero no se me ocurre como hacerlo funcionar, ideas son bienvenidas)

Aunque por otro lado, la patente de John de la NASA implica el termino "frequency sweep" que creo que es exactamente lo que propones.

Quiza tendriamos que fabricar un generador de frecuencia controlado por el pic, al cual le damos la "orden" de generar, digamos 10Khz y por otro lado, leemos la frecuencia "real". Quiza en algun punto estas se junten, o algo por el estilo y podamos buscar el objeto como vos decis. No esta nada mal como idea, si se te ocurre algo en hard publique nomas. (Se me ocurre, hacer un pot variable con el pic y que esto sea la R de la red RC).

En cuanto a forma de capacitor hice muchas pruebas, lo que mejor me resulto es la tira autoadhesiva para cubrir PVC, o el cobertor que viene entero dividido "en dos" (una parte gnd y la otra sensor).

Una prueba utilizando el pin shield fue crear una tira de aluminio, hacia el exterior del auto como sensor y otra como shield. Entre medio de estas y formando un sandwich, el mismo tergopol de los cobertores (separacion aprox: 1cm entre planos). Esto sumado al plano GND con dielectrico "aire" que es el chasis o carroceria del auto. Funciona practicamente igual que sin shield.

Otra prueba: sensor, separado de un plano GND por el mismo 1 cm de tergopol. En este caso note que la frecuencia aumenta (digamos que es un capacitor mas chico porque estan mas cerca los planos).

Si, sensor y shield estan en fase y el plano de tierra seria el auto, ahora bien, se podria probar poner un plano de tierra con una tercera tira de aluminio a la misma distancia y con el mismo dielectrico que entre sensor-shield.

Si, el lado sensor apunta hacia afuera del auto, y el shield haria la funcion que decis. Hasta ahora en todas mis pruebas tuve mas distancia de deteccion (no significa mas precisa) SIN shield conectado, ni siquiera cable en la placa.

En este momento, y debido a los problemas de inestabilidad porque el dielectrico (aire) cambia con temperatura y/o humedad y/o masa del objeto, estoy reprogramando el software para ya no tener "marcas" sino utilizar una funcion polinomica obtenida a partir de samples que hice. Dicha funcion supuestamente "normaliza" o autocalibra el aparato al encenderlo.

Para esto estoy probando un prototipo con otro pic, el 16F628A porque al chiquito no le da la memoria para las matematicas :) Despues les comento si hubo resultados.

¿Tendrias alguna sugerencia en cuanto a hardware? Yo creo que esta bien porque deteccion hay, pero quiza a alguien con mas conocimientos se le ocurra como estabilizarlo por hardware y no por software.

Como pista, de todo lo que lei sobre capaciflector, y de lo que puedo deducir de la pagina donde venden algo asi, estos sistemas se calibran al arranque y a partir de ahi la distancia (no exacta) la detectan con funciones matematicas aplicadas a la curva de datos.

Mas datos: Cuando seteamos el preset a una frecuencia baja, al acercarse aumenta dicha frecuencia con unos muy buenos saltos entre samples. Sin embargo, el "capacitor" que mejor me funciono en el auto requiere que la frecuencia sea mayor, por lo tanto disminuye al acercarse (como plantean en todos los lugares que lei) En este caso el salto de frecuencia entre maxima distancia y minima no supera los 1000Hz

Disculpen lo extenso del texto, pero quiero compartir los mayores datos posibles para estabilizarlo entre todos.
 
Última edición:
Muy bueno, comenta despues el resultado de tus pruebas. Yo deje momentaneamente de lado esta version del circuito porque estoy intentando un acercamiento diferente:

1)- Con el pic, genero un pulso corto que carga el "capacitor"
2)- Espero un x tiempo fijo de descarga (calibrado al iniciar)
3)- Con el ADC del mismo micro, mido el voltaje entre los terminales del capacitor (que tiene una R en paralelo y a masa para descargar)

Esto me esta dando una salida bastante mas estable, pero lamentablemente de esta forma no tengo "distancia" sensible mas de 5 cm. Estoy estudiando el porque aun. Tambien voy a probar agregar de esta forma un shield generado con otra pata del pic (ya estoy en plan "a ver que pasa")

Para quien sea nuevo en este thread, al circuito aun le falta desarrollo. Asi como esta es capaz de detectar a modo de "barrera" una distancia fija. Estoy trabajando para detectar distancia variable.

Seaarg:
Si variamos la frecuencia de modo controlado con la cual se ataca al "capacitor", se podría "buscar" el obstáculo a una determidada frecuencia...?
... y si se lo encuentra ver a que frecuencia es detectado y así establecer a que distancia se encuentra de modo mas preciso...

Sobre esto, aun no lo probe pero me parece interesante. Te comento que se lograria hacer variar la frecuencia generada por el oscilador de la siguiente manera:

1)- Un led, puesto enfrente de un LDR y aislado de la luz ambiente.
2)- El led conectado al PIC, con un pequeño capacitor
3)- El LDR conectado en serie a la resistencia que hace variar el oscilador (el preset en este circuito)
4)- Se genera PWM con duty cycle variable en el PIC a ese led y listo... frecuencia variable controlada por el micro.

Para probar fabrique este "potenciometro digital" y funciona de lujo, no lo aplique al circuito porque empece a probar un acercamiento distinto.
 
Última edición:
Atrás
Arriba