MultiWiiKopter-Konfigurationsprogramm für Arduino

Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#646 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

Moin,

alles klar, dann kann ich den Taster auch weglassen. Zwei Taster mit gleicher Funktion im Abstand von weniger als 1cm ist überflüssige Redundanz.

So, ich komme schrittweise vorwärts und kann kleine Erfolge verbuchen. Ich kommentiere hier auch mal Deine PN, damit das alles wieder im Zusammenhang steht. Möglicherweise hilft es ja auch anderen.
yacco hat geschrieben:
r0sewhite hat geschrieben:Kann es an KEY_PIN liegen, weil er auf A0 die kaskadierenden Buttons erwartet, wo bei mir Vert liegt? Das würde erklären, warum ich ausschließlich mit vertikalen Bewegungen Veränderungen bewirken kann.
Pin 0 und A0 sind der gleiche Pin, auf A0 werden daher immer noch die Tastatureingaben erwartet (wolltest du nicht
die Zeile

Code: Alles auswählen

rawKey = analogRead(KEY_PIN);   // read the value from the sensor
ersetzen? )

Alternativ kannst du auch auf Version 2.8 upgraden und #define KEY_PIN auskommentieren.
Wollte ich das? Davon wusste ich nichts. Gut, ich habe ein paar Seiten zurück geblättert und gefunden, was Du meinst. Ebenso die V2.8, die ja im Wiki noch nicht verlinkt ist. Das Auskommentieren von #define KEY_PIN führte allerdings auch in der V2.8 zu einem Fehler. Also bin ich die Schritte durchgegangen und habe erst mal den Code von Holger übernommen:

Code: Alles auswählen

#ifdef HWKEYS
  if      (digitalRead(HW_RIGHT) ==0) {result = KEY_RIGHT; }
  else if (digitalRead(HW_UP)    ==0) {result = KEY_UP;    }
  else if (digitalRead(HW_DOWN)  ==0) {result = KEY_DOWN;  }
  else if (digitalRead(HW_LEFT)  ==0) {result = KEY_LEFT;  }
  else if (digitalRead(HW_SELECT)==0) {result = KEY_SELECT;}
#else
  uint16_t input = analogRead(0);   // read the value from the sensor  
  for (uint8_t k = 0; result < 0 && k < NUM_KEYS; k++) {
    if (input < adc_key_val[k]) {
      result = k;
    }
  }
