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

ovvioamente sia giroscopio che accelemometro vanno calibrati , anche se quelli con interfaccia digitale già di fabbrica hanno una buona impostazione. Di solito possiedono anche un sistema di self-test che se attivato crea una finta rotazione/accelerazione nota sul sensore, in modo che automaticamente non solo si possa settare lo 0 del sensore (che si fa semplicemente leggendo un pò di valori da fermo ed assumendoli come 0, unico caso particolare l'asse della gravità che è da assumere come 0+1g), ma anche di quanto variano i valori applicando una rotazione(i sensori sono più o meno lineari, quindi se vedi che esempio 32 è lo zero reale, e 200 è 1G, allora sai che 500 è ((500-32)/200)*1 G

confermo che nello spazio "perfetto" l'accelerometro leggerebbe solo le accelerazioni, nella realtà vedresti gli effetti combinati di più gravità :slight_smile:

che riconosce la posizione della coda e la tiene in quella posizione anche se manualmente la muovi.

lui semplicemente somma le velocità angolari * il tempo di lettura (velocità*tempo = spazio percorso), e poi da il comando per muoversi al contrario in modo da avere spazio percorso sempre = 0

Ora, dopo un pò che lo usi, noterai che però lo 0 un pò si sposta. Se conosci gli integrali, sai che quella variabile "tempo" più è piccola e più ti da una misura precisa, però noi siamo limitati ad un certo di misure al secondo, e non solo, ma anche sulla precisione stessa delle letture. L'errore quindi si accumula, e piano piano ti ti ritrovi sottosopra senza neanche accorgertene.
In generale puoi volare anche con solo il giroscopio, di solito ci si riferisce a questo come modalità "acro"

poi c'è la cosidetta modalità "stabile" (in realtà a seconda di come compensi i moviomenti ne esistono tantissime, per esempio puoi mantenere l'ultima posizione, tornare allo 0 degli assi, seguire dei valori stabiliti etc...)
A questo punto entrano in gioco gli accelerometri: visto che sai che più o meno puntano sempre verso il basso (salvo accelerazioni quindi entra in gioco un pò di matematica per eliminarle, o compensarle), puoi eliminare l'errore del giroscopio.

Si dice che il giroscopio fa delle letture "relative", mentre l'accelerometro "assolute" (ovviamente rispetto al sistema di riferimento terra).

Come avrai notato, però, l'accelerometro NON è in grado di compensare l'errore sullo YAW. Quindi si risolve con un magnetometro, che è una bussola digitale. In realtà, essenso il nord magnetico rilevato sui 3 assi, può essere usato per compensare anche asse x e y, l'unico preoblema è che i sensori magnetici sono molto sensibili ai disturbi anche elettrici come per esempio i motori, gli esc, il frame in metallo, etc..., in oltre sono molto lenti per le letture.
Per esempio l'ITG3200(gyroscopio) fa al massimo 256letture al secondo, l'ADXL345(accelerometro) 800letture/secondo(in i2c, via SPI ne fa molte di più, ma la maggior parte delle IMU è i2c purtroppo), e il BCMqualcosa(magnetometro) fa 60 misure al secondo

questi sono i sensori di una droteck da 50/60€ se non erro, ovvero la configurazione più low-cost.

edit: astro mi ha preceduto :grin: