În acest proiect vom interfața modulul senzor ultrasonic HC-SR04 cu Raspberry Pi pentru a măsura distanța. Am folosit anterior senzorul cu ultrasunete cu Raspberry Pi pentru a construi robotul de evitare a obstacolelor. Înainte de a merge mai departe, vă informăm despre senzorul cu ultrasunete.
Senzor cu ultrasunete HC-SR04:
Senzorul cu ultrasunete este utilizat pentru a măsura distanța cu precizie ridicată și citiri stabile. Poate măsura distanța de la 2cm la 400cm sau de la 1 inch la 13 picioare. Emite o undă cu ultrasunete la frecvența de 40KHz în aer și, dacă obiectul îi va ieși în cale, va reveni la senzor. Folosind timpul necesar pentru a lovi obiectul și a reveni, puteți calcula distanța.
Senzorul cu ultrasunete utilizează o tehnică numită „ECHO”. „ECHO” este pur și simplu o undă sonoră reflectată. Veți avea un ECHO când sunetul se reflectă înapoi după ce ați ajuns într-un impas.
Modulul HCSR04 generează o vibrație sonoră în domeniul ultrasunetelor atunci când facem pinul „Trigger” înalt pentru aproximativ 10us, care va trimite o explozie sonică de 8 cicluri la viteza sunetului și, după ce a lovit obiectul, va fi recepționat de pinul Echo. În funcție de timpul luat de vibrațiile sonore pentru a reveni, acesta oferă o ieșire impuls adecvată. Dacă obiectul este departe, este nevoie de mai mult timp pentru ca ECHO să fie auzit, iar lățimea impulsului de ieșire va fi mare. Și dacă obstacolul este aproape, atunci ECHO va fi auzit mai repede și lățimea impulsului de ieșire va fi mai mică.
Putem calcula distanța obiectului pe baza timpului luat de unda ultrasonică pentru a reveni la senzor. Deoarece timpul și viteza sunetului sunt cunoscute, putem calcula distanța prin următoarele formule.
- Distanță = (Timp x Viteza sunetului în aer (343 m / s)) / 2.
Valoarea este împărțită la două, deoarece valul se deplasează înainte și înapoi, acoperind aceeași distanță. Astfel, timpul pentru a ajunge la obstacol este doar jumătate din timpul total luat
Deci Distanța în centimetri = 17150 * T
Am făcut anterior multe proiecte utile folosind acest senzor cu ultrasunete și Arduino, verificați-le mai jos:
- Măsurarea distanței pe bază de Arduino utilizând senzor cu ultrasunete
- Alarma ușii cu Arduino și senzor cu ultrasunete
- Monitorizare bazată pe IOT folosind Arduino
Componente necesare:
Aici folosim Raspberry Pi 2 Model B cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducere Raspberry Pi și LED-ul Raspberry PI Clipește pentru a începe, în afară de asta avem nevoie:
- Raspberry Pi cu sistem de operare preinstalat
- Senzor cu ultrasunete HC-SR04
- Alimentare (5v)
- Rezistor 1KΩ (3 bucăți)
- Condensator 1000uF
- LCD de 16 * 2 caractere
Explicația circuitului:
Conexiunile dintre Raspberry Pi și LCD sunt date în tabelul de mai jos:
Conexiune LCD |
Conexiune Raspberry Pi |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
EN |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
În acest circuit, am folosit comunicația pe 8 biți (D0-D7) pentru a conecta LCD-ul cu Raspberry Pi, totuși acest lucru nu este obligatoriu, putem folosi și comunicarea pe 4 biți (D4-D7), dar cu 4 biți programul de comunicare devine un pic complex pentru începători, așa că mergeți cu o comunicare pe 8 biți. Aici am conectat 10 pini LCD la Raspberry Pi în care 8 pini sunt pini de date și 2 pini sunt pini de control.
Mai jos este schema de circuit pentru conectarea senzorului HC-SR04 și a ecranului LCD cu Raspberry Pi pentru măsurarea distanței.
După cum se arată în figură, senzorul cu ultrasunete HC-SR04 are patru pini,
- PIN1- VCC sau + 5V
- PIN2- TRIGGER (impuls de 10us dat pentru a spune senzorului să sesizeze distanța)
- PIN3- ECHO (Oferă ieșire impuls a cărei lățime reprezintă distanța după declanșare)
- PIN4- TEREN
Pinul Echo oferă + 5V impuls de ieșire care nu poate fi conectat direct la Raspberry Pi. Deci vom folosi circuitul de divizare a tensiunii (construit folosind R1 și R2) pentru a obține logica + 3,3V în loc de logica + 5V.
Explicație de lucru:
Funcționarea completă a măsurii de distanță Raspberry Pi merge ca, 1. Declanșarea senzorului trăgând în sus știftul de declanșare timp de 10uS.
2. Unda sonoră este trimisă de senzor. După primirea ECHO, modulul senzor oferă o ieșire proporțională cu distanța.
3. Vom înregistra timpul în care pulsul de ieșire trece de la LOW la HIGH și când din nou, când acesta se formează HIGH la LOW.
4. Vom avea timp de pornire și oprire. Vom folosi ecuația distanței pentru a calcula distanța.
5. Distanța este afișată pe afișajul LCD 16x2.
În consecință, am scris programul Python pentru ca Raspberry Pi să îndeplinească următoarele funcții:
1. Pentru a trimite declanșatorul la senzor
2. Înregistrați timpul de pornire și oprire a impulsului de ieșire de la senzor.
3. Pentru a calcula distanța utilizând timpul START și STOP.
4. Pentru a afișa rezultatul obținut pe ecranul LCD 16 * 2.
Programul complet și videoclipul demonstrativ sunt prezentate mai jos. Programul este bine explicat prin comentarii, dacă aveți vreo îndoială, îl puteți întreba în secțiunea de comentarii de mai jos.