Flugrekorder Teil 2

Ich habe gestern und heute eine erste Programmversion für den Flugrekorder geschrieben, die alle Sensoren ausliest und die Ergebnisse auf eine SD Karte schreibt.

Ein paar Details zu den Sensoren:

1. Beschleunigunssensor (ACC1) LIS331HH: Befindet sich auf der roten Breakoutplatine, wird später in den vordersten Teil der Raketenspitze geschraubt. Per I²C angebunden.

2. Magnetometer (MAG) LSM303DLHC: Befindet sich auf der grünen Platine, enthält zusätzlich noch einen zweiten Beschleunigungssensor ACC2 und ein Thermometer THM. Per I²C angebunden.

Die microSD Karte wird über SPI angeschlossen und mit der FAT Bibliothek von fat16lib angesprochen. Für die mechanische Verbindung habe ich einen microSD-SD Adapter an den Arduino angelötet, in den die microSD Karte eingeschoben wird.

Für die Stromversorgung nutze ich eine AAA NiMH Zelle mit Lötfahnen (700 mAh bei 1,2V), deren Spannung mittels eines Step-Up-Wandlers auf 3,3V erhöht wird.

Der Arduino ist genau genommen ein Wattuino auf 3.3V.

Alles funktioniert nach dem Zusammenlöten ohne Probleme. Vllt werde ich noch externe Pullups für das I²C Interface anlöten, aber das wars dann auch.

Das Programm, das derzeit läuft, liest linear alle Sensordaten aus und schreibt sie in einen Puffer, der dann auf die SD Karte geschrieben wird. Besonders das Schreiben ist sehr langwierig (~30ms). Da muss ich mich noch tiefer einarbeiten, um mit mehreren Puffern alles flüssiger hinzubekommen und Messraten von um die 1000 Hz zu erreichen. Die FAT Library bringt dazu definitiv die richtigen Werkzeuge mit.

Nachdem ich vor einem Jahr schonmal mit dem roten Beschleunigungssensor gearbeitet hatte, war die Konfiguration diesmal ein Kinderspiel. Direkt beim ersten Ausführen des Programms sind Daten ausgelesen worden. Darauf bin ich voll stolz 🙂 Wenn ich dagegen an die endlosen Verbindungsversuche zum Sensor im letzten Jahr denke – da steckt doch ein guter Fortschritt dazwischen.

Seinen ersten Test hat der Rekorder bestanden: Im Rucksack hatte ich ihn beim Einkaufen dabei und hat er tadellos aufgenommen und 5MB Logdaten erzeugt.

Der Quellcode ist auf GitHub zu finden.

Zum Schluss noch ein wunderschönes Bild, auf dem man die Daten der Sensoren sieht, wenn ich den Flugrekorder schüttel:

Daten diverser Sensoren über die Zeit aufgetragen

Aufgenommen mit MegunoLink Pro

Todo:

  • Schneller und gleichmäßiger loggen
  • Hardware gegen Stöße, Kontakte, etc. schützen
  • Umrechnung der Sensordaten in SI Einheiten

Leave a comment