Seite 1 von 81

#1 MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 16:56:51
von yacco
Da ich auch noch auf einige Teile für meinen MWK warte, hab ich über die Feiertage mal ein kleines Konfigurationsprogramm für Arduino-Boards mit LCD Keypad Shield geschrieben, das über eine serielle Schnittstelle kommuniziert und mit dem man die gleichen Parameter einstellen kann wie mit dem MultiWiiConf Tool. Auch die anderen Parameter, die in der MultiWiiConf-Oberfläche angezeigt werden, kann man in dem Tool ablesen (Zustand der Sensoren, Empfängereingänge, Neigungswinkel usw.). Das Tool paßt sich automatisch an die eingestellte Konfiguration (Tri, Quad, Bi, Hex, etc.) an und zeigt jeweils nur die für diese Konfiguration relevanten Werte an.

Hardware: Arduino Uno (oder Duemilanove oder Mega...), Keypad Shield, Kabel. (Ich habe bei mir noch zwischen dem Arduino-Board und dem Keypad Shield ein Interface-Board, da man damit leichter an die serielle Schnittstelle herankommt, das ist aber nicht wirklich notwendig.)

Das Zustandsdiagramm sieht wie folgt aus:

Code: Alles auswählen

    "1  Config       " <->  "! Reset Values !"      Reset to default settings (Left: cancel, Right: OK:
    |
    "2  P-I-D        " <->  "Roll  P   I   D "      PID for Roll     (Right: enter edit mode, Up/Down: change value, Select: send to MWC)
    |                       |
    |                       "Pitch P   I   D "      PID for Pitch    
    |                       |
    |                       "Yaw   P   I   D "      PID for Yaw      
    |
    "3  Rates        " <->  "D/R   Expo   ALS"      DualRate, Expo, AutoLevel Strength (Right: enter edit mode, etc.)
    |                       |
    |                       "R/P   Yaw   Thro"      Roll/Pitch Rate, Yaw Rate, Throttle PID Rate (Right: enter edit mode, etc.)
    |
    "4  Sensors      " <->  "Gyr: Rol Pit Yaw",     Current output from WMP
    |                       |
    |                       "Acc: Rol Pit Z  ",     Current output from Nunchuk (if present)
    |                       |
    |                       "Rho   Phi  Cycle",     Roll angle, Pitch angle, Cycle time
    |
    "5  Receiver In  " <->  "Rec: Rol Pit Yaw"      Current Input from Receiver
    |                       |
    |                       "Rec:  Thro  Mode"
    |
    "6  ESC/Servo Out" <->  ...                     Show Output channels, depending on current config
Getestet habe ich bis jetzt nur die Anzeigen für die Empfängereingänge, da mir leider immer noch die Wii-Hardware fehlt. Beim Schreiben der Werte (Senden der Daten aus das Arduino Mini Pro) bleibt dieses manchmal hängen, auch scheinen die gesendeten Werte nach dem Aus- und Einschalten verloren zu gehen. (Meine Hoffnung ist, dass das mit dem fehlenden Wii-Geraffel zusammenhängt).

Anregungen und Verbesserungsvorschläge sind willkommen. :)

Documentation and current version (feel free to contribute :))

Excellent Build Description incl. parts list and sample PCB layout (by rosewhite)

#2 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 17:24:46
von ChristophB
Genau daran hatte ich gestern auch schon gedacht, da gestern mein LCD kam und dieses ja nicht mir der MultiWiiSoftware zusammenarbeitet, da es ja kein serielles ist. Ein Duemilanove habe ich auch noch da. Allerdings kann ich mit C leider nichts anfangen. Muß ich nur mal schauen, wie ich bei dem Nano an die Schnittstelle komme. Hast du da eine Idee?

Gruß Christoph

edit: Müßten doch TX und RX an Pin D0+D1 sein, oder? Dachte die wären nur fürs serielle LCD, aber laut Schema gehen diese auch ans FTDI.

#3 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 17:39:55
von yacco
Ich denke, du mußt nur die TX, RX, Vcc und GND Pins der beiden Boards miteinander verbinden (RX mit TX und umgekehrt, klar).