#endif
Hier wurde beim Kompilieren die Schleife (for (uint8_t k = 0; ...) angemeckert, also habe ich auf Deinen darauffolgenden Rat

Code: Alles auswählen

uint16_t input = analogRead(KEY_PIN); 
gegen

Code: Alles auswählen

uint16_t input = 1023;
ersetzt.

Brachte nicht den gewünschten Erfolg. Danach war ich etwas radikaler und habe einfach den kompletten Bereich

Code: Alles auswählen

#else
  uint16_t input = analogRead(0);   // read the value from the sensor  
  for (uint8_t k = 0; result < 0 && k < NUM_KEYS; k++) {
    if (input < adc_key_val[k]) {
      result = k;
    }
  }
rausgeschmissen, da ich ja eh keine kaskadierenden Buttons abfragen muss. Das war's: Kompilieren erfolgreich und mein Joystick geht. :mrgreen:

Komischerweise zeigt mir CHECK_INPUT zwar die Joystickbewegungen an, nicht aber den Select-Taster. KEY steht beharrlich auf 0000, funktioniert aber trotzdem. Ich kann in den Menüs herumblättern und mit Select auswählen. Egal, Wenn CHECK_INPUT nicht will, ist das eben kein Drama.

Allerdings kriege ich nun immer noch ständig einen Timeout, wenn ich das LCD an ein MWC-Board anschließe. Möglicherweise liegt es einfach daran, dass ich zuvor mit dem verrücktspielenden Joystick einige Parameter ungewollte verstellt habe, da ich einige Male in die Settings gerutscht bin. Augenblicklich steht da eine Delay Time von 80 und eine Baudrate von 19200. Bei der Baudrate tippe ich einfach mal auf 115200, doch welche Delay Time ist Standard und wo finde ich sie notfalls im Sketch? Mit dem Jostick kann ich den Wert nämlich nur in Schritten von 50ms ändern.

EDIT: Nur zur Absicherung: RX und TX müsen zwischen den Arduinos logischerweise gekreuzt sein, oder?
Viele Grüße
Tilman

www.microcopters.de
Benutzeravatar
Hifly
Beiträge: 826
Registriert: 10.09.2009 10:39:23

#647 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von Hifly »

r0sewhite hat geschrieben: Also bin ich die Schritte durchgegangen und habe erst mal den Code von Holger übernommen:

Code: Alles auswählen
#ifdef HWKEYS
if (digitalRead(HW_RIGHT) ==0) {result = KEY_RIGHT; }
else if (digitalRead(HW_UP) ==0) {result = KEY_UP; }
else if (digitalRead(HW_DOWN) ==0) {result = KEY_DOWN; }
else if (digitalRead(HW_LEFT) ==0) {result = KEY_LEFT; }
else if (digitalRead(HW_SELECT)==0) {result = KEY_SELECT;}
#else
uint16_t input = analogRead(0); // read the value from the sensor
for (uint8_t k = 0; result < 0 && k < NUM_KEYS; k++) {
if (input < adc_key_val[k]) {
result = k;
}
}
#endif
Kurz zur Klarstellung für alle, damit es keine Mißverständnisse gibt: dieser Code muss auskommentiert werden, sprich vor der ersten Zeile /* und hinter der letzten Zeile */ einfügen. Wenn dann vor #define HWKEYS weiter oben // steht (d.h. auch auskommentiert ist), dann hat das den selben
Effekt, wie es Tilmann gemacht und der zweite Teil einfach gelöscht wird.
Ich habe mittlerweile meine Box mit NC-Joystick entsorgt, da ich nicht ganz so zufrieden war mit den der REaktion auf die Eingaben (und ich auch noch ausversehen draufgetreten bin und der Joystick auseinander gebrochen ist). Meine neue Box sieht nun so aus: diskret aufgebaut mit atMega328, Joystick-Schalter vom großen C und Joystickknüppel ein 4mm Goldie 8) .
Dateianhänge
P1010206.JPG
P1010206.JPG (317.15 KiB) 799 mal betrachtet
Leider etwas verfräst, kommt aber noch eine Blende drauf :-)
Leider etwas verfräst, kommt aber noch eine Blende drauf :-)
P1010205.JPG (229.13 KiB) 799 mal betrachtet
Gruß Holger

HK 450TT PRO - T-Rex 600ESP - Titan X50E - Hurricane 550 (i. R.) - WiiCopter: 2 x Quad+ (im Wiederaufbau)
Futaba FF7


What goes up must come down
Benutzeravatar
Hifly
Beiträge: 826
Registriert: 10.09.2009 10:39:23

#648 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von Hifly »

PS: Danke an Arnd und allen die dieses super Tool entwickelt haben! :thumbright: Eigentlich geht es gar nicht ohne die Box!!!! 8)
Gruß Holger

HK 450TT PRO - T-Rex 600ESP - Titan X50E - Hurricane 550 (i. R.) - WiiCopter: 2 x Quad+ (im Wiederaufbau)
Futaba FF7


What goes up must come down
Benutzeravatar
Hifly
Beiträge: 826
Registriert: 10.09.2009 10:39:23

#649 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von Hifly »

...und wenn ich schon dabei bin:
r0sewhite hat geschrieben:oder die Kupferschicht war nicht absolut rein
Habe meine Platinen auch mit dem Verfahren gemacht. Absolut wichtig ist es, dass die Kupferfläche total sauber ist! Lange mit Scheuermilch darauf rumschruppen, oder für noch bessere Ergebnis den Seno PoliBloc z.B. auch beim großen C. Dann geht es einigermaßen, einige Linien musste ich eigentlich immer noch mal mit einem dünnen Edding nachzeichnen.
Gruß Holger

HK 450TT PRO - T-Rex 600ESP - Titan X50E - Hurricane 550 (i. R.) - WiiCopter: 2 x Quad+ (im Wiederaufbau)
Futaba FF7


What goes up must come down
Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#650 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

Hallo Holger,

mein Problem lag zunächst einfach am Mangel an Aceton. Mit Aceton kriegt man die Platine ebenfalls blitzeblank und dann klappt es auch mit der Direkt-Toner-Methode besser. Allerdings bin ich ganz froh um den ersten Fehlversuch, da ich nun doch noch an dem Platinenlayout bastel. Ich will den überflüssigen Reset-Taster raus haben, doch hat er noch eine angenehme Nebenrolle als Brücke. Nun muss ich schauen, wie ich die Leiterbahnen ohne Brücke verlegt kriege, da ich Drahtbrücken weitgehend vermeiden will. Das sieht so unprofessionell aus. :mrgreen:
Viele Grüße
Tilman

