Aus Eins wird Drei

Die Bezeichnung des im Circuit Playground verbauten Beschleunigungssensors, LIS3DH, enthält das Kürzel 3D. Ein Hinweis auf einen 3-Achsen-Sensor, der tatsächlich aus drei einzelnen Sensoren besteht. Diese sind grundsätzlich gleich, liefern aber durch ihre Anordnung in den drei Raumebenen X,Y und Z unterschiedliche Werte. Erst durch ihr Zusammenspiel ist eine Lagebestimmung im Raum möglich.

Erste Versuche

Stellenmarkt
  1. Agile Data Protection Consultant (m/w/d)
    Mediaan Deutschland GmbH, remote
  2. Referent*in (w/m/d) Datenschutz
    Ärzte ohne Grenzen e.V. / Médecins Sans Frontières, Berlin
Detailsuche

Um überhaupt einen ersten Bezug zum Sensor zu bekommen, empfiehlt es sich, das nachfolgende kleine Programm auszuprobieren. Der Quellcode kann auch von Github heruntergeladen werden. Das Programm fragt einfach nur die drei Achsen des Sensors ab und gibt sie alle 100 Millisekunden an die serielle Schnittstelle aus:

  1. #include <Adafruit_CircuitPlayground.h>
  2.  
  3. float X, Y, Z;
  4.  
  5. void setup() {
  6. Serial.begin(9600);
  7. CircuitPlayground.begin();
  8. }
  9.  
  10. void loop() {
  11. X = CircuitPlayground.motionX();
  12. Y = CircuitPlayground.motionY();
  13. Z = CircuitPlayground.motionZ();
  14.  
  15. Serial.print(X);
  16. Serial.print(",");
  17. Serial.print(Y);
  18. Serial.print(",");
  19. Serial.println(Z);
  20.  
  21. delay(100);
  22. }

  • Adafruit Playground Circuit (Bild: Thomas Ell)
  • Adafruit Playground Circuit  (Bild: Thomas Ell)
  • Bewegungssensor mit Koordinatenbeschriftung (Bild: Thomas Ell)
  • Skript in der Arduino IDE (Bild: Thomas Ell)
  • Ausgabe des seriellen Monitors (Bild: Thomas Ell)
  • Gehäuse für den Playground Circuit (Bild: Thomas Ell)
  • Gehäuse für den Playground Circuit (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
Bewegungssensor mit Koordinatenbeschriftung (Bild: Thomas Ell)

Mit Hilfe der Arduino-IDE wird das Programm auf das Circuit Playground geladen. Bei Adafruit findet sich eine Anleitung, die beschreibt, wie die IDE installiert und eingerichtet wird. Wenn dieses Programm auf das Board geladen wurde, ist es möglich, von den drei Einzelsensoren Kurvenverläufe zu bekommen, indem über die Arduino-IDE das Fenster Werkzeuge - Serieller Plotter ausgewählt wird. Jetzt kann man das Board in die Hand nehmen und im Plotter-Fenster sehen, wie sich die Kurven verändern, wenn man das Board dreht und wendet.

Was zieht denn da?

Golem Akademie
  1. Microsoft Dynamics 365 Guides mit HoloLens 2: virtueller Ein-Tages-Workshop
    16. Februar 2022, Virtuell
  2. Cloud Computing mit Amazon Web Services (AWS): virtueller Drei-Tage-Workshop
    14.–16. Februar 2022, virtuell
Weitere IT-Trainings

Was bei ersten Versuchen mit einem Beschleunigungssensor verunsichern kann, ist die Tatsache, dass der Sensor auch schon Werte zurückliefert, wenn er ganz ruhig auf dem Tisch liegt. Scheinbar wird er ja dann gar nicht beschleunigt. Ich habe anfangs gedacht, dass in Ruhelage von allen drei Achsen der Wert 0 zurückgegeben werden müsste und nur Werte ungleich 0 zurückgeliefert werden, wenn ich den Sensor schnell bewege und auch dann nur in dem Moment, in dem sich die Geschwindigkeit der Bewegung verändert - denn das ist ja laut Definition die Beschleunigung . Die ersten Experimente zeigen aber schnell, dass dem nicht so ist.

Es ist die Erdbeschleunigung, deren Wirkung auf die Sensoren ich nicht berücksichtigt hatte! Sie wirkt beständig auf die Sensoren ein, und darum geben diese auch in Ruhelage einen Wert zurück. Und nebenbei ist dies auch der Grund dafür, dass diese Sensoren auch Lagesensoren sind - und damit erst dieses Spiel ermöglichen. Um nun eine zusätzlich auf den Sensor einwirkende Beschleunigung zu detektieren, muss der Wert in der Ruhephase bekannt sein, um vom aktuellen Wert subtrahiert zu werden. Die Differenz ist die tatsächlich auf den Sensor zusätzlich zur Erdbeschleunigung einwirkende Beschleunigung.

Für das Spiel benötige ich aber lediglich die Lage des Sensors, ich gehe daher im weiteren Text nicht weiter auf die Beschleunigungsdetektion ein.

  • Adafruit Playground Circuit (Bild: Thomas Ell)
  • Adafruit Playground Circuit  (Bild: Thomas Ell)
  • Bewegungssensor mit Koordinatenbeschriftung (Bild: Thomas Ell)
  • Skript in der Arduino IDE (Bild: Thomas Ell)
  • Ausgabe des seriellen Monitors (Bild: Thomas Ell)
  • Gehäuse für den Playground Circuit (Bild: Thomas Ell)
  • Gehäuse für den Playground Circuit (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
  • (Bild: Thomas Ell)
Ausgabe des seriellen Monitors (Bild: Thomas Ell)

Wenn ich das Circuit Playground waagrecht auf dem Tisch liegen habe und einmal in die Mitte sehe, finde ich dort den Beschleunigungssensor als kleines schwarzes Kästchen und daneben die Buchstaben X und Y. In der Darstellung des Plotters sehe ich, dass zwei Achsen (X und Y) keinen Ausschlag haben und eine (Z) voll ausgeschlagen ist. Denn auf die Z-Achse wirkt sich in dieser Position die volle Erdbeschleunigung aus! Halte ich das Board so, dass es hochkant auf dem Tisch steht, so ist der Ausschlag für Z gleich 0, während die anderen beiden Achsen plötzlich unterschiedliche Werte zeigen, je nach der gerade aktuellen Rotation des Boards.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Bewegungssensor auswerten: Mit Wackeln programmieren lernenWie der Beschleunigungssensor funktioniert 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


erlkoenig 19. Sep 2018

Man könnte den Slide Switch Eingang als Interrupt konfigurieren, und den Prozessor bei...

FrankGallagher 18. Sep 2018

Hast du falsch verstanden. Druckempfindlich nennt man resistive Flächen, kapazitive...

Eheran 18. Sep 2018

Ich habe noch nie einen Megacontroller programmiert. Wie groß sind die? Meine winzigen...



Aktuell auf der Startseite von Golem.de
Microsoft
Sony äußert sich zur Übernahme von Activision Blizzard

Rund 20 Milliarden US-Dollar haben die Aktien von Sony verloren. Nun hat der Konzern erstmals den Kauf von Activision Blizzard kommentiert.

Microsoft: Sony äußert sich zur Übernahme von Activision Blizzard
Artikel
  1. Parallel Systems: Ehemalige SpaceX-Mitarbeiter entwickeln neuartige Güterzüge
    Parallel Systems
    Ehemalige SpaceX-Mitarbeiter entwickeln neuartige Güterzüge

    Das Startup Parallel Systems will konventionelle Züge durch modulare Fahrzeuge mit eigenem Antrieb und Energieversorgung ersetzen.

  2. Digitale-Dienste-Gesetz: Europaparlament will Nutzertracking stark einschränken
    Digitale-Dienste-Gesetz
    Europaparlament will Nutzertracking stark einschränken

    Das Europaparlament hat den Entwurf des Digitale-Dienste-Gesetzes verschärft. Ein Komplettverbot personalisierter Werbung soll es aber nicht geben.

  3. Jahresbilanz: Durch das Vodafone-Kabelnetz liefen 48 Exabyte
    Jahresbilanz
    Durch das Vodafone-Kabelnetz liefen 48 Exabyte

    Unser neues Leben spielt sich tagsüber bei Microsoft Teams ab. Dann verlagern sich die Datenströme in Richtung der Server von Netflix und Amazon.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • LG OLED (2021) 40% günstiger (u.a. 65" 1.599€) • WD Black 1TB SSD 94,90€ • Lenovo Laptops (u.a. 17,3" RTX3080 1.599€) • Gigabyte Mainboard 299,82€ • RTX 3090 2.399€ • RTX 3060 Ti 799€ • MindStar (u.a. 32GB DDR5-6000 389€) • Alternate (u.a. Samsung LED TV 50" 549€) [Werbung]
    •  /