annuncio

Comprimi
Ancora nessun annuncio.

MultiWii Quad! Alternativa ad Aeroquad/Baronpilot con sensori wii

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

  • Originariamente inviato da Sergei Visualizza il messaggio
    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.
    La mia esperienza è ben descritta qui: http://www.baronerosso.it/forum/mode...ml#post2693321

    Credo che la FAQ sia ingannevole da questo punto di vista. Effettivamente inclinando a sx i valori mi tornano negativi, quello che non ho detto (ma lo dico adesso) è che ho provato via software ad invertire quell'orientamento ed il quad si comporta male, nel senso che sbaglia a compensare l'asse del ROLL...
    Se posti un video della GUI mentre orienti il quad nei vari lati potrebbe essere molto utile per capire se tutto è ok.
    AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

    Commenta


    • @magnetron1 Mah.. il fatto e' che secondo me neanche loro ci hanno capito molto.. infatti qui li bacchetto un po' MultiWii • View topic - Sensors orientations

      Adesso, lo voglio veder volare ;-)

      Commenta


      • Originariamente inviato da fvaresano Visualizza il messaggio
        @magnetron1 Mah.. il fatto e' che secondo me neanche loro ci hanno capito molto.. infatti qui li bacchetto un po' MultiWii • View topic - Sensors orientations

        Adesso, lo voglio veder volare ;-)
        Si concordo con te, è ingannevole la cosa.
        Appena posso faccio un video che spieghi bene come procedere per orientare il gyro e l'acc che sono alla base del volo stabile del MultiWii.
        Poi procederò con il magnetometro e magari con l'altimetro.

        Quindi sulla FreeIMU v0.2 il mag è orientato così:
        #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = Y; magADC[PITCH] = -X; magADC[YAW] = Z;}
        e sulla v0.3.5_MS è orientato nello stesso verso? Perchè se così è allora copio ed incollo la define e provo...
        Che dici?
        Non vedo l'ora di volare.
        Sarà mia premura preparare un video del tutto.
        AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

        Commenta


        • AHAHA sarà malato di morbo tremens...

          Ma dove lo trovo l'orientamento dei sensori?

          Ma un tasto per calibrare i gyro dalla GUI non potevano mettercelo?? No è ??

          Anche io avrei voglia di volare ma... no se puede...
          Ultima modifica di Jonny-Paletta; 23 luglio 11, 17:05.
          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
            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****/
            /**************************************/
            si è questo...
            Originariamente inviato da Jonny-Paletta Visualizza il messaggio
            AHAHA sarà malato di morbo tremens...

            Ma dove lo trovo l'orientamento dei sensori?
            scorri il file v1.7 finchè trovi qualcosa del genere:
            // modifiche assi Acc
            // accADC[ROLL] = - ((rawADC_ADXL345[3]<<8) | rawADC_ADXL345[2]);//roll
            // accADC[PITCH] = ((rawADC_ADXL345[1]<<8) | rawADC_ADXL345[0]);//pich
            // accADC[YAW] = - ((rawADC_ADXL345[5]<<8) | rawADC_ADXL345[4]);

            accADC[ROLL] = ((rawADC_ADXL345[3]<<8) | rawADC_ADXL345[2]);//roll
            accADC[PITCH] = ((rawADC_ADXL345[1]<<8) | rawADC_ADXL345[0]);//pich
            accADC[YAW] = - ((rawADC_ADXL345[5]<<8) | rawADC_ADXL345[4]);



            // modifiche assi gyro
            //gyroADC[ROLL] = + ( ((rawADC_ITG3200[2]<<8) | rawADC_ITG3200[3])/5/4 );//roll
            //gyroADC[PITCH] = - ( ((rawADC_ITG3200[0]<<8) | rawADC_ITG3200[1])/5/4 );//pich
            //gyroADC[YAW] = - ( ((rawADC_ITG3200[4]<<8) | rawADC_ITG3200[5])/5/4 );

            gyroADC[ROLL] = - ( ((rawADC_ITG3200[0]<<8) | rawADC_ITG3200[1])/5/4 );//pich
            gyroADC[PITCH] = ( ((rawADC_ITG3200[2]<<8) | rawADC_ITG3200[3])/5/4 );//roll
            gyroADC[YAW] = - ( ((rawADC_ITG3200[4]<<8) | rawADC_ITG3200[5])/5/4 );
            }
            Posta un video della GUI e del quad in cui inclini il quad in un verso e lo tieni così per almeno 4-5 secondi.
            AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

            Commenta


            • @magnetron1 in tutte le FreeIMU tutti gli assi dei sensori sono allineati a livello hardware. Poi pero' come ho segnalato sul forum MultiWii, invece di leggere il dato grezzo, introducono delle rotazioni a livello di lettura del sensore, che quindi e' gia' sfasato rispetto a quello degli assi grezzi. Leggi bene quel post guardando il codice.. vedrai che quello che fanno non c'ha molto senso.

              Commenta


              • Ho trovato questo, ma quello del WM+ non lo trovo...

                // **************
                // contribution from Point65 and mgros (rc-grooups)
                // BMA020 I2C
                // **************
                // I2C adress: 0x70 (8bit)
                #if defined(BMA020)
                static uint8_t rawADC_BMA020[6];

                void i2c_ACC_init(){
                byte control;

                i2c_rep_start(0x70); // I2C write direction
                i2c_write(0x15); //
                i2c_write(0x80); // Write B10000000 at 0x15 init BMA020

                i2c_rep_start(0x70); //
                i2c_write(0x14); //
                i2c_write(0x71); //
                i2c_rep_start(0x71); //
                control = i2c_readNak();

                control = control >> 5; //ensure the value of three fist bits of reg 0x14 see BMA020 documentation page 9
                control = control << 2;
                control = control | 0x00; //Range 2G 00
                control = control << 3;
                control = control | 0x00; //Bandwidth 25 Hz 000

                i2c_rep_start(0x70); // I2C write direction
                i2c_write(0x14); // Start multiple read at reg 0x32 ADX
                i2c_write(control);

                acc_1G = 240;
                acc_25deg = 101; // = acc_1G * sin(25 deg)
                accPresent = 1;
                }

                void i2c_ACC_getADC(){
                TWBR = ((16000000L / 400000L) - 16) / 2;
                i2c_rep_start(0x70); // I2C write direction
                i2c_write(0x02); // Start multiple read at reg 0x32 ADX
                i2c_write(0x71);
                i2c_rep_start(0x71); //I2C read direction => 1
                for(uint8_t i = 0; i < 5; i++) {
                rawADC_BMA020[i]=i2c_readAck();}
                rawADC_BMA020[5]= i2c_readNak();

                accADC[ROLL] = (((rawADC_BMA020[1])<<8) | ((rawADC_BMA020[0]>>1)<<1))/64;
                accADC[PITCH] = (((rawADC_BMA020[3])<<8) | ((rawADC_BMA020[2]>>1)<<1))/64;
                accADC[YAW] = -(((rawADC_BMA020[5])<<8) | ((rawADC_BMA020[4]>>1)<<1))/64;
                }
                #endif
                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 fvaresano Visualizza il messaggio
                  @magnetron1 in tutte le FreeIMU tutti gli assi dei sensori sono allineati a livello hardware. Poi pero' come ho segnalato sul forum MultiWii, invece di leggere il dato grezzo, introducono delle rotazioni a livello di lettura del sensore, che quindi e' gia' sfasato rispetto a quello degli assi grezzi. Leggi bene quel post guardando il codice.. vedrai che quello che fanno non c'ha molto senso.
                  Si Si, infatti il problema non è la FreeIMU, bensiì come nel software è trattato il dato letto... ed è quello che non è chiaro...
                  AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                  Commenta


                  • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                    Ho trovato questo, ma quello del WM+ non lo trovo...

                    // **************
                    // contribution from Point65 and mgros (rc-grooups)
                    // BMA020 I2C
                    // **************
                    // I2C adress: 0x70 (8bit)
                    #if defined(BMA020)
                    static uint8_t rawADC_BMA020[6];

                    void i2c_ACC_init(){
                    byte control;

                    i2c_rep_start(0x70); // I2C write direction
                    i2c_write(0x15); //
                    i2c_write(0x80); // Write B10000000 at 0x15 init BMA020

                    i2c_rep_start(0x70); //
                    i2c_write(0x14); //
                    i2c_write(0x71); //
                    i2c_rep_start(0x71); //
                    control = i2c_readNak();

                    control = control >> 5; //ensure the value of three fist bits of reg 0x14 see BMA020 documentation page 9
                    control = control << 2;
                    control = control | 0x00; //Range 2G 00
                    control = control << 3;
                    control = control | 0x00; //Bandwidth 25 Hz 000

                    i2c_rep_start(0x70); // I2C write direction
                    i2c_write(0x14); // Start multiple read at reg 0x32 ADX
                    i2c_write(control);

                    acc_1G = 240;
                    acc_25deg = 101; // = acc_1G * sin(25 deg)
                    accPresent = 1;
                    }

                    void i2c_ACC_getADC(){
                    TWBR = ((16000000L / 400000L) - 16) / 2;
                    i2c_rep_start(0x70); // I2C write direction
                    i2c_write(0x02); // Start multiple read at reg 0x32 ADX
                    i2c_write(0x71);
                    i2c_rep_start(0x71); //I2C read direction => 1
                    for(uint8_t i = 0; i < 5; i++) {
                    rawADC_BMA020[i]=i2c_readAck();}
                    rawADC_BMA020[5]= i2c_readNak();

                    accADC[ROLL] = (((rawADC_BMA020[1])<<8) | ((rawADC_BMA020[0]>>1)<<1))/64;
                    accADC[PITCH] = (((rawADC_BMA020[3])<<8) | ((rawADC_BMA020[2]>>1)<<1))/64;
                    accADC[YAW] = -(((rawADC_BMA020[5])<<8) | ((rawADC_BMA020[4]>>1)<<1))/64;
                    }
                    #endif
                    posti il video che ti ho chiesto?
                    AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                    Commenta


                    • Lo sto caricando ma non ho filmato il Quad se no ci metto troppo a montare il tutto...

                      Comunque dove lo metti stà... quindi i sensori dovrebbero essere giusti...

                      Sulla scheda c'è il disegno di come montare i sensori, e quindi è difficile sbagliare...

                      eccolo:

                      In ordine d'inclinazione: AVANTI, INDIETRO, SINISTRA, DESTRA


                      Ultima modifica di Jonny-Paletta; 23 luglio 11, 17:36.
                      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
                        Lo sto caricando ma non ho filmato il Quad se no ci metto troppo a montare il tutto...

                        ok!
                        guardavo le foto della tua scheda, sembra che il sensore BMA020 ed il WMP+ siano orientati correttamente verso il senso di marcia.
                        Bha, vediamo il video.
                        AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                        Commenta


                        • lo trovi nel mio ultimo post...
                          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
                            Lo sto caricando ma non ho filmato il Quad se no ci metto troppo a montare il tutto...

                            Comunque dove lo metti stà... quindi i sensori dovrebbero essere giusti...

                            Sulla scheda c'è il disegno di come montare i sensori, e quindi è difficile sbagliare...

                            eccolo:

                            In ordine d'inclinazione: AVANTI, INDIETRO, SINISTRA, DESTRA


                            Ok, l'orientamento è corretto sia del WM+ che del BMA020.
                            Ora controlla che i motori siano connessi ai pin giusti della scheda di pilotaggio e che le eliche girino in senso giusto.
                            Disattiva l'accelerometro dalla define BMA020 (commentala) e prova ad armare i motori facendo la prova in mano (occhio alla sicurezza - che non voglio nessuno sulla coscienza!!!)
                            AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                            Commenta


                            • Provato ma non cambia nulla...

                              Mi sono accorto che:

                              se inclino avanti si sente che mi contrasta
                              se inclino indietro si sente che mi contrasta
                              se inclino a sinistra sembra che mi aiuti ad andare a sinistra
                              se inclino a destra sembra che mi aiuti ad andare a destra...

                              ma forse è solo una mia impressione..,
                              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
                                Provato ma non cambia nulla...

                                Mi sono accorto che:

                                se inclino avanti si sente che mi contrasta
                                se inclino indietro si sente che mi contrasta
                                se inclino a sinistra sembra che mi aiuti ad andare a sinistra
                                se inclino a destra sembra che mi aiuti ad andare a destra...

                                ma forse è solo una mia impressione..,
                                Anche disattivando il BMA020 ed usando solo il WM+?
                                AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                                Commenta

                                Sto operando...
                                X