www.microcopters.de
Benutzeravatar
Hifly
Beiträge: 826
Registriert: 10.09.2009 10:39:23

#651 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von Hifly »

r0sewhite hat geschrieben:da ich Drahtbrücken weitgehend vermeiden will. Das sieht so unprofessionell aus. :mrgreen:
Kenne ich, kann man Stunden und Nächte mit verbringen.... :drunken: Ich habe es bei meinem Design vermeiden können, da ich den Doppeldecker gebaut habe mit dem LCD. Spart Platz und die eine Drahtbrücke, die vorher immer übriggeblieben ist, konnte so auch vermieden werden. Außerdem muss ich bei einem LCD mit anderer Belegung nicht das ganze Layout ändern, sondern nur die obere Platine.
Gruß Holger

HK 450TT PRO - T-Rex 600ESP - Titan X50E - Hurricane 550 (i. R.) - WiiCopter: 2 x Quad+ (im Wiederaufbau)
Futaba FF7


What goes up must come down
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#652 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von yacco »

r0sewhite hat geschrieben:anach war ich etwas radikaler und habe einfach den kompletten Bereich

Code: Alles auswählen
#else
uint16_t input = analogRead(0); // read the value from the sensor
for (uint8_t k = 0; result < 0 && k < NUM_KEYS; k++) {
if (input < adc_key_val[k]) {
result = k;
}
}


rausgeschmissen, da ich ja eh keine kaskadierenden Buttons abfragen muss. Das war's: Kompilieren erfolgreich und mein Joystick geht. :mrgreen:
Hups, hatte vergessen, dass ich meine Arbeitsversion schon etwas gepatcht hatte und dass das nicht mehr die Original-V2.8 ist. Aber genau das, was du getan hast, sollte auch mit dem Auskommentieren von KEY_PIN erreicht werden.
r0sewhite hat geschrieben: Komischerweise zeigt mir CHECK_INPUT zwar die Joystickbewegungen an, nicht aber den Select-Taster. KEY steht beharrlich auf 0000, funktioniert aber trotzdem. Ich kann in den Menüs herumblättern und mit Select auswählen. Egal, Wenn CHECK_INPUT nicht will, ist das eben kein Drama.
Das soll so sein. Wenn du keinen KEY_PIN definiert hast, zeigt KEY auch nix an.

Die Delay-Time spielt keine große Geige, das ist nur die Rate, mit der neue Datensätze vom MWC angefordert werden. Wenn die Baudrate nicht paßt, kommt allerdings keine serielle Kommunikation zustande. 115200 ist die richtige Wahl, wenn du im MWC nichts geändert hast.

RX und TX werden gekreuzt, korrekt. (Ich sollte das in meine Signatur einfügen, das spart Tipparbeit). :)

Freut mich, wenn's gefällt, Hifly. Ich hab übrigens einen Dreifachdecker *angeb*
Ciao, Arnd
Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#653 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

yacco hat geschrieben:Hups, hatte vergessen, dass ich meine Arbeitsversion schon etwas gepatcht hatte und dass das nicht mehr die Original-V2.8 ist. Aber genau das, was du getan hast, sollte auch mit dem Auskommentieren von KEY_PIN erreicht werden.
Nö, wenn ich einfach KEY_PIN auskommentiere, gibt's Mecker beim Kompilieren. Aber egal, geht ja so.

Nun hänge ich nur noch an der Baudrate. Ich kann sie so oft, wie ich will, auf 115200 stellen, sie steht jedes Mal nach Trennen der Stromversorgung oder nach einem Reset wieder auf 57600. Daher lande ich auch immer wieder im Timeout.

Könnte es das gleiche Problem sein, was Nico mit seinen "vergessenen" MultiWii-Einstellungen hatte? Kann ich irgendwie über den Sketch dem Arduino nochmal die 115200 fest einnageln?
Viele Grüße
Tilman

www.microcopters.de
Benutzeravatar
Hifly
Beiträge: 826
Registriert: 10.09.2009 10:39:23

#654 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von Hifly »

