MultiWiiKopter-Konfigurationsprogramm für Arduino
#376 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Anbei eine vom LCD_Config erzeugt LogView-Datei... beim Importieren sagt mir LogView nur ständig, dass das File beschädigt ist, aber keinerlei Hinweis, was ihm denn nicht paßt (ganz im Widerspruch, was in der wirklich guten Online-Hilfe von LogView steht). Meine .ini-Datei steht im <AnwendungsDaten>\LogView\Geräte\OpenFormat Unterordner, dann wird sie auch beim Öffnen richtig angezeigt, nur das Importieren von Logfiles klappt halt nicht.
- Dateianhänge
-
- 503.zip
- EDIT: Jetzt mit .ini und Bilddatei
- (59.54 KiB) 60-mal heruntergeladen
Ciao, Arnd
#377 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Bitte: http://www.conrad.de/ce/de/product/705178/X-21 hat geschrieben:Gib mal bitte Bestellnummer rueber,
Hab ich nichts dagegen.X-21 hat geschrieben:Man gut, dann einigen wir uns auf die Dicke von dem Keks. Oder wieder falsch?

MFG
speedy
#378 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Hihihi... an der Skalierung muß ich noch bisschen arbeiten, aber sonst sieht das schon sehr gut aus.
- Dateianhänge
-
- Logview.jpg (297.33 KiB) 1286 mal betrachtet
Ciao, Arnd
#379 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Na das sieht doch schon gut aus. 
Ich hab grad so überlegt - weil du ja so langsam Probleme mit dem Speicher bekommst - würde es eventuell was bringen die ganzen Texte auf die SD auszulagern und dann dynamisch zu laden ? - klar, man bräucht dann ne SD, aber wenn man dadurch wieder mehr Platz für nützliches
bekommt ...
Allerdings hab ich auch irgendwo gelesen, daß man nur ein File gleichzeitig auf der SD geöffnet haben kann - daher vermute ich mal, daß man dann eventuell mit dem Logfile in Konflikt kommt - oder man merkt sich das aktuelle Logfile und öffnet es jedesmal zum Anhängen neu.
MFG
speedy

Ich hab grad so überlegt - weil du ja so langsam Probleme mit dem Speicher bekommst - würde es eventuell was bringen die ganzen Texte auf die SD auszulagern und dann dynamisch zu laden ? - klar, man bräucht dann ne SD, aber wenn man dadurch wieder mehr Platz für nützliches

Allerdings hab ich auch irgendwo gelesen, daß man nur ein File gleichzeitig auf der SD geöffnet haben kann - daher vermute ich mal, daß man dann eventuell mit dem Logfile in Konflikt kommt - oder man merkt sich das aktuelle Logfile und öffnet es jedesmal zum Anhängen neu.
MFG
speedy
#380 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Bei den Mini-Texten (max 16 Bytes, sprich eine Zeile auf dem Display) macht das keinen Sinn - um die jeder Benutzung wieder von der Karte einzulesen, ist das Interface zu langsam (kleinste ansprechbare Einheit ist ein 512 Byte Block, den zu laden dauert 137 ms). Und wenn ich sie mir im SRAM (2k) buffere, hab ich nichts gewonnen, genau der Speicher geht mir ja ständig aus.
Ich tippe mal, dass 2/3 des erzeugten hex-Files von den eingebundenen Libs belegt wird, mein Code dürfte vielleicht 8-10 kB ausmachen.
Ich tippe mal, dass 2/3 des erzeugten hex-Files von den eingebundenen Libs belegt wird, mein Code dürfte vielleicht 8-10 kB ausmachen.
Ciao, Arnd
- JollyJoker
- Beiträge: 139
- Registriert: 31.01.2011 22:21:57
- Wohnort: MS
#381 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Hi Arnd,
fleisch hast des ja schon gesehen, sonst: Drüben im RCG hat der Shikra eine Erweiterung für die Multiwii-soft getippt, mit der sich alle Parameter per LCD einstellen lassen. Muß jetzt gestehen, daß ich hier noch nicht so weit gelesen habe, um zu wissen, ob das bei Deiner Adaption auch schon geht
Kannst Dir ja mal ansehen, denn falls es nicht geht, willst Du da bestimmt ja nicht nachstehen
Gruß Peer
fleisch hast des ja schon gesehen, sonst: Drüben im RCG hat der Shikra eine Erweiterung für die Multiwii-soft getippt, mit der sich alle Parameter per LCD einstellen lassen. Muß jetzt gestehen, daß ich hier noch nicht so weit gelesen habe, um zu wissen, ob das bei Deiner Adaption auch schon geht

