Beschleunigung ermitteln mit MPU6050

Heyho,

erstmal ein freundliches "Hallo" in die Runde!

Ich bin auf der Suche nach einer Möglichkeit ohne schwere Bibliotheken die Beschleunigung mittels MPU6050 - Sensor zu ermitteln.

Aktuell nutze ich die von RTIMULib (https://github.com/richards-tech/RTIMULib-Arduino) - die ist wirklich großartig, funktioniert wunderbar (besser als die MPU6050 - Bibliothek).

Leider benötigt die Bibliothek knapp 60% des Speichers meines Unos. Wenn ich dann noch meine SD-Bibliothek zur Speicherung der Daten importiere, schreit der Uno schon, dass die Ressourcen knapp werden. Später brauche ich noch Bluetooth und von Adafruit die Neopixels. SD wird zwar nur temporär benötigt, aber die Bibliotheken bzgl. Bluetooth und Neopixel sind auch nicht gerade leicht.

Also muss ich schon ans verkleinern denken. Ich brauche auch "nur" die Beschleunigung. Position (Gyro) ist mir egal und von der Beschleunigung ist mir sogar egal, welche Richtung. "Nur" ob eine Beschleunigung stattfindet.

Ist da jemanden was schlankes, einfaches und stabiles untergekommen? Ich war naiv und dachte, das wäre das kleinste Problem, aber der Sensor ist doch nerviger als gedacht um an lesbare Infos zu kommen... :wink:

Gruß,
Mika

Schau dir das Datenblatt an und schaue, wie der MPU6050 angesteuert/ausgelesen werden kann. Das wird aber keinesfalls einfach und ohne Kenntnisse kaum machbar. Ansonsten nehmen einen größeren µC

Hi,

das wäre wirklich kompliziert. Vielleicht hat ja jemand ein ähnliches Problem und eine entsprechende Lösung gefunden. Ich hoff es zumindest... :wink:

An der Hardware aufstocken mag ich eigentlich nicht - aber wenn wirklich gar nichts geht...

Gruß,
Mika

Nur die Register für die Beschleunigung auszulesen damit man die Rohwerte hat ist einfach. Dazu braucht man keine Library. Da gibt es z.B. hier Code:

http://playground.arduino.cc/Main/MPU-6050#short

Das kann man noch um Temperatur und Gyro kürzen. Also nur 6 statt 14 Bytes auslesen

Hi Serenifly,

im Grunde hast du recht. Ok, ich muss die Werte noch glätten, obwohl der Sensor sich gerade nicht bewegt, hab ich trotzdem sehr sprunghafte Werte - aber das sollte das kleinere Problem sein (hoffe ich). Zumindest habe ich so noch kräftig Luft was den Speicher angeht.

Gruß,
Mika

Meine Lösung: MPU-6050 durch einen ADXL335 ersetzt. Vereinfacht vieles in der Programmierung. Wer also nur Werte der Beschleunigung benötigt, der ist wohl mit einem ADXL3*5 besser bedient.

Hätte ich mich mal vorher intensiv informieren sollen, hätte mir einiges erspart... :wink:

Gruß,
Mika