Seite 465 von 1010
#6961 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 17.08.2011 10:38:08
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ß).
#6962 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 17.08.2011 21:57:34
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?
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...

#6963 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 17.08.2011 22:28:17
von yacco
Anstelle von
mußt du einen Wert unter 1000 eintragen...
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.
#6964 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 00:15:56
von muggel117
mußt du einen Wert unter 1000 eintragen...

...aaahhrrg, ich sagte zwar, ich sei ein
bisserl noobig, aber doch kein solcher Vollpfosten...
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...

#6965 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 00:25:48
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
#6966 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 00:41:50
von muggel117
Hm, so schnell 'ne Antwort, bist wohl auch ein Nachtmensch... -ja, der Tag hat einfach zu wenig Stunden Freizeit...
Danke Dir vielmals

, so langsam blicke ich durch, aber Programmieren ist nicht so meine Welt - leider.
#6967 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 10:20:58
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?
#6968 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 10:38:32
von Schachti
machst bitte ein viedeo wenn du die pid werte im flug änderst

#6969 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 11:06:59
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).
#6970 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 11:10:08
von Aeleks
Schachti hat geschrieben:machst bitte ein viedeo wenn du die pid werte im flug änderst

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.
#6971 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 12:04:38
von dynai
Fehlt eigentlich nur noch ne AUTO-ADJUST Routine die das selber macht
Gruss Chris
#6972 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 12:05:45
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.
#6973 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 13:38:28
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ß
#6974 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 14:14:43
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.
Gibt es irgendwelche Tipps oder Hinweise eurerseits?

#6975 Re: Der WII-Copter ( Selbstbau-Projekt )
Verfasst: 18.08.2011 14:16:30
von Crizz
laufen die Motoren verkehrt herum oder was willst du uns damit sagen ?