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 broken Visualizza il messaggio
    Come piu' "if"... io ho visto solo degli switch di compilazione...
    Anche la lunghezza del codice sara' in funzione di quello che hai incluso.
    gli switch per quanto più ottimizzati in assembly degli if sono comunque istruzioni in più che la MCU deve compiere.

    intendo che se ci fosse solo 1 hardware sarebbe tutto più ottimizzato e veloce.

    poi diciamo che alex è molto carente come elettronica, i pullup interni dell'atmega sono troppo alti (oltre 20k) per l'i2c.
    vorrei farvi notare un post sul forum di arduino:
    Official topic: multicotteri con arduino!

    visione all'oscilloscopio digitale dei segnali I2C con vari pullup e a che frequenza.

    a voi controllare quale segnale è il più nitido.

    molte cose su multiwii.com non sono riportate od addirittura riportate errate!

    ciao
    lol21
    http://www.electroit.tk/ - il sito sull'elettronica tutto italiano

    Commenta


    • @lol guard che gli #if sono istruzioni per il preprocessor, servono al momento della compilazione, non durante l'esecuzione del codice.

      Con il codice attuale del multiwii, anche se fosse presente codice per gestire 1000 sensori, se ne abiliti solo uno, viene compilato solo il codice per quel sensore e basta. Il tempo di ciclo sara' esattamente invariato.

      Commenta


      • Originariamente inviato da fvaresano Visualizza il messaggio
        @lol guard che gli #if sono istruzioni per il preprocessor, servono al momento della compilazione, non durante l'esecuzione del codice.

        Con il codice attuale del multiwii, anche se fosse presente codice per gestire 1000 sensori, se ne abiliti solo uno, viene compilato solo il codice per quel sensore e basta. Il tempo di ciclo sara' esattamente invariato.
        ora non ho il codice sotto mano tuttavia ho notato nelle farie fasi diversi if e non #if che come dici tu sono preprocessor.

        quando avrò tempo e voglia mi metterò dietro e con l'aiuto dei miei professori metterò a posto un codice funzionante per 8bit e completamente ottimizzato (professori di aeronautica)

        ciao
        lol21
        http://www.electroit.tk/ - il sito sull'elettronica tutto italiano

        Commenta


        • Originariamente inviato da lol21 Visualizza il messaggio
          ora non ho il codice sotto mano tuttavia ho notato nelle farie fasi diversi if e non #if che come dici tu sono preprocessor.

          quando avrò tempo e voglia mi metterò dietro e con l'aiuto dei miei professori metterò a posto un codice funzionante per 8bit e completamente ottimizzato (professori di aeronautica)

          ciao
          lol21
          Stai facendo un po' di confusione....come ha scritto correttamente Fabio gli #if sono switch di compilazione e servono per includere o escludere parti di codice. Poi non ho capito cosa intendi per "codice funzionante per 8bit e completamente ottimizzato"
          Il codice del multiwii è ottimizzato per uc a 8 bit, anzi direi ottimizzato per questo core cioe' AVR.
          A questo in parte ci pensa il compilatore per il resto dovrebbe pensarci il softwareista.
          Non mi pare di aver visto nel codice cose strane...non so.. uso di variabili improprie o altro. Forse in un paio di punti si è usato il /2 o /4 che ottimizzando (sempre se non ci ha gia' pensato il compilatore) puoi scriverlo con uno shift a dx di 1 o 2 bit. Cosa che l'AVR fa in un colpo di clock...Comunque l'AVR non è un comune uC 8 bit.... ma è un potente uC 8 bit che a volte è piu' veloce di tanti uc a 16 bit magari clockati al doppio.

          Saluti.
          Piero.

          Commenta


          • Originariamente inviato da lol21 Visualizza il messaggio
            gli switch per quanto più ottimizzati in assembly degli if sono comunque istruzioni in più che la MCU deve compiere.

            intendo che se ci fosse solo 1 hardware sarebbe tutto più ottimizzato e veloce.

            poi diciamo che alex è molto carente come elettronica, i pullup interni dell'atmega sono troppo alti (oltre 20k) per l'i2c.
            vorrei farvi notare un post sul forum di arduino:
            Official topic: multicotteri con arduino!

            visione all'oscilloscopio digitale dei segnali I2C con vari pullup e a che frequenza.

            a voi controllare quale segnale è il più nitido.

            molte cose su multiwii.com non sono riportate od addirittura riportate errate!

            ciao
            lol21
            Si..!!! qui posso darti ragione.....come elettronica l'Alex ha qualche lacuna...basta guardare gli schemi elettrici....Per i pull-up gli addetti ai lavori lo sanno benissimo che
            non bastano 20K.Fin dagli albori mamma Philips (oggi NXP) nelle specifiche ha sempre indicato valori non superiori 3K3.
            Anche se sul mio multi, con il wm+ e pull-up da 2K2 a 400KHz visto all'oscilloscopio non è bellissimo...i fronti di salita del clock sono molto rallentati. Questo pero' penso che sia un problema legato alla capacita' parassita dei pin I2C del WM+, forse perchè non ottimizzati per il 400KHz. Se invece misuro il bus con l'accoppiata ITG3200 + BMA180 i segnali sono perfetti.

            Commenta


            • Originariamente inviato da broken Visualizza il messaggio
              Si..!!! qui posso darti ragione.....come elettronica l'Alex ha qualche lacuna...basta guardare gli schemi elettrici....Per i pull-up gli addetti ai lavori lo sanno benissimo che
              non bastano 20K.Fin dagli albori mamma Philips (oggi NXP) nelle specifiche ha sempre indicato valori non superiori 3K3.
              Anche se sul mio multi, con il wm+ e pull-up da 2K2 a 400KHz visto all'oscilloscopio non è bellissimo...i fronti di salita del clock sono molto rallentati. Questo pero' penso che sia un problema legato alla capacita' parassita dei pin I2C del WM+, forse perchè non ottimizzati per il 400KHz. Se invece misuro il bus con l'accoppiata ITG3200 + BMA180 i segnali sono perfetti.
              veramente il WMP originale nativamente funziona a 400KHz.

              invece occhio che se hai un clone magari ha già i pullup (controlla col tester) e quindi hai solo messo resistenze di troppo.

              io ho messo delle 2k.

              ciao
              lol21
              http://www.electroit.tk/ - il sito sull'elettronica tutto italiano

              Commenta


              • Ciao a tutti,
                finalmente dopo innumerevoli prove i motori si sono aramati e girano (grazie a tutti per i consigli elargiti)....MA...ho ancora qualche problemino....

                dunque, ho fatto un banchetto prova e ho notato che:

                i motori si armano sia spostando a dx lo stick del gas o quello dello YAW. Io vorrei poterli armare e disarmare solo da quello del GAS. come faccio?

                il motore posteriore sx è più lento rispetto agli altri 3. da cosa può dipendere? è un problema di programma, di PID o di radio? come faccio per farli andare tutti e 4 uguali
                (ho provato a cambiare regolatore, motore e anche segnale su arduino, ma niente, sempre lento)

                come setto i PID per un volo tranquillo? potete darmi dei parametri standard da cui poter iniziare?

                il gyro come deve essere posizionato, rispetto al senso di marcia? le foto che ci sono sul sito multiwii sono attendibili?

                secondo voi è meglio installarci subito anche l'ACC e regolare il tutto o magari posso farlo in seguito???

                grazie ancora a tutti e spero di riuscire a fare un primo voletto al più presto.

                grazie e buona serata
                Gabriele

                Commenta


                • Originariamente inviato da lol21 Visualizza il messaggio
                  veramente il WMP originale nativamente funziona a 400KHz.

                  invece occhio che se hai un clone magari ha già i pullup (controlla col tester) e quindi hai solo messo resistenze di troppo.

                  io ho messo delle 2k.

                  ciao
                  lol21
                  Scusate se mi intrometto ma dal source della 1.7
                  ci sono queste due opzioni di define quindi quello che dici forse è al contrario.

                  #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

                  Commenta


                  • Confermo la mia presenza per Bologna. Ci si vede li! Chi c'e'?

                    Commenta


                    • Servo, OmmyTree ed io dovremmo essere presenti...

                      Spero di finire anche il flyduspider (JP6X)

                      @Fabio, mi dai un occhio se è orientata giusta la FreeIMU ?


                      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
                        Confermo la mia presenza per Bologna. Ci si vede li! Chi c'e'?
                        Presente !!!
                        https://www.facebook.com/groups/247807122140/?fref=ts

                        Commenta


                        • Originariamente inviato da Jonny-Paletta Visualizza il messaggio
                          Servo, OmmyTree ed io dovremmo essere presenti...

                          Spero di finire anche il flyduspider (JP6X)

                          @Fabio, mi dai un occhio se è orientata giusta la FreeIMU ?


                          Ciao,
                          se la freccia di destra indica il verso, hai montato la freeImu al contrario

                          Saluti
                          https://www.facebook.com/groups/247807122140/?fref=ts

                          Commenta


                          • Originariamente inviato da Mayer Visualizza il messaggio
                            Scusate se mi intrometto ma dal source della 1.7
                            ci sono queste due opzioni di define quindi quello che dici forse è al contrario.

                            #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
                            Ciao,
                            quello che dici non è del tutto corretto, in quanto l'originale non funziona a 400Hz, perchè ha le resistenze di PullUp non corrette, inserendo oppurtune resistenze, funziona, ma come spiegato nel tread di Arduino.cc, non lo manderei a quella frequenza, neanche se mi pagassero.

                            saluti
                            https://www.facebook.com/groups/247807122140/?fref=ts

                            Commenta


                            • Originariamente inviato da marchino65 Visualizza il messaggio
                              Ciao,
                              quello che dici non è del tutto corretto, in quanto l'originale non funziona a 400Hz, perchè ha le resistenze di PullUp non corrette, inserendo oppurtune resistenze, funziona, ma come spiegato nel tread di Arduino.cc, non lo manderei a quella frequenza, neanche se mi pagassero.

                              saluti



                              Considerate che non si deve andare per forza a 100 o 400 KHz
                              Ho fatto delle prove con WMP+NK Originali in modalità Interleaved ed ho trovato stabile 300KHz il settaggio lo faccio dopo l'inizializzazione

                              il mio codice su Aeroquad (Custom JJ-copter):

                              //Jos I2C speed 300 Khz (must be after Init WM+ and Nunchuk)
                              #define CPU_FREQ 16000000L
                              #define TWI_FREQ_NUNCHUCK 300000L
                              TWBR = ((CPU_FREQ / TWI_FREQ_NUNCHUCK) - 16) / 2;

                              funziona senza problemi da più di un anno

                              quindi in MWii credo che basti inserire una define specifica:

                              #define I2C_SPEED 300000L

                              P.S. il solo WMP o WMP + Accelerometro I2C (es.BMA180 etc) dovrebbe andare a 400 Khz senza problemi


                              Ciao

                              Commenta


                              • Originariamente inviato da ziojos Visualizza il messaggio
                                Considerate che non si deve andare per forza a 100 o 400 KHz
                                Ho fatto delle prove con WMP+NK Originali in modalità Interleaved ed ho trovato stabile 300KHz il settaggio lo faccio dopo l'inizializzazione

                                il mio codice su Aeroquad (Custom JJ-copter):

                                //Jos I2C speed 300 Khz (must be after Init WM+ and Nunchuk)
                                #define CPU_FREQ 16000000L
                                #define TWI_FREQ_NUNCHUCK 300000L
                                TWBR = ((CPU_FREQ / TWI_FREQ_NUNCHUCK) - 16) / 2;

                                funziona senza problemi da più di un anno

                                quindi in MWii credo che basti inserire una define specifica:

                                #define I2C_SPEED 300000L

                                P.S. il solo WMP o WMP + Accelerometro I2C (es.BMA180 etc) dovrebbe andare a 400 Khz senza problemi


                                Ciao
                                non esattamente, portando comunque a 400KHz la frequenza effettiva è più bassa (a causa del chip di conversione ADC in I2C) ma comunque sarebbe più corretto settare 400KHz la velocità del bus, mettere resistenze appropriate (variano con la lunghezza dei cavi ma in media possiamo dire che tra 1k8 e 3k3 possono andare, anche se come valori ottimali sono le 2k2) togliere le resistenze interne (che sono da oltre 20k) e usare il software così.

                                purtroppo nonostante il bus I2C è stato riscritto perchè non si "inceppasse" ha portato a una minore "qualità" del segnale (andrebbe riscritto un po anche di quello).

                                secondo me multiwii ha messo le basi, dettato che equazioni usare ecc..
                                ma ora è momento di riscrivere COMPLETAMENTE il codice, verificare ciò che era stato fatto e farlo meglio, è migliorabile in molti punti anche come equazioni..

                                ciao
                                lol21
                                http://www.electroit.tk/ - il sito sull'elettronica tutto italiano

                                Commenta

                                Sto operando...
                                X