Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

HC-SR04 ultrasone bereiksensor op de Raspberry Pi

In eerdere tutorials hebben we temperatuurwaarneming, PIR-bewegingscontrollers en knoppen en schakelaars beschreven, die allemaal rechtstreeks op de GPIO-poorten van de Raspberry Pi kunnen worden aangesloten. De HC-SR04 ultrasone afstandsmeter is zeer eenvoudig te gebruiken, maar het signaal dat hij uitstuurt moet worden omgezet van 5V naar 3,3V om onze Raspberry Pi niet te beschadigen! We zullen in deze tutorial wat natuurkunde en elektronica introduceren om elke stap uit te leggen!

Wat je nodig hebt:

HC-SR04

1kΩ Weerstand

2kΩ Weerstand

Doorverbindingsdraden

Ultrasone afstandssensoren

Geluid bestaat uit oscillerende golven door een medium (zoals lucht) waarbij de toonhoogte wordt bepaald door de nabijheid van die golven tot elkaar, gedefinieerd als de frequentie. Slechts een deel van het geluidsspectrum (het bereik van geluidsgolffrequenties) is hoorbaar voor het menselijk oor, gedefinieerd als het "akoestische" bereik. Geluid met een zeer lage frequentie onder Akoestisch wordt gedefinieerd als "Infrageluid", met geluiden met een hoge frequentie daarboven, "Ultrageluid" genoemd. Ultrasone sensoren zijn ontworpen om de nabijheid of het bereik van objecten te detecteren met behulp van ultrasone reflectie, vergelijkbaar met radar, om de tijd te berekenen die nodig is om ultrasone golven tussen de sensor en een vast object te reflecteren. Echografie wordt vooral gebruikt omdat het onhoorbaar is voor het menselijk oor en relatief nauwkeurig is op korte afstanden. Je zou hiervoor natuurlijk Akoestisch geluid kunnen gebruiken, maar dan zou je een luidruchtige robot hebben die om de paar seconden piept. . . .

Een basis ultrasone sensor bestaat uit een of meer ultrasone zenders (in principe luidsprekers), een ontvanger en een regelcircuit. De zenders zenden een hoogfrequent ultrasoon geluid uit, dat weerkaatst op nabije vaste objecten. Een deel van die ultrasone ruis wordt gereflecteerd en gedetecteerd door de ontvanger op de sensor. Dat retoursignaal wordt vervolgens verwerkt door het regelcircuit om het tijdsverschil te berekenen tussen het signaal dat wordt verzonden en ontvangen. Deze tijd kan vervolgens, samen met wat slimme wiskunde, worden gebruikt om de afstand tussen de sensor en het reflecterende object te berekenen.

De HC-SR04 ultrasone sensor die we in deze tutorial voor de Raspberry Pi zullen gebruiken, heeft vier pinnen:aarde (GND), Echo Pulse Output (ECHO), Trigger Pulse Input (TRIG) en 5V Supply (Vcc). We voeden de module met Vcc, aarden hem met GND en gebruiken onze Raspberry Pi om een ​​ingangssignaal naar TRIG te sturen, waardoor de sensor een ultrasone puls stuurt. De pulsgolven kaatsen terug op objecten in de buurt en sommige worden teruggekaatst naar de sensor. De sensor detecteert deze retourgolven en meet de tijd tussen de trigger en de geretourneerde puls en stuurt vervolgens een 5V-signaal op de ECHO-pin.

ECHO zal "laag" (0V) zijn totdat de sensor wordt getriggerd wanneer deze de echopuls ontvangt. Zodra een retourpuls is gevonden, wordt ECHO voor de duur van die puls op "hoog" (5V) gezet. Pulsduur is de volledige tijd tussen de sensor die een ultrasone puls afgeeft en de terugkeerpuls die wordt gedetecteerd door de sensorontvanger. Ons Python-script moet daarom de pulsduur meten en vervolgens de afstand hiervan berekenen.

BELANGRIJK. Het sensoruitgangssignaal (ECHO) op de HC-SR04 heeft een nominale spanning van 5V. De ingangspin op de Raspberry Pi GPIO heeft echter een vermogen van 3,3 V. Het verzenden van een 5V-signaal naar die onbeschermde 3.3V-ingangspoort kan uw GPIO-pinnen beschadigen, wat we willen vermijden! We moeten een klein spanningsdelercircuit gebruiken, bestaande uit twee weerstanden, om de uitgangsspanning van de sensor te verlagen tot iets dat onze Raspberry Pi aankan.

