budo's Web
Hier findet ihr einiges zu meinen Hobbies

Beschleunigungsmesser

Mittels eines 3D-Beschleunigungssensor (ADXL330) können die Beschleunigungswerte in X, Y und Z-Richtung gemessen werden. Die Beschleunigungswerte stehen dabei direkt als analoge Spannungen zur Verfügung. Beim verwendeten Modul von Pollin ist die Bandbreite der Ausgangskanäle auf 50Hz eingestellt. Für die Versorgung des Moduls ist eine Spannung von größer/gleich 6V erforderlich. Die Spannung wird mit einer einfachen Ladungspumpe (2 Dioden und 2 Kondensatoren) erzeugt, welche durch den budoino angesteuert wird.

Möchte man nun mit dem Beschleunigungssensor die Kurve für eine bestimmte Bewegung (z.B. Motordrehung) aufnehmen, wird man sehr schnell mit einem Geschwindigkeitsproblem konfrontiert. Ein Testprogramm zeigte, dass die maximale Geschwindigkeit für die Messung der 3 Werte und die Übertragung der Werte via serieller Schnittstelle bei 1ms liegt, und das ohne jegliche andere Aktion, wie Motoransteuerung oder sonstiges. Hier wird einem sehr schnell klar, dass man einen Daten-Logger benötigt, der wegen der Geschwindigkeit die Daten im RAM zwischenspeichert und erst nach der Messreihe die Daten überträgt. D.h., für die Aufgabe ist ein budoino XXL mit dem Speicherriesen ATmega 1284 mit 16kByte SRAM bestens geeignet. Das Programm muss zur Optimierung der Geschwindigkeit allerdings trotzdem spartanisch programmiert werden.

Der erste Entwurf der Software mit einer Reduzierung der Messwerte auf ein Byte brachte mit Ausgabe der Aufnahmezeit (ohne Zeit der seriellen Ausgabe) und Ausgabe des freien SRAM-Speicherplatz mit einigen Testläufen folgende Ergebnisse:
  - Aufnahmezeit (Messen und Speichern) pro Messwert 115µs
  - Verfügbarer Speicher für 3 x 5300 oder 1 x 15900 Werte
  - Aufnahmezeit ca. 1.8s.
Eine Optimierung der Software ist da nicht erforderlich, da die Aufnahmezeit weitestgehend durch die AD-Wandlung mit ca. 0.1ms gebildet wird.

Der Beschleunigungssensor wird üblicherweise waagerecht eingebaut. Im Falle des Winkel-Scanners zeigt die X-Achse in Drehrichtung, die Y-Achse in Richtung Drehpunkt und die Z-Achse nach oben. Bei einer Empfindlichkeit von 300mV/g und einer Reduzierung der Messung auf 256 Bit entspricht 1g ca.15, da 1 etwa 19,6mV entspricht. Folglich ist der Z-Werte wegen der Erdanziehung um ca. 15 größer als die Werte für X und Y. Eine schiefer Einbau beeinflusst die Ruhewerte entsprechend, genauso wie ein verdrehter Einbau (X- oder Y-Achse in Richtung Erdmittelpunkt).

Grundsätzlich kann man 2 Arten von Messungen mit einem Beschleunigungssensor durchführen:
  - Die normale Beschleunigungsmessung, in dem man den Sensor an ein bewegtes Objekt koppelt, oder
  - die Messung der Neigung gegenüber der Erdachse, in dem man die vorhandene Erdanziehung benutzt und den Sensor gegenüber der Achse verdreht.

Bilder

bs

XL

Beschleunigungssensor mit Aufnahmeadapter (links) und Ladepumpe zur Spannungserhöhung (rechts)

budoino XXL

Ausblick

Der Beschleunigungsmesser basierend auf dem budoino XXL hat eine gute Geschwindigkeit von bis zu 115µs pro Wert, allerdings ist die beschränkte Speicherkapazität von 15900 Werten für längere Aufzeichnungen nicht geeignet. Eine Alternative hierzu ist die Verwendung von externem Speicher, z.B. via SPI, wie beim SRAM-Data-Logger verwendet.


Nach Oben