yacco hat geschrieben:Freut mich, wenn's gefällt, Hifly. Ich hab übrigens einen Dreifachdecker *angeb*
Neid! Da kann ich natürlich nicht mithalten! 8) Da komm ich aber vielleicht auch noch hin oder zum Vierfachdecker! Hatte eigentlich geplant noch mit 433MHz-Funkmodul auszurüsten, anstatt mit Kabel. Aber der Winter ist(zum Glück) vorbei und es waren einfach zu viele Projekte. Mal sehen ob ich mal noch dazu komme.
Bin bisher ganz gut ohne die weiteren Features, wie Logging ausgekommen. Konnte bisher immer auch so feststellen, warum der Quad vom Himmel fiel... :mrgreen:
Gruß Holger

HK 450TT PRO - T-Rex 600ESP - Titan X50E - Hurricane 550 (i. R.) - WiiCopter: 2 x Quad+ (im Wiederaufbau)
Futaba FF7


What goes up must come down
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#655 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von yacco »

Update... v2.9 beta

Ich hab versucht, die Patches und Vorschläge der letzten Beiträge in das Sketch einzubauen. Bugs im engeren Sinn wurden keine behoben, sondern nur ein paar Fallgruben zugeschüttet, in die man leicht beim Konfigurieren fallen konnte.

* Die kaskadierten Buttons können durch Auskommentieren der Zeile #define KEY_PIN abgeschaltet werden.
* Der Default bei der Versionseingabe ist jetzt immer die letzte Version.
* Die Baudrate kann jetzt fest eingestellt werden (Konstante DEFAULT_BAUDRATE bzw. USE_DEFAULT_BAUDRATE).

Bitte testen, wenn es keine Beschwerden gibt, wird es demnächst released.

EDIT: Anhang gelöscht, nehmt die 2.9 final.
Zuletzt geändert von yacco am 12.05.2011 23:20:43, insgesamt 1-mal geändert.
Ciao, Arnd
Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#656 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

YEAH! Arnd, Du bist mein Held des Tages. Es geht. :mrgreen:
Viele Grüße
Tilman

www.microcopters.de
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#657 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von yacco »

Würde mich aber interessieren, warum das mit der Baudrate nicht geklappt hat... und wieso ausgerechnet immer 57600 angezeigt wurde...
Ciao, Arnd
Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#658 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

Keine Ahnung. Nico hatte in dem anderen Thread ja auch die Probleme mit einem "vergesslichen" MWC, was auf eine USB-Verlängerung zurückzuführen war. Ich tippe mal drauf, dass die Spannungsversorgung das kritische Element ist, wenn irgendwelche Bits nicht richtig geschrieben werden.

So richtig zufrieden bin ich aber mit dem Joystick nicht. Man muss ihn schon sehr präzise in eine der vier Richtungen drücken, damit der Befehl angenommen wird. Ob sich das durch Verändern von JS_DEADBAND noch verbessern lässt?
Viele Grüße
Tilman

www.microcopters.de
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#659 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von yacco »

Jupps, so ist es gedacht.

Code: Alles auswählen

    if (vert < JS_DEADBAND && vert > -JS_DEADBAND) {
      if      (hor < -5 * JS_DEADBAND)  {return KEY_RIGHT;}
      else if (hor >  5 * JS_DEADBAND)  {return KEY_LEFT; }
    }
    else if (hor < JS_DEADBAND && hor > -JS_DEADBAND) {
      if      (vert < -5 * JS_DEADBAND) {return KEY_UP;   }
      else if (vert >  5 * JS_DEADBAND) {return KEY_DOWN; }
    }
Wenn du den Wert von JS_DEADBAND hochsetzt, mußt du wahrscheinlich den Faktor 5 etwas reduzieren, sonst wird wieder keine Taste erkannt... das sollte ich nochmal überarbeiten...
Ciao, Arnd
Benutzeravatar
r0sewhite
Beiträge: 1757
Registriert: 13.12.2010 02:45:33
Wohnort: Augsburg

#660 Re: MultiWiiKopter-Konfigurationsprogramm für Arduino

Beitrag von r0sewhite »

Nee, 49 funktioniert schon deutlich besser. Ich hab ja Ausschläge von locker +/-400 in jede Richtung und 49x5 sind gerademal 245. Da ist doch noch genügend Spielraum vorhanden.
Viele Grüße
Tilman

www.microcopters.de
Antworten

Zurück zu „Allgemeines“