Spanningsverdelers

Een spanningsdeler bestaat uit twee weerstanden (R1 en R2) in serie verbonden met een ingangsspanning (Vin), die moet worden teruggebracht tot onze uitgangsspanning (Vout). In ons circuit zal Vin ECHO zijn, die moet worden verlaagd van 5V naar onze Vout van 3,3V.

De volgende schakeling en eenvoudige vergelijking kunnen worden toegepast op veel toepassingen waarbij een spanning moet worden verlaagd. Als je het technische stukje niet wilt leren, pak dan gewoon 1 x 1kΩ en 1 x 2kΩ weerstand.

Zonder al te diep in de wiskunde te gaan, hoeven we eigenlijk maar één weerstandswaarde te berekenen, omdat het de deelverhouding is die belangrijk is. We kennen onze ingangsspanning (5V) en onze vereiste uitgangsspanning (3,3V), en we kunnen elke combinatie van weerstanden gebruiken om de reductie te bereiken. Ik heb toevallig een aantal extra 1kΩ-weerstanden, dus ik besloot een van deze in het circuit te gebruiken als R1.

Monteer het circuit

We zullen voor dit project vier pinnen op de Raspberry Pi gebruiken:GPIO 5V [Pin 2]; Vcc (5V voeding), GPIO GND [Pin 6]; GND (0V aarde), GPIO 23 [Pin 16]; TRIG (GPIO-uitgang) en GPIO 24 [Pin 18]; ECHO (GPIO-ingang)

1. Steek vier van uw mannelijke naar vrouwelijke jumperdraden als volgt in de pinnen op de HC-SR04:Rood; Vcc, Blauw; TRIG, geel; ECHO en zwart; GND.

2. Sluit Vcc aan op de positieve rail van uw breadboard en sluit GND aan op uw negatieve rail.

3. Steek GPIO 5V [Pin 2] in de positieve rail en GPIO GND [Pin 6] in de negatieve rail.

4. Steek TRIG in een lege rail en steek die rail in GPIO 23 [Pin 16]. (Je kunt TRIG rechtstreeks aansluiten op GPIO 23 als je wilt). Persoonlijk vind ik het gewoon leuk om alles op een breadboard te doen!

5. Sluit ECHO aan op een blanke rail, verbind een andere blanke rail met behulp van R1 (1kΩ weerstand)

6. Verbind uw R1-rail met de GND-rail met behulp van R2 (2kΩ-weerstand). Laat een spatie tussen de twee weerstanden.

7. Voeg GPIO 24 [Pin 18] toe aan de rail met je R1 (1kΩ weerstand). Deze GPIO-pin moet tussen R1 en R2 zitten

Dat is het! Onze HC-SR04-sensor is verbonden met onze Raspberry Pi!

Sensing met Python

Nu we onze ultrasone sensor hebben aangesloten op onze Pi, moeten we een Python-script programmeren om afstand te detecteren!

De uitgang van de ultrasone sensor (ECHO) zal altijd laag (0V) produceren, tenzij deze wordt geactiveerd, in welk geval het 5V (3,3V met onze spanningsdeler!) zal uitvoeren. We moeten daarom één GPIO-pin instellen als uitgang om de sensor te triggeren en één als ingang om de ECHO-spanningsverandering te detecteren.

Importeer eerst de Python GPIO-bibliotheek, importeer onze tijdbibliotheek (dus we laten onze Pi tussen de stappen wachten) en stel onze GPIO-pinnummering in.

importeer RPi.GPIO als GPIO

importtijd

GPIO.setmode(GPIO.BCM)

Voor meer details:HC-SR04 ultrasone bereiksensor op de Raspberry Pi


Productieproces

  1. Raspberry Pi Temperature Logger
  2. Temperatuurbewaking op de Raspberry Pi
  3. Python- en Raspberry Pi-temperatuursensor
  4. Raspberry Pi-weerstation
  5. DHT Tiny Breakout voor de Raspberry Pi
  6. De integratie van sensorgegevens met Raspberry Pi-microprocessor
  7. Ultrasone sensor (HC-SR04) + Raspberry Pi
  8. Bewegingssensor met Raspberry Pi
  9. Raspberry Pi Bodemvochtsensor
  10. Raspberry Pi digitale Hall-sensor in JAVA
  11. Raspberry Pi temperatuur- en lichtsensor