Aveņu Pi

Kā izmērīt attālumu ar Aveņu Pi

Kā izmērīt attālumu ar Aveņu Pi
Jūs varat izmērīt attālumu, izmantojot Raspberry Pi ultraskaņas sensoru HC-SR04. HC-SR04 sensors var izmērīt attālumu no 2 mm (.02m) līdz 400cm (4m). Tas nosūta 8 sērijas 40KHz signālus un pēc tam gaida, kamēr tas trāpīs objektā un atgriezīsies. Laiks, kas nepieciešams, lai ultraskaņas 40KHz skaņas vilnis virzītos uz priekšu un atpakaļ, tiek izmantots, lai aprēķinātu attālumu starp sensoru un ceļā esošo objektu. Būtībā tā darbojas HC-SR04 sensors.

Šajā rakstā es parādīšu, kā ar HC-SR04 ultraskaņas sensoru izmērīt attālumu starp sensoru un objektu savā veidā, izmantojot Raspberry Pi. Sāksim.

Nepieciešamie komponenti:

Lai veiksmīgi izmērītu attālumu ar Raspberry Pi un HC-SR04 sensoru, jums tas ir nepieciešams,

Esmu uzrakstījis īpašu rakstu par Raspbian instalēšanu Raspberry Pi, kuru varat pārbaudīt vietnē https: // linuxhint.lv / install_raspbian_raspberry_pi / ja nepieciešams.

HC-SR04 tapas:

HC-SR04 ir 4 tapas. VCC, TRIGGER, ECHO, GRUD.

