William möchte, glaube ich gelesen zu haben, auch lieber den Sensor auf einem extra Board.
William möchte, glaube ich gelesen zu haben, auch lieber den Sensor auf einem extra Board.
Ja. Ursprünglich hätte ich es auch schicker gefunden nur ein Board inkl. Sensor zu haben. Aber Bernd hat recht, die Sensoren ändern sich dauernd (bleiben aber hoffentlich bei I²C und 3.3V). Somit hätte man ein board mit höherer Habwertszeit. Außerdem kann man so den Sensor besser lagern. Ich würde das Hauptboard mit Kunststoffschrauben vibrationsgedämpft anbringen. Dann kommt das IMU Board mit doppelseitigem Schaumklebeband oben auf den xmega drauf. Diese doppelte Entkopplung könnte was bringen. Vielleicht auch für den SNQ, denn dort sind die motoren ja "direkt an die IMU geschraubt".William möchte, glaube ich gelesen zu haben, auch lieber den Sensor auf einem extra Board.
Harald, wie ist das denn bei der IMU? Wie schnell kommen da neue Werte raus? Etwas weiter oben im Thread hast du geschrieben, dass du oftmals die gleichen Werte ausliest. D.h. die Daten kommen lansamer als mit 500Hz? Wenn dem so ist, ist das für den PID Regler natürlich ziemlich schlecht. Besonders für den D-Anteil, der ja zwei aufeinanderfolgende Werte vergleicht. Zu wissen wann neue Werte da sind ist also ziemlich wichtig.Eine Leitung von Pin 12 des MPU nach Pin 25/26/27 des Atmel -> Interrupt wenn neue Sensordaten im Ausleseregister stehen
Ich würde jetzt bei Reichelt mal die benötigten komponenten bestellen (Harald, hast du noch eine IMU für mich?)
Ich habe gelesen, dass der AVR ISP MK2 PDI unterstützt und auch direkt mit Bascom funktioniert. Den gibt es bei Reichelt:
http://www.reichelt.de/Programmer-En...T=0&OFFSET=16&
Allerdings steht dort im Datenblatt nichts von PDI... Ist dass der richtige? Gibt es funktionierende Alternativen?
Viele Grüße, William
-> http://william.thielicke.org/
Im datenblatt des MPU600 lese ich beim Gyro:Wie schnell kommen da neue Werte raus?
OUTPUT DATA RATE Programmable 4 - 8000 Hz
und beim ACC:
OUTPUT DATA RATE Programmable Range 4 - 1000 Hz
The Sample Rate is generated by dividing the gyroscope output rate by SMPLRT_DIV:
Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV)
where Gyroscope Output Rate = 8kHz when the DLPF is disabled (DLPF_CFG = 0 or 7), and 1kHz when the DLPF is enabled (see Register 26).
Note: The accelerometer output rate is 1kHz. This means that for a Sample Rate greater than 1kHz, the same accelerometer sample may be output to the FIFO, DMP, and sensor registers more than once.
Was habt ihr da in euren fliegenden Coptern eingestellt?
Geändert von Willa (22.03.2012 um 11:01 Uhr)
Viele Grüße, William
-> http://william.thielicke.org/
Noch etwas kleiner
Viele Grüße, William
-> http://william.thielicke.org/
ich muß gestehen, dass ich bis jetzt nur MultiWii-Kopter mit der MPU6050 in die Luft bekommen habe.
Mit der Software von Harald gibt es nur sehr kurze unruhige Flüge die, wenn ich sie nicht schnell beende, mit einem Überschlag enden.
Es hilft bis jetzt auch nicht die Werte in der GUI zu verändern, da wird alles zwar träger, aber auch nicht fliegbarer.
Es könnte aber auch seine Impulserzeugung sein, evt. ist sie nicht schnell genug. So flogen meine Kopter, wenn die ESCs nicht geeignet waren.
Zum testen verwende ich aber immer dieselbe Mechanik und ändere nur die Software. Beides, Willa und Wii Software läufen auf einem ATmega 328.
Ich habe aber keine Ahnung von der Software und habe meine Änderungen im Arduino-Sketch beim Wiikopter immer mit ausprobieren erreicht.
Gruß Bernd
Hi Willa,
den selben Programmer habe ich mir vor kurzem auch bei Reichelt bestellt. Anfangs hatte ich auch bedenken, weil im DB nichts von der PDI Schnittstelle steht, aber er kannsDie Einbindung in Bascom ist auch ganz einfach und in der Hilfe von Bascom findet man eine gute Anleitung, auch bzgl. des Treibers usw....
Falls du Fragen zur Programmierung des XMegas hast, stehe ich gerne zur Verfügung. Habe schon fast mit allen Schnittstellen gearbeitet.
Eine Frage habe ich aber noch:
Wäre es nicht sinnvoll, den MPU6000 zu verwenden und diesen über die SPI Schnittstelle auszulesen? Ich werde das heute mal testen. Damit wäre der Kontrollloop nochmal schneller, da man auf das Senden der Adresse verzichten könnte und der Sensor bis zu 1Mhz Taktrate funktioniert.
Gruß
Chris
EDIT:
Habe gerade mal deinen Code vom Bolt auf einen XMEGA64A3 mit MPU6000 (I2C) umgeschrieben und an den PC angeschlossen. Es funktioniert![]()
Natürlich ist jetzt noch kein Empfänger dran und auch keine Motoren, aber die PWM funktioniert (6 mal Hardware PWM mit 500Hz und 16Bit Auflösung) und die Sensorwerte werden in der TRIGuide angezeigt. Einziges Manko:
Der Sensor liefert 16Bit Werte, somit müsste man einige Variablen noch anders definieren und auch die OFFSET-Berechnung kann wegfallen (MPU gibt bereits Integer aus) und eben noch ein paar Kleinigkeiten. Aber im Prinzip war das eine Änderung innerhalb 20Minuten. Wenn Interesse besteht, würde ich den Code (von Willa!!!) reinstellen.
Geändert von Che Guevara (23.03.2012 um 02:57 Uhr)
Lesezeichen