Raspberry Pi 2 mit Ultraschall-Sensor
Ihr möchtet mit dem Raspberry Pi den Abstand oder die Entfernung messen? Das geht ganz einfach und günstig mit sogenannten Ultraschallsensoren. Der wohl verbreiteste Ultasonic-Sensor ist der HC-SR04, der ursprünglich für die Nutzung mit dem Arduino konzipiert wurde. Diesen Sensor kann man mit zusätzlichen Widerständen allerdings auch problemlos am Raspberry Pi nutzen. In der nachfolgenden Anleitung beziehen wir uns auf das aktuelle Modell „Raspberry Pi 2“, der Sensor funktioniert natürlich auch problemlos mit dem Pi der 1.Generation wie auch mit dem Raspberry Pi Zero.
Was wird benötigt?
Zunächst benötigen wir natürlich einen Raspberry Pi mit Netzteil sowie eine MicroSD-Karte mit einem installierten Raspbian. Außerdem benötigen wir den Ultraschall-Sensor „HC-SR04“ sowie 2 Widerstände mit 330 Ohm sowie 470 Ohm. Zusätzlich benötigen wir noch Verbindungskabel und falls nicht schon vorhanden einen Lötkolben inkl. Lötzinn. Auch in diesem Beitrag finden sie direkt weiter unten eine Einkaufsliste vor, falls noch ein Teil fehlen sollte.
Einkaufsliste:
Raspberry Pi 2 – Kosten ca. 40 Euro – siehe z.B. bei Amazon*.
Netzteil + Gehäuse – Kosten ca. 12 Euro – siehe z.B. bei Amazon*.
MicroSD Karte – Kosten ca. 7 Euro – siehe z.B. bei Amazon*.
Ultraschallsensor – Kosten ca. 5 Euro (3x nur 9 Euro) – siehe z.B. bei Amazon*.
Verbindungskabel – Kosten ca. 6 Euro – siehe z.B. bei Amazon*.
Widerstand 330 Ohm – Kosten ca. 3 Euro (30er Packung) – siehe z.B. bei Amazon*.
Widerstand 470 Ohm – Kosten ca. 3 Euro (20er Packung) – siehe z.B. bei Amazon*.
Lötkolben + Lötzinn – Kostenpunkt ca. 15 Euro – siehe z.B. bei Amazon*.
Ultraschallsensor anschließen
Wie ihr oben schon erkennen könnt, haben wir die Widerstände direkt aufgelötet und ein Kabel etwas beschnitten. Als erstes sollte man die Widerstände anlöten – der 330 Ohm Resistor muss an Echo-Port des Ultraschallsensors festgelötet werden – anschließend lötet ihr den 470 Ohm Widerstand an den Ground-Ausgang. Entfernt nun bei einem Verbindungskabel den Plastikanschluss und lötet die Widerstände sowie das Kabel an einem gemeinsamen Punkt fest.
Damit sind die Lötarbeiten auch schon abgeschlossen und es geht jetzt an das Verbinden der restlichen Ports. Nehmt ein neues Verbindungskabel für die (im Schaltplan) rechte Seite des Ground-Ausgangs und verbindet es mit dem Pin 14 eures Raspberry Pi 2. Anschließend könnt ihr mit einem neuen Kabel den Trigger-Port mit Pin 16 (GIPO 23) eures Raspberrys verbinden. Zu guter letzt müsst ihr noch für die Stromversorgung des Ultraschallmoduls sorgen, dazu nehmt ein weiteres Kabel und schließt es an Pin 2 (5V-Versorgung) an.
Funktionstest
Damit sollte die Verbindung eures Ultraschallmoduls abgeschlossen sein und wir können zum Funktionstest ein kleines Testprogramm schreiben. Das folgende Programm wurde in Python geschrieben, solltet ihr zum Anschluss des Sensors andere GIPO’s benutzt haben so müsst ihr diese entsprechend im nachfolgenden Programm korrigieren:
#!/usr/bin/python
#
# ultraschall.py
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO_TRIGGER = 23
GPIO_ECHO = 24
print "Ultraschall Messung"
# Pins festlegen
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger-Port
GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo-Port
GPIO.output(GPIO_TRIGGER, False)
time.sleep(0.5)
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
while GPIO.input(GPIO_ECHO)==0:
start = time.time()
while GPIO.input(GPIO_ECHO)==1:
stop = time.time()
elapsed = stop-start
distance = elapsed * 34000
distance = distance / 2
print "Abstand: %.1f" % distance
GPIO.cleanup()
Anschließend speichert die Python-Datei noch unter dem Dateinamen „ultraschall.py“ ab und / oder ladet das Programm auf euren Raspberry. Nun könnt ihr die Ultraschall-Messung ganz einfach über einen Shell-Befehl starten:
sudo python ultraschall.py
Wenn ihr alles richtig gemacht habt, seht ihr nun das Messergebnis eures Ultraschallsensors. Zum weiteren Testen könnt ihr auch einen Gegenstand etwas annähern und wieder entfernen. Der Sensor kann einen Abstand zwischen 2cm und 4,5 Metern erfassen – die Genauigkeit der Messung liegt bei bis zu 0,3 cm (wobei man hier mehrere Messungen hintereinander oder durch mehrere Sensoren vornehmen sollte). In kürze demonstrieren wir euch außerdem noch weitere Versuche und Ansteuerungsmöglichkeiten mit diesem Sensor, entsprechende weiterführende Artikel werden dann hier verlinkt werden.