annuncio

Comprimi
Ancora nessun annuncio.

MultiWii Quad! Alternativa ad Aeroquad/Baronpilot con sensori wii

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Se resti Online li attivo e provo subito...

    deve essere così giusto?

    #define INTERNAL_I2C_PULLUPS

    FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
    FLYDRONE AXN FPV
    GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

    Commenta


    • Ragazzi ritorno proprio ora dal garage dove ho fatto alcuni test.

      Prima cosa ho rimesso i valori dei PID di default, continuando ad usare la R207.

      Ho modificato nella DEF.H la sezione della FreeIMU v0.3.5_MS in modo da attivare solo il GYRO come segue:

      #if defined(FREEIMUv035) || defined(FREEIMUv035_MS) || defined(FREEIMUv035_BMP)
      #define ITG3200
      // #define BMA180
      // #define HMC5883
      [...omissis...]
      // #if defined(FREEIMUv035_MS)
      // #define MS561101BA
      // #elif defined(FREEIMUv035_BMP)
      // #define BMP085
      // #endif

      #endif
      Ho verificato la risposta via GUI degli assi del gyro, come da FAQ MultiWii, in questa fase il grafico non si muove, è necessario anche l'accelerometro, ma a me serviva solo capire come variavano i valori in base ai movimenti fisici del mezzo.
      Muovendo il quad nelle varie direzioni ho tratto la seguente tabella:

      ...............+..........-
      ROLL.......DX........SX
      PITCH...Avanti...Indietro
      YAW.......CW......CCW

      La FAQ dice che quando si va in roll a sinistra i valori devono assumere peso positivo e a destra peso negativo, come si vede dalla tabella questo è invertito. Ho però, senza modificare nulla nel software, armato i motori e tenuto il quad in mano dando gas e ho notato che il quad risponde ai comandi mantenendo l'asse verticale di salita, spingendolo in roll a sinistro lui contrasta verso destra e viceversa. Quindi ho lasciato la cosa così.

      Ho poi attivato via software anche l'accelerometro per poter verificare l'orientamento degli assi. Calibrandolo al banco con la procedura via GUI.
      Facendo lo stesso ragionamento della tabella come sopra ho scoperto che il valore del ROLL era in realtà il PITCH invertito, cioè muovendo a destra e sinistra variava il PITCH invece che il ROLL e muovendo avanti e indietro variava il ROLL invece del PITCH, in particolare il movimento del ROLL (che poi era il PITCH era invertito).
      Infatti nella GUI il grafico del quad assumeva strane posizioni diagonali.
      Ho modificato il file DEF.H nella sezione FreeIMU v0.3.5_MS come segue:
      #if defined(FREEIMUv035) || defined(FREEIMUv035_MS) || defined(FREEIMUv035_BMP)
      #define ITG3200
      #define BMA180
      // #define HMC5883
      #define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
      #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
      #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
      #undef INTERNAL_I2C_PULLUPS
      // #if defined(FREEIMUv035_MS)
      // #define MS561101BA
      // #elif defined(FREEIMUv035_BMP)
      // #define BMP085
      // #endif
      #endif
      Continuando a tenere disattivati il magnetometro HMC5883 e il nuovo altimetro di precisione MS561101BA riservandomi di provarli in futuro quando la dev sarà più matura.

      Riprovato il tutto e... sorpresa incredibile: nella GUI quando inclini il quad su un lato la figura lo segue precisamente in tutte le direzioni.

      Questo può servire a tutti, soprattutto per non impazzire:
      --------------------------------------------------------
      Una cosa che ho imparato (a mie spese) da questa esperienza è che:
      1) la GUI vi da informazioni di massima se vi fermate a guardare il grafico animato del multirotore - dovete guardare soprattutto i valori dei sensori e il loro grafico nel tempo
      2) una cosa certa è che se inclinate su un lato il multirotore e il grafico animato nella GUI lo segue ma se poi lo lasciate in quella posizione ed il grafico lentamente torna indietro ATTENZIONE che sicuramente uno degli assi dell'accelerometro è INVERTITO
      3) se usate una DEV massima attenzione perchè la compatibilità delle routine normalmente non viene garantita, vedi per l'altimetro di precisione e pure per il magnetometro, del quale nel prossimo futuro sarà da capire come è orientato ed apportare le giuste correzioni nel software ragionando come sopra.

      Purtroppo questa volta non sono riuscito a farne un video ma appena mi è possibile lo farò magari creando anche una videoguida da pubblicare.
      Ultima modifica di magnetron1; 23 luglio 11, 15:44. Motivo: costruzione tabella
      AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

      Commenta


      • Niente, nisba, nada de nada...

        Anche con pullup attivi il frullino continua imperterrito !!!

        Altro indizio, aumentando il gas ho notato che tende a rollare a sinistra, ovviamente io lo devo contrastare altrimenti si cappotterebbe, e li iniziano le danze, rolla a destra e a sinistra sempre più velocemente...
        FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
        FLYDRONE AXN FPV
        GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

        Commenta


        • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
          Niente, nisba, nada de nada...

          Anche con pullup attivi il frullino continua imperterrito !!!

          Altro indizio, aumentando il gas ho notato che tende a rollare a sinistra, ovviamente io lo devo contrastare altrimenti si cappotterebbe, e li iniziano le danze, rolla a destra e a sinistra sempre più velocemente...
          Come stai alimentando il wmp? c'è un regolatore 3,3 V a bordo della flyduino?
          Hai troppe vibrazioni che rendono difficile il controllo. Se non riesci a toglierle sarai costretto ad abbassare molto il P.
          Johnny
          (GTE - Torino)
          Out of sight, NOT out of mind.

          Commenta


          • Il WM+ è alimentato a 3.33V misurati direttamente sul WM+ con tester...

            Sicuramente a bordo della Flyduino c'è un regolatore di tensione...

            Il valore P è quello di default...

            Come faccio a capire se ci sono vibrazioni dalla GUI?

            Comunque con solo il WM+ attivo è giusto che inclinando il quad lui non mi contrasta?
            FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
            FLYDRONE AXN FPV
            GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

            Commenta


            • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
              Come faccio a capire se ci sono vibrazioni dalla GUI?
              Guardando il grafico?
              Johnny
              (GTE - Torino)
              Out of sight, NOT out of mind.

              Commenta


              • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                Niente, nisba, nada de nada...

                Anche con pullup attivi il frullino continua imperterrito !!!

                Altro indizio, aumentando il gas ho notato che tende a rollare a sinistra, ovviamente io lo devo contrastare altrimenti si cappotterebbe, e li iniziano le danze, rolla a destra e a sinistra sempre più velocemente...
                Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                Il WM+ è alimentato a 3.33V misurati direttamente sul WM+ con tester...

                Sicuramente a bordo della Flyduino c'è un regolatore di tensione...

                Il valore P è quello di default...

                Come faccio a capire se ci sono vibrazioni dalla GUI?

                Comunque con solo il WM+ attivo è giusto che inclinando il quad lui non mi contrasta?
                Può tornarti utile quello che ho scritto prima qui: http://www.baronerosso.it/forum/mode...ml#post2693321
                le hai fatte quelle prove?

                Con il solo WM+ inclinando deve comunque contrastare lievemente, non aspettarti che ti spinga la mano per vincere la tua forza...
                AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                Commenta


                • Ah il mio è un WM+ originale con IDG600 e XR3500

                  @Jhoexp, guardando il grafico non mi sembra ci siano vibrazioni, ovviamente quando comincia a fare il "matto" vedo i valori che salgono e scendono...

                  Se invece lo lascio con i motori al minimo le linee sono abbastanza piatte... BOH

                  @Magnetron, allora i valori dei GYRO e degli ACC sono praticamente come quelli della tua tabella.
                  Quindi dovrebbe funzionare...
                  Ultima modifica di Jonny-Paletta; 23 luglio 11, 16:31.
                  FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
                  FLYDRONE AXN FPV
                  GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

                  Commenta


                  • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                    Ah il mio è un WM+ originale con IDG600 e XR3500
                    Fai una foto di dettaglio del tutto?
                    AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                    Commenta







                    • P.S. la freccia indica la direzione di marcia...

                      File allegati
                      Ultima modifica di Jonny-Paletta; 23 luglio 11, 16:40.
                      FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
                      FLYDRONE AXN FPV
                      GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

                      Commenta


                      • @magnetron1 le modifiche che hai fatto sull'orientazione dei sensori sono le stesse che ho pubblicato nel mio post di qualche ora fa.. qui.

                        Il fatto che siamo giunti alle stesse orientazioni significa che abbiamo fatto bene. ;-)

                        Commenta


                        • Allora... quindi hai WMP+ (originale) + BMA020, giusto?
                          Che versione di MultiWii usi?
                          Puoi postare qui la parte dei config dei sensori (le defines) e la parte dell'orientamento nel software?
                          AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                          Commenta


                          • Originariamente inviato da fvaresano Visualizza il messaggio
                            @magnetron1 le modifiche che hai fatto sull'orientazione dei sensori sono le stesse che ho pubblicato nel mio post di qualche ora fa.. qui.

                            Il fatto che siamo giunti alle stesse orientazioni significa che abbiamo fatto bene. ;-)
                            Grande Fabio. Purtroppo non avevo visto il tuo post ed ho proceduto nelle prove come descritto...
                            Il fatto è che non è chiaro come sono orientati gli assi tra la FreeIMU e come li hanno sistemati nella DEV.
                            Tra l'altro la FAQ del MultiWii è un pò ingannevole, mi sono rifatto al mio precedente post per stabilire bene l'orientamento.
                            Questo non può farmi che piacere, vuol dire che adesso almeno posso andare più tranquillo per il test di volo.
                            Speriamo che implementino a breve l'alimetro ed il magnetometro - il che sarebbe un toccasano!!
                            AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                            Commenta


                            • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                              Ho controllato sulle FAQ di Multiwii.com, e dice che i valori dovrebbero essere così:

                              - pitch (gyro: nose down = positive) ---> OK
                              - yaw (gyro: clockwise = positive) ---> OK
                              - roll (gyro: roll left = positive) QUI da me è invertito, se abbasso il quad a SX ho valore negativo...


                              Ma come lo correggo?
                              Anche per me se inclino il quad a sx ho valori negativi, abbiamo qualche cosa di invertito oppure è un errore sulle FAQ ?
                              Il quad risponde bene a tutte le sollecitazioni.
                              Sergio
                              (GTE - Torino)

                              Commenta


                              • Uso la Multiwii_1.7

                                Intendi questo?

                                /*
                                MultiWiiCopter by Alexandre Dubus
                                MultiWii
                                April 2011 V1.7
                                This program is free software: you can redistribute it and/or modify
                                it under the terms of the GNU General Public License as published by
                                the Free Software Foundation, either version 3 of the License, or
                                any later version. see <http://www.gnu.org/licenses/>
                                */

                                /*******************************/
                                /****CONFIGURABLE PARAMETERS****/
                                /*******************************/

                                /* Set the minimum throttle command sent to the ESC (Electronic Speed Controller)
                                This is the minimum value that allow motors to run at a idle speed */
                                #define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A
                                //#define MINTHROTTLE 1120 // for Super Simple ESCs 10A
                                //#define MINTHROTTLE 1190

                                /* The type of multicopter */
                                //#define GIMBAL
                                //#define BI
                                //#define TRI
                                //#define QUADP
                                #define QUADX
                                //#define Y4
                                //#define Y6
                                //#define HEX6
                                //#define HEX6X
                                //#define FLYING_WING //experimental

                                #define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction
                                //#define YAW_DIRECTION -1

                                #define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
                                //#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones

                                //#define PROMINI //Arduino type
                                #define MEGA

                                //enable internal I2C pull ups
                                #define INTERNAL_I2C_PULLUPS

                                //****** advanced users settings *************

                                /* Failsave settings - added by MIS
                                Failsafe check pulse on THROTTLE channel. If the pulse is OFF (on only THROTTLE or on all channels) the failsafe procedure is initiated.
                                After FAILSAVE_DELAY time of pulse absence, the level mode is on (if ACC or nunchuk is avaliable), PITCH, ROLL and YAW is centered
                                and THROTTLE is set to FAILSAVE_THR0TTLE value. You must set this value to descending about 1m/s or so for best results.
                                This value is depended from your configuration, AUW and some other params.
                                Next, afrer FAILSAVE_OFF_DELAY the copter is disarmed, and motors is stopped.
                                If RC pulse coming back before reached FAILSAVE_OFF_DELAY time, after the small quard time the RC control is returned to normal.
                                If you use serial sum PPM, the sum converter must completly turn off the PPM SUM pusles for this FailSafe functionality.*/
                                #define FAILSAFE // Alex: comment this line if you want to deactivate the failsafe function
                                #define FAILSAVE_DELAY 10 // Guard time for failsafe activation after signal lost. 1 step = 0.1sec - 1sec in example
                                #define FAILSAVE_OFF_DELAY 200 // Time for Landing before motors stop in 0.1sec. 1 step = 0.1sec - 20sec in example
                                #define FAILSAVE_THR0TTLE (MINTHROTTLE + 200) // Throttle level used for landing - may be relative to MINTHROTTLE - as in this case


                                /* The following lines apply only for a pitch/roll tilt stabilization system
                                It is not compatible with Y6 or HEX6 or HEX6X
                                Uncomment the first line to activate it */
                                //#define SERVO_TILT
                                #define TILT_PITCH_MIN 1020 //servo travel min, don't set it below 1020
                                #define TILT_PITCH_MAX 2000 //servo travel max, max value=2000
                                #define TILT_PITCH_MIDDLE 1500 //servo neutral value
                                #define TILT_PITCH_PROP 10 //servo proportional (tied to angle) ; can be negative to invert movement
                                #define TILT_ROLL_MIN 1020
                                #define TILT_ROLL_MAX 2000
                                #define TILT_ROLL_MIDDLE 1500
                                #define TILT_ROLL_PROP 10

                                /* I2C gyroscope */
                                //#define ITG3200
                                //#define L3G4200D

                                /* I2C accelerometer */
                                //#define ADXL345
                                #define BMA020
                                //#define BMA180
                                //#define NUNCHACK // if you want to use the nunckuk as a standalone I2C ACC without WMP

                                /* I2C barometer */
                                //#define BMP085

                                /* I2C magnetometer */
                                //#define HMC5843
                                //#define HMC5883

                                /* ADC accelerometer */ // for 5DOF from sparkfun, uses analog PIN A1/A2/A3
                                //#define ADCACC

                                /* The following lines apply only for specific receiver with only one PPM sum signal, on digital PIN 2
                                IF YOUR RECEIVER IS NOT CONCERNED, DON'T UNCOMMENT ANYTHING. Note this is mandatory for a Y6 setup
                                Select the right line depending on your radio brand. Feel free to modify the order in your PPM order is different */
                                //#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,CAMPITCH,CAMROLL //For Graupner/Spektrum
                                //#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,CAMPITCH,CAMROLL //For Robe/Hitec/Futaba
                                //#define SERIAL_SUM_PPM PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,CAMPITCH,CAMROLL //For some Hitec/Sanwa/Others

                                /* interleaving delay in micro seconds between 2 readings WMP/NK in a WMP+NK config
                                if the ACC calibration time is very long (20 or 30s), try to increase this delay up to 4000
                                it is relevent only for a conf with NK */
                                #define INTERLEAVING_DELAY 3000

                                /* for V BAT monitoring
                                after the resistor divisor we should get [0V;5V]->[0;1023] on analog V_BATPIN
                                with R1=33k and R2=51k
                                vbat = [0;1023]*16/VBATSCALE */
                                #define VBAT // comment this line to suppress the vbat code
                                #define VBATSCALE 131 // change this value if readed Battery voltage is different than real voltage
                                #define VBATLEVEL1_3S 107 // 10,7V
                                #define VBATLEVEL2_3S 103 // 10,3V
                                #define VBATLEVEL3_3S 99 // 9.9V

                                /* when there is an error on I2C bus, we neutralize the values during a short time. expressed in microseconds
                                it is relevent only for a conf with at least a WMP */
                                #define NEUTRALIZE_DELAY 100000

                                /* this is the value for the ESCs when thay are not armed
                                in some cases, this value must be lowered down to 900 for some specific ESCs */
                                #define MINCOMMAND 1000

                                /* this is the maximum value for the ESCs at full power
                                this value can be increased up to 2000 */
                                #define MAXTHROTTLE 1850

                                /* This is the speed of the serial interface. 115200 kbit/s is the best option for a USB connection.*/
                                #define SERIAL_COM_SPEED 115200

                                /* In order to save space, it's possibile to desactivate the LCD configuration functions
                                comment this line only if you don't plan to used a LCD */
                                #define LCD_CONF

                                /* to use Cat's whisker TEXTSTAR LCD, uncomment following line.
                                Pleae note this display needs a full 4 wire connection to (+5V, Gnd, RXD, TXD )
                                Configure display as follows: 115K baud, and TTL levels for RXD and TXD, terminal mode
                                NO rx / tx line reconfiguration, use natural pins */
                                //#define LCD_TEXTSTAR

                                /* motors will not spin when the throttle command is in low position
                                this is an alternative method to stop immediately the motors */
                                //#define MOTOR_STOP

                                /* some radios have not a neutral point centered on 1500. can be changed here */
                                #define MIDRC 1500

                                /* experimental
                                camera trigger function : activated via AUX1 UP, servo output=A2 */
                                //#define CAMTRIG
                                #define CAM_SERVO_HIGH 2000 // the position of HIGH state servo
                                #define CAM_SERVO_LOW 1020 // the position of LOW state servo
                                #define CAM_TIME_HIGH 1000 // the duration of HIGH state servo expressed in ms
                                #define CAM_TIME_LOW 1000 // the duration of LOW state servo expressed in ms

                                /* you can change the tricopter servo travel here */
                                //#define TRI_YAW_CONSTRAINT_MIN 1020
                                //#define TRI_YAW_CONSTRAINT_MAX 2000
                                //#define TRI_YAW_MIDDLE 1500

                                //****** end of advanced users settings *************

                                /**************************************/
                                /****END OF CONFIGURABLE PARAMETERS****/
                                /**************************************/
                                FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
                                FLYDRONE AXN FPV
                                GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

                                Commenta

                                Sto operando...
                                X