annuncio

Comprimi
Ancora nessun annuncio.

CleanFlight/SpeedyFlight aka Baseflight (Multiwii)

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

  • Poi credimi, quando volerai in fpv ti renderai conto di una marea di micromagagne, oscillazioni che da fuori non si vedono e non si sentono. Poi se hai anche una cam stretta vedi tutto.

    Questo è il mio video preferito. Volo spettacolare. kiss con oneshot

    La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
    ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

    Commenta


    • Originariamente inviato da bandit Visualizza il messaggio
      Poi credimi, quando volerai in fpv ti renderai conto di una marea di micromagagne, oscillazioni che da fuori non si vedono e non si sentono. Poi se hai anche una cam stretta vedi tutto.

      Questo è il mio video preferito. Volo spettacolare. kiss con oneshot

      Ecco perché ti sei innamorato del pid_controller=1, pazzesco che fluidità!

      Siamo sulla stessa frequenza, insomma con oneshot....si è arrivati quasi al limite delle possibilità tra FC ed ESC e sicuramente si andrà avanti anche con altri accorgimenti sul sistema!!!

      Uhmmmm il tuo post delle 21:56 prima non lo vedevo(devo pulire la cache), comunque vedo che iniziamo ad essere "sincronozzati" anche noi!

      Originariamente inviato da bandit Visualizza il messaggio
      Aspetta, forse ho capito. Ho confuso mainloop con looptime? Il looptime lo intendo come il periodo del mainloop.
      Si il concetto del looptime/mainloop è quello, ma io volevo solo sottolineare, che sull'oscilloscopio non esiste quel segnale, in una situazione normale, ripeto quella era una dimostrazione della non sincronizzazione (ecco perché domenica, non capivo quel segnale basso del looptime/manloop...e non guardando bene il video non ti ho bloccato subito), insomma quel segnale alto/basso esiste solo con il PWM.

      Originariamente inviato da bandit Visualizza il messaggio
      125/250 micro (non milli) secondi.
      Yes..sorry!

      Originariamente inviato da bandit Visualizza il messaggio
      Se si guarda il filmato di Dominic si vede che lui misura esattamente 400Hz sul segnale di uscita. Quindi il dato esce 400 volte al secondo e la lunghezza dell'impulso quantifica il dato. Stiamo dicendo la stessa cosa?

      Anche qui credo non sia del tutto corretto. Secondo me il dato esce 400 volte al secondo, solo che, visto che il looptime è più lento dei 400Hz, l'esc può ricevere per due volte lo stesso dato. E' il dato aggiornato che viene calcolato, come dici tu, ogni 2.6ms e viene generato sull'uscita al primo ciclo disponibile dei 400Hz.

      Ripeto, basta vedere le onde sull'oscilloscopio di Dominc.
      Ci siamo....giustissimo, secondo me si verifica proprio quello che hai spiegato tu (però con delle impostazioni via software si potrebbe verificare anche quello che dice @danveal....insomma questo non cambia molto, l'importante è che il valore del PWM arriva all'esc altirmenti poi non si può armare)

      Ad esempio, prendiamo un caso estremo looptime=1sec. (), la fc invia al secondo=0 il segnale e poi ci pensa l'elettronica della fc a continuare ad inviare ad una frequenza (motorPwmRate) sempre lo stesso valore/segnale.....al secondo=1 la fc rinfresca il dato, e questo verrà inviato sempre con la frequenza impostata con motorPwmRate all'esc....e così via!!!

      Per chiudere anche il primo discorso di ieri, al secondo=1 rinfresca il dato, ma l'esc per la non sincronizzazione potrebbe leggerlo ad 1 secondo e 4ms.

      E' stata data una spiegazione sia al video, sia al grafico(corretto e non fuorviante) e sia al looptime/mainloop! Ci siamooooo adesso via di gasseeee!
      Ultima modifica di tommyleo; 27 gennaio 15, 02:12.

      Commenta


      • Si si ora stiamo convergendo ...
        Però il grafico fatto da ronco (Felix) del 2012 io ancora non l'ho capito ... anzi secondo me è proprio da cancellare .... ed è sviante anche su oneshot ... ma questo lo vedremo fra un poco.

        C'è ancora una cosa sugli esc sulla quale ci dobbiamo mettere d'accordo prima di andare avanti.
        La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
        ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

        Commenta


        • Originariamente inviato da tommyleo Visualizza il messaggio


          Ad esempio, prendiamo un caso estremo looptime=1sec. (), la fc invia al secondo=0 il segnale e poi ci pensa l'elettronica della fc a continuare ad inviare ad una frequenza (motorPwmRate) sempre lo stesso valore/segnale.....al secondo=1 la fc rinfresca il dato, e questo verrà inviato sempre con la frequenza impostata con motorPwmRate all'esc....e così via!!!

          Per chiudere anche il primo discorso di ieri, al secondo=1 rinfresca il dato, ma l'esc per la non sincronizzazione potrebbe leggerlo ad 1 secondo e 4ms.
          Perfetto ottima sintesi. Ora di che si parla? Mi ero affezionato alla diatriba
          Quadricottero News
          http://www.facebook.com/Quadricottero

          Commenta


          • Originariamente inviato da bandit Visualizza il messaggio
            Si si ora stiamo convergendo ...
            Però il grafico fatto da ronco (Felix) del 2012 io ancora non l'ho capito ... anzi secondo me è proprio da cancellare .... ed è sviante anche su oneshot ... ma questo lo vedremo fra un poco.

            C'è ancora una cosa sugli esc sulla quale ci dobbiamo mettere d'accordo prima di andare avanti.
            Uhmmm si torna indietro, cosa c'è che non ti piace nel grafico? Secondo me è perfetto!

            ok magari non ci sono S1, S2 che si ripetono perché il looptime è più basso di 400Hz, ma sarebbero inutili da visualizzare, l'importante era passare il concetto che alla cadenza del looptime e quindi modifica del valore inviato all'esc, quest'ultimo lo legge (e poi lo passa al motore) con una certa latenza per via della non sincronizzazione.

            Commenta


            • quel grafico è stato per me fuorviante per due motivi: 1 le righe rosse orizzontali che si sommano al pwm della riga marrone 2 l'attuale oneshot non ha la durata del pwm normale, ma è 8 volte più corto.

              Se vuoi spiegare ad uno che non ci capisce niente (come me) non è quello il grafico che ti fa vedere la luce ... ci abbiamo messo 3 giorni in tre per venirne a capo... e non è finita perché ci sono ancora un paio di contraddizioni da dirimere e tu e Dan che credo abbiate scritto due cose opposte sugli esc ...

              e poi passiamo a oneshot...
              La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
              ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

              Commenta


              • Originariamente inviato da bandit Visualizza il messaggio
                quel grafico è stato per me fuorviante per due motivi: 1 le righe rosse orizzontali che si sommano al pwm della riga marrone 2 l'attuale oneshot non ha la durata del pwm normale, ma è 8 volte più corto.

                Se vuoi spiegare ad uno che non ci capisce niente (come me) non è quello il grafico che ti fa vedere la luce ... ci abbiamo messo 3 giorni in tre per venirne a capo... e non è finita perché ci sono ancora un paio di contraddizioni da dirimere e tu e Dan che credo abbiate scritto due cose opposte sugli esc ...

                e poi passiamo a oneshot...
                Eh si ti consoco sei molto preciso , ma come hai detto tu, quel grafico risale al 2012, può darsi che non era stato ancora definito il nuovo periodo di 125-250μs e quindi non rappresentato bene, li voleva far passare il concetto della sincronizzazione!

                Sulle contraddizioni, mi pare che Dan ha confermato e siamo tutti in linea, io ti posso dire che da codice con il PWM si possono fare diversi giochetti e configurazioni....l'importante è che il segnale pwm con valori da 1 a 2 ms sia presente sul pin del segnale dell'esc....altrimenti l'esc non entra nella sua fase di lavoro!

                p.s. Infatti se su Cleanflight si abilita ad es. Oneshot125 e l'esc non ha il firmware oneshot....l'esc non si riesce neanche a calibrare, proprio perché oneshot invia 125 e l'esc si aspetta un 1000μs, oltre ai problemi di frequenza del segnale.
                Ultima modifica di tommyleo; 27 gennaio 15, 12:38.

                Commenta


                • Originariamente inviato da tommyleo Visualizza il messaggio
                  Prendiamo quindi ad esempio 400Hz, un esc normale riesce a campionare 400 volte in un secondo il segnale che gli viene inviato, questo è un dato fisso, da codice non lo modifichi, l'ESC ha il suo periodo. (classico del pwm)

                  Quindi utilizza 2,5 ms per il suo periodo, ripeto fisso!

                  Quindi quando la scheda invia il dato sul canale PWM, è normale che l'esc lo rinfresca solo alla partenza del successivo campionamento, non può cambiare l'onda quadra in corsa
                  Originariamente inviato da danveal Visualizza il messaggio
                  Quindi in questo caso l'esc riceve il dato ogni 2,6 millisecondi su una porta a 400Hz. In sostanza l' esc tiene aperte le orecchie 400 volte al secondo ma il dato non viene inviato 400volte, dipende dal ciclo di loop, ovvero dal tempo che ci mette il microprocessore a fare tutti i calcoli e a determinare il valore da dare al motore.
                  Secondo me non va proprio così. Ora, su una cosa siamo d'accordo (almeno Tommy ed io ) che il dato esce dalla FC 400 volte al secondo. Quindi la seconda parte di Dan non è corretta.

                  Detto questo se il resto fosse come dite voi, sia in normal sia in oneshot l'esc non si sincronizzerebbe praticamente mai con l'uscita della FC e infatti Tommy dice:

                  Originariamente inviato da tommyleo Visualizza il messaggio
                  p.s. Infine lavornado da 125 a 250ms è comunque otto volte più veloce...anche se non si sincronizza!
                  Ora, secondo me bisogna specificare meglio alcune cose, che magari voi date per scontate.
                  E' vero che l'ESC ha un ciclo di refresh di 400Hz (o quello che è, 500 o 600Hz), il che vuol dire che lui si mette in ascolto 400 volte al secondo sul pin della FC come dice Dan, ma secondo me non è vero che lui campiona il segnale all'inizio del suo ciclo di refresh (come diceva Tommy).
                  L'esc, una volta che si mette in ascolto, ASPETTA il fronte di salita del segnale dalla FC, appena si alza il pin, parte un contatore che si stoppa quando il pin si abbassa.
                  A quel punto lui legge la lunghezza dell'impulso.
                  Questo vuol dire che l'ESC è SEMPRE sincronizzato (sia nel modo normale, sia in oneshot) con l'uscita della FC.

                  Questo era un altro dei miei motivi di confusione. Come faceva "l'esc a sincronizzarsi" se è un elemento passivo?

                  Ovviamente se la FC genera un dato più velocemente del tempo di refresh dell'esc, l'esc si perde quel dato perché si mette in ascolto quando il fronte del pwm è alto.
                  Se iniziasse a campionare in quel momento leggerebbe solo un pezzo del pwm e sarebbe un disastro!

                  che dite?
                  Ultima modifica di bandit; 27 gennaio 15, 14:11.
                  La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
                  ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

                  Commenta


                  • Confermo (guarda che anche Dan ha confermato, post #125 delle 08:43)

                    Originariamente inviato da bandit Visualizza il messaggio
                    L'esc, una volta che si mette in ascolto, ASPETTA il fronte di salita del segnale dalla FC, appena si alza il pin, parte un contatore che si stoppa quando il pin si abbassa.
                    Perfetto!

                    Originariamente inviato da bandit Visualizza il messaggio
                    ma secondo me non è vero che lui campiona il segnale all'inizio del suo ciclo di refresh (come diceva Tommy).
                    Ok mancava un "inizia a campionare" nella mia frase e determina il valore del pulse witdh quando il segnale sul pin si abbassa a zero!

                    Originariamente inviato da bandit Visualizza il messaggio
                    Questo vuol dire che l'ESC è SEMPRE sincronizzato (sia nel modo normale, sia in oneshot) con l'uscita della FC.
                    Secondo me no!

                    ESC Normale: tra ieri e domenica abbiamo approfondito questo argomento, stiamo parlando di 2ms/4ms....la perferzione, però mi pareva che era chiaro quel ritardo di 4ms tra segnale inviato dalla fc e fine di lettura del nuovo valore alla fine del periodo successivo!

                    ESC OneShot: oltre alla frequenza/periodo otto volte più veloce, questa affermazione è da prendere con le pinzette, riesce a capire con lo "shot" l'inizio del campionamento e determina così il nuovo valore sempre entro i 250μs (e non con una latenza di altri 250μs come un esc normale)

                    Questo lo dico e ripeto è da prendere con le pinzette ed il ragionamento esce dal codice di cleanflight:


                    codice:
                        if (feature(FEATURE_ONESHOT125)) {
                            pwmCompleteOneshotMotorUpdate(motorCount);
                        }
                    
                    void pwmCompleteOneshotMotorUpdate(uint8_t motorCount)
                    {
                    uint8_t index;
                    TIM_TypeDef *lastTimerPtr = NULL;
                    for(index = 0; index < motorCount; index++){
                    // Force the timer to overflow if it's the first motor to output, or if we change timers
                    if(motors[index]->tim != lastTimerPtr){
                    lastTimerPtr = motors[index]->tim;
                    timerForceOverflow(motors[index]->tim);
                    }
                    // Set the compare register to 0, which stops the output pulsing if the timer overflows before the main loop completes again.
                    // This compare register will be set to the output value on the next main loop.
                    *motors[index]->ccr = 0;
                    }
                    }
                    Cioè dopo aver inviato il nuovo segnale nella routine di scrittura agli ESC se la feauture "ONESHOT125" è attiva, crea un errore sul canale pwm, forzando un overflow. Questo credo che permette all'ESC di intercettare questo errore e gli forza la sincronizzazione allo "shot" successivo!

                    Avevo letto in giro...e poi ho visto sul codice dei fix, che questo giochetto (dell'overflow) causava dei problemi sulla lettura del pwm/ppm della ricevente!

                    Insomma questo è quello che ho capito io....tutto da confermare, ma una cosa è sicura, da codice ci sono delle differenze anche in questo tra un ESC Nomale ed un ESC con Oneshot!!!

                    Insomma non si parla più di periodo/frequenza.....ma di sincronizzazione tramite questi "shot"
                    Ultima modifica di tommyleo; 27 gennaio 15, 15:29.

                    Commenta


                    • Ahhh dimenticavo.....il mio dubbio:

                      se con OneShot si possono inviare 4K di shot....cleanflight con il looptime stabile di 2500 = 400Hz ne invia solo un decimo delle reali possibilità dell'esc!

                      p.s. Questo week-end, adesso che ho flashato i miei afro12A con oneshot, conto di fare qualche prova.....ad esempio la prima sarà quella di settare una frequenza di 3,9 Khz....e sparargli segnali a cadenze di 3,9kz con un looptime di 256 (stabile)....non sarò sincronizzato ma un 2/3 mila segnali dovrebbe leggerli.

                      Infine se riesco, proverò anche io quell'overflow....però il mio codice è un porting di baseflight, e quella parte è completamente diversa....e non ho capito bene come gestirla! Se ci riesco...gli vado a sparare 3,9k di shot sincronizzati in un secondo e poi ti faccio vedere io come do di gasssee e spacco tutto il mio microSquid!!!

                      Commenta


                      • guarda che così vai fuori garanzia ...

                        no ora mi sono riperso ... ti devo rileggere meglio.
                        se sei d'accordo che l'esc aspetta il fronte alto del pwm dalla FC per iniziare a campionare, allora vuol dire che quando la FC spara il segnale (lungo o corto di oneshot) l'esc inizia a contare nello stesso tempo in cui l'FC manda il segnale e quindi ... sono sincronizzati.
                        La bibbia dei Bladoni V6, Blade 120SR - Guida Crius Aio Pro V1.3
                        ATOM 500 - Blade 400 FBL STRETCHED 6s - 120SR.

                        Commenta


                        • Ultmissima:

                          // Set the compare register to 0, which stops the output pulsing if the timer overflows before the main loop completes again.
                          // This compare register will be set to the output value on the next main loop.
                          *motors[index]->ccr = 0;

                          Da come è stato commentato il codice, sembra che l'esc con oneshot può fare a meno di questo segnale pwm, e la FC lo butta proprio giù...ed io "suppongo" poprio per farlo sincronizzare quando lo porta su al successivo ciclo (main loop)!!!

                          Commenta


                          • Originariamente inviato da bandit Visualizza il messaggio
                            guarda che così vai fuori garanzia ...

                            no ora mi sono riperso ... ti devo rileggere meglio.
                            se sei d'accordo che l'esc aspetta il fronte alto del pwm dalla FC per iniziare a campionare, allora vuol dire che quando la FC spara il segnale (lungo o corto di oneshot) l'esc inizia a contare nello stesso tempo in cui l'FC manda il segnale e quindi ... sono sincronizzati.
                            Eh no, un 'ESC normale NON "aspetta" il fronte alto del PWM....o meglio lui continua a campionare sempre a 400HZ...con quella possibile sfasatura...insomma non c'è nessuno che gli dice quando iniziare....lui lo fa sempre 400 volte al secondo!

                            Commenta


                            • cosa cambia tra spektrum 1024 e 2048?
                              schermata post 10

                              Commenta


                              • Originariamente inviato da bandit Visualizza il messaggio
                                guarda che così vai fuori garanzia ...

                                no ora mi sono riperso ... ti devo rileggere meglio.
                                se sei d'accordo che l'esc aspetta il fronte alto del pwm dalla FC per iniziare a campionare, allora vuol dire che quando la FC spara il segnale (lungo o corto di oneshot) l'esc inizia a contare nello stesso tempo in cui l'FC manda il segnale e quindi ... sono sincronizzati.
                                Preciso...sono in accordo con te sul fatto che inizia il calcolo al fronte alto del pwm, però non è sincronizzato con la FC...lui lo fa sempre a 400hz.

                                Esempio della latenza:

                                1. ESC inizia a campionare l'onda quadra a 0 ms (un valore di 1,9)
                                2. FC invia un 2ms (throttle massimo) al'esc a 0,1 ms
                                3. l'ESC a 1,9 ms ha calcolato 1,9ms (e spara un 1900 al motore)
                                4. l'ESC a 2 ms inizia a valutare la prossima onda quadra che durerà 2 ms in alto
                                5. l'ESC a 4 ms ha finito di calcolare i 2ms ed inivia al motore 2000 il full throttle

                                Dall'invio della FC a 0,1ms siamo arrivati ad aggiornare il motore dopo 4ms (oneshot lo avrebbe aggiornato dopo 2ms)

                                Commenta

                                Sto operando...
                                X