Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

1 - PING))) Abstandsmessung

Hier zeigen wir, wie man den Abstand zu einem Objekt aus den Laufzeitdaten des Ping))) Ultraschallsensors mit Hilfe von PBASIC berechnet.

Gleichförmige Bewegung

Schall legt in Luft in der Zeit t einen Weg s nach der Formel (1) zurück. Der Ping))) Sensor misst die Zeit für Hin- und Rückweg des Schalls, wir benötigen aber nur die einfache Entfernung und damit die halbe gemessene Zeit (2).

In Tabellen oder im Internet kann die Ausbreitungsgeschwindigkeit von Schall in Luft in der Einheit m pro s bei bestimmten Lufttemperaturen nachgeschlagen werden. Einfacher ist es für die BASIC Stamp, wenn wir die Entfernung in der Einheit Zentimeter angeben. Auf einen Meter gehen 100cm, das wäre dann der Umrechnungsfaktor, mit dem die Ausbreitungsgeschwindigkeit multipliziert werden muss, wenn die Angabe in cm pro s erfolgt (3).

Die kleinste Zeiteinheit in der die BASIC Stamp, mit Hilfe des PULSIN Befehls die Länge  eines Messzeitimpulses misst, sind 2µs. Um das in der Formel deutlich zu machen, setzen wir statt t (das wäre ja die Angabe in 1µs-Einheiten) (4)

Multiplikation mit 2/1.000.000 ergibt dann die Zeit in Sekunden (5).

Die Ausbreitungsgeschwindigkeit von Schall in Luft bei 22,2°C beträgt 344,8 m/s. Nehmen wir davon den 10.000-sten Teil, erhält man (7)

Mit Hilfe des ** Operators kann die BASIC Stamp den von PULSIN gemessenen Zeitwert Zeit mit einer Bruchzahl kleiner 1 multiplizieren.

 

Beispiel

Wird im PULSIN Befehl die Zeit in der Variablen Zeit gespeichert, dann wird durch die Programmzeile

  • cmAbstand = cmConst ** Zeit
    

der gemessene Zeitwert als Abstandsgröße abgelegt. Es muss nur noch cmConst aus dem Produkt der Dezimalzahlen 0,03448 und 65536 bestimmt werden.

Jetzt haben wir alles zusammen, um das Programm PingAbstand.bs2 so zu verändern, dass es die Entfernung in der Einheit cm anzeigt.

Für die beiden Größen cmAbstand und cmConst definieren wir im Programm zwei Konstanten

  • CmConst    CON  2260
    
    cmAbstand VAR Word
    

Die ** Multiplikation wird in die DO...LOOP Schleife des Programms PingAbstand  eingefügt und der Abstand in Zentimeter berechnet. Der Befehl DEBUG bringt das Ergebnis im Terminal zur Anzeige.

  • cmAbstand = CmConst ** Zeit
    
    DEBUG HOME, DEC3 cmAbstand, " cm"
    

Programmbeispiel  PingAbstand.bs2

Aufgaben
  • Übertrage das Programm PingAbstand.bs2 in den Editor.
  • Speicher das Programm ab und starte es anschließend.
  • Bewege das Zielobjekt so lange, bis im Display eine Entfernung von 20cm angezeigt wird.
  • Vergleiche den Abstand mit einer Linealmessung. Die 0cm Marke sollte auf Höhe des Ping))) Sensors liegen.
  • Experimentiere mit weiteren Abstandsmessungen.
Programm PingAbstand.bs2

Jetzt kommst du! - Überprüfung der Berechnungen

Überzeugen wir uns davon, dass die Berechnungen alle korrekt sind.

Aufgaben
  • Verändere das Programm PingAbstand.bs2 so, dass es sowohl die Zeit als auch die Entfernung anzeigt.
  • Überprüfe mit einem Taschenrechner selbst, ob du zu den gleichen Rechenergebnissen mit Hilfe der Berechnungsformel (7) kommst, wie die BASIC Stamp.

2 - Mobile Messdatenerfassung

In dieser Übung werden die Messdaten des Ping))) Sensors im Parallax LCD ausgegeben. Wenn das Board mit einer Batterie versorgt wird, lassen sich an den verschiedensten Orten Messungen vornehmen.

Zur größeren Beweglichkeit wird der Ping))) Sensor mit einem Erweiterungskabel verbunden. Damit wird der Sensor beweglicher, kann leicht in verschiedene Richtung gehalten werden und lässt sich ggf. auch zusammen mit dem BoE in einem Gehäuse zu einem leicht zu transportierenden Messgerät umbauen.

Material

1x Ping))) Sensor

1x Parallax LCD

1x Erweiterungskabel

3x Steckdraht

Schaltskizze

Abbildung 1 - Ping))) Sensor und Parallax Serial LCD - Courtesy of Parallax Inc.
Aufgaben
  • Stelle den PWR-Schalter auf dem Board auf 0.
  • Setze den Jumper zwischen X4 und X5 auf Vdd (+5V) wie in Abb. 2 gezeigt. Der untere Pin in Richtung Vin sollte sichtbar sein.
Abbildung 2 - Courtesy of Parallax Inc.
Aufgaben
  • Verbinde das Parallax Serial LCD wie in Abb. 3 gezeigt mit P15 der X4 Anschlussbuchse. Achte darauf, dass die mit Red und Black auf dem BoE gekennzeichneten Anschlüsse (rechts neben X5) mit der Reihenfolge der Farben des Verlängerungskabels übereinstimmen.
  • Verbinde das andere Ende des Verlängerungskabels so mit dem Ping))) Sensor, dass das schwarze Kabel mit Pin GND und das weiße mit Pin RX verbunden ist.
  • Prüfe vor Inbetriebnahme noch einmal alle Anschlüsse auf Richtigkeit.
Abbildung 3 Servo Anschlussbuchsen und Jumpereinstellung für den Ping))) Sensor - Courtesy of Parallax Inc.

Stelle den PWR-Schalter erst dann wieder auf 1, wenn alle Kabelverbindungen korrekt sind. Bei falschen Verbindungen kann das LCD dauerhaft zerstört werden.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf