Dienstag, 26. Mai 2015

Lage des Arduino

Heute wollen wir die Lage des Arduino erkennen, sowie mögliche Veränderungen der Lage registrieren. Dazu verwendet man sogenannte Accelerometer. Ich verwende den KEYES 345 Sensor, wobei dieser zum ADXL 345 von Adafruit kompatibel ist.

Die Verbindung zum Arduino benötigt lediglich vier Kabel. Dazu muss man entweder eine 5V oder eine 3.3V Spannungsversorgung anschließen, einen Ground und die beiden Datenpins. Diese heißen SCL und SDA, da das I2C Format verwendet wird. Das ist ein in den 70 Jahren entwickeltes Protokoll. Der SCL Pin gibt den Takt an und der SDA Pin überträgt die eigentlichen Daten. Am Arduino ist der SCL Pin der analog Eingang 5 und SDA Pin der analog Eingang 4. SDA des Sensors muss mit dem SDA des Arduino und SCL des Sensors zum SCL des Arduino verbunden werden. Das sieht dann bei mir so aus:
Um eine Verbindung herzustellen muss man einige Bibliotheken nachladen. Die Erste, ist die Bibliothek Wire.h um eine I2C Verbindung herzustellen. Diese kann über Sketch > Include Library > Wire nachgeladen werden. Anschließend brauchen wir noch die Sensor Bibliothek von Adafruit sowie die ADXl345 Bibliothek von Adafruit. Diese können hier und hier heruntergeladen werden. Sie müssen dann jeweils in den libraries Ordner im Arduino Ordner entpackt werden. Dann kann man sie, wie die Wire Bibliothek , nachladen. Nun muss man ein Objekt vom diesem Sensortyp erzeugen. Anschließend beginnt man im Setup-Teil eine serielle Verbindung und startet den Sensor über Name.begin(). Im Loop-Teil misst man zuerst die aktuellen Werte mit sensor_event_t; Diese fügt man dann dem vorher definierten Sensor mit Name.getEvent(&event); hinzu. Über event.acceleration.Achse bekommt man dann die Werte zurück. Diesen Wert, beispielsweise der x Achse gibt man dann über die serielle Konsole mit Serial.println(event.acceleration.x); aus. Der Sketch sieht dann so aus:
Wenn man den Sketch hochlädt und den Sensor jetzt bewegt merkt man, wie die Werte sich verändern.
Das kann man dann auch mit der y bzw z Achse wiederholen. Viel Spaß beim ausprobieren! Ich werde den Sensor wahrscheinlich verwenden sobald ich anfange mein Flugobjekt zu bauen(weiß noch nicht wie viele Propelloren:) ).
Wozu werdet ihr ihr den Bestimmung der Lage des Arduino verwenden?

Keine Kommentare:

Kommentar veröffentlichen