Geplaatst op Geef een reactie

HC-SR04 Ultrasone afstandssensor met Raspberry Pi Pico

Raspberry Pi Pico HC-SR04 ultrasonic distance sensor

De HC-SR04 ultrasone afstandssensor werkt als een sonar. Laten we in deze tutorial kijken hoe je de HC-SR04 aansluit op een Raspberry Pi Pico. We zullen ook een script schrijven in MicroPython om een gemeten afstand te berekenen op basis van de invoergegevens van de sensor.

  1. Voorbereiding

    – Eerst heb je een computer nodig om Thonny op te laten draaien. In deze tutorial gebruiken we een Raspberry Pi 4 als computer. En Thonny is een gebruiksvriendelijke Python IDE om te communiceren met het Raspberry Pi Pico-bordje. Als je Thonny nog nooit hebt gebruikt om de Raspberry Pi Pico te programmeren, kun je best, vooraleer je verder gaat, onze tutorial “Start met het programmeren van de Raspberry Pi Pico” bekijken.

    – Vervolgens heb je een USB-kabel met micro-USB-stekker nodig.
    – Je hebt natuurlijk ook een Raspberry Pi Pico nodig. Voor deze tutorial heb je pin-headers nodig die op de GPIO-pinnen van je bord zijn gesoldeerd.

    En tot slot heb je nog wat extra componenten nodig:
    – een breadboard (we gebruiken een breadboard van 400 punten)
    – een HC-SR04 ultrasone sensor
    – een weerstand van 1k Ohm en één van 2k Ohm
    – Dupont jumper kabels

    Indien je dingen zou missen, aarzel dan niet om onze shop te bezoeken.Raspberry Pi Pico breadboard HC-SR04

  2. Maak kennis met de HC-SR04 ultrasone sensor

    De HC-SR04 ultrasone sensor gebruikt het sonar principe om de afstand tot een voorwerp te bepalen. Het biedt een contactloze meting met een goede nauwkeurigheid en stabiele aflezingen. Op de module vinden we een ultrasone zender en een ontvanger. De sensor heeft een bereik van 2 tot 400cm. De nauwkeurigheid van de meting is +/- 0,5cm.

    Om de afstand te bepalen gebruikt de sensor ultrasone geluidssignalen:
    – De zender stuurt een geluidssignaal in de richting van het object.
    – Wanneer het signaal het object bereikt, wordt het weerkaatst naar de sensor.
    – De ontvanger kan het weerkaatste signaal waarnemen.

    We kunnen het tijdsverschil berekenen tussen het tijdstip wanneer de zender het signaal verstuurt en het tijdstip wanneer de ontvanger het signaal opvangt. Vermits de snelheid van het geluid gekend is (343,3m/s of 34330cm/s) kunnen we nu de afstand berekenen:

    afstand = snelheid * tijd , of in ons geval:
    afstand = 34330 * tijd / 2 , of afstand = 17165 * tijd

    Opmerking: Vermits de gemeten tijd rekening houdt met de afstand van sensor tot object en de afstand van object tot sensor, dienen we deze waargenomen tijd te delen door 2.
    HC-SR04 ultrasonic distance sensor
    Let op! Voordat je begint met het aansluiten van componenten op de GPIO-pinnen van je Raspberry Pi Pico, dien je ervoor te zorgen dat je de Pico losgekoppeld is van je computer.

  3. Stel de hardware op

    Raspberry Pi Pico HC-SR04 pinout– plaats de HC-SR04-sensor op het breadbord zoals weergegeven in de onderstaande afbeelding
    – verbind de VCC pin van de sensor met een 5V pin (rode draad)
    – sluit de Trig-pin van de sensor aan op GP17 (groene draad)
    – sluit de Echo pin van de sensor aan op de 1kOhm weerstand (gele draad)
    – sluit het andere uiteinde van de 1kOhm weerstand aan op GP16
    – sluit de GND van de sensor aan op de “-” rij van het breadboard (zwarte draad)
    – sluit een GND-pin van de Pico aan op de “-” rij van het breadboard (zwarte draad)
    – plaats de 2kOhm weerstand tussen GP16 en de “-” rij
    Raspberry Pi Pico HC-SR04 breadboard

  4. Schrijf de code

    Het doel hier is om een eenvoudig MicroPython-script te schrijven dat elke seconde een afstand in cm tussen de ultrasone sensor en een object berekent.

    Open nu Thonny en schrijf of plak de volgende code in de IDE:

    from machine import Pin
    import time
    trig = Pin(17, Pin.OUT)
    echo = Pin(16, Pin.IN, Pin.PULL_DOWN)
    while True:
         trig.value(0)
         time.sleep(0.1)
         trig.value(1)
         time.sleep_us(2)
         trig.value(0)
         while echo.value()==0:
              pulse_start = time.ticks_us()
         while echo.value()==1:
              pulse_end = time.ticks_us()
         pulse_duration = pulse_end - pulse_start
         distance = pulse_duration * 17165 / 1000000
         distance = round(distance, 0)
         print ('Distance:',"{:.0f}".format(distance),'cm')
         time.sleep(1)


    Let op! MicroPython is witruimte gevoelig. Verwijder de “tabs” niet.

    MicroPython Pico HC-SR04 script
    Wat verklaringen over de code:
    from machine import Pin : de machinemodule gedeeltelijk importeren om toegang te krijgen tot de GPIO-pinnen.
    import time : de tijdmodule te importeren. Dit stelt ons in staat om tijdgerelateerde taken te gebruiken.
    trig= Pin(17, Pin.OUT) : hier declareren we de trigger sensor pin (=GP17) als een output pin.
    echo= Pin(16, Pin.IN, Pin.PULL_DOWN): hier definiëren we de echo sensor (=GP16) als ingangspin, om een ‘zwevende’ ingang te voorkomen gebruiken we een interne pull-up weerstand.
    while True: is een oneindige loop (tot het programma gestopt wordt).
    trig.value(0) : om er zeker van te zijn dat de sensor geen geluid produceert
    time.sleep(0.1) : we wachten een korte periode om de sensor te regelen
    trig.value(1) : om de sensor een geluid te laten produceren
    time.sleep_us(2) : we laten een zeer korte tijd uitzenden: 2 microseconden
    trig.value(0) : stop met het produceren van het geluid
    Nu produceert de sensor een puls waarvan de duur evenredig is met de gemeten afstand. We moeten dus de begin- en eindtijd vastleggen. En dan maken wij het verschil om de verstreken tijd te berekenen.
    pulse_start = time.ticks_us() : hier houden we de tijd bij zolang de sensor de puls niet produceert.
    pulse_end = time.ticks_us() : hier houden we de tijd bij zolang de sensor de puls wel produceert.
    pulse_duration = pulse_end - pulse_start we berekenen het tijdsverschil tussen beide tijden.
    distance = pulse_duration * 17165 / 1000000 : we berekenen de afstand op basis van de tijd en rekenen microseconden om naar seconden (zie uitleg in vorige paragraaf)
    Ten slotte ronden we het resultaat af en drukken het ook af.

  5. Voer het script uit

    Nu is het tijd om je script op te slaan. Je kan het op je computer of op je Pico-bord opslaan.

    Klik vervolgens op de ‘Run’ knop van de Thonny IDE. En richt de sensor op een object met een plat oppervlak. Hiermee zie je meteen de afstand tussen de sensor en het object op het scherm verschijnen.

    HC-SR04 ultrasonic distance sensor
    Wees voorzichtig met andere voorwerpen in de buurt. Deze kunnen ook een echo sturen. Waardoor je dan foutieve meetwaarden krijgt.

Gefeliciteerd! Met deze opstelling begrijp je nu het principe van hoe sommige afstandsmeters werken. Verder kan je het script gebruiken om het resultaat te verwerken in een applicatie waar je zelf een bepaalde afstand wil meten of bewaken. Veel plezier ermee!

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

ontdek hier meer producten

Blijf als eerste op de hoogte van onze nieuwste tutorials en producten door u in te schrijven op onze nieuwsbrief

freva.com respecteert uw privacy. Lees ons privacybeleid over hoe wij omgaan met uw persoonlijke gegevens.