1. attēls: HC-SR04 pinouts (https: // www.peles.com / ds / 2/813 / HCSR04-1022824.pdf)

VCC tapai jābūt savienotai ar Raspberry Pi + 5V tapu, kas ir 2. tapa. ZEME zemei ​​jāpieslēdz Raspberry Pi GND tapai, kas ir 4. tapa.

TRIGGER un ECHO tapām jābūt savienotām ar Raspberry Pi GPIO tapām. Kaut arī TRIGGER tapu var tieši savienot ar vienu no Raspberry Pi GPIO tapām, ECHO tapai ir nepieciešama sprieguma dalītāja ķēde.

Ķēdes shēma:

Pievienojiet ultraskaņas sensoru HC-SR04 savam Raspberry Pi šādi:

2. attēls: HC-SR04 ultraskaņas sensors, kas savienots ar Raspberry Pi.

Kad viss ir savienots, tas izskatās šādi:

3. attēls: ultraskaņas sensors HC-SR04, kas savienots ar Raspberry Pi uz maizes dēļa.

4. attēls: HC-SR04 ultraskaņas sensors, kas savienots ar Raspberry Pi uz maizes dēļa.

Python programmas rakstīšana attāluma mērīšanai ar HC-SR04:

Vispirms izveidojiet savienojumu ar savu Raspberry Pi, izmantojot VNC vai SSH. Pēc tam atveriet jaunu failu (pieņemsim, ka attālums.py) un ierakstiet šādas kodu rindas:

Šeit 1. rinda importē aveņu pi GPIO bibliotēku.

2. rindā tiek importēta laika bibliotēka.

Iekšpusē mēģiniet bloks, tiek uzrakstīts faktiski kods attāluma mērīšanai, izmantojot HC-SR04.

The beidzot bloks tiek izmantots, lai notīrītu GPIO tapas ar GPIO.satīrīt() metodi, kad programma iziet.

Iekšpusē mēģiniet bloks, 5. līnijā, GPIO.iestatītais režīms (GPIO.PADOME) tiek izmantots, lai atvieglotu tapu definēšanu. Tagad jūs varat atsaukties tapas pēc fiziskiem skaitļiem, kā tas ir uz Raspberry Pi dēļa.

7. un 8. līnijā, pinTrigger ir iestatīts uz 7 un pinEcho ir iestatīts uz 11. The TRIGGER HC-SR04 tapa ir savienota ar tapu 7 un ECHO HC-SR04 tapa ir savienota ar Rapsberry Pi tapu 11. Abi šie ir GPIO tapas.

10. līnijā, pinTrigger ir iestatīta funkcijai OUTPUT, izmantojot GPIO.uzstādīt() metodi.

11. līnijā, pinEcho ir iestatīts INPUT, izmantojot GPIO.uzstādīt() metodi.

13-17. Rindas tiek izmantotas atiestatīšanai pinTrigger (iestatot to uz loģiku 0) un pinTrigger uz loģiku 1 uz 10 ms un pēc tam uz loģiku 0. Pēc 10 ms HC-SR04 sensors sūta 8 40KHz impulsu.

19. – 24. Līniju izmanto, lai izmērītu laiku, kas vajadzīgs, lai 40 KHz impulsi tiktu atspoguļoti objektā un atpakaļ uz sensoru HC-SR04.

25. līnijā attālumu mēra, izmantojot formulu,

Attālums = delta laiks * ātrums (340M / S) / 2

=> Attālums = delta laiks * (170M / S)

Aprēķināju attālumu centimetros, nevis metros, lai būtu precīzi. Es aprēķināju, ka attālums ir noapaļots līdz 2 zīmēm aiz komata.

Visbeidzot, 27. rindiņā rezultāts tiek izdrukāts. Tas tā, ļoti vienkārši.

Tagad palaidiet Python skriptu ar šādu komandu:

$ python3 attālums.py

Kā redzat, izmērītais attālums ir 8.40 cm.

5. attēls: objekts, kas novietots apmēram 8.40 cm attālumā no sensora.

Pārcēlos uz objektu mazliet tālāk, izmērītais attālums ir 21.81 cm. Tātad, tas darbojas kā paredzēts.

6. attēls: objekts, kas novietots apmēram 21.81 cm attālumā no sensora.

Tātad, kā jūs mērot attālumu ar Raspberry Pi, izmantojot ultraskaņas sensoru HC-SR04.  Skatiet attāluma kodu.py zemāk:

importa RPi.GPIO kā GPIO
importa laiks
mēģiniet:
GPIO.iestatītais režīms (GPIO.PADOME)
pinTrigger = 7
pinEcho = 11
 
GPIO.iestatīšana (pinTrigger, GPIO.OUT)
GPIO.iestatīšana (pinEcho, GPIO.IN)
 
GPIO.izvade (pinTrigger, GPIO.ZEMS)
GPIO.izvade (pinTrigger, GPIO.AUGSTS)
 
laiks.gulēt (0.00001)
GPIO.izvade (pinTrigger, GPIO.ZEMS)
 
kamēr GPIO.ievade (pinEcho) == 0:
pulseStartTime = laiks.laiks()
kamēr GPIO.ievade (pinEcho) == 1:
pulseEndTime = laiks.laiks()
 
pulseDuration = pulseEndTime - pulseStartTime
attālums = apaļš (impulsa ilgums * 17150, 2)
 
drukāt ("Attālums:%.2f cm "% (attālums))
visbeidzot:
GPIO.satīrīt()
Cīņa par Vesnota apmācību
Cīņa par Vesnotu ir viena no populārākajām atvērtā koda stratēģijas spēlēm, kuru jūs varat spēlēt šajā laikā. Šī spēle ir izstrādāta ne tikai ļoti ilg...
0 A.D. Apmācība
No daudzajām stratēģijas spēlēm 0 A.D. izdodas izcelties kā visaptverošs nosaukums un ļoti dziļa, taktiska spēle, neskatoties uz to, ka tā ir atvērtā ...
Unity3D apmācība
Ievads Vienotībā 3D Unity 3D ir spēcīgs spēļu izstrādes dzinējs. Tā ir pārrobežu platforma, kas ļauj izveidot spēles mobilajām ierīcēm, tīmeklim, gald...