
Die wichtigsten Bestandteile des Ultraschallsensors sind der “Transducer” (T) und der “Receiver” (R). Der Transducer ist praktisch ein Lautsprecher, der für uns nicht hörbare Schallwellen (Ultraschallwellen) aussendet. Der Receiver entspricht einem Mikrofon für Schallwellen. Die Schallwellen werden also vom Transducer ausgesendet, an einem Hindernis reflektiert und vom Receiver empfangen.

Ultraschallsensoren gibt es in verschiedenen Varianten und mit verschiedenen Verbindungsmöglichkeiten.

Das schwarze Kabel verbindet die beiden GND-Anschlüsse (Minus-Pol), das rote Kabel verbindet die beiden VCC-Anschlüsse (Plus-Pol, Spannung 3,3V). Das weiße Kabel verbindet den TX-Pin am Calliope mit dem NC-Pin am Ultraschallsensor. Über dieses Kabel kann der Calliope ein Signal an den Ultraschallsensor senden (daher TX - transmit) und darüber die Messung starten. Das gelbe Kabel verbindet den RX-Pin am Calliope mit dem SIG-Pin am Ultraschallsensor. Über dieses Kabel kann der Ultraschallsensor ein Signal an den Calliope senden, das dieser dann lesen kann (daher RX - receive).

Zum Programmieren mit Makecode muss die Erweiterung "Grove" geladen werden. Darüber können mehrere Sensoren, die alle über einen Grove-Anschluss verfügen, angesteuert bzw. ausgelesen werden. Für den Ultraschallsensor wird der Block Entfernung <pin> cm benötigt, der die Entfernung in Zentimetern zurückgibt, die mit dem Ultraschallsensor gemessen wurde. Als Pin muss C16 (A1 RX) ausgewählt werden, da dies der Echo-Pin ist, der das Signal zurückgibt.


Zunächst muss der Ultraschallsensor in der Roboterkonfiguration angelegt werden. Dort steht nur der Anschluss über A1 zur Verfügung, an dem der Ultraschallsensor auch angeschlossen sein sollte (A0 funktioniert nicht). Danach kann der gemessene Abstand über den Block gib Abstand cm Ultraschallsensor U ausgelesen werden.



Über den Jacdac-Anschluss können auf einfache Weise Sensoren und Aktoren an den Calliope angeschlossen und angesteuert werden. Es können mehrere Jacdac-Bauteile hintereinander angeschlossen werden. Über den Jacdac-Hub können sie auch parallel angeschlossen werden. Jacdac ermöglicht nicht nur die Kommunikation von Sensor und Calliope, sondern auch per WebUSB mit Makecode. Auf diese Weise wird der aktuelle Sensorwert direkt in Makecode angezeigt.
Der Ultraschallsensor mit Jacdac-Anschluss wird mit einem der Jacdac-Anschlüsse des Calliope verbunden.
Das Vorgehen für das Laden der Jacdac-Erweiterung und erste Programmierschritte zeigt die Jacdac-Dokumentation der offiziellen Calliope-Seite sehr gut. Im Überblick:
Der Block <messwert> Entfernung (m) stellt vier mögliche Messwerte in Metern bereit, nämlich entfernung1, entfernung2, distance3 und distance4. Welcher davon einen geeigneten Wert liefert, lässt sich durch ausprobieren herausfinden.


Achtung: Der HC-SR04 funktioniert nur mit dem Calliope, wenn er sich mit 3,3V betreiben lässt! Die meisten Ultraschallsensoren, die man findet, funktionieren allerdings nur mit 5V, daher muss man genau hinschauen.
Der Ultraschallsensor HC-SR04 ist für wenig Geld zu haben und daher sehr beliebt. Die Verkabelung erfolgt hier einzeln mit sogenannten Jumper-Kabeln. Sie ist dem folgenden Schaltplan zu entnehmen.

Grundsätzlich sind die folgenden Pins sowohl für den Trigger-Pin als auch für den Echo-Pin geeignet: P0, P1, P2, P3, C8, C9, C13, C14, C15, C16, C17. Beachte, dass die Pins P0, P1, P2, P3 über die äußeren Ringpads (goldene Ringe) schon belegt sein können. Für weitere Informationen schaue dir die Pin-Belegung des Calliope an.
Zur Bestimmung des Abstands muss man auf das Funktionsprinzip des Ultraschallsensors zurückgreifen, das oben beschrieben wurde. Mit dem folgenden Programm wird die Entfernung ermittelt und auf dem Display des Calliope ausgegeben.

Impuls in Mikrosekunden an Pin C8 mit hoch wird die Zeit in Mikrosekunden ermittelt, die das Ultraschallsignal braucht, um nach dem Aussenden wieder zurück zum Ultraschallsensor zu gelangen. Dies wird in der Variable zeit gespeichert.Für die Verwendung in größeren Zusammenhängen ist es sinnvoll, diese Abfolge in eine Funktion auszulagern, die die Entfernung zurückgibt.
Zur Bestimmung des Abstands muss man auf das Funktionsprinzip des Ultraschallsensors zurückgreifen, das oben beschrieben wurde. Zunächst wird der Trigger-Pin als digitaler Aktor und der Echo-Pin als digitaler Sensor konfiguriert.

Mit dem folgenden Programm wird dann die Entfernung ermittelt und auf dem Display des Calliope ausgegeben.

gib <pulszeit high> Pin Echo wird die Zeit in Mikrosekunden ermittelt, die das Ultraschallsignal braucht, um nach dem Aussenden wieder zurück zum Ultraschallsensor zu gelangen. Dies wird in der Variable zeit gespeichert. Hinweis: In der Blockauswahl für Sensoren steht zunächst gib <digitalen wert> Pin Echo. Dort kann dann Pulszeit HIGH ausgewählt werden.Für die Verwendung in größeren Zusammenhängen ist es sinnvoll, diese Abfolge in eine Funktion auszulagern, die die Entfernung zurückgibt.
Baue eine Einparkhilfe für ein Auto, die umso schneller piepst, je näher man dem Hindernis kommt. Ab einer Entfernung von 30 cm soll der Ton durchgängig ertönen.
Recherche: Wie wird Ultraschall erzeugt und gemessen?
Die Erzeugung des Ultraschalls beruht wie beim Piezo-Summer auf dem inversen piezo-elektrischen Effekt (vgl. Piezo-Summer); die Messung des Ultraschalls beruht auf dem piezo-elektrischen Effekt. Recherchiere im Internet die Hintergründe dieser Effekte und fasse sie zusammen.