PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADXL330 grafisch ausgeben



JeyBee
03.03.2010, 10:31
Guten Tag

Ich habe hier einen ADXL330 (3-Achsen Beschleunigungssensor), welcher an einem ATmega16 hängt. Ich kann das ding korrekt auslesen, und die Werte auf einem LCD ausgeben oder direkt per UART zum Computer senden.
Der Sensor soll später platz in einem Modellbauflugzeug finden, damit man die Lage des Flugzeuges (Steigen, Sinken, Rollen, etc.) per Funk zu einem Laptop übertragen kann und dort grafisch erkennen kann.

Nun möchte ich, da die Hardware funktioniert, das ganze per UART an den Computer senden und per Software grafisch darstellen. Jedcoh habe ich überhaupt keine Ahnung, wie ich das in Echtzeit bewerkstellegen kann, also ohne das ganze auf zu zeichnen. Für den Anfang (Testzwecke) würde mir schon mal ein einfacher Graph reichen, der Die X- und Y-Achse ausgibt.

Per Suche habe ich das hier gefunden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=46603&highlight=adxl330

Jedoch funktoniert das bei mir nicht.

Hat jemand eine Idee? Fertige Software? Kenntnisse um sowas herzustellen?

Gruss JeyBee66

m.a.r.v.i.n
03.03.2010, 12:03
Hallo JeeBee,

