Autor Tema: Sensor aparcamiento por ultrasonidos  (Leído 9479 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Sensor aparcamiento por ultrasonidos
« en: 03 de Mayo de 2014, 02:19:52 »
Hola amigos, la popularización de los sensores de aparcamiento por ultrasonidos para coche ha hecho que bajen mucho de precio.

Me gustaría probarlos pero me da pereza hacer toda la etapa de investigación del circuito de control emitiendo una señal de ultrasonido, escuchándola, amplificándola y calculando el tiempo que tardó en volver para obtener la distancia.
He visto que estos circuitos ya los venden hechos:
http://www.ebay.com/itm/DC-5V-DYP-ME007Y-Ultrasonic-Sensor-Module-Measuring-Range-30cm-3-5m-/330973065638

¿Alguno de ustedes tiene el esquema de ese circuito?

Un abrazo

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #1 en: 03 de Mayo de 2014, 05:42:06 »
Ese no lo conozco, pero me compre estos     muy baratos y lo he probado a distancia de hasta 5 metros, casi un 0,5 centimetro de error, y estoy en eso, paraa afinarlo.
el Esquema lo encuentra por todas las Red.
no me diga que se lo va a montar a tu Avioneta ?  :D :D
Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #2 en: 03 de Mayo de 2014, 12:40:49 »
Ese que tú has comprado no vale para exteriores, abuelo

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #3 en: 03 de Mayo de 2014, 14:10:09 »
he estado buscando info, y no he encontrado nada donde pone para exteriior o interiore sobre los dos modelos.
Aqui sobre el HC-SR04
del ME007Y Ultrasonic Sensor Module hay poca informacion, cuando tenga el mio listo lo voy a probar en la calle.




Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #4 en: 03 de Mayo de 2014, 16:12:29 »
stk500 te lo indica la forma de su construccion, fijate que el tuyo simplemente tiene una rejilla, si le entra agua por ahi seguramente se "fastidie" el que puso nocturno esta semiaislado y evita que le entre agua en su interior supongo que hasta determinada presion.

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #5 en: 03 de Mayo de 2014, 16:45:14 »
En eso tiene razon,Merlinz, solo esta protegido por agua, pero eso no implica que no se pueda usar en el exterior? he leido en algunas pagina sus caracteristica , protegido por agua mmmmmm, habia que ver hasta que punto establece las medidas..


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #6 en: 04 de Mayo de 2014, 01:50:06 »
No es sólo por el agua, abuelo. Sal a la calle y prueba el tuyo; en cuanto recibe luz solar, viento y cambios de temperatura verás cómo las lecturas se vuelven locas.

Sigo sin encontrar el esquema del que publiqué. A ver si alguien lo tuviera.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #7 en: 04 de Mayo de 2014, 05:08:06 »
Hermano Nocturno, yo lo que si te puedo ofrecer es el esquema del SRF04 que es el modelo ya completo con los dos sensores y toda la electrónica que lo acompaña: SRF04 Schematic  :mrgreen:

Nota: Si el plugin del navegador no lo abre bien descárgalo con "Guardar enlace como ..." y después lo abres con el Reader PDF normal y corriente.



Y si te hace falta para "bichearlo" te paso el cacharro :P
« Última modificación: 04 de Mayo de 2014, 05:21:06 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #8 en: 04 de Mayo de 2014, 05:54:00 »
Qué curioso, lleva un MAX232 para elevar e invertir la tensión :)

Me temo que no me sirve porque lleva un micro cuyo código también necesitaría. Al final no me va a quedar más remedio que investigarlo.

Desconectado xocas

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 2312
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #9 en: 04 de Mayo de 2014, 07:47:21 »
Aquí tienes algunos ejemplos: http://www.next.gr/automotive/parking-aids/

Recuerdo haber visto algún proyecto en Arduino con el ME007Y pero no conservo enlaces... si encuentro algo te aviso

