Der HCRS04 ist ein beliebter Ultraschall Sensor für die Kollisions Vermeidung von selbstfahrenden Roboter-Fahrzeugen. Um ihn mit einem Raspberry Pi einsetzen zu können, muss über zwei Widerstände die Spannung des Echo Signals verringert werden.
![](https://robot-bench.com/wp-content/uploads/2021/11/IMG_20211107_022602-1024x660.jpg)
Der Artikel auf Raspberry Pi Tutorials diente meinem Aufbau mit dem Pico als Grundlage für die Schaltung. Den Quelltext des Artikels bei Toms Hardware: “How to Use an Ultrasonic Sensor with Raspberry Pi Pico” habe ich so angepasst, dass die Distanz zu einem Objekt von vorne und von hinten alle 0,5 Sekunden gemessen wird:
import utime
from machine import Pin
def ultra(trigger_pin, echo_pin, dest):
trigger = Pin(trigger_pin, Pin.OUT)
echo = Pin(echo_pin, Pin.IN)
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
print("Estimating distance")
while echo.value() == 0:
signaloff = utime.ticks_us()
while echo.value() == 1:
signalon = utime.ticks_us()
timepassed = signalon - signaloff
distance = (timepassed * 0.0343) / 2
print("The distance from object "+ dest +" is ",distance,"cm")
while True:
ultra(3, 2, "front")
utime.sleep(0.5)
ultra(20, 21, "rear")
utime.sleep(0.5)
Nach dem Start des Python Scripts wird die Entfernung auf der Konsole ausgegeben:
![](https://robot-bench.com/wp-content/uploads/2021/11/2021-11-07-02_19_57-test_ultra.py-Pico-Visual-Studio-Code.png)
Nun muss diese Entfernung noch an den Raspberry Zero übertragen werden.
Unter den Ergebnissen der Messungen befinden sich immer wieder mal ein paar Ausreißer: 1217.187 cm. So groß ist mein Zimmer leider nicht.
Den HCR-S04 gibt es im übrigen zur Zeit wieder bei BerryBase.