SD-Karten Datenlogger

Friday 11 April 2008

Es gibt doch immer interessante Daten, die man in einem Modellflugzeug festhalten möchte.

Dafür soll hier eine einfache aber sehr effektive Schltung beschrieben werden.

Als Basis diente folgendes Projekt, dessen Programmierer wir hiermit herzlich danken!
Link

Das Tolle ist, dass auf der SD-Karte im FAT16-Format geschrieben wird. Es stehen nach dem Flug sofort Textdateien zur Verfügung.
Konfiguriert wird der Logger über einen Datei “settings.txt” die sich in jedem Editor bearbeiten lässt.

Und die einzige Hardware ist ein ATmega88! Zum verbinden der Karte habe ich ein Set mit Micro-SD-Karte und 2 Adaptern gekauft, einer wird dann verlötet… (Schaltpläne gibt es momentan unter dem oben genannten Link, demnächst auch in einer besseren Doku hier). Wichtig ist: Die Schaltung muss mit 3,3V laufen, das ist die Betriebsspannung der SD-Karte.
Bauteileaufwand (incl. 1GB Karte) ca. 10€…

Mittlerweile kann der Logger 6 Analogwerte, 5 Servosignale, eine Drehzahl (Frequenz) und einen seriellen Eingang (z.B. GPS) mit einer Frequenz bis zu 30Hz aufzeichnen. Ausserdem kann beim Einschalten und/oder bei jeder Datenerfassung ein serieller String ausgegeben werden.
Hier ein Bild des Versuchsaufbaus:
Logger breadboard

Und so sehen dann die aufgezeichneten Datenfiles aus:
Log1
Und so mit GPS-Empfänger:
Log2

Ein Programm zum Extrahieren der GPS-Daten findet sich unter dem oberen Link (Für die veränderte Version des Loggers muss es vielleicht noch geändert werden, wird demnächst geprüft).
Mittlerweile entsteht dank Forums-Hilfe auch eineVersion, die direkt mit Logview kompatibel ist!

Bedienung:

SD-Karte FAT16 formatieren (im PC) und die “settings.txt” draufschreiben. Dann ab in den Logger. Im Normalbetrieb starten oder stoppen über Taster(an PB0), Status wird über LED angezeigt (an PB1).

Wichtig: Vor dem Entfernen der Karte die Aufzeichnung wieder stoppen, sonst ist die Datei nicht lesbar. Im Automatik-Modus den Taster halten und dann den Strom weg.

Konfiguration:

Hier ein Beispiel für eine Konfigurations-Datei:
Settings.txt

Folgende Optionen können gewählt werden. Wird eine Option nicht eingefügt, kommt der default-Wert zum Tragen. Die Reihenfolge ist nicht relevant, es dürfen aber keine Leerzeichen vorkommen. Abgeschlossen wird die datei mit dem Zeichen #.

  • ch=

Anzahl der eingelesenen Analogkanäle (default=0), max.6 (PC0-5) (SMD 8, dafür Programm ändern!)

  • servos=

Anzahl der eingelesenen Servo (default=0), max.5 (PD3-7)

  • rpm=

Anzahl eingelesener Drehzahlen (default=0), max.1 (INT0)

  • auto=

Automatikmodus:Logger startet sofort. Die Zahl (0-65535) bestimmt, bei welcher “Zeit” eine neue Datei gestartet wird. Pro Sekunde ca. 16 Zähler, maximal also ca 68min. Sin des ganzen is, dass bei möglichen ausfällen das Log nicht ganz verloren ist (Vibrationen…).

  • overflow=

Frequenz der Aufzeichnung. 1 bedeutet ca. 30Hz, jeder weitere Wert halbiert die Frequenz. max. 255, entspricht dann einem log je 7s. (default=50)

  • baud=

baudrate des seriellenPorts (default=0 deaktiviert)

  • hex=

wenn diese option mit “1” aktivier wird, werden serielle Daten als Hex-werte geschrieben (z.B. M=4D). (default=0)

  • initial=

String in Hex-Codierung, der beim Einschalten einmalig gesendet wird (codeirung siehe “hex”)

  • periodic=

String in Hex-Codierung, der bei jedem Log-Schritt gesendet wird (codeirung siehe “hex”)

Irgendwann stößt der Atmega natürlich an seine Leistungsgrenze… Also nicht Alles auf einmal bei maximaler Frequenz… Einfach mal testen!

Download:

Die .hex wurden mit WinAVR, Version 20071221 kompiliert. Auf Atmega 168 wurde noch nicht getestet.

MrData_RClog1

Viel Spaß damit, über Rückmeldung freuen wir uns!

Posted by Marc / Filed under:Elektronik

Leave a comment

You must be logged in to post a comment.

Projekte designed by SEO-Themes and powered by Wordpress