Ciao a tutti, avrei bisogno della formula o algoritmo per compensare l'errore prodotto dall'inclinazione del Magnetometro.
Come accelerometro utilizzo un MPU6050 e riesco perfettamente a calcolarmi l'angolo di beccheggio (pitch) e l'angolo di rollio (roll).
Mentre come Magnetometro utilizzo un HMC5883L e riesco a calcolarmi l'angolo d'imbardata (yaw).
Ecco il mio problema: Quando provo ad inclinare il magnetometro (in tutte le direzioni) l'angolo d'imbardata da valori sballati, per questo avrei bisogno di una formula o algoritmo che mi aiuti a correggere l'errore di inclinazione sfruttando i valori di inclinazione dell'accelerometro.
Qualcuno può aiutarmi? Grazie mille
Ciao Paolo, ho provato qualche giorno fa questo sketch ma con esito negativo, ovvero mi da gli stessi valori sia con compensazione che senza compensazione.
Sul web ho trovato la formula a questo Link ma non mi funziona.
Aggiungo di aver posizionato sia il MPU6050 che il magnetometro HMC5883L sugli stessi assi. Quando sono appoggiati su un piano orizzontale sia l'angolo Pitch che Roll mi danno valori = 90°. Dovrebbero essere di 0°?
La funzione "FunctionsAngle" l'ho scritta io e mi restituisce i valori in radianti per determinare gli angoli Pitch e Roll.
Le variabili MgX, MgY e MgZ sono corrette poiché riesco a trovare il nord.
Non riesco a capire perché l'accelerometro non riesce a compensare l'errore di inclinazione del magnetometro.
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
Si i valori Pitch e Roll sono gli stessi. Sarà il magnetometro che ha qualche problema? Se ti passo lo sketch riesci a provarlo con un HMC5883L e un MPU6050? Dopo ti preparerò anche un video. Grazie mille
RISOLTO ... Ho comprato il modulo GY-86 (è una breakout board con l'acc/gyro MPU6050 e il magnetometro HMC5883L) e funziona tutto perfettamente, sia con il mio firmware che con l'esempio proposto da PaoloP. Sicuramente il magnetometro HMC5883L che utilizzavo all'inizio aveva dei problemi.