Archivi tag: installare

Tutorial: come leggere i dati dal IMU

Nel precedente post ho descritto come settare raspberry pi per la connessione col sensore IMU.

Ora e’ tempo di vedere come leggere dati dal sensore.

Prima di tutto e’ necessario il sw che gestisca l’interfaccia i2c.Si possono trovare diversi esempi. Di seguito ne trovi uno : adafruit_i2c.py da github.

Quindi e’ necessario definire un codice specifico per il proprio sensore , nel mio caso un MPU6050.

Ho cercato per diversi giorni di scrivere il mio codice incontrando un problema di inconsistenza sui dati:anche tenendo il sensore fermo ricevevo dei risultati sempre differenti.Sospetto fosse un problema di formattazione dei dati.

Alla fine , grazie al grande lavoro di Hove nel suo blog, ho utilizzato il suo codice code e sono ora in grado di ricevere dati correttamente dal sensore.

Ho fatto alcune minime modifiche e preparato questo IMU_test file.

Cosi ho iniziato alcuni test preliminare per verificare il comportamento del sensore.

Ho montato il sensore su una barra orizzontalmente,quindi ho fatto ruotare la barra di una quantita’ ( 13 gradi, misurata con la bolla dello smartphone); infine l ho riposto orizzontale.

IMU_test1

Ho registrato su di un file i dati: accelerazione lungo gli assi (da ACCelerometro) e la velocita’ angolare(dal GYROscopio). Su di un foglio excel ho calcolato l’angolo sia rispetto ACC che il GYRO:

  • rx ACC=DEGREES(ATAN2(accZ+9.8;accY))
  • rx(i) GYRO=wx(i) *dt+wx(i-1)

Sotto trovi il grafico risultante.

IMU

Ho sottolineato in figura i due tipici problemi sul IMU :

  • lo slittamento del Gyro (puoi vedere un angolo che da 1 grado deriva mentre dovrebbe essere uguale a 0)
  • la sensibilita’ al rumore dell’ Accelerometro.

Quindi il prossimo passo dello sviluppo e’ cercare di ridurre questi due problemi cercando di filtrare e combinare i risultati dai due tipi di sensori.