Code: Alles auswählen
void configurationLoop() {
uint8_t chan;
uint8_t param;
uint8_t paramActive;
uint8_t val;
uint8_t valActive;
static char line1[17];
static char line2[17];
uint8_t LCD=1;
uint8_t posLCD = 130;
uint8_t refreshLCD = 1;
initLCD();
param = 1;
while (LCD == 1) {
if (refreshLCD == 1) {
strcpy(line2," ");
if (param == 1) {
strcpy(line1,"ROLL *P* ");
line2[5] = '0'+P8[ROLL]/100;line2[6] = '0'+P8[ROLL]/10-(P8[ROLL]/100)*10;line2[7] = '.';line2[8] = '0'+P8[ROLL]-(P8[ROLL]/10)*10;
}
if (param == 2) {
strcpy(line1,"ROLL *I* ");
line2[5] = '0';line2[6] = '.';line2[7] = '0'+I8[ROLL]/100;line2[8] = '0'+I8[ROLL]/10-(I8[ROLL]/100)*10;line2[9] = '0'+I8[ROLL]-(I8[ROLL]/10)*10;
}
if (param == 3) {
strcpy(line1,"ROLL *D* ");
line2[5] = '-';line2[6] = '0'+D8[ROLL]/100;line2[7] = '0'+D8[ROLL]/10;line2[8] = '0'+D8[ROLL]-(D8[ROLL]/10)*10;
}
if (param == 4) {
strcpy(line1,"PITCH *P* ");
line2[5] = '0'+P8[PITCH]/100;line2[6] = '0'+P8[PITCH]/10-(P8[PITCH]/100)*10;line2[7] = '.';line2[8] = '0'+P8[PITCH]-(P8[PITCH]/10)*10;
}
if (param == 5) {
strcpy(line1,"PITCH *I* ");
line2[5] = '0';line2[6] = '.';line2[7] = '0'+I8[PITCH]/100;line2[8] = '0'+I8[PITCH]/10-(I8[PITCH]/100)*10;line2[9] = '0'+I8[PITCH]-(I8[PITCH]/10)*10;
}
if (param == 6) {
strcpy(line1,"PITCH *D* ");
line2[5] = '-';line2[6] = '0'+D8[PITCH]/100;line2[7] = '0'+D8[PITCH]/10;line2[8] = '0'+D8[PITCH]-(D8[PITCH]/10)*10;
}
if (param == 7) {
strcpy(line1,"YAW *P* ");
line2[5] = '0'+P8[YAW]/100;line2[6] = '0'+P8[YAW]/10-(P8[YAW]/100)*10;line2[7] = '.';line2[8] = '0'+P8[YAW]-(P8[YAW]/10)*10;
}
if (param == 8) {
strcpy(line1,"YAW *I* ");
line2[5] = '0';line2[6] = '.';line2[7] = '0'+I8[YAW]/100;line2[8] = '0'+I8[YAW]/10-(I8[YAW]/100)*10;line2[9] = '0'+I8[YAW]-(I8[YAW]/10)*10;
}
if (param == 9) {
strcpy(line1,"YAW *D* ");
line2[5] = '-';line2[6] = '0'+D8[YAW]/100;line2[7] = '0'+D8[YAW]/10;line2[8] = '0'+D8[YAW]-(D8[YAW]/10)*10;
}
if (param == 10) {
strcpy(line1,"RC RATE ");
line2[5] = '0'+rcRate8/100;line2[6] = '.';line2[7] = '0'+rcRate8/10-(rcRate8/100)*10;line2[8] = '0'+rcRate8-(rcRate8/10)*10;
}
if (param == 11) {
strcpy(line1,"RC EXPO ");
line2[5] = '0'+rcExpo8/100;line2[6] = '.';line2[7] = '0'+rcExpo8/10-(rcExpo8/100)*10;line2[8] = '0'+rcExpo8-(rcExpo8/10)*10;
}
if (param == 12) {
strcpy(line1,"AUTOLEVEL ");
line2[5] = '0'+accStrength8/100;line2[6] = '0'+accStrength8/10-(accStrength8/100)*10;line2[7] = '.';line2[8] = '0'+accStrength8-(accStrength8/10)*10;
}
if (param == 13) {
strcpy(line1,"PITCH/ROLL RATE ");
line2[5] = '0'+rollPitchRate/100;line2[6] = '.';line2[7] = '0'+rollPitchRate/10-(rollPitchRate/100)*10;line2[8] = '0'+rollPitchRate-(rollPitchRate/10)*10;
}
if (param == 14) {
strcpy(line1,"YAW RATE ");
line2[5] = '0'+yawRate/100;line2[6] = '.';line2[7] = '0'+yawRate/10-(yawRate/100)*10;line2[8] = '0'+yawRate-(yawRate/10)*10;
}
if (param == 15) {
strcpy(line1,"THROTTLE PID ");
line2[5] = '0'+dynThrPID/100;line2[6] = '.';line2[7] = '0'+dynThrPID/10-(dynThrPID/100)*10;line2[8] = '0'+dynThrPID-(dynThrPID/10)*10;
}
posLCD = 192;
LCDprint(0xFE);LCDprint(128);LCDprintChar(line1); //refresh line 1 of LCD
LCDprint(0xFE);LCDprint(192);LCDprintChar(line2); //refresh line 2 of LCD
LCDprint(0xFE);LCDprint(posLCD); //cursor position
refreshLCD=0;
}
for (chan = ROLL; chan < 4; chan++) rcData[chan] = readRawRC(chan);
//switch config param with pitch
if (rcData[PITCH] < MINCHECK && paramActive == 0) {
paramActive = 1;
refreshLCD=1;
param++; if (param>15) param=15;
if (param < 16) {blinkLED(10,20,1);}
}
if (rcData[PITCH] > MAXCHECK && paramActive == 0) {
paramActive = 1;
refreshLCD=1;
param--; if (param<1) param=1;
if (param < 16) {blinkLED(10,20,1);}
}
if (rcData[PITCH] < MAXCHECK && rcData[PITCH] > MINCHECK) paramActive = 0;
//+ or - param with low and high roll
if (rcData[ROLL] < MINCHECK && valActive == 0) {
valActive = 1;
refreshLCD=1;
//set val -
if (param == 1 && (P8[ROLL]>0)) {P8[ROLL] -= 1 ;}
if (param == 2 && (I8[ROLL]>4)) {I8[ROLL] -= 5 ;}
if (param == 3) {D8[ROLL] += 1 ;}
if (param == 4 && (P8[PITCH]>0)) {P8[PITCH] -= 1 ;}
if (param == 5 && (I8[PITCH]>4)) {I8[PITCH] -= 5 ;}
if (param == 6) {D8[PITCH] += 1 ;}
if (param == 7 && (P8[YAW]>0)) {P8[YAW] -= 1 ;}
if (param == 8 && (I8[YAW]>4)) {I8[YAW] -= 5 ;}
if (param == 9) {D8[YAW] += 1 ;}
if (param == 10 && (rcRate8>1)) {rcRate8 -= 2 ;}
if (param == 11 && (rcExpo8>1)) {rcExpo8 -= 2 ;}
if (param == 12 && (accStrength8>1)) {accStrength8 -= 2 ;}
if (param == 13 && (rollPitchRate>1)) {rollPitchRate -= 2 ;}
if (param == 14 && (yawRate>1)) {yawRate -= 2 ;}
if (param == 15 && (dynThrPID>1)) {dynThrPID -= 2 ;}
blinkLED(10,30,1);
}
if (rcData[ROLL] > MAXCHECK && valActive == 0) {
valActive = 1;
refreshLCD=1;
//set val +
if (param == 1) {P8[ROLL] += 1 ;}
if (param == 2) {I8[ROLL] += 5 ;}
if (param == 3 && (D8[ROLL]>0)) {D8[ROLL] -= 1 ;}
if (param == 4) {P8[PITCH] += 1 ;}
if (param == 5) {I8[PITCH] += 5 ;}
if (param == 6 && (D8[PITCH]>0)) {D8[PITCH] -= 1 ;}
if (param == 7) {P8[YAW] += 1 ;}
if (param == 8) {I8[YAW] += 5 ;}
if (param == 9 && (D8[YAW]>0)) {D8[YAW] -= 1 ;}
if (param == 10) {rcRate8 += 2 ;}
if (param == 11) {rcExpo8 += 2 ;}
if (param == 12) {accStrength8 += 2 ;}
if (param == 13) {rollPitchRate += 2 ;}
if (param == 14) {yawRate += 2 ;}
if (param == 15) {dynThrPID += 2 ;}
blinkLED(10,30,1);
}
if (rcData[ROLL] < MAXCHECK && rcData[ROLL] > MINCHECK) valActive = 0;
if (rcData[YAW] < MINCHECK && rcData[PITCH] > MAXCHECK) LCD = 0;
}
writeParams();
blinkLED(20,30,1);
Serial.begin(SERIAL_COM_SPEED);
}