salu2

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #10 en: 04 de Mayo de 2014, 10:40:31 »
Hermano Nocturno, yo lo que si te puedo ofrecer es el esquema del SRF04 que es el modelo ya completo con los dos sensores y toda la electrónica que lo acompaña: SRF04 Schematic  :mrgreen:

Nota: Si el plugin del navegador no lo abre bien descárgalo con "Guardar enlace como ..." y después lo abres con el Reader PDF normal y corriente.



Y si te hace falta para "bichearlo" te paso el cacharro :P

Por cierto, abra algun codigo de ejemplo para el microdel sensor? Es para otro proyecto.

Saludos
-
Leonardo Garberoglio

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #11 en: 04 de Mayo de 2014, 13:32:43 »
Hermano Nocturno, yo lo que si te puedo ofrecer es el esquema del SRF04 que es el modelo ya completo con los dos sensores y toda la electrónica que lo acompaña: SRF04 Schematic  :mrgreen:

Nota: Si el plugin del navegador no lo abre bien descárgalo con "Guardar enlace como ..." y después lo abres con el Reader PDF normal y corriente.



Y si te hace falta para "bichearlo" te paso el cacharro :P

Yo lo tenia por ahí, en assembler, aunque seguro que Redpic lo tiene... :mrgreen: :mrgreen:

Por cierto, abra algun codigo de ejemplo para el microdel sensor? Es para otro proyecto.

Saludos
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #12 en: 04 de Mayo de 2014, 13:54:44 »
Saludos a todos.

Maestro Nocturno, lo que interesa en esos transductores es la impedancia capacitiva que tienen. Yo trabaje hace mucho tiempo en un emisor de ultrasonido a frecuencias de 1MHz y 3MHz (los sensores que tienes no sobrepasan los 40kHz) y es de vital importancia realizar un acople de impedancia entre el emisor de onda cuadrada y el transductor para que se aproveche toda la potencia; de no hacerlo, estarias trabajando con los armonicos y tendiras cualquier tipo de resultados.

En ese tiempo utilice un amplificador clase D, y un MOSFET de potencia, pero en tu caso, basta con algun transistor que responda a los 40kHz (o a la frecuencia que tenga tu transductor).

Posteo el codigo para trabajar con un SRF05, que es un transductor ultrasonico sin el control del PIC. A este sensor se lo seba con un pulso (el micro receptor recibe el pulso y envia una senal a la frecuencia a la que trabaja el sensor, unos 38kHz, durante unos cuantos milisegundos) y luego se espera el eco.

Código: C#
  1. #include<16F873A.h>
  2. #fuses HS,PROTECT,CPD,NOLVP,PUT
  3. #use delay(clock=12M)
  4. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, parity=N, bits=8)
  5.  
  6. #include "LCDB.C"
  7.  
  8. #define on         output_high
  9. #define off         output_low
  10. #define subida      0
  11. #define bajada      1
  12. #define trigger      pin_c0
  13. #define data_pulse   pin_c4
  14.  
  15.  
  16. int1 flanco=0, data_eco=0;
  17.  
  18. #int_CCP2
  19. void flancos_isr(void)
  20. {
  21.    if(flanco==subida)
  22.    {
  23.       set_timer1(0);
  24.       setup_ccp2(CCP_CAPTURE_FE);
  25.       flanco = bajada;
  26.    }
  27.    else
  28.    {
  29.       setup_ccp2(CCP_CAPTURE_RE);
  30.       flanco = subida;
  31.       data_eco=true;
  32.    }
  33. }
  34.  
  35.  
  36. void main (void)
  37. {
  38.     setup_ccp2(CCP_CAPTURE_RE);
  39.    setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
  40.    flanco=subida;
  41.    lcd_init();
  42.    enable_interrupts(INT_CCP2);
  43.    enable_interrupts(GLOBAL);
  44.    printf(lcd_putc,"\fData:");
  45.    off(trigger);
  46.    while(true)
  47.    {
  48.       on(trigger);
  49.       delay_us(20);
  50.       off(trigger);
  51.       while(!data_eco);
  52.       if(CCP_2>=30000)
  53.          printf(lcd_putc,"\n NO DATA              ");
  54.       else
  55.          printf(lcd_putc,"\nx:%2.1fcm  t:%lu %cS  ", (float)CCP_2*0.01715*0.333, CCP_2, 0xe4);
  56.       data_eco=false;
  57.       delay_ms(250);
  58.    }
  59. }

