Malinový koláč

Ako merať vzdialenosť pomocou Raspberry Pi

Ako merať vzdialenosť pomocou Raspberry Pi
Vzdialenosť môžete merať pomocou ultrazvukového snímača HC-SR04 s Raspberry Pi. Snímač HC-SR04 dokáže merať vzdialenosť od 2 mm (.02 m) až 400 cm (4 m). Posiela 8 sérií 40KHz signálov a potom čaká, kým zasiahne objekt a odrazí sa späť. Čas potrebný na cestu ultrazvukovej 40 kHz zvukovej vlny tam a späť sa používa na výpočet vzdialenosti medzi snímačom a objektom na ceste. Takto v podstate funguje snímač HC-SR04.

V tomto článku vám ukážem, ako používať ultrazvukový snímač HC-SR04 na meranie vzdialenosti medzi vašim snímačom a objektom spôsobom, ktorý využíva Raspberry Pi. Začnime.

Komponenty, ktoré potrebujete:

Ak chcete úspešne zmerať vzdialenosť pomocou senzorov Raspberry Pi a HC-SR04, potrebujete,

Napísal som špecializovaný článok o inštalácii Raspbian na Raspberry Pi, ktorý si môžete skontrolovať na https: // linuxhint.com / install_raspbian_raspberry_pi / ak potrebujete.

HC-SR04 Pinouts:

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

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

Kolík VCC by mal byť pripojený k kolíku + 5 V na Raspberry Pi, čo je kolík 2. Kolík GROUND by mal byť pripojený k kolíku GND Raspberry Pi, čo je pin 4.

Kolíky TRIGGER a ECHO by mali byť pripojené ku kolíkom GPIO Raspberry Pi. Zatiaľ čo pin TRIGGER je možné priamo pripojiť k jednému z GPIO pinov Raspberry Pi, pin ECHO vyžaduje obvod deliča napätia.

Schéma zapojenia:

Pripojte ultrazvukový snímač HC-SR04 k svojmu Raspberry Pi nasledujúcim spôsobom:

Obrázok 2: Ultrazvukový senzor HC-SR04 pripojený k Raspberry Pi.

Keď je všetko spojené, vyzerá to takto:

Obrázok 3: Ultrazvukový senzor HC-SR04 pripojený k Raspberry Pi na doske.

Obrázok 4: Ultrazvukový snímač HC-SR04 pripojený k Raspberry Pi na nepájivej doske.

Písanie programu v Pythone na meranie vzdialenosti pomocou HC-SR04:

Najskôr sa pripojte k svojmu Raspberry Pi pomocou VNC alebo SSH. Potom otvorte nový súbor (povedzme vzdialenosť.py) a zadajte nasledujúce riadky kódov:

Riadok 1 tu importuje GPIO knižnicu maliny pi.

2. riadok importuje časovú knižnicu.

Vnútri skús bloku, zapíše sa skutočný kód na meranie vzdialenosti pomocou HC-SR04.

The konečne blok slúži na vyčistenie pinov GPIO pomocou GPIO.vyčistiť() metóda pri ukončení programu.

Vnútri skús blok, na riadku 5, GPIO.režim nastavenia (GPIO.RADA) sa používa na uľahčenie definovania kolíkov. Teraz môžete odkazovať na piny podľa fyzických čísel, ako je to na doske Raspberry Pi.

Na linke 7 a 8, pinTrigger je nastavený na 7 a pinEcho je nastavený na 11. The SPUŠŤ pin HC-SR04 je pripojený k pin 7, a ECHO pin HC-SR04 je pripojený k pin 11 Rapsberry Pi. Oba sú to GPIO piny.

Na riadku 10, pinTrigger je nastavený na VÝSTUP pomocou GPIO.nastaviť() metóda.

Na linke 11, pinEcho je nastavený na VSTUP pomocou GPIO.nastaviť() metóda.

Na resetovanie sa používajú riadky 13 - 17 pinTrigger (nastavením na logiku 0) a nastavením pinTrigger do logiky 1 na 10ms a potom do logiky 0. Za 10ms pošle snímač HC-SR04 8 impulzov 40KHz.

Riadky 19-24 sa používajú na meranie času potrebného na odrazenie 40KHz impulzov na objekt a späť do snímača HC-SR04.

Na riadku 25 sa vzdialenosť meria pomocou vzorca,

Vzdialenosť = delta čas * rýchlosť (340 M / S) / 2

=> Vzdialenosť = delta čas * (170 M / S)

Pre presnosť som vypočítal vzdialenosť v centimetroch namiesto v metroch. Počítal som, že vzdialenosť je tiež zaokrúhlená na 2 desatinné miesta.

Nakoniec sa na riadok 27 vytlačí výsledok. To je všetko, veľmi jednoduché.

Teraz spustite skript Pythonu s nasledujúcim príkazom:

$ python3 vzdialenosť.py

Ako vidíte, nameraná vzdialenosť je 8.40 cm.

Obr. 5: objekt umiestnený asi na 8.40 cm od senzora.

Posunul som sa o niečo ďalej, nameraná vzdialenosť je 21.81cm. Funguje teda podľa očakávania.

Obr. 6: objekt umiestnený približne na 21.81 cm od senzora.

Takto teda meriate vzdialenosť pomocou Raspberry Pi pomocou ultrazvukového snímača HC-SR04.  Pozrite sa na kód vzdialenosti.py nižšie:

import RPi.GPIO ako GPIO
čas importu
skúste:
GPIO.režim nastavenia (GPIO.RADA)
pinTrigger = 7
pinEcho = 11
 
GPIO.nastavenie (pinTrigger, GPIO.VON)
GPIO.nastavenie (pinEcho, GPIO.IN)
 
GPIO.výstup (pinTrigger, GPIO.NÍZKY)
GPIO.výstup (pinTrigger, GPIO.VYSOKÉ)
 
čas.spánok (0.00001)
GPIO.výstup (pinTrigger, GPIO.NÍZKY)
 
zatiaľ čo GPIO.vstup (pinEcho) == 0:
pulseStartTime = čas.čas ()
zatiaľ čo GPIO.vstup (pinEcho) == 1:
pulseEndTime = čas.čas ()
 
pulseDuration = pulseEndTime - pulseStartTime
vzdialenosť = zaokrúhlené (pulseDuration * 17150, 2)
 
print ("Vzdialenosť:%.2f cm "% (vzdialenosť))
nakoniec:
GPIO.vyčistiť()
Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...
S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...
Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...