Gruß Peer
#382 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Dann solltest du das auf jedenfall mal tun.JollyJoker hat geschrieben:Muß jetzt gestehen, daß ich hier noch nicht so weit gelesen habe, um zu wissen, ob das bei Deiner Adaption auch schon geht

http://wiki.rchelifan.org/index.php/Mul ... LCD_Config
MFG
speedy
#383 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Moin Peer,
danke für den Tip, ich lese im rcg Thread nicht wirklich aufmerksam mit, diese Code-Erweiterung ist mir neu. Mit dem LCD_Config Programm geht das gleiche schon von Anfang an, plus die Anzeige der Empfängereingänge und Reglerausgänge, der Funktionen zur Profilverwaltung und dem Loggen. Ausserdem braucht man beim LCD_Config keine Angst davor haben, dass man unbeabsichtigt ohne angeschlossenes Display in den Einstellmodus wechselt und sich dann die Parameter zerschießt.
danke für den Tip, ich lese im rcg Thread nicht wirklich aufmerksam mit, diese Code-Erweiterung ist mir neu. Mit dem LCD_Config Programm geht das gleiche schon von Anfang an, plus die Anzeige der Empfängereingänge und Reglerausgänge, der Funktionen zur Profilverwaltung und dem Loggen. Ausserdem braucht man beim LCD_Config keine Angst davor haben, dass man unbeabsichtigt ohne angeschlossenes Display in den Einstellmodus wechselt und sich dann die Parameter zerschießt.
Ciao, Arnd
- JollyJoker
- Beiträge: 139
- Registriert: 31.01.2011 22:21:57
- Wohnort: MS
#384 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Die Erweiterung ist noch nicht offiziell von Alex "abgesegnet" bzw. übernommen.
Ich lese hier mal von Anfang an durch.
Wer opfert sich denn und tippt mal so ein LCD-HowTo zusammen?
Möglichkeiten mit dem "ochinool" LCD + Funke, und dann diese feine Gerätchen hier.
Dazu braucht es ja wohl schon mehr als nur das LCD und ein dreiaderiges Kabel? Calli hat da ja schon mal etwas für Klärung gesorgt. Ich les erst mal weiter - vielleicht findet sich ja wer der das mal in einem Post zusammenfasst
Gruß Peer
Ich lese hier mal von Anfang an durch.
Wer opfert sich denn und tippt mal so ein LCD-HowTo zusammen?
Möglichkeiten mit dem "ochinool" LCD + Funke, und dann diese feine Gerätchen hier.
Dazu braucht es ja wohl schon mehr als nur das LCD und ein dreiaderiges Kabel? Calli hat da ja schon mal etwas für Klärung gesorgt. Ich les erst mal weiter - vielleicht findet sich ja wer der das mal in einem Post zusammenfasst