da fällt mir spontan Processing (http://www.processing.org) ein. Damit kann man relativ einfach Daten von der seriellen Schnittstelle empfangen und grafisch aufbereitet ausgeben, ohne all zu tief in Grafik Programmierung einsteigen zu müssen. Die Programmiersprache ist C/C++ ähnlich, dahinter verbirgt sich aber Java, läuft damit auf allen üblichen Betriebssystemen. Es gibt auch jede Menge Tutorials, fertige Beispiele und Bücher zum Thema Processing.

Vor allen die Tutorials von der Uni Malmö (http://webzone.k3.mah.se/projects/arduino-workshop/projects/arduino_meets_processing/instructions/index.html) haben mir sehr geholfen. Ist zwar mehr für Arduino gedacht, sollte aber leicht auf andere Microcontroller portiert werden können.

JeyBee
03.03.2010, 12:42
Hey marvin :)

Nun, ich frage mich, ob ich nicht direkt das richtig mache, wie ich es später eigentlich auch haben will. Am ende soll eigentlich ein künstlicher Horizont, Höhenmeter etc da sein, so wie ien 3D-Modell eines Flugzeuges, welches sich in einem virtuellen Raum bewegt und so die Lage des eigentlichen flugzeuges wiedergibt.

Ich Processing überhaupt so leistungsfähig? Lohnt sich das, von grundauf das zu lerenen?

P.S. Auf dem Arduionoboard ist auch nur ein AVR drauf, von da her sollte das das kleinere Problem sein.


Gruss JeyBee66

m.a.r.v.i.n
03.03.2010, 14:44
Hallo JeeBee,

Ich denke schon, dass das mit Processing alles möglich ist. Wenn gleich ich sagen muß, dass ich noch keine komplexere Sachen programmiert habe.

Mir viel der Einstieg zu Processing realtiv leicht, da ich schon recht viel mit Arduino gemacht habe und auch sonst aus der C/C++ Ecke komme. Allerdings habe ich mich bisher auf das Anpassen von bestehenden Sketches beschränkt.

Was das Echtzeitverhalten angeht, schau dir mal das Video an:
http://crazymotion.net/adxl345-accelerometer-arduino-and-processing-language/wBJeohcZssBUjAy.html

Eine tolle Anwendung ist auch das Arduinoscope. 6-Kanal Oszi und 13-Kanal Logic Analizer in Software:
http://code.google.com/p/arduinoscope/wiki/Usage

Die Frage ist auch, auf welcher Plattform das ganze laufen soll. Das ist bei Processing so ziemlich egal, das läuft auf Linux, Mac, Windows. Wenn man sich allein auf Windows beschränkt, gibt es sicher auch andere Wege, aber ob das einfacher ist?

JeyBee
03.03.2010, 16:09
Hi marvin

Um die Plattform mach ich mir weniger Sorgen. Der Endkunde allerdings, ist Windows user....

Soll ich miche infach mal in das Processing einlesen? Ich komme eh auch aus der C/C++ Welt und mit AVR hab ich ja eh meine Erfahrungen.


Gruss JeyBee66

m.a.r.v.i.n
04.03.2010, 12:00
Hi JeeBee,

Processinmg ist in erster Linie ein 'rapid prototyping tool'. D.h. schnell mal was auf den Bildschirm zaubern, ohne größer in die Programmierung einsteigen zu müssen. Das hat aber seine Grenzen, wenn man z.B Menüs oder Dialoge einfügen will, sprich Nutzereingeben verarbeiten will/muss.

Und wenn du von Kunde sprichst, klingt das ganze ja eher nach einer profitorientierten Lösung und kein Bastelprojekt für den Feierabend.

Die Frage, ob du tiefer in Processing einsteigen sollst musst du dir schon selber beantworten.

Willa
05.03.2010, 08:53
Hi,
mit .NET ist sowas ebenfalls möglich. Das kann in C oder Basic oder ... geschrieben werden und ist recht einfach. Hier mal ein älteres Programm von mir:
http://www.youtube.com/watch?v=Z0CwuCZ_pVM&feature=player_embedded#t=42
Mit einem 3-achs Beschleunigungsmesser "Steigen, Sinken, Rollen, etc." zu erfassen wird aber nicht ganz einfach...

JeyBee
05.03.2010, 21:12
Hmm, mein Hauptproblem liegt auch noch darin, dass die Achsen sich ab einer bestimmten Neigung "austauschen". Jedoch ist halt die Bedingung des Projektes, dass alle drei Achsen um 360° schwenkbar sind...

Any Ideas?

Willa
06.03.2010, 10:47
Was ist denn das genaue Ziel des Projekts...? Eine eindeutige Laagebestimmung? Dann brauchst du noch 3 Gyroskope glaube ich. Und einen Magnetfeldsensor.
Die Gyroskope machen dann die Hauptarbeit, die Lage wird durch Integration der Signale errechnet. Die ACCs und den Kompass benutzt du dann nur um den Drift während der Integralbildung zu unterdrücken. So könnte es glaube ich klappen.

holzi
06.03.2010, 11:09
Soll Dein Ziel so etwas sein?
http://www.youtube.com/watch?v=-retG343Vbk&feature=related
Wenn es das sein soll und Du Hilfe brauchst, gib Bescheid. Ist gar nicht so schwer.
Peter

JeyBee
08.03.2010, 11:28
Hey,

Genau das ist eigentlich das Ziel!
Ich habe mir das ins Auge gefasst. Ich nehme an dass du der Inhaber des Videos bist?
Ich währe dir Dankbar, wenn wir uns mal über ICQ oder so unterhalten können. Brauche ich wirklich noch zusätzliche Sensoren?


Mfg JeyBee66

Willa
08.03.2010, 11:32
Brauche ich wirklich noch zusätzliche Sensoren?
Wenn das auch in der Luft einigermaßen präzise funktionieren soll: Ja...

holzi
08.03.2010, 12:22
Hi,
ja, ich bin der Besitzer des Videos. Mein Teil fliegt auch, aber nur in einer Höhe von ca. 10 cm über dem Wasser. Es funktioniert, aber zufrieden bin ich nicht. Momentan benutze ich einen 3-Achsen ACC. Die Werte, die mir da ausgegeben werden, werden durch die Beschleunigung des Modells verfälscht. Aus diesem Grunde werde ich demnächst mit einem IMU (der IMU-Cube von Willa hat es mir angetan) arbeiten, um bessere Werte bzw. eine dadurch besserer Steuerung zu bekommen.
Meld Dich per PM bei mir, da ich hier meine ICQ-Nummer nicht einfach reinschreiben möchte.
Hallo Willa, Dein Cube gefällt mir wirklich und er wäre genau das, was mir so vorschwebt. Nur die Preise der Einzelteile gefallen mir nicht. Für einen Giro 50,-€ plus der ACC, da bin ich ca. bei 180,-€
Hast Du da eine günstigere Quelle?

Peter

Willa
08.03.2010, 12:38
Hi Peter,
diese zwei IMUs erscheinen sehr interessant.
http://www.sparkfun.com/commerce/product_info.php?products_id=9623
http://www.sparkfun.com/commerce/product_info.php?products_id=9431
Angeblich sind die für Multicopter nicht so sehr geeignet weil die Resonanzfrequenz der Gyroskope ähnlich der Motordrehzahl ist. Ob das stimmt weiss ich nicht. Eine gute Vibrationsentkopplung (z.B. IMU auf Akku montiert, Akku in Schaumstoff gelagert) und ein gewuchteter Prop sollten hier Abhilfe schaffen... Bei dem Preis auf jeden Fall einen Versuch wert finde ich.

JeyBee
08.03.2010, 13:02
Nun, meine ganze Sensorik sollte auf ein Modellflugzeug kommen. Damit sollte man das gesammte Flugzeugt quasi "blind" fliegen können. Es währe halt sehr interessant, wen man das fertig bringen würde.
Ausser dem ACC und einen GPS hätte ich aber nix, um die Lage des Flugzeuges zu orten. Brauche ich diese Gyros?

Gruss JeyBee66

Gruss JeyBee66