Der WII-Copter ( Selbstbau-Projekt )

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

#6961 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von yacco »

Wie gesagt, das betrifft nur den WMP, bei allen anderen Sensoren/Gyros wird das Makro "GYRO_ORIENTATION" benutzt (ist auch kein großer Akt, das zu ändern... wenn mans weiß).
Ciao, Arnd
Benutzeravatar
muggel117
Beiträge: 461
Registriert: 14.07.2011 01:22:25
Wohnort: NRW, Kreis Viersen

#6962 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von muggel117 »

yacco hat geschrieben:Klar:

Code: Alles auswählen

  ... (line #306, MultiWii.pde)
  if (currentTime > (rcTime + 20000) ) { // 50Hz
    rcTime = currentTime; 
    computeRC();
    // Failsafe routine - added by MIS
    #if defined(FAILSAFE)
      if ( failsafeCnt > (5*FAILSAVE_DELAY) && armed==1) {                  // Stabilize, and set Throttle to specified level
        for(i=0; i<3; i++) rcData[i] = MIDRC;                               // after specified guard time after RC signal is lost (in 0.1sec)
        rcData[THROTTLE] = FAILSAVE_THR0TTLE;
        if (failsafeCnt > 5*(FAILSAVE_DELAY+FAILSAVE_OFF_DELAY)) armed = 0; // Turn OFF motors after specified Time (in 0.1sec)
      }
      failsafeCnt++;
    #endif
    // end of failsave routine - next change is made with RcOptions setting 
    // -- begin of block -ar
    if (rcData[THROTTLE] < THROTTLE_CUT) {
      if (armed) {
          armed = 0;
          writeAllMotors(MINCOMMAND);
      }    
      else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK) {
        servo[0] = 1500; //we center the yaw gyro in conf mode
        writeServos();
        
        #if defined(LCD_CONF)
          configurationLoop(); //beginning LCD configuration
        #endif
        previousTime = micros();
      }
    }
    else // end of block -ar
    if (rcData[THROTTLE] < MINCHECK) {
      errorGyroI[ROLL] = 0; errorGyroI[PITCH] = 0; errorGyroI[YAW] = 0;
      errorAngleI[ROLL] = 0; errorAngleI[PITCH] = 0;
      rcDelayCommand++;
      if (rcData[YAW] < MINCHECK && rcData[PITCH] < MINCHECK && armed == 0) {
        if (rcDelayCommand == 20) calibratingG=400;
//
// -ar - moved LCD_Config mode inside of above block (stick positions are too close to arming of motors...)
//
//      } else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK && armed == 0) {
//        if (rcDelayCommand == 20) {
//          servo[0] = 1500; //we center the yaw gyro in conf mode
//          writeServos();
//          #if defined(LCD_CONF)
//            configurationLoop(); //beginning LCD configuration
//          #endif
//          previousTime = micros();
//        }
      } else if (activate[BOXARM] > 0) {
...
Edit: Davor muß außerdem noch

Code: Alles auswählen

#define THROTTLE_CUT <hier einen Wert unter 1000 eintragen>
eingefügt werden.
Hallo Arnd,

evtl. bin ich ja ein bisserl noobig, aber das, was Du in der oberen Box stehen hast, steht in meiner PDE genau so drin... oder bin ich zu blind, den Unterschied zu sehen? :shock:

Diese Zeile -> #define THROTTLE_CUT <hier einen Wert unter 1000 eintragen> direkt davor?

Also so:

#define THROTTLE_CUT <hier einen Wert unter 1000 eintragen>
if (currentTime > (rcTime + 20000) ) { // 50Hz
rcTime = currentTime;
computeRC();
// Failsafe routine - added by MIS
.
.
.


SRY, wie gesagt, ich bin hier noch ein bisserl noobig... :oops:
Gruß Frank
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#6963 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von yacco »

Anstelle von

Code: Alles auswählen

<hier einen Wert unter 1000 eintragen>
mußt du einen Wert unter 1000 eintragen... :roll: :D

Der Trick ist, dass du an der Funke über einen Schalter den Wert des Throttle-Kanals unter diesen Wert bringen mußt (Throttle Hold/Throttle Cut, wie auch immer die Funktion in deinem Sender heißt). Solange der Schalter umgelegt ist, ist Throttle konstant auf diesem Wert, und du kannst die Motoren nicht scharfschalten. Entsprechend, wenn du nach dem Scharfschalten der Motoren den Schalter wieder umlegst, gehen die Motoren sofort aus. Egal, wo der Stick steht oder in welcher Höhe der Copter gerade fliegt.

#define's baut man am besten in das config.h oder an den Anfang des Files, macht das ganze lesbarer.
Ciao, Arnd
Benutzeravatar
muggel117
Beiträge: 461
Registriert: 14.07.2011 01:22:25
Wohnort: NRW, Kreis Viersen

#6964 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von muggel117 »

mußt du einen Wert unter 1000 eintragen... :roll: :D
...aaahhrrg, ich sagte zwar, ich sei ein bisserl noobig, aber doch kein solcher Vollpfosten... :D

Lieber Arnd,
daß mit Wert unter 1000 usw. war mir schon klar, wenn ich an der DX6i den ThrottleCut/ThottleHold betätige, geht im GUI der Throttlewert deutlich unter 1000, soweit kein Prob.
Ich wollte halt nur wissen, wo ich die Zeile einfügen soll...
#define's baut man am besten in das config.h oder an den Anfang des Files, macht das ganze lesbarer.
...ist ja nun geklärt.

Mein eigentliches Problem ist, daß ich nicht genau überblicke, wie und wo genau ich dies:

// end of failsave routine - next change is made with RcOptions setting
// -- begin of block -ar
if (rcData[THROTTLE] < THROTTLE_CUT) {
if (armed) {
armed = 0;
writeAllMotors(MINCOMMAND);
}
else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK) {
servo[0] = 1500; //we center the yaw gyro in conf mode
writeServos();

#if defined(LCD_CONF)
configurationLoop(); //beginning LCD configuration
#endif
previousTime = micros();
}
}
......usw.usw.usw.


einfügen soll (klar, ab Zeile 317, aber was fliegt dafür raus?).
Ich verliere da irgendwie den Überblick... sorry wenn ich nerve... :cry:
Gruß Frank
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#6965 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von yacco »

Hi Frank,

ich hatte doch extra ein paar Zeilen aus dem Original-Sketch drumherum stehen lassen, damit man erkennt, an welche Stelle der Code eingefügt wird. Einzufügen ist der Block

Code: Alles auswählen

    // -- begin of block -ar
    if (rcData[THROTTLE] < THROTTLE_CUT) {
      if (armed) {
          armed = 0;
          writeAllMotors(MINCOMMAND);
      }   
      else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK) {
        servo[0] = 1500; //we center the yaw gyro in conf mode
        writeServos();
       
        #if defined(LCD_CONF)
          configurationLoop(); //beginning LCD configuration
        #endif
        previousTime = micros();
      }
    }
    else // end of block -ar
Dann habe ich noch die Zeilen

Code: Alles auswählen

//
// -ar - moved LCD_Config mode inside of above block (stick positions are too close to arming of motors...)
//
//      } else if (rcData[YAW] > MAXCHECK && rcData[PITCH] > MAXCHECK && armed == 0) {
//        if (rcDelayCommand == 20) {
//          servo[0] = 1500; //we center the yaw gyro in conf mode
//          writeServos();
//          #if defined(LCD_CONF)
//            configurationLoop(); //beginning LCD configuration
//          #endif
//          previousTime = micros();
//        }
auskommentiert, da ich beim Ausprobieren der im MWC eingebauten Konfigurationsmöglichkeit öfter mal aus Versehen die Motoren scharf geschaltet habe (Scharfschalten der Motoren: THROTTLE unten, YAW nach rechts. Einschalten der LCD_CONF Konfiguration: THROTTLE unten, YAW rechts, PITCH nach vorne... das ist verdammt nah zusammen). Deswegen hab ich das in the Block geschoben, der bei einem THROTTLE Wert unter THROTTLE_CUT ausgeführt wird.

Wenn du das nicht brauchst, reduziert sich der Patch auf die Zeilen

Code: Alles auswählen

    // -- begin of block -ar
    if (rcData[THROTTLE] < THROTTLE_CUT) {
      if (armed) {
          armed = 0;
          writeAllMotors(MINCOMMAND);
      } 
    }
    else // end of block -ar
Ciao, Arnd
Benutzeravatar
muggel117
Beiträge: 461
Registriert: 14.07.2011 01:22:25
Wohnort: NRW, Kreis Viersen

#6966 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von muggel117 »

Hm, so schnell 'ne Antwort, bist wohl auch ein Nachtmensch... -ja, der Tag hat einfach zu wenig Stunden Freizeit... :wink:

Danke Dir vielmals :thumbup: , so langsam blicke ich durch, aber Programmieren ist nicht so meine Welt - leider.
Gruß Frank
Aeleks
Beiträge: 185
Registriert: 16.08.2007 15:29:35

#6967 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von Aeleks »

Falls es jemand noch nicht kennt:

http://fangin.com/blog/2011/05/28/add-b ... wiicopter/

Funktioniert einwandfrei!
Ich hab das Bluetooth-Modul im angegebenen Shop bestellt. Hat ne ganze Weile gedauert, aber schlussendlich kam es an, und das ganze sogar versandkostenfrei.

Aus einem Patchkabel kann man prima die benötigten Kabel basteln, wenn man keine Lust zu löten hat. Einfach die Kabel aus dem schwarzen Plastikstecker rausziehen. Zum einmaligen Anschluss an das FTDI kann man eine Stiftleiste benutzen. Löten muss man nichts, das wird ja nur einmal gemacht.

Dann einfach der Anleitung folgen und am Ende kann man entweder den Laptop mit Bluetooth oder das Android-Handy benutzen, um kabellos und schnell die Einstellungen zu ändern, oder auch mal eine Runde zu fliegen während der Kollege die Ausschläge im Multiwii-Programm anguckt.

Vielleicht kann man ja sogar die PID-Werte während dem Flug verändern? Resettet der Arduino wenn man die Werte schreibt?
Grüße, Michael.
Acrobat SE
Acrobat Shark
Wiicopter QuadX
Benutzeravatar
Schachti
Beiträge: 1232
Registriert: 30.05.2010 18:03:17
Wohnort: Berlin
Kontaktdaten:

#6968 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von Schachti »

machst bitte ein viedeo wenn du die pid werte im flug änderst :mrgreen:
BildBild
Benutzeravatar
yacco
Beiträge: 4728
Registriert: 15.02.2009 19:27:59
Wohnort: Aßlar

#6969 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von yacco »

Michael, nö, da gibts keinen Reset. Bei älteren MWC Versionen ruckelte der Copter allerdings im Flug, wenn Daten über die serielle Schnittstelle abgefragt wurden, weil synchron Serial.write() ausgeführt wurde (was die Regelschleife ausgebremst hat). In der v1.8 läuft das Senden und Empfangen von Daten interrupt-gesteuert, ich hab aber noch nicht ausprobiert, ob das Problem damit beseitigt ist.

Was für eine Reichweite haben die Module? (Bei 115kBaud tippe ich mal auf 5-10m).
Ciao, Arnd
Aeleks
Beiträge: 185
Registriert: 16.08.2007 15:29:35

#6970 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von Aeleks »

Schachti hat geschrieben:machst bitte ein viedeo wenn du die pid werte im flug änderst :mrgreen:
Hehe, das würde ich dann doch schon lieber von einem Kollegen machen lassen :)
yacco hat geschrieben:Michael, nö, da gibts keinen Reset. Bei älteren MWC Versionen ruckelte der Copter allerdings im Flug, wenn Daten über die serielle Schnittstelle abgefragt wurden, weil synchron Serial.write() ausgeführt wurde (was die Regelschleife ausgebremst hat). In der v1.8 läuft das Senden und Empfangen von Daten interrupt-gesteuert, ich hab aber noch nicht ausprobiert, ob das Problem damit beseitigt ist.
Interessant!
Dann müsste es ja gehen, das man ohne ständiges Einstellen/Starten/Testen/Landen/Einstellen/Starten... die Idealwerte erfliegt.
Grüße, Michael.
Acrobat SE
Acrobat Shark
Wiicopter QuadX
Benutzeravatar
dynai
Beiträge: 872
Registriert: 15.01.2006 20:27:51
Wohnort: Esslingen u. Langen bei Bregenz

#6971 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von dynai »

Fehlt eigentlich nur noch ne AUTO-ADJUST Routine die das selber macht ;)

