[Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo

cavde:
a meno che il sole non abbia iniziato a tramontare a est xD come risolvo?

Ma come non ti sei accorto che in questi giorni c'è stata l'inversione dei poli magnetici come predetto dai Maya :grin:

cavde:
ho u problema con il hmc5883l: ho fatto la calibrazione ruotando la schedina in tutti gli assi di rotazione, però mi segna il nord dove invece c'è il sud! a meno che il sole non abbia iniziato a tramontare a est xD come risolvo?

EDIT: adesso, senza aver modificato nulla, mi dice sono diretto ad est, quando invece sono in direzione sud. nel codice ho solo decommentato la define del sensore, c'è da fare qualcos'altro?

si i define relativi all'orientamento :stuck_out_tongue:

usa la gui per capire dove aumenta e decrementa x, y, z in base a come muovi il quad. con un poco di logica arrivi a capire come dover settare la riga

#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = Y; magADC[PITCH]  = X; magADC[YAW]  = Z;}

secondo le tue direttive :wink: (beh questa è la mia :smiley: )

superlol:
si i define relativi all'orientamento :stuck_out_tongue:

usa la gui per capire dove aumenta e decrementa x, y, z in base a come muovi il quad. con un poco di logica arrivi a capire come dover settare la riga

#define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  = Y; magADC[PITCH]  = X; magADC[YAW]  = Z;}

secondo le tue direttive :wink: (beh questa è la mia :smiley: )

ah giusto, davo per scontato che quella parte fosse solo per gyro e acc...grazie ci provo

astrobeed:
Ma come non ti sei accorto che in questi giorni c'è stata l'inversione dei poli magnetici come predetto dai Maya :grin:

e con tutte le apparecchiature elettroniche presenti nel mondo proprio il mio magnetometro doveva andare in palla! :stuck_out_tongue_closed_eyes:

EDIT: ho provato a guardare come rispondono gli assi del magne in funzione degli spostamenti....ma non riesco a capire bene il funzionamento:
se ruoto lo yaw a destra il roll diventa negativo, se ruoto a sinistra il roll diventa positivo e il pitch diventa negativo...
se alzo il pitch, il pitch e lo yaw del mag aumentano e se abbassoil pitch si abbassano di conseguenza...
non ci capisco molto...

io invece mi sono appena reso conto che... ho tutti i motori che girano dal lato sbagliato XD

mi sono reso conto che mi ero reso conto male XD
insomma domani dovrebbero esserci operazioni di cheibol catting /cable cutting :stuck_out_tongue:

io non ci capisco niente con sto magnetometro...lascio perdere e vado a dormire =(

A proposito di magnetometro, nella versione 2.1 si puo' specificare una cosa che si chiama "declinazione magnetica". Non so se sia per questo parameto o per la versione 2.1, ma da allora il mio quadricottero si corregge da solo se ci sono variazioni non volute sullo yaw.
Fede

scusa prima non tornava in posizione da solo? e allora a che serviva? solo per fermare la rotazione sullo yaw?

Federico:
A proposito di magnetometro, nella versione 2.1 si puo' specificare una cosa che si chiama "declinazione magnetica".

La declinazione magnetica serve solo per correggere la posizione del nord magnetico con quello reale, ha un senso utilizzarla solo se devi correlare i dati del gps con quelli della bussola visto che il primo fornisce il nord reale mentre la bussola (magnetometro) quello del nord magnetico.
Rammento che con Multiwii, ma vale per tutti i software per quadri, se vengono utilizzati sensori sfusi, o moduli multisensore non previsti direttamente da Multiwii, è molto importante far coincidere i tre assi dei sensori tra loro e con quelli di Multiwii, se questo non avviene si va incontro a tutta una serie di problemi strani come il quadri che gira su stesso o la totale instabilità del mezzo (= botto).

lesto:
scusa prima non tornava in posizione da solo? e allora a che serviva? solo per fermare la rotazione sullo yaw?

Nelle precedenti versioni di MultiWii il magnetometro era usato male e poco, ed è una cosa che avevo messo in evidenza sia nel vecchio topic che in questo.
Non so come MultiWii utilizzi il magnetometro nella versione attuale perché l'ho abbandonato da diversi mesi sia perché non è adatto per miei obbiettivi sia perché sono passato al STM32F4 (Cortex M4 @186 MHz) per il quadri.

anche io ho quella board, sai dove posso rimediare qualche codice per il quad e la scheda?

lesto:
anche io ho quella board, sai dove posso rimediare qualche codice per il quad e la scheda?

Immagino che fai riferimento alla STM32F4 Discovery, se cerchi con google trovi diversi progetti che usano l'STM32, sia F3 che F4, su i quadricotteri, però devo avvisarti che non è una MCU facile da "domare", è molto potente, ma è anche molto complessa da usare.

sì, ho già iniziato qualcosa tipo accendere/spegnere i led, e ho notato che ha millemila registri in più con conseguente complessità.
Se non altro son rimasto colpito dal fatto
Però alla fine conoscere il modo di "ragionare" dei registri atmega aiuta tanto

un attimo astro, sarà che questa parte l'abbiamo trattata nell'ultima parte dell'anno scolastico e quindi ero già con la testa in vacanza XD
ma per calcolare la var non è necessaria la posizione gps del mezzo?
comunque anche il gps fornisce un'angolazione rispetto al nord vero ma è alquanto pressapochista (insomma un decimo di grado se siamo all'equatore mi pare sia un bell'errore :stuck_out_tongue: )

comunque senza gps la declinazione magnetica è inutile settarla in quanto si potrebbe mettere anche un valore a caso che il software non potrebbe rendersene conto (se non ha il gps).

comunque dal vedere i video sembra che il return to home sia ancora da sistemare per bene (insomma è molto pressapochista).

termino dicendo che piuttosto della declinazione magnetica io scaricherei dall'aip le variazioni di magnetismo terrestre rispetto al nord vero, in pratica i valori di magnetismo possono variare l'angolazione della bussola anche di 6° in base alla posizione a causa di presenza di materiali ferrosi od altro.

correggimi astro se sbaglio :stuck_out_tongue:

lesto:
Però alla fine conoscere il modo di "ragionare" dei registri atmega aiuta tanto

Verissimo, gli STM32 sono molto più complessi di un AVR, però i concetti base sono gli stessi e conoscerli aiuta molto.
Se ti serve una mano con gli STM32 chiedi pure sul nostro bar sport, non mi pare corretto parlare di un processore non usato su Arduino in questo topic.

superlol:
ma per calcolare la var non è necessaria la posizione gps del mezzo?
comunque anche il gps fornisce un'angolazione rispetto al nord vero ma è alquanto pressapochista (insomma un decimo di grado se siamo all'equatore mi pare sia un bell'errore :stuck_out_tongue: )

Ovviamente per calcolare la declinazione magnetica devi conoscere con buona approsimazione sia la tua posizione, non importa se la trovi col gps, col sestante o da una carta igm, che l'attuale posizione del nord magnetico, come ben sai cammina non poco nel corso del tempo, ogni tanto a qualche pista di atterraggio devono cambiare il numero proprio perché a causa della precessione dei poli magnetici il suo orientamento, rispetto alla bussola, è cambiato significativamente.

comunque senza gps la declinazione magnetica è inutile settarla in quanto si potrebbe mettere anche un valore a caso che il software non potrebbe rendersene conto (se non ha il gps).

Assolutamente d'accordo, infatti ho precisato che è un valore utile solo se si ha il gps, oppure devi fare navigazione con mappe riferite al nord reale, ma non è il caso dei quadricotteri, anzi per dirla tutta i circa 2° medi di declinazione magnetica in Italia si possono tranquillamente trascurare per quanto riguarda il volo di un quadri in modalità autonoma o comunque in strumentale viste le esigue distanze operative.

comunque dal vedere i video sembra che il return to home sia ancora da sistemare per bene (insomma è molto pressapochista).

Come ho detto prima MultiWii non lo uso più e non mi interessa come software, rimane il fatto che con la matematica a 32 bit disponibili sugli AVR, lasciando perdere le considerazioni su i tempi di calcolo, non è possibile ottenere valori di angolo e distanza sufficientemente precisi partendo dalle coordinate GPS per fare navigazione su un quadri, non dico di ottenere una precisione centimetrica, ma almeno al singolo metro, a livello di calcolo, si.

termino dicendo che piuttosto della declinazione magnetica io scaricherei dall'aip le variazioni di magnetismo terrestre rispetto al nord vero, in pratica i valori di magnetismo possono variare l'angolazione della bussola anche di 6° in base alla posizione a causa di presenza di materiali ferrosi od altro.

Ci sono vari calcolatori online che ti forniscono la declinazione magnetica partendo dalle coordinate gps e posizione corrente del polo nord, nulla di strano in fin dei conti è un "banale" problema di geometria sferica, in più hanno un database delle zone di "anomalia" magnetica dovuta ai materiali ferrosi e ti forniscono anche l'errore aggiuntivo.

in tutto questo....è normale che girando la scheda su un asse solo, variano sempre due assi del magnetometro?? almeno è quello che succede a me nella GUI...

cavde:
in tutto questo....è normale che girando la scheda su un asse solo, variano sempre due assi del magnetometro?? almeno è quello che succede a me nella GUI...

Hai letto quanto ho scritto relativamente al fatto che devi allineare in modo corretto i tre assi di tutti i sensori con quelli di MultiWii ? Se non l'hai fatto è normale che osservi cose strane.

lesto:
Se non altro son rimasto colpito dal fatto

azz devo finire la frase... son rimasto colpito dal fatto che avr-gcc supporta la scheda nativamente con FPU

lesto:
azz devo finire la frase... son rimasto colpito dal fatto che avr-gcc supporta la scheda nativamente con FPU

Avr-gcc di sicuro no, semmai gcc-arm :grin:

49 Quadri in volo notturno sincronizzato, semplicemente spettacolare :slight_smile: