Új Jelszó Kérése
Kategóriák
Termék Részletek

Ultrahangos távolságmérő Raspberry PI-hez + ajándék extrák

Raktárkészlet: VAN
Ultrahangos távolságmérő Raspberry PI-hez + ajándék extrák
2 690 Ft2690

A HC-SR04 ultrahangos távolságmérő szenzor segítségével 2 cm-től 450 cm-ig mérhetünk nagy pontossággal távolságot. Egyszerűen illeszthetjük a Raspberry PI-hez 2 db ellenállás és néhány jumper kábel segítségével.

 

Az ellenállásokat ajándékba kapod, hogy azonnal összerakhasd Te is!

  • Működés:

     

    1, A szenzor Trigger lábán egy 10us-os High (5V) jelet kell adni a mérés megkezdéséhez.

    2, A modul automatikusan kiküld nyolc 40kHz-es négyszög alakú impulzust és automatikusan felismeri a visszaverődött jelet.

    3, Az echo lábát HIGH-ba billenti, és addig marad HIGH-ban amíg érzékeli a hang visszaverődését. Amint veszi a visszaverődött jelet, LOW-ba kerül. Ezt az időtartamot kell megmérni (HIGH_LEVEL_time) a távolság meghatározásához.

     

    Ez alapján a hang terjedési sebességének (~340 m/s) ismeretében kiszámolható azon objektum pontos távolsága, melyről a visszaverődés történt.

     

    (Fontos: a mérés eredménye a mérendő távolság kétszeresének megtételéhez szükséges idő lesz, mert az ultrahang a modul adójától eljut a tárgyig, majd onnan visszaverődve tér vissza a modul vevő szenzoráig)

     

    Azaz:

     

    mért_távolság = (HIGH_LEVEL_time * hangsebesség ) / 2

     

    Illesztés a Raspberry PI-hez:

     


    A mellékelt kép szerint kössük a HC-SR04 ultrahangos távolságmérő szenzor lábait a Raspberry PI-hez. A tápfeszültséget (+5V) közvetlenül a Raspberry PI-ről (2-es láb) kapja. A szenzor GND lábát a Raspberry PI 6-os lábára kötjük. A bemeneti Trigger jelet a GPIO23 (16-os láb) lábról adjuk. Ehhez ezt a lábat OUT módba tesszük. A szenzor vezérléséhez megfelelő a 3.3V-os jelszint.


    Mivel a HC-SR04 kimenetén (ECHO láb) 5V TTL jelet ad, ezért két ellenállás (R1=330 Ohm, R2=470 Ohm) segítségével állítjuk elő a 3.3V-os Raspberry PI-vel kompatibilis jelszintet.


    Az R1 és R2 közötti pontot kötjük a Raspberry PI GPIO24 portjára (18-as láb). Ezt a lábat IN módba kell konfigurálni és ezen tudjuk érzékelni az ECHO láb jelszintváltozását (3.3V -> 0V).

     

    Ötletek a felhasználáshoz:

    • biztonsági megoldások (közelítés érzékelés)
    • robotika
    • a Te fantáziád bármit kitalál

     

    Tulajdonságok:

     

    • Tápfeszültség: 5V
    • Áram felvétel: <2mA
    • Érzékelési szög: 15fok
    • Érzékelési távolság: 2cm-450cm
    • Pontosság: 0.3 cm
    • Bemeneti trigger jel: 10usec TTL
    • Kimeneti jel: TTL PWL jel (5V->0V)

     

    Csatlakozók:

    • VCC
    • trig(T)
    • echo(R)
    • GND

     

    Python kód:

     

    Az alábbi kódot mentsük el hcsr04.py névvel. 
    Futtatás:

     

    sudo python hcsr04.py

    Köszönet érte Matt Hawkins-nak

     



    #!/usr/bin/python
    #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    #|R|a|s|p|b|e|r|r|y|P|i|-|S|p|y|.|c|o|.|u|k|
    #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    #
    # hcsr04.py
    # Measure distance using an ultrasonic module
    # in a loop.
    #
    # Author : Matt Hawkins
    # Date   : 28/01/2013

    # -----------------------
    # Import required Python libraries
    # -----------------------
    import time
    import RPi.GPIO as GPIO

    # -----------------------
    # Define some functions
    # -----------------------

    def measure():
     # This function measures a distance
     GPIO.output(GPIO_TRIGGER, True)
     time.sleep(0.00001)
     GPIO.output(GPIO_TRIGGER, False)
     start = time.time()

     while GPIO.input(GPIO_ECHO)==0:
       start = time.time()

     while GPIO.input(GPIO_ECHO)==1:
       stop = time.time()

     elapsed = stop-start
     distance = (elapsed * 34300)/2

     return distance

    def measure_average():
     # This function takes 3 measurements and
     # returns the average.
     distance1=measure()
     time.sleep(0.1)
     distance2=measure()
     time.sleep(0.1)
     distance3=measure()
     distance = distance1 + distance2 + distance3
     distance = distance / 3
     return distance

    # -----------------------
    # Main Script
    # -----------------------

    # Use BCM GPIO references
    # instead of physical pin numbers
    GPIO.setmode(GPIO.BCM)

    # Define GPIO to use on Pi
    GPIO_TRIGGER = 23
    GPIO_ECHO    = 24

    print "Ultrasonic Measurement"

    # Set pins as output and input
    GPIO.setup(GPIO_TRIGGER,GPIO.OUT)  # Trigger
    GPIO.setup(GPIO_ECHO,GPIO.IN)      # Echo

    # Set trigger to False (Low)
    GPIO.output(GPIO_TRIGGER, False)

    # Wrap main content in a try block so we can
    # catch the user pressing CTRL-C and run the
    # GPIO cleanup function. This will also prevent
    # the user seeing lots of unnecessary error
    # messages.
    try:

     while True:

       distance = measure_average()
       print "Distance : %.1f" % distance
       time.sleep(1)

    except KeyboardInterrupt:
     # User pressed CTRL-C
     # Reset GPIO settings
     GPIO.cleanup()

  • Raktárkészlet
    VAN
    Cikkszám
    RPI-885265
Webáruház készítés
Weboldalunk további használatával jóváhagyja a cookie-k használatát az adatvédelmi nyilatkozatban foglaltak szerint.