Edit: yep, D0 ist RX, D1 ist TX.

#4 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 17:48:58
von calli
Hey, supi!

Mal sehen ob ich das umstricken kann für mein LCD
XAssist.JPG
XAssist.JPG (83.03 KiB) 17122 mal betrachtet
Irgendwo muss man ja wohl die Ports für das LCD einstellen können.

Carsten

PS: Edit: sollte man nicht heutzutage die liquidCrystal library benutzen?

#5 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 18:14:46
von yacco
Ja, stimmt, die alte LCD4Bit Lib hab ich nur benutzt, weil das Beispielprogramm, aus dem ich ein paar Routinen geklaut habe, darauf aufsetzt. Mal gucken, ob ich die Version 1.0 auf die LiquidCrystal Lib umbaue. Mein Keypad Shield kam erst an Heiligabend, hab noch nicht weiter damit rumgespielt.

#6 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 18:31:34
von ChristophB
Tausend Dank. Et lüppt. Super Arbeit.

#7 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 19:29:25
von tracer
yacco hat geschrieben:Bi
Wie geht das? Kenne nur Minimum Tri.

#8 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 19:50:00
von yacco
Der Umbau auf die LiquidCrystal Lib war einfacher, als ich gedacht habe, die neue Version ist im Anhang. Das ganze läuft damit auch deutlich schneller, wodurch die Verzögerungsschleifen für die Tasteneingabe nicht mehr richtig funktioniert haben und geändert werden mußten.

Tracer, hab zu der Konfiguration "Bi" auch noch keine Beschreibung gefunden. Anhand der ausgegebenen Signale (zwei Motoren, zwei Servos) vermute ich sowas wie einen Tilt Rotor dahinter.

#9 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 19:52:07
von fireball

#10 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 20:09:56
von tracer
yacco hat geschrieben:Tracer, hab zu der Konfiguration "Bi" auch noch keine Beschreibung gefunden. Anhand der ausgegebenen Signale (zwei Motoren, zwei Servos) vermute ich sowas wie einen Tilt Rotor dahinter.
fireball hat geschrieben:Bi-Copter: http://diydrones.com/profiles/blogs/fli ... scorpid450
Danke euch beiden. Auch interessant.

#11 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 28.12.2010 20:28:38
von Mataschke
Sieht verdammt nach V22 aus... :-)

#12 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 29.12.2010 13:32:31
von yacco
Kleines Bugfix-Update (Eingabe der AutoLevel Strength scheiterte an einem Vorzeichenfehler, der Wert ist übrigens im Vergleich zum MultiWiiConf um den Faktor 10 gestreckt)...

#13 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 29.12.2010 19:41:52
von calli
Ich habe das Programm mal auf die ShiftRegLCD Library angepasst, damit kann man per Shift Register angebundene LCD benutzen, die brauchen dann nur 2 oder 3 Ports am Arduino.

Ist nur ein #define und dementsprechend zwei #ifdef/#ifndef (einmal Init der Library statt LiquidCrystal und einmal um das fehlende lcd.begin() abzufangen).

Vielleicht kannst Du das ja übernehmen.

Gruß,
Carsten

PS: Wer kennt sich da noch aus? ;-)
LCD_Drahtverhau.jpg
LCD_Drahtverhau.jpg (157.95 KiB) 16985 mal betrachtet

#14 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 29.12.2010 20:14:06
von calli
Ok, jetzt noch ein Widerstandsnetzwerk bauen damit ich auch Keys habe. Oder hacke ich Deinen Code weiter um direkt von Ports abzufragen? Dein Tastencode ist recht komplex....

C!

#15 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Verfasst: 29.12.2010 20:24:04
von el-dentiste
calli hat geschrieben: PS: Wer kennt sich da noch aus? ;-)
Ich leider absolut gar nicht :-( sind für mich leider bömische Dörfer, find es aber super das ihr das macht, und die ganze Sache mit dem Display sehr spannend !
Macht bitte weiter !