Gruß Peer
#385 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Wäre es nicht mal an der Zeit das ein informeller Mitarbeiter in RCG Yaccos LCD_Config "offiziell" vorstellt? 
C

C
Status: Flugtagebuch (grün=ok, orange=in Arbeit, rot=groundet)
Setup: Humingbird, Trex500ESP/FBL, WiiCopter, PZ Bf109, Easy Glider, Nuris, MCPx, MQX, Sim, Evo9 M-Link, DMFV
Setup: Humingbird, Trex500ESP/FBL, WiiCopter, PZ Bf109, Easy Glider, Nuris, MCPx, MQX, Sim, Evo9 M-Link, DMFV
#386 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Peer... ja, das LCD_Conf läuft auf einem zweiten Arduino-Board, nur mit einem Display und ein paar Kabeln klappts nicht.
Im Wiki steht schon viel drin, was die Funktionalität und die Konfigurationsmöglichkeiten des Programms angeht. Wenn du mit HowTo eine Art Bedienungsanleitung meinst... jemand, der die Innereien der MWC Software kennt und weiß, welche Parameter es darin gibt und wie die sich auf das Flugverhalten auswirken, kommt denke ich mit dem LCD_Config sofort zurecht. Alle anderen sollten sich das Geld für den MWC sparen, ohne dieses Hintergrundwissen wird das im augenblicklichen Projektzustand nichts werden.
Calli, nur zu, am besten sollte das jemand sein, dessen Name im Source Code erwähnt wird *hihihi*. Ich fürchte nur, dass das in dem Thread wieder einfach viel zu schnell untergeht, ein eigener Thread wäre vielleicht besser).
Ich denke, dass es nach dem unmittelbar bevorstehenden 2.0 Release (seid gespannt
) nicht mehr viele Änderungen am LCD_Config geben wird, mal abgesehen von Ergänzungen bei einer neuen Version der MWC Software.
Im Wiki steht schon viel drin, was die Funktionalität und die Konfigurationsmöglichkeiten des Programms angeht. Wenn du mit HowTo eine Art Bedienungsanleitung meinst... jemand, der die Innereien der MWC Software kennt und weiß, welche Parameter es darin gibt und wie die sich auf das Flugverhalten auswirken, kommt denke ich mit dem LCD_Config sofort zurecht. Alle anderen sollten sich das Geld für den MWC sparen, ohne dieses Hintergrundwissen wird das im augenblicklichen Projektzustand nichts werden.