Gruss Chris
Vario Sky-Fox: OS MAX 61; GY 401 + S9254 Servo; Taumelscheibe: 4x S 9001; 35Mhz
T-REX 450 S CF:Motor: 2221-8; RONDO flybarless ; Jazz 40-6-18; TS: 3x robbe FS 60; HS: S9257; 2.4GHz

FC 18V3plus 35 MHz; FF-7 (T7CP) 2,4 GHz
Benutzeravatar
Crizz
Beiträge: 27061
Registriert: 12.04.2007 17:44:22
Wohnort: Haiger
Kontaktdaten:

#6972 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von Crizz »

Im Flug die Werte zu ändern halte ich für Kappes. Da wäre es sinnvoller wenn man einen Card-Shield verwenden könnte und unterschiedliche Einstellungen per Kippschalter auswählen kann, die man dann am Boden - ob wired oder wireless - noch ändern kann. So wie die Bankumschaltung bei einigen Stabis.
_________________________________________________________________________________
"Leben ist das, was passiert, während du etwas ganz anderes planst" ... ( John Lennon )

! REVOLECTRIX-Distributor ! -> Ladeequipment / Akkus : -> HaDi-RC.de

Alle Projektberichte für den VTH-Verlag als PDF zum Download unter http://www.CrizzD.de !
sandmen
Beiträge: 57
Registriert: 04.01.2011 10:48:03

