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

1 - Memsic 2-Achs-Beschleunigungssensor

  • Weitere Vorschläge zum Thema mit den Boards: Arduino UNO - Prop-BoE - Prop-AB - Raspberry Pi

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:

  • Beschleunigungsmessung
  • Neigung und Neigungswinkel bestimmen
  • Schräglagen Erkennung
  • Rotationsbewegungen
  • Vibrationen erkennen
  • Kollision/Unfall erkennen
  • Gravitation

In vielen Geräten werden Beschleunigungssensoren heute bereits genutzt, wie zum Beispiel in Smartphones, Autos, Spezialausrüstungen und Maschinen. Beispiele dafür sind:

  • sich selbst austarierende Roboter
  • Spielkonsolenüberwacher mit Neigungssensor
  • Modellflugzeuge mit Autopilot
  • Auto-Alarmsystem
  • Unfallerkennung/Airbag-Auslösesystem

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.

Abbildung 1 - Accerlometer Baustein mit MX2125 Chip - Courtesy of Parallax Inc.

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)

  • vorwärts/rückwärts
  • rechts/links

 

Position 2 (vertikale Ausrichtung)

  • nach oben/nach unten
  • vorwärts/rückwärts

2 - Die Physik des MX2125 Beschleunigungssensors

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.

Abbildung 2 - Der erwärmte Gasbehälter im Accelerometer - Courtesy of Parallax Inc.

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.

3 - Neigungstest mit einem MX2125

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
  • Baue die Schaltung nach Abb. 3 auf.
  • Sorge dafür, dass das Board of Education mit dem Sensor möglichst horizontal auf der Oberfläche aufliegt.
  • Richte das Board so aus, wie in Abb. 4 gezeigt.
  • Übertrage das Programm Neigung1.bs2 in den Editor und speichere es ab.

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.

Abbildung 3 Schaltskizze und Versuchsaufbau - Courtesy of Parallax Inc.

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.

Abbildung 4 - Neigungsmessung über die x- und y-Achse - Courtesy of Parallax Inc.

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

Programm Neigung1.bs2
Aufgaben
  • Starte jetzt das Programm Neigung1.bs2
  • Überprüfe, ob die im Debug Terminal angezeigten x- und y-Werte bei 2500 liegen (Abb. 5).
Aufgabe
  • Hebe das Board an der Seite des USB-Anschlusses (y-Achse) ein wenig zu dir an. Der y-Wert im Display sollte sich erhöhen, wenn die Neigung zunimmt.
  • Hebe das Board (y-Achse) an und stelle es senkrecht zu dir. Im Debug Terminal sollte der y-Wert bei 3125 liegen.
  • Stelle das Board wieder flach auf den Tisch.
  • Neige das Board jetzt von dir weg mit einer schwachen Neigung. Der y-Wert sollte jetzt unter 2500 fallen und gegen 1875 gehen, wenn die Neigung in eine Senkrechte übergeht.
  • Stelle das Board wieder flach auf den Tisch.
  • Wiederhole die eben gemachten Übungen in Richtung x-Achse. Wird das Board rechts angehoben, sollte der x-Wert gegen 3125 streben, wenn es senkrecht steht. Wird das Board links angehoben, sollte sich der x-Wert dem Wert 1875 annähern.
  • Halte das Board senkrecht vor dir, fast so wie ein Steuerrad.
  • Drehe das Board langsam nach rechts und links. Die x- und y-Werte sollten sich ändern.

4 - Feldmessungen

In dieser Übung werden wir die Messwerte des Accerlometers auf einem LCD darstellen.

Abbildung 6 - Ping))) Sensor und LCD
Courtesy of Parallax Inc.
Material

1x  Memsic 2125 Accelerometer

1x  Parallax serial LCD (2x16)

5x  Steckdraht

2x  Widerstand 220 Ohm (rot-rot-braun)
Aufgaben
  • Baue die Schaltung so auf wie in Abb. 6 gezeigt.
  • Schließe eine Batterie an das Board an.
  • Übertrage das Programm Neigung2.bs2 in den Editor und speichere es ab.
  • Starte das Programm.
  • Ziehe das USB-Kabel vom Board ab und beginne deine Messungen an einem beliebigen Messort.

Den Aufbau der Einzelschaltungen kennen wir bereits. Fange mit dem Anschluss des Beschleunigungsmessers an (Abb. 7).

 

 

 

 

 

 

 

 

 

Abbildung 7

Verdrahtungsplan für den Beschleunigungssensor

Courtesy of Parallax Inc.

Füge jetzt das LCD hinzu und setze die entsprechenden Steckdrähte.

Abbildung 8 - Verdrahtung von Beschleunigungssensor und LCD - Courtesy of Parallax Inc.

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
  • Verbinde die Blockbatterie mit dem Board of Education.
  • Übertrage das Programm NeigungLCD.bs2 in den Editor.
  • Speicher das Programm ab und starte es.
  • Löse das USB Kabel vom Board und beginne deine Messung vor Ort.
Programm NeigungLCD.bs2

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!

Druckversion | Sitemap
© Reinhard Rahner - Gettorf