Raspberry Pi

Jak měřit vzdálenost pomocí Raspberry Pi

Jak měřit vzdálenost pomocí Raspberry Pi
Můžete měřit vzdálenost pomocí ultrazvukového senzoru HC-SR04 s Raspberry Pi. Senzor HC-SR04 může měřit vzdálenost od 2 mm (.02 m) až 400 cm (4 m). Vysílá 8 dávek 40kHz signálů a poté čeká, až zasáhne objekt a odrazí se zpět. Čas potřebný k tomu, aby se ultrazvuková 40kHz zvuková vlna pohybovala tam a zpět, se používá k výpočtu vzdálenosti mezi senzorem a objektem na cestě. Takto v podstatě funguje senzor HC-SR04.

V tomto článku vám ukážu, jak pomocí ultrazvukového senzoru HC-SR04 měřit vzdálenost mezi senzorem a objektem způsobem pomocí Raspberry Pi. Začněme.

Komponenty, které potřebujete:

K úspěšnému měření vzdálenosti pomocí senzoru Raspberry Pi a HC-SR04 potřebujete,

Napsal jsem speciální článek o instalaci Raspbian na Raspberry Pi, který můžete zkontrolovat na https: // linuxhint.com / install_raspbian_raspberry_pi / pokud potřebujete.

HC-SR04 Pinouts:

HC-SR04 má 4 piny. VCC, TRIGGER, ECHO, GROUD.

Obr.1: Pinouty HC-SR04 (https: // www.myší lovec.com / ds / 2/813 / HCSR04-1022824.pdf)

Pin VCC by měl být připojen k pinu + 5V Raspberry Pi, což je pin 2. Kolík GROUND by měl být připojen ke kolíku GND Raspberry Pi, což je kolík 4.

Kolíky TRIGGER a ECHO by měly být připojeny ke kolíkům GPIO Raspberry Pi. Zatímco pin TRIGGER lze přímo připojit k jednomu z pinů GPIO Raspberry Pi, pin ECHO potřebuje obvod děliče napětí.

Kruhový diagram:

Připojte ultrazvukový senzor HC-SR04 k vašemu Raspberry Pi následujícím způsobem:

Obr2: Ultrazvukový senzor HC-SR04 připojený k Raspberry Pi.

Jakmile je vše propojeno, vypadá to takto:

Obr3: Ultrazvukový senzor HC-SR04 připojený k Raspberry Pi na prkénku.

Obr4: Ultrazvukový senzor HC-SR04 připojený k Raspberry Pi na prkénku.

Psaní programu v Pythonu pro měření vzdálenosti pomocí HC-SR04:

Nejprve se připojte k Raspberry Pi pomocí VNC nebo SSH. Poté otevřete nový soubor (řekněme vzdálenost.py) a zadejte následující řádky kódů:

Zde řádek 1 importuje knihovnu GPIO maliny pi.

Řádek 2 importuje knihovnu času.

Uvnitř Snaž se bloku, je zapsán skutečný kód pro měření vzdálenosti pomocí HC-SR04.

The Konečně blok se používá k vyčištění pinů GPIO pomocí GPIO.vyčištění () metoda při ukončení programu.

Uvnitř Snaž se blok, na řádku 5, GPIO.režim nastavení (GPIO.PRKNO) se používá k usnadnění definování pinů. Nyní můžete odkazovat na piny podle fyzických čísel, jak je to na desce Raspberry Pi.

Na řádku 7 a 8, pinTrigger je nastaven na 7 a pinEcho je nastaven na 11. The SPOUŠŤ pin HC-SR04 je připojen ke kolíku 7, a ECHO pin HC-SR04 je připojen k pinu 11 Rapsberry Pi. Oba jsou to GPIO piny.

Na řádku 10, pinTrigger je nastaven na VÝSTUP pomocí GPIO.založit() metoda.

Na řádku 11, pinEcho je nastaveno na VSTUP pomocí GPIO.založit() metoda.

Řádky 13-17 se používají pro resetování pinTrigger (nastavením na logiku 0) a nastavením pinTrigger do logiky 1 po dobu 10 ms a poté do logiky 0. Za 10 ms vysílá snímač HC-SR04 8 pulsů 40 KHz.

Řádky 19-24 se používají k měření času potřebného k tomu, aby se impulsy 40KHz odrazily na objekt a zpět na snímač HC-SR04.

Na řádku 25 se vzdálenost měří pomocí vzorce,

Vzdálenost = delta čas * rychlost (340M / S) / 2

=> Vzdálenost = delta čas * (170M / S)

Vypočítal jsem vzdálenost v centimetrech místo v metrech, abych byl přesný. I vypočítaná vzdálenost je také zaokrouhlena na 2 desetinná místa.

Nakonec se na řádku 27 vytiskne výsledek. To je ono, velmi jednoduché.

Nyní spusťte skript Pythonu s následujícím příkazem:

$ python3 vzdálenost.py

Jak vidíte, měřená vzdálenost je 8.40 cm.

Obr.5: objekt umístěný přibližně na 8.40 cm od senzoru.

Přesunul jsem se o kousek dál, naměřená vzdálenost je 21.81 cm. Funguje to podle očekávání.

Obr.6: objekt umístěn přibližně na 21.81 cm od senzoru.

Takto tedy měříte vzdálenost pomocí Raspberry Pi pomocí ultrazvukového snímače HC-SR04.  Podívejte se na kód vzdálenosti.py níže:

import RPi.GPIO jako GPIO
čas importu
Snaž se:
GPIO.režim nastavení (GPIO.PRKNO)
pinTrigger = 7
pinEcho = 11
 
GPIO.nastavení (pinTrigger, GPIO.VEN)
GPIO.nastavení (pinEcho, GPIO.V)
 
GPIO.výstup (pinTrigger, GPIO.NÍZKÝ)
GPIO.výstup (pinTrigger, GPIO.VYSOKÝ)
 
čas.spánek (0.00001)
GPIO.výstup (pinTrigger, GPIO.NÍZKÝ)
 
zatímco GPIO.vstup (pinEcho) == 0:
pulseStartTime = čas.čas()
zatímco GPIO.vstup (pinEcho) == 1:
pulseEndTime = čas.čas()
 
pulseDuration = pulseEndTime - pulseStartTime
vzdálenost = kulatá (pulseDuration * 17150, 2)
 
tisk ("Vzdálenost:%.2f cm "% (vzdálenost))
Konečně:
GPIO.vyčištění ()
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...