#6973 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von sandmen »

Meine Android App kann verschieden PID settings speichern. Somit kann man mal die Settings ausprobieren oder die anderen.
Falls es jemand braucht.
http://www.multiwii.com/forum/viewtopic.php?f=8&t=533
Gruß
marix
Beiträge: 259
Registriert: 03.01.2011 17:24:37
Wohnort: Köln

#6974 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von marix »

Hallo Gemeinde,

nach langer Zeit habe ich mich mal wieder meinem MiniQuad (24cm) gewidmet.
Nachdem ich endlich das Teil hardwareseitig zusammengedengelt habe, habe ich folgendes Problem:

DAS MISTSTÜCK WILL NICHT ABHEBEN, SONDERN BOHRT SICH IN DEN BODEN!

Anfangs habe ich mich gewundert, dass der Copter mit einem 2sLipo nicht abhebt (bei 209gr.), jedoch hatte ich das Gerät vor langer Zeit mal mit der gleichen Config zum Fliegen gebracht, als ich dann endlich auf die Idee kam, den Copter in der Hand zu halten, habe ich gemerkt, dass er lieber ein Maulwurf wäre, also einen ausgeprägten Hang zum Vergraben hat. :cry:

Gibt es irgendwelche Tipps oder Hinweise eurerseits? :|
GRUß
Marco
Benutzeravatar
Crizz
Beiträge: 27061
Registriert: 12.04.2007 17:44:22
Wohnort: Haiger
Kontaktdaten:

#6975 Re: Der WII-Copter ( Selbstbau-Projekt )

Beitrag von Crizz »

laufen die Motoren verkehrt herum oder was willst du uns damit sagen ?
_________________________________________________________________________________
"Leben ist das, was passiert, während du etwas ganz anderes planst" ... ( John Lennon )

! REVOLECTRIX-Distributor ! -> Ladeequipment / Akkus : -> HaDi-RC.de

Alle Projektberichte für den VTH-Verlag als PDF zum Download unter http://www.CrizzD.de !
Antworten

Zurück zu „Allgemeines“