El factor de conversion tiene que ver con la velocidad del sonido en el aire (que depende de la temperatura y densidad del aire) y con la configuracion del TIMER.

Saludos
El papel lo aguanta todo

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #13 en: 04 de Mayo de 2014, 14:04:56 »
Hummmmm  :mrgreen:

Aquí está el programa para el 12c508 del SFR04 que realiza el disparo "ultrasónico" y recibe su eco.

Código: ASM
  1. ;////////////////////////////////////////////////////////////////////////////
  2. ;//
  3. ;//     Ultrasonic rangefinder Software
  4. ;//
  5. ;//     Written by Gerald Coe     -       May 2000
  6. ;//     Tidied up for publication - 12th July 2000
  7. ;//
  8. ;//     Private and Educational use only is permitted
  9. ;//     Commercial use of this software is prohibited.
  10. ;//
  11. ;////////////////////////////////////////////////////////////////////////////
  12.  
  13.  
  14.         processor       12c508
  15.         __config        0feeh           ; Internal Osc, WDT Enabled, not code protected
  16.         include "p12c508.inc"
  17. #define RAMSTART 07h
  18.  
  19.         radix   dec
  20.  
  21. #define trig    GPIO,0          ; trigger input from host
  22. #define pulse   GPIO,1          ; timing pulse output to host
  23. #define echo    GPIO,2          ; echo signals from comparitor
  24. #define  nc     GPIO,3          ; Unused - do not connect.
  25. #define tx2     GPIO,4          ; Tx phase 2
  26. #define tx1     GPIO,5          ; Tx phase 1
  27.  
  28. #define _C      STATUS,C
  29.  
  30. ;/////////////////////////////////////////////////////////////////////////////
  31.  
  32.         org     RAMSTART
  33.  
  34. loop            res     1       ; loop counter
  35. dlyctr          res     1       ; delay counter
  36. tone_cnt        res     1       ; count echo cycles
  37. period          res     1       ; received burst cycle period from tmr0
  38.  
  39. ;/////////////////////////////////////////////////////////////////////////////
  40.  
  41.         org     0               ;start address 0
  42.  
  43.         movwf   OSCCAL          ; use microchip's calibration value
  44.  
  45.         movlw   89h
  46.         option                  ;assign 1:2 prescaler to watchdog
  47.  
  48.         movlw   0dh
  49.         tris    GPIO            ;GPIO 1, 4 & 5 are outputs
  50.         movwf   0
  51.  
  52.         bcf     pulse
  53.  
  54. ;////////////////////////////////////////////////////////////////////////////
  55. ;
  56. ; The main loop controls the range finder. In response to a low going trigger
  57. ; input, its calls "burst" to send out 8 cycles of 40khz. It then raises the
  58. ; pulse line so the host can begin timing.
  59. ; There is a choice of two tone detect routines, the simplest is currently set.
  60. ; It then clears the output pulse so the host can complete timing, and loops
  61. ; around to wait for the next cycle.
  62. ; If an echo is not detected then the watchdog timer will reset the PIC after
  63. ; about 30mS, and the pulse line will be cleared. Therefore a very long pulse
  64. ; should be interpreted as "nothing detected"
  65.  
  66. main:   clrwdt
  67.         btfss   trig            ; wait for trigger signal from user to go high
  68.         goto    main            ; from previous measurement.
  69.  
  70. m2:     clrwdt
  71.         btfsc   trig            ; wait for trigger signal from user
  72.         goto    m2
  73.  
  74.         call    burst           ; send the ultra-sonic burst
  75.         bsf     pulse           ; start the output timing pulse
  76.        
  77. ; OK, here's the cheap-n-easy way to detect the echo, just wait for a transition
  78. ; on the echo line. Though not really detecting a tone, it is very effective.
  79. ; The transducers provide the selectivity.
  80.  
  81. m1:     btfsc   echo
  82.         goto    m1              ; wait for low
  83.         bcf     pulse           ; end the output timing pulse
  84.  
  85. ; And here is the "proper" tone detecter. It detects 3 cycles of 40khz to
  86. ; give a valid output. It works but is still experimental. It is not as effective
  87. ; as just detecting the first edge, particually in the first few cm.
  88. ;
  89. ;       call tone               ; validate 3 cycles of 40khz
  90. ;       bcf     pulse           ; end the output timing pulse
  91. ;
  92.  
  93.         goto    main
  94.  
  95. ;////////////////////////////////////////////////////////////////////////////
  96. ;
  97. ; The burst routine generates an acurately times 40khz burst of 8 cycles.
  98. ; Since a 4Mhz PIC (1uS instruction rate) cannot gerenate timings of less
  99. ; than 1uS, the high half cycle is 12uS and the low half cycle 13uS.
  100. ; That's good enough.
  101.  
  102. burst:  clrf    loop
  103.         movlw   8               ; number of cycles in burst
  104.         movwf   loop
  105.  
  106. burst1: movlw   0x10            ; 1st half cycle
  107.         movwf   GPIO
  108.  
  109.         movlw   3               ; (3 * 3inst * 1uS) -1uS = 8uS
  110.         movwf   dlyctr          ; 8uS + (4*1uS) = 12uS
  111. burst2: decfsz  dlyctr,f
  112.         goto    burst2
  113.  
  114.         movlw   0x20
  115.         movwf   GPIO
  116.         movlw   2               ; (2 * 3inst * 1uS) -1uS = 5uS
  117.         movwf   dlyctr          ; 5uS + (8*1uS) = 13uS
  118. burst3: decfsz  dlyctr,f
  119.         goto    burst3
  120.         nop
  121.         decfsz  loop,f
  122.         goto    burst1
  123.  
  124.         movlw   0x00            ; set both drives low
  125.         movwf   GPIO
  126.  
  127.         retlw   0
  128.  
  129. ;////////////////////////////////////////////////////////////////////////////
  130. ;
  131. ; The timing for this routine is critical. Our little PIC is only chugging
  132. ; along at 4Mhz, or 1uS per instruction. The longest path though this code
  133. ; is 19uS, out of the 25uS available - thats tight and why I only wait for a
  134. ; low on the echo line and not a high as well.
  135.  
  136. tone:   clrf    TMR0
  137.  
  138. t1:     btfsc   echo
  139.         goto    t1              ; wait for low
  140.  
  141.         movfw   TMR0
  142.         clrf    TMR0
  143.         movwf   period          ; store timer0 value
  144.  
  145.         movlw   21              ; if(period>22 && period<30)
  146.         subwf   period,w
  147.         btfss   _C
  148.         goto    t2
  149.         movlw   30
  150.         subwf   period,f
  151.         btfsc   _C
  152.         goto    t2
  153.  
  154.         decfsz  tone_cnt,f      ; 25uS period OK, so
  155.         goto    t1              ; if not yet 3 of them, keep looking
  156.         retlw   0               ; else - success - return
  157.        
  158. t2:     movlw   3               ; failed to detect 25uS period, so reset tone detect
  159.         movwf   tone_cnt        ; to 3 and keep looking
  160.         goto    t1
  161.  
  162. ;////////////////////////////////////////////////////////////////////////////
  163.  
  164.         end
  165.  
  166. ;////////////////////////////////////////////////////////////////////////////
« Última modificación: 04 de Mayo de 2014, 14:06:58 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sensor aparcamiento por ultrasonidos
« Respuesta #14 en: 04 de Mayo de 2014, 14:52:16 »
¡Qué lujo, con códigos fuente y todo!. Muchas gracias por toda la info, seguro que así será mucho más fácil.

También tengo para rato con todos los links que ha publicado Xocas  :D