Calli, nur zu, am besten sollte das jemand sein, dessen Name im Source Code erwähnt wird *hihihi*. Ich fürchte nur, dass das in dem Thread wieder einfach viel zu schnell untergeht, ein eigener Thread wäre vielleicht besser).
Ich denke, dass es nach dem unmittelbar bevorstehenden 2.0 Release (seid gespannt

Ciao, Arnd
#387 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Na - dann laß dich nicht abhalten.calli hat geschrieben:Wäre es nicht mal an der Zeit das ein informeller Mitarbeiter in RCG Yaccos LCD_Config "offiziell" vorstellt?
C

Und mach nen neuen Thread dazu auf, damit der Link nicht wie in dem einen Post gleich wieder untergeht.

Irgendwo in dem FreeFlight IMU Thread stand zumindestens Anfang bis Mitte Januar (keine Ahnung wann/wo genau - hab mir den in nem Marathon reingezogen und mein Gehirn war danach Matsch bei den 70 Seiten), daß es doch auch langsam mal Zeit wäre was zum Konfigurieren zu entwickeln. Gab zumindestens bis dahin wohl noch nichts sinnvolles dafür.
MFG
speedy
- JollyJoker
- Beiträge: 139
- Registriert: 31.01.2011 22:21:57
- Wohnort: MS
#388 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
So...
hier bin ich jetzt auch durch, will haben. Welches Board "muß" ich denn jetzt ordern?
Das mitte vielen Zeilen oder so´n ollen Zweizeiler?
Arnd, Du planst doch bestimmt optische Spielereien mit dem großen Display?
Gruß Peer
hier bin ich jetzt auch durch, will haben. Welches Board "muß" ich denn jetzt ordern?
Das mitte vielen Zeilen oder so´n ollen Zweizeiler?
Arnd, Du planst doch bestimmt optische Spielereien mit dem großen Display?
Gruß Peer
#389 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Dem Schweigen nach zu urteilen läuft die 2.0beta sowas von geschmeidig, dass es Zeit für ein Release wird. Leider hat die Release nicht mehr wirklich viel mit der beta zu tun, sorry.
Aber durch das Einbauen der LogView-Ausgabe mußte wieder mal an anderen Stellen heftigst optimiert werden, immerhin ist es damit möglich geworden, alle Optionen noch parallel nutzen zu können (das Executable ist um die 28.450 Bytes groß und damit etwa 200 Bytes kleiner als die experimentell gefundene Obergrenze zum Flashen via Bootloader).
Features:
* vollständige Unterstützung der MWC Version 1.6.
* da in der 1.6er Version der Bug mit den vertauschten Motoren in der HEX und Y6 Konfiguration behoben wurde, hab ich einen Workaround eingebaut, der Anzeige der Motoren in den vorangegangenen Versionen vertauscht. Wenn ihr das schon softwareseitig gemacht hattet, Pech gehabt, dann stimmt die Anzeige jetzt nicht mehr (sollte aber leicht im LCD_Config Code zu ändern sein, ihr schafft das schon).
* weiterhin fiel mir auf, dass die Buttons UP und DOWN nicht konsequent benutzt wurden, manchmal wurden Werte mit UP hochgezählt, manchmal mit DOWN. Das wurde harmonisiert.
* In der Graphicausgabe werden ungültige Werte jetzt deutlicher dargestellt.
* die WAIT_FOR_INIT Geschichte wurde komplett ausgebaut, stattdessen startet das Programm jetzt in einem Zustand, in der noch keine ständigen Abfragen über die serielle Schnittstelle laufen. (Hoffentlich hilfts...)
* Statt den vier oder fünf Eingabetasten kann das ganze auch über einen analogen Joystick gesteuert werden. (Klappt mit meinem Joystick nicht wirklich gut, probiert es halt mal aus, bin für Verbesserungen aufgeschlossen.) Ansonsten ist der Code als "experimentell" markiert, ist also nur was für Leute, die wissen, was sie tun.
* Ausgabe im LogView Format. Die von der MWC Software empfangenen Daten können ab sofort auch mit LogView angezeigt werden. Das binäre Format funktioniert natürlich auch noch. Um beide Formate auseinanderhalten zu können, haben binäre Logdateien die Endung '.log' und Filenamen von 000 bis 499, LogView-Dateien haben die Endung '.lvw' und Filenamen von 500 bis 999. Das Importieren nach LogView ist etwas knifflig, ich versuch das mal kurz und knapp darzustellen. (Ansonsten steht das genaue Procedere auf http://www.logview.info).
Vorausetzungen: ihr habt die neueste Version von LogView installiert. Im angehängten Zip-File befinden sich neben dem Sketch eine LogView Gerätedatei (.ini) und ein Jpeg, beides muß in den Ordner
<user name>/<application data>/LogView/Geräte/OpenFormat
kopiert werden. Nach dem Starten von LogView taucht dann in der Geräteauswahl ein Gerät namens LCD_CONFIG auf, das wählt ihr aus. Danach werden die Logfiles mit "Gerätedatei importieren" eingeladen und angezeigt, voila.
Ich hab die Daten in drei Logview Kanäle aufgeteilt, da es sonst zu unübersichtlich wurde. Kanal 1 enthält die Sensordaten - Gyro, Acc, Altitude, Heading - und die beiden Neigungswinkel. Im zweiten Kanal sind die PWM Signale an die Servos und Regler zu finden, und im dritten dann die PWM Signale, die vom Empfänger kommen.
Außerdem gibt es zwei States: AcroMode und LevelMode (also ohne Lageregelung und mit).
Wenn jemand weiß, wie man in LogView mehreren Meßwerten die gleiche Achse zuweist, bitte hier posten. (Hinweis: über AxisGroup hab ich das nicht hinbekommen).
Also dann kommt hier Version 2.0... und hoffentlich gibt es diesmal mehr Feedback als auf die beta. Ich seh ja nur an den Downloads, daß hier noch wirklich mitgelesen wird.
EDIT: LogView-Verzeichnis angepaßt
2. EDIT: Bugfix angehängt

Features:
* vollständige Unterstützung der MWC Version 1.6.
* da in der 1.6er Version der Bug mit den vertauschten Motoren in der HEX und Y6 Konfiguration behoben wurde, hab ich einen Workaround eingebaut, der Anzeige der Motoren in den vorangegangenen Versionen vertauscht. Wenn ihr das schon softwareseitig gemacht hattet, Pech gehabt, dann stimmt die Anzeige jetzt nicht mehr (sollte aber leicht im LCD_Config Code zu ändern sein, ihr schafft das schon).
* weiterhin fiel mir auf, dass die Buttons UP und DOWN nicht konsequent benutzt wurden, manchmal wurden Werte mit UP hochgezählt, manchmal mit DOWN. Das wurde harmonisiert.
* In der Graphicausgabe werden ungültige Werte jetzt deutlicher dargestellt.
* die WAIT_FOR_INIT Geschichte wurde komplett ausgebaut, stattdessen startet das Programm jetzt in einem Zustand, in der noch keine ständigen Abfragen über die serielle Schnittstelle laufen. (Hoffentlich hilfts...)
* Statt den vier oder fünf Eingabetasten kann das ganze auch über einen analogen Joystick gesteuert werden. (Klappt mit meinem Joystick nicht wirklich gut, probiert es halt mal aus, bin für Verbesserungen aufgeschlossen.) Ansonsten ist der Code als "experimentell" markiert, ist also nur was für Leute, die wissen, was sie tun.
* Ausgabe im LogView Format. Die von der MWC Software empfangenen Daten können ab sofort auch mit LogView angezeigt werden. Das binäre Format funktioniert natürlich auch noch. Um beide Formate auseinanderhalten zu können, haben binäre Logdateien die Endung '.log' und Filenamen von 000 bis 499, LogView-Dateien haben die Endung '.lvw' und Filenamen von 500 bis 999. Das Importieren nach LogView ist etwas knifflig, ich versuch das mal kurz und knapp darzustellen. (Ansonsten steht das genaue Procedere auf http://www.logview.info).
Vorausetzungen: ihr habt die neueste Version von LogView installiert. Im angehängten Zip-File befinden sich neben dem Sketch eine LogView Gerätedatei (.ini) und ein Jpeg, beides muß in den Ordner
<user name>/<application data>/LogView/Geräte/OpenFormat
kopiert werden. Nach dem Starten von LogView taucht dann in der Geräteauswahl ein Gerät namens LCD_CONFIG auf, das wählt ihr aus. Danach werden die Logfiles mit "Gerätedatei importieren" eingeladen und angezeigt, voila.
Ich hab die Daten in drei Logview Kanäle aufgeteilt, da es sonst zu unübersichtlich wurde. Kanal 1 enthält die Sensordaten - Gyro, Acc, Altitude, Heading - und die beiden Neigungswinkel. Im zweiten Kanal sind die PWM Signale an die Servos und Regler zu finden, und im dritten dann die PWM Signale, die vom Empfänger kommen.
Außerdem gibt es zwei States: AcroMode und LevelMode (also ohne Lageregelung und mit).
Wenn jemand weiß, wie man in LogView mehreren Meßwerten die gleiche Achse zuweist, bitte hier posten. (Hinweis: über AxisGroup hab ich das nicht hinbekommen).
Also dann kommt hier Version 2.0... und hoffentlich gibt es diesmal mehr Feedback als auf die beta. Ich seh ja nur an den Downloads, daß hier noch wirklich mitgelesen wird.

EDIT: LogView-Verzeichnis angepaßt
2. EDIT: Bugfix angehängt
- Dateianhänge
-
- LCD_Config_201.zip
- (75.94 KiB) 103-mal heruntergeladen
Zuletzt geändert von yacco am 06.02.2011 19:29:42, insgesamt 2-mal geändert.
Ciao, Arnd
#390 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino
Peer, nimm erstmal so ein 16x2 Ding, ich weiß noch nicht, ob und wann ich das andere einbaue. Welches Board das richtige ist, hängt bisschen davon ab, wie du das ganze konfigurieren und verpacken willst. Für eigene Platinen (Lochraster oder die von Uwe) dürfte ein Pro Mini mit 328 und 16 MHz am besten passen, wenn du (wie ich im Moment noch) vorhast, einfach nur ein paar Shields übereinander zu stecken, nimm ein Uno/Duemilanove oder Mega-Board.
Zuletzt geändert von yacco am 06.02.2011 16:24:14, insgesamt 1-mal geändert.
Ciao, Arnd