annuncio

Comprimi
Ancora nessun annuncio.

MultiWii Quad! Alternativa ad Aeroquad/Baronpilot con sensori wii

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

  • @magnetron1 ottimo! Se riesci pure a sistemare l'orientazione del magnetometro fai un grosso favore a tutti!

    Commenta


    • Fabio nei prossimi due giorni, meteo permettendo, proverò il volato e la modalità stabile. Al banco proverò il magnetometro, credo che se dovessi per logica seguire la procedura che mi sono "inventato" per tarare il gyro e l'acc devo considerare che se punto a nord il muso del quad dovrei avere sull'asse x un valore prossimo a 0, orientando poi il quad verso destra tale valore dovrebbe crescere e verso sinistra dovrebbe diminuire. Sbagliando l'orientamento il quad dovrebbe ruotare su se stesso alla ricerca del punto... proverò. Visto che ci sono vorrei poi passare all'altimetro di precisione, ma non conoscendo bene il sensore vorrei una mano da te così da poter mettere mani alla routine che lo gestisce e passarne una versione semistabile ad Alex, che ne dici?

      Ultima modifica di magnetron1; 24 luglio 11, 15:16.
      AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

      Commenta


      • Originariamente inviato da magnetron1 Visualizza il messaggio
        Senti, ma dove hai preso le eliche colorate?
        Che misura sono?
        Le si trova 10x4.5 (2+2) alternativamente colorate?
        Ciao maghetron1

        le eliche verdi le trovi quì

        Flyduino - Propeller

        Ciao

        Diego

        Commenta


        • Originariamente inviato da Elmessicano Visualizza il messaggio
          Ciao maghetron1

          le eliche verdi le trovi quì

          Flyduino - Propeller

          Ciao

          Diego
          Azz...
          Bellissime!!!
          Grazie Diego.
          AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

          Commenta


          • Originariamente inviato da magnetron1 Visualizza il messaggio
            Senti, ma dove hai preso le eliche colorate?
            Che misura sono?
            Le si trova 10x4.5 (2+2) alternativamente colorate?
            Ho visto che mi hanno preceduto, comunque anche io le ho prese li...
            FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
            FLYDRONE AXN FPV
            GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

            Commenta


            • Più tardi provo a settare i PID, e magari faccio il primo volo di collaudo...

              Io avevo paura a tenere il quad in mano, ma, una volta capito che movimenti fà sai come gestirlo, basta tenerlo saldamente !!!

              Di fatti dopo le prime 2 o 3 volte ho dovuto fare altre prove per trovare il problema, ma armando i motori sapevo a cosa andavo incontro...

              Importante è anche alzare il gas mooolto lentamente e attendere se c'è qualche comportamento anomalo del quad per non incappare in qualche incidente o ferimento... Io ad esempio usavo un cavo USB lungo e tenevo il quad al di sopra della mia testa...
              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 talkobit2
                Salve a tutti! qualcuno mi puo dare indicazioni su come collegare una radio? ho dubbi sul voltaggio... devo passare una rx di un elicottero che va con batterie 11.1 ad un aereo che va con bat 7.4... però ho letto che la rx funziona con 4.8v che significa?
                e scusase per l'introzuzione...
                Senti sei un pò fuori topic qui... sei nella sezioen sbagliata del forum.
                Dovresti scrivere il tuo post qui: Radiocomandi - BaroneRosso.it - Forum Modellismo
                Cerchiamo di tenere pulita questa discussione che riguarda unicamente la piattaforma MultiWii.
                Vediamo se i moderatori ci assistono e magari ripuliscono questo messaggio. Grazie.
                AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                Commenta


                • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                  Più tardi provo a settare i PID, e magari faccio il primo volo di collaudo...

                  Io avevo paura a tenere il quad in mano, ma, una volta capito che movimenti fà sai come gestirlo, basta tenerlo saldamente !!!

                  Di fatti dopo le prime 2 o 3 volte ho dovuto fare altre prove per trovare il problema, ma armando i motori sapevo a cosa andavo incontro...

                  Importante è anche alzare il gas mooolto lentamente e attendere se c'è qualche comportamento anomalo del quad per non incappare in qualche incidente o ferimento... Io ad esempio usavo un cavo USB lungo e tenevo il quad al di sopra della mia testa...
                  Il trucco, se così si può dire, è tenere molto saldamente e mai lasciare andare.
                  Comunque dall'esperienza fatta questa mattina posso dire che il pid di default è già abbastanza ottimizzato anche se non può ovviamente andare bene per tutti, ogni frame ha il suo comportamento dettato anche dal tipo di motore, regolatore, elica e configurazione meccanica.
                  Un buon inizio è sicuramente il P=2 o 3 la I=0 e la D=0, prova così e vedi.
                  AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                  Commenta


                  • Dici che se lascio tutti i valori di defaul e provo a farlo volare è troppo rischioso?

                    Ovviamente proverò prima ancora al "banco".

                    Comunque ripetiamolo ancora, fate attenzione a fare le prove al banco, NON ABBIAMO A CHE FARE CON DEI GIOCATTOLI !!!
                    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
                      Dici che se lascio tutti i valori di defaul e provo a farlo volare è troppo rischioso?

                      Ovviamente proverò prima ancora al "banco".

                      Comunque ripetiamolo ancora, fate attenzione a fare le prove al banco, NON ABBIAMO A CHE FARE CON DEI GIOCATTOLI !!!
                      No, rischioso non tanto, potrebbe staccare e derivare subito da terra.
                      Se però sei sicuro che adesso è tutto ok, motori, connessioni, sensori e comandi dal radiocomando corrispondono, l'orientamento è stato fatto allora con uno slancio di fiducia puoi abbassare il PID a P=2 o 3 e provare.
                      Tieniti lontano qualche metro per sicurezza e prova, cerca di tenerlo poco al suolo, cerca di staccare almeno 20, 30cm perchè l'effetto suolo è moltiplicato da 4 rotori. Se poi il pid ha la componente I attiva allora comincia ad accumulare errore. Io ho fatto la prima prova con i PID di default dopo essermi assicurato che i motori rispondevano, l'orientamento fosse corretto (e dai video che hai postato, il tuo orientamento sembra corretto).
                      Fai un video di questo primo "collaudo" e postalo, così vediamo...
                      Quando conti di provarci?
                      AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                      Commenta


                      • Sinceramente volevo provare ancora oggi, ma c'è un vento perfido e quindi mi toccherà rimandare... anche perchè essendo al primo volo di collaudo e non conoscendo il comportamento di un multirotore...

                        Ok volavo con elicotteri, ma son fermo ormai da qualche anno, anche se le basi ormai ti restano
                        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
                          Sinceramente volevo provare ancora oggi, ma c'è un vento perfido e quindi mi toccherà rimandare... anche perchè essendo al primo volo di collaudo e non conoscendo il comportamento di un multirotore...

                          Ok volavo con elicotteri, ma son fermo ormai da qualche anno, anche se le basi ormai ti restano
                          Infatti pilotare un multirotore è esattamente come pilotare un elicottero, almeno nel pilotaggio di base.
                          Be, allora quando collaudi ci vuole il video.
                          Io appena riesco ne farò uno.
                          AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                          Commenta


                          • Ho giusto provato se tutto funziona a dovere con i PID di default al banco, ora che i motori sono OK è tutta un altra storia...

                            I comandi impartiti dagli stick sono giusti, l'asse del YAW è più morbido a contrastare che il pitch e il roll, è giusto?
                            FLYDRONE X4M - FLYDRONE X6M spyder -FLYDRONE mini
                            FLYDRONE AXN FPV
                            GOPRO HERO2 - FUTABA T9Z WC2 - FRSKY 2.4GHZ www.Flydrones.ch

                            Commenta


                            • Bussola orientamento

                              Ciao magnetron1

                              Allora per adare sul discorso della bussola o controllato
                              la posizione del cip saldato sulla scheda di fabio ed e messo nella direzione
                              guista,fabio non sbaglia poi o trovato dei video sul web di come dovrebbe funzionare la bussola
                              io monto HMC5843 quando lo colibro con le varie rotazioni la frecceta nera si mette
                              un po dove vuole adesso qardando i video solo uno sembra funzionare bene
                              adesso se il cip di fabio e giusto anche il mio e nel senso giusto (x,y,z)
                              vanno lasciti come sono cioe mi spiego o trovato il codice originale per la FREEIMUv035_MS
                              prima ancora che cualcuno lo modifichi e poi lo mette nella DEV.

                              Come puoi vedere tutto sotto x,y,z non sono modificate percio ne dedugo
                              che se la freccetta dopo la calibrazione non simette nella direzione consueta
                              cio direzione avanti avedo cura di partire tenendo il mezzo in mano nella direzione di marcia
                              se poi parti con la calibrazione mettendo il mezzo nella direzione opposta o in qulugue
                              altra posizione la la freccetta nera dovrebbe ritorna nen senso di marcia giustu, e guesto
                              che ancora non riesco a capire, attualmente io con varie prove e indiferente come parto con la calibrazione
                              non si mette mai nelle posizine di marcia sara perche chi a fatto il video si e trovato con le cordinate
                              giuste cioe a nord e noi qui non abbimo le stesse cordinate.

                              comunque per concludere la frecetta nera attualmente io lo nel l'anglo destro se messa li
                              quando lo faccio sollevare adesso solo in casa tenendolo con una codicella sempre in sicurezza
                              quando attivo la bussola lui tenda a stare fermo dove si trovava al momento che lo o attivato
                              se poi lo muovo con lo stik della radio o con un colpetto lui torno lentamente dove era sempre
                              nel punto deve e stato attivato.

                              Ma speriamo bene fabio mi a scritto che FREEIMUv035_MS non e sponibile pe almeno 4 settimane.


                              vIDEO 1 ‪Magnetometertest with FFImu‬‏ - YouTube

                              VIDEO 2 ‪mwc - gui , baro‬‏ - YouTube

                              VIDEO 3 ‪FFIMU v1.22 compass/mag‬‏ - YouTube


                              Qesto e il sito dove si trova il codice:MultiWii • View topic - Support for FreeIMU v0.3.5* and MS5611-01BA

                              Index: Sensors.pde
                              ================================================== =================
                              --- Sensors.pde (revision 195)
                              +++ Sensors.pde (working copy)
                              @@ -28,6 +28,11 @@
                              //#define ITG3200_ADDRESS 0XD2
                              #endif

                              +#if !defined(MS561101BA_ADDRESS)
                              + #define MS561101BA_ADDRESS 0xEE //CBR=0 0xEE I2C address when pin CSB is connected to LOW (GND)
                              + //#define MS561101BA_ADDRESS 0xEF //CBR=1 0xEF I2C address when pin CSB is connected to HIGH (VCC)
                              +#endif
                              +
                              uint8_t rawADC[6];
                              static uint32_t neutralizeTime = 0;

                              @@ -202,6 +207,7 @@
                              // ************************************************** ************************************************** ********

                              #if defined(BMP085)
                              +#define BMP085_ADDRESS 0xEE
                              static struct {
                              // sensor registers from the BOSCH BMP085 datasheet
                              int16_t ac1, ac2, ac3, b1, b2, mb, mc, md;
                              @@ -239,9 +245,9 @@
                              // read a 16 bit register
                              int16_t i2c_BMP085_readIntRegister(uint8_t r) {
                              union {int16_t val; uint8_t raw[2]; } data;
                              - i2c_rep_start(0xEE + 0);
                              + i2c_rep_start(BMP085_ADDRESS + 0);
                              i2c_write(r);
                              - i2c_rep_start(0xEE + 1);//I2C read direction => 1
                              + i2c_rep_start(BMP085_ADDRESS + 1);//I2C read direction => 1
                              data.raw[1] = i2c_readAck();
                              data.raw[0] = i2c_readNak();
                              // i2c_rep_stop();
                              @@ -250,22 +256,22 @@

                              // read uncompensated temperature value: send command first
                              void i2c_BMP085_UT_Start() {
                              - i2c_writeReg(0xEE,0xf4,0x2e);
                              - i2c_rep_start(0xEE + 0);
                              + i2c_writeReg(BMP085_ADDRESS,0xf4,0x2e);
                              + i2c_rep_start(BMP085_ADDRESS + 0);
                              i2c_write(0xF6);
                              }

                              // read uncompensated pressure value: send command first
                              void i2c_BMP085_UP_Start () {
                              - i2c_writeReg(0xEE,0xf4,0x34+(OSS<<6)); // control register value for oversampling setting 3
                              - i2c_rep_start(0xEE + 0); //I2C write direction => 0
                              + i2c_writeReg(BMP085_ADDRESS,0xf4,0x34+(OSS<<6)); // control register value for oversampling setting 3
                              + i2c_rep_start(BMP085_ADDRESS + 0); //I2C write direction => 0
                              i2c_write(0xF6);
                              }

                              // read uncompensated pressure value: read result bytes
                              // the datasheet suggests a delay of 25.5 ms (oversampling settings 3) after the send command
                              void i2c_BMP085_UP_Read () {
                              - i2c_rep_start(0xEE + 1);//I2C read direction => 1
                              + i2c_rep_start(BMP085_ADDRESS + 1);//I2C read direction => 1
                              bmp085_ctx.up.raw[2] = i2c_readAck();
                              bmp085_ctx.up.raw[1] = i2c_readAck();
                              bmp085_ctx.up.raw[0] = i2c_readNak();
                              @@ -275,7 +281,7 @@
                              // read uncompensated temperature value: read result bytes
                              // the datasheet suggests a delay of 4.5 ms after the send command
                              void i2c_BMP085_UT_Read() {
                              - i2c_rep_start(0xEE + 1);//I2C read direction => 1
                              + i2c_rep_start(BMP085_ADDRESS + 1);//I2C read direction => 1
                              bmp085_ctx.ut.raw[1] = i2c_readAck();
                              bmp085_ctx.ut.raw[0] = i2c_readNak();
                              // i2c_rep_stop();
                              @@ -337,6 +343,144 @@
                              }
                              #endif

                              +
                              +#if defined(MS561101BA)
                              +
                              +// registers of the device
                              +#define MS561101BA_PRESSURE 0x40
                              +#define MS561101BA_TEMPERATURE 0x50
                              +#define MS561101BA_RESET 0x1E
                              +
                              +// D1 and D2 result size (bytes)
                              +#define MS561101BA_D1D2_SIZE 3
                              +
                              +// OSR (Over Sampling Ratio) constants
                              +#define MS561101BA_OSR_256 0x00
                              +#define MS561101BA_OSR_512 0x02
                              +#define MS561101BA_OSR_1024 0x04
                              +#define MS561101BA_OSR_2048 0x06
                              +#define MS561101BA_OSR_4096 0x08
                              +
                              +static struct {
                              + // sensor registers from the MS561101BA datasheet
                              + uint16_t c1, c2, c3, c4, c5, c6;
                              + union {uint32_t val; uint8_t raw[4]; } ut; //uncompensated T
                              + union {uint32_t val; uint8_t raw[4]; } up; //uncompensated P
                              + uint8_t state;
                              + uint32_t deadline;
                              +} ms561101ba_ctx;
                              +#define OSR MS561101BA_OSR_4096
                              +
                              +void i2c_MS561101BA_reset(){
                              + i2c_writeReg(MS561101BA_ADDRESS, MS561101BA_RESET, 0);
                              +}
                              +
                              +void i2c_MS561101BA_readCalibration(){
                              + delay(10);
                              + ms561101ba_ctx.c1 = i2c_MS561101BA_readIntRegister(0xA2);
                              + ms561101ba_ctx.c2 = i2c_MS561101BA_readIntRegister(0xA4);
                              + ms561101ba_ctx.c3 = i2c_MS561101BA_readIntRegister(0xA6);
                              + ms561101ba_ctx.c4 = i2c_MS561101BA_readIntRegister(0xA8);
                              + ms561101ba_ctx.c5 = i2c_MS561101BA_readIntRegister(0xAA);
                              + ms561101ba_ctx.c6 = i2c_MS561101BA_readIntRegister(0xAC);
                              +}
                              +
                              +void Baro_init() {
                              + delay(10);
                              + i2c_MS561101BA_reset();
                              + delay(10);
                              + i2c_MS561101BA_readCalibration();
                              + i2c_MS561101BA_UT_Start();
                              + delay(10);
                              + i2c_MS561101BA_UT_Read();
                              +}
                              +
                              +// read a 16 bit register
                              +int16_t i2c_MS561101BA_readIntRegister(uint8_t r) {
                              + union {int16_t val; uint8_t raw[2]; } data;
                              + i2c_rep_start(MS561101BA_ADDRESS + 0);
                              + i2c_write(r);
                              + i2c_rep_start(MS561101BA_ADDRESS + 1);//I2C read direction => 1
                              + data.raw[1] = i2c_readAck();
                              + data.raw[0] = i2c_readNak();
                              +// i2c_rep_stop();
                              + return data.val;
                              +}
                              +
                              +// read uncompensated temperature value: send command first
                              +void i2c_MS561101BA_UT_Start() {
                              + i2c_writeReg(MS561101BA_ADDRESS, MS561101BA_TEMPERATURE + OSR, 0);
                              + //i2c_rep_start(MS561101BA_ADDRESS + 0);
                              + //i2c_write(0xF6);
                              +}
                              +
                              +// read uncompensated pressure value: send command first
                              +void i2c_MS561101BA_UP_Start () {
                              + i2c_writeReg(MS561101BA_ADDRESS,MS561101BA_PRESSUR E + OSR, 0); // control register value for oversampling setting 3
                              + //i2c_rep_start(MS561101BA_ADDRESS + 0); //I2C write direction => 0
                              + //i2c_write(0xF6);
                              +}
                              +
                              +// read uncompensated pressure value: read result bytes
                              +// the datasheet suggests a delay of 25.5 ms (oversampling settings 3) after the send command
                              +void i2c_MS561101BA_UP_Read () {
                              + i2c_rep_start(MS561101BA_ADDRESS + 1);//I2C read direction => 1
                              + ms561101ba_ctx.up.raw[2] = i2c_readAck();
                              + ms561101ba_ctx.up.raw[1] = i2c_readAck();
                              + ms561101ba_ctx.up.raw[0] = i2c_readNak();
                              +// i2c_rep_stop();
                              +}
                              +
                              +// read uncompensated temperature value: read result bytes
                              +// the datasheet suggests a delay of 4.5 ms after the send command
                              +void i2c_MS561101BA_UT_Read() {
                              + i2c_rep_start(MS561101BA_ADDRESS + 0);
                              + i2c_write(0);
                              + i2c_rep_start(MS561101BA_ADDRESS + 1);//I2C read direction => 1
                              + ms561101ba_ctx.ut.raw[2] = i2c_readAck();
                              + ms561101ba_ctx.ut.raw[1] = i2c_readAck();
                              + ms561101ba_ctx.ut.raw[0] = i2c_readNak();
                              +// i2c_rep_stop();
                              +}
                              +
                              +void i2c_MS561101BA_Calculate() {
                              + // see datasheet page 7 for formulas
                              + int32_t dT = ms561101ba_ctx.ut.val - ms561101ba_ctx.c5 * pow(2, 8);
                              + int64_t off = ms561101ba_ctx.c2 * pow(2,16) + (ms561101ba_ctx.c4 * dT) / pow(2, 7);
                              + int64_t sens = ms561101ba_ctx.c1 * pow(2,15) + (ms561101ba_ctx.c3 * dT) / pow(2,8);
                              + pressure = (ms561101ba_ctx.ut.val * (sens) / pow(2, 21) - off) / pow(2, 15);
                              +}
                              +
                              +void Baro_update() {
                              + if (currentTime < ms561101ba_ctx.deadline) return;
                              + ms561101ba_ctx.deadline = currentTime;
                              + TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz, MS5611 is ok with this speed
                              + switch (ms561101ba_ctx.state) {
                              + case 0:
                              + i2c_MS561101BA_UT_Start();
                              + ms561101ba_ctx.state++; ms561101ba_ctx.deadline += 10000;
                              + break;
                              + case 1:
                              + i2c_MS561101BA_UT_Read();
                              + ms561101ba_ctx.state++;
                              + break;
                              + case 2:
                              + i2c_MS561101BA_UP_Start();
                              + ms561101ba_ctx.state++; ms561101ba_ctx.deadline += 10000;
                              + break;
                              + case 3:
                              + i2c_MS561101BA_UP_Read();
                              + i2c_MS561101BA_Calculate();
                              + BaroAlt = (1.0f - pow(pressure/101325.0f, 0.190295f)) * 44330.0f;
                              + ms561101ba_ctx.state = 0;
                              + baroNewData = 1;
                              + //ms561101ba_ctx.deadline += 20000;
                              + break;
                              + }
                              +}
                              +#endif
                              +
                              +
                              // ************************************************** ************************************************** ********
                              // I2C Accelerometer ADXL345
                              // ************************************************** ************************************************** ********
                              Index: def.h
                              ================================================== =================
                              --- def.h (revision 195)
                              +++ def.h (working copy)
                              @@ -23,18 +23,18 @@
                              #define ITG3200_ADDRESS 0XD0
                              #endif

                              -#if defined(FREEIMUv01)
                              +#if defined(FREEIMUv01) || defined(FREEIMUv02)
                              #define ITG3200
                              #define ADXL345
                              #define HMC5843
                              - #define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -Y; accADC[PITCH] = X; accADC[YAW] = Z;}
                              + #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;}
                              #define ADXL345_ADDRESS 0xA6
                              #undef INTERNAL_I2C_PULLUPS
                              #endif

                              -#if defined(FREEIMU)
                              +#if defined(FREEIMUv03)
                              #define ITG3200
                              #define ADXL345
                              #define HMC5883
                              @@ -42,8 +42,24 @@
                              #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;}
                              #define ADXL345_ADDRESS 0xA6
                              + #undef INTERNAL_I2C_PULLUPS
                              #endif

                              +#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
                              +
                              #if defined(PIPO)
                              #define L3G4200D
                              #define ADXL345
                              @@ -95,7 +111,7 @@
                              #define GYRO 0
                              #endif

                              -#if defined(BMP085)
                              +#if defined(BMP085) || defined(MS561101BA)
                              #define BARO 1
                              #else
                              #define BARO 0
                              Index: config.h
                              ================================================== =================
                              --- config.h (revision 195)
                              +++ config.h (working copy)
                              @@ -72,8 +72,14 @@

                              //#define FFIMUv1 //first 9DOF+baro board from Jussi, with HMC5843
                              //#define FFIMUv2 //second version of 9DOF+baro board from Jussi, with HMC5883
                              -//#define FREEIMUv01 //first version of 9DOF board from Fabio
                              -//#define FREEIMU //later version of 9DOF board from Fabio
                              +// FreeIMU sensors boards from Fabio Varesano.
                              +// See FreeIMU: a libre 9DOM/DOF inertial measurement unit | Varesano.net to know your correct version
                              +//#define FREEIMUv01 // FreeIMU v0.1
                              +//#define FREEIMUv02 // FreeIMU v0.2
                              +//#define FREEIMUv03 // FreeIMU v0.3 and v0.3.1
                              +//#define FREEIMUv035 // FreeIMU v0.3.5
                              +//#define FREEIMUv035_MS // FreeIMU v0.3.5_MS
                              +//#define FREEIMUv035_BMP // FreeIMU v0.3.5_MS
                              //#define PIPO //9DOF board from erazz
                              //#define QUADRINO //full FC board 9DOF+baro board from witespy
                              //#define ALLINONE //full FC board or standalone 9DOF+baro board from CSG_EU
                              @@ -93,6 +99,7 @@

                              /* I2C barometer */
                              //#define BMP085
                              +//#define MS561101BA

                              /* I2C magnetometer */
                              //#define HMC5843

                              Commenta


                              • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                                Ho giusto provato se tutto funziona a dovere con i PID di default al banco, ora che i motori sono OK è tutta un altra storia...

                                I comandi impartiti dagli stick sono giusti, l'asse del YAW è più morbido a contrastare che il pitch e il roll, è giusto?
                                Be, si in linea di massima si. Il pitch e roll agiscono direttamente sui motori e la loro reazione è mediamente alta, mentre il comando della coda (yaw) agisce variando dinamicamente la velocità dei motori per ottenere l'effetto della rotazione come scompenso dei una coppia di motori ma per mantenerne poi il bilanciamento deve compensare con gli altri e questo è il motivo per cui la reazione del comando del yaw è "molto" lenta se paragonata agli altri, quindi è normale.
                                AERODRONE M4X - AERODRONE M6S (revamping) - AERODRONE M4H - i miei video

                                Commenta

                                Sto operando...
                                X