Beschleunigung ist ein Maß für die Änderungsgeschwindigkeit. Ein Beschleunigssensor misst diese Änderungsgeschwindigkeiten und ist damit vielseitig in der Elektronik und Robotik einsetzbar. Hier einige Beispiele:
In vielen Geräten werden Beschleunigungssensoren heute bereits genutzt, wie zum Beispiel in Smartphones, Autos, Spezialausrüstungen und Maschinen. Beispiele dafür sind:
Das hier eingesetzte Accelerometer Memsic 2125 von MEMS (micro-electro-mechanical-systems) ist nur etwa 1,3cm x 1,3cm groß, der Sensor selbst misst ca. 6mm x 6mm.
Menschen nehmen Beschleunigungen normalerweise in drei Raumrichtungen wahr: nach vorne, nach hinten, nach links und rechts sowie nach oben und unten. Viele haben schon erlebt wie sie in den Sitz gedrückt werden, wenn ein Flugzeug zum Abheben beschleunigt oder wie sie nach vorne fallen, wenn ein Auto scharf abgebremst wird. Auf dem Jahrmarkt im Karrussell, in Fahrstühlen und zu vielen weiteren Gelegenheiten erfahren wir täglich Beschleunigungen.
Der MX2125 Baustein nimmt je nach Ausrichtung Beschleunigungsmessungen in jeweils zwei Achsrichtungen vor. Er lässt sich auf zwei Arten positionieren:
Position 1 (horizontale Ausrichtung)
Position 2 (vertikale Ausrichtung)
Der Aufbau des MX2125 ist denkbar einfach. In einer winzigen Gaskammer befinden sich gleichmäßig verteilt vier Temperatursensoren und ein zentrales Heizelement. So wie erwärmte Luft nach oben steigt und kalte Luft nach unten fällt, verhält es sich auch mit einem Gas.
Ein ruhender Sensor und das Gas in ihm unterliegen nur der Gravitation.
In dieser statischen Anordnung passiert nun folgendes: das erwärmte Gas steigt in der Kammer nach oben und alle vier eingebauten Temperatursensoren messen die gleiche Temperatur. Je nach dem in welche Richtung der Sensor dann geneigt wird, sammelt sich das erhitzte Gas in der Nähe des einen oder anderen Temperaturensors.
Vergleicht man die vier gemessenen Temperaturen miteinander, dann lassen sich sowohl Gravitation und Neigungswinkel als auch dynamische Beschleunigungen messen. Bei Messungen in einem fahrenden Auto werden die heißeren und kühleren Gasanteile in der Kammer hin- und her schwappen, ähnlich wie in einem halbvollen Flüssigkeits-Behälter das Wasser. Der Sensor kann diese Bewegungen erkennen und liefert Messdaten.
Die Aufnahme und Auswertung der Daten mit Hilfe des MX2125 Sensors ist in vielen Fällen sehr gut möglich. Der Baustein wandelt die intern aufgenommenen Temperaturwerte in Zeitimpulse um, die mit der BASIC Stamp leicht auszuwerten sind.
In dieser Übung erfährst du, wie ein MX2125 angeschlossen und mit ihm Schräglagen erkannt werden.
Material |
1x Memsic MX2125 2-Achs-Beschleunigungssensor 2x Widerstand 220 Ohm (rot-rot-braun) 2x Steckdraht |
Aufgaben |
|
Beschaltung des Accelerometers und Versuchsaufbau
Abb. 3 zeigt die Anschlussbelegung des Accelerometers mit der Spannungsversorgung und den I/O Pin der BASIC Stamp auf dem Board of Education.
Was haben sich Accelerometer und BASIC Stamp zu sagen?
Die beiden Achsrichtungen, in denen das MX2125 Gravitation und Beschleunigung wahrnehmen kann, sind in Abb. 4 mit x und y gekennzeichnet. Dies dient als Hilfe, wenn du das BoE vor dir möglichst horizontal auf der Arbeitsplatte platzierst. Die Ausrichtung entspricht der Darstellung eines Achsenkreuzes aus dem Mathematikunterricht. Die x-Achse zeigt nach rechts, die y-Achse nach oben.
Untersuchungen bei Zimmertemperatur zeigen sehr gut, wie sich Neigungen bestimmen lassen. Es werden dazu nur die Impulszeiten des Accelerometer über die Anschlusspin Xout und Yout abgefragt und mit Hilfe des PULSIN Befehls von der BASIC Stamp ausgewertet. Je nach Neigungswinkel und Raumlage variieren die Zeitmessungen zwischen 1875 und 3125. Befindet sich das Board in Horizontallage, bewegen sich die PULSIN Werte um den Wert 2500.
Das Programmm Neigung1.bs2
Aufgaben |
|
Aufgabe |
|
In dieser Übung werden wir die Messwerte des Accerlometers auf einem LCD darstellen.
Material |
1x Memsic 2125 Accelerometer 1x Parallax serial LCD (2x16) 5x Steckdraht 2x Widerstand 220 Ohm (rot-rot-braun) |
Aufgaben |
|
Den Aufbau der Einzelschaltungen kennen wir bereits. Fange mit dem Anschluss des Beschleunigungsmessers an (Abb. 7).
Füge jetzt das LCD hinzu und setze die entsprechenden Steckdrähte.
Neigungsmessung mit dem LCD
Um Messdaten aus den Übungen auf einem LCD ausgeben zu können, muss man stets in zwei Schritten vorgehen.
Schritt 1
Füge die Initialisierungsroutinen für das LCD in das bereits bestehende Programm ein. Sie müssen immer vor dem Hauptprogramm eingebaut werden oder in kleinen Programmen vor der ersten DO-Schleife. Damit wird vermieden, dass die Initialisierung nicht stetig wiederholt.
Schritt 2
Ersetze alle DEBUG durch SEROUT Befehle, mit dem die Informationen auf das LCD umgelenkt werden. Dabei gilt, dass der Formatierungsanweisung HOME im DEBUG Befehl die Zahl 128 im SEROUT Befehl entspricht. Die Direktive ? gibt den Variablennamen mit einem Zeilenrücklauf im Terminal aus. Sie hat die gleiche Wirkung im SEROUT Befehl.
DEBUG HOME, DEC4 ? x, DEC4 ? y
hat als Äquivalent im SEROUT Befehl folgende Darstellung
SEROUT 14, 84, [128, DEC4 ? x, DEC4 ? y]
Programmbeispiel NeigungLCD.bs2
Dies ist eine Abwandlung des Programms Neigung1.bs2. Die Daten werden jetzt nicht mehr im Debug Terminal sondern im LCD dargestellt.
Aufgaben |
|
Jetzt kommst du! - Darstellung auf dem Display anpassen
Der im Operator ? eingebaute Zeilenrücklauf (CR) lässt keinen Spielraum für weitere Informationen nach der Zahlenausgabe im LCD. Statt mit dem Operator ? zu arbeiten, lässt sich die Ausgabe auch anders formulieren:
DEBUG HOME, "x = ", DEC4 x, CR, "y= ", DEC4 y
Ein SEROUT Befehl würde die gleiche Information im seriellen LCD ausgeben. Mit dem Code 128 wird der Cursor in Zeile 0 ganz links positioniert. Statt eines CR setzen wir den Code 148, der im LCD den Cursor in Zeile 1, ganz links (0. Zeichen) platziert.
SEROUT 14, 48, [128, "x = ", DEC4 x, 148, "y = ", DEC4 y]
Mit diesem veränderten SEROUT Befehl lassen sich jetz hinter die Ausgabewerte weitere Zeichen schreiben. Das könnte zum Beispiel so aussehen:
SEROUT 14, 48, [128, "x = ", DEC4 (2*x), " us",
"y = ", DEC4 (2I y), " us"]
Mit us ist eigentlich µs gemeint, aber der griechische Buchstabe lässt sich nur als Sonderzeichen im LCD darstellen. Das sollte für uns jetzt kein Problem mehr sein, haben wir doch im Kapitel über das LCD gelernt, wie man mit Hilfe des Befehls SEROUT auch Sonderzeichen definieren kann. Probier es aus!