SparkFun IMU – Codici ed esempi di uso con Arduino

Sparkfun gyroscope

Dopo avere installato la nostra libreria, possiamo iniziare a giocare con i nostri esempi per saperne di più su come si comporta l’IMU Sparkfun.

Qualche tempo fa abbiamo presentato un nuovo pannello breakboard per unità di misura inerziale (IMU) offerto da SparkFun.

Oggi offriremo invece qualche esempio di utilizzo della schedina attraverso Arduino IDE. Partiamo dal presupposto che abbiate installato le opportune librerie, ma in caso non siate allineati, potete procedere alla pagina relativa per riallineare il vostro sistema.

Si parte!

Lettura del vettore di rotazione

Questo primo esempio ci fa iniziare a leggere il nostro vettore di rotazione con valori complessi, o quaternioni, che ci spiegano come siamo orientati. Apriamo l’esempio accedendo a File > Esempi > SparkFun BNO08X Cortex based IMU > Esempio_01_RotationVector.

Selezionare la propria scheda nel menu Strumenti (ad esempio SparkFun ESP32 IoT RedBoard) e la porta corretta su cui è enumerata e fai clic su “Carica”. Dopo aver caricato il codice, aprire il Monitor seriale o l’emulatore di terminale preferito con il baud rate impostato su 115200.

E’ possibile osservare un output dei valori dei quaternioni (cioè i, j, k e reale) e la precisione in radianti.

sparkfun IMU Arduino

Quaternioni!?

I quaternioni forniscono una notazione matematica conveniente per la rappresentazione di orientamenti e rotazioni di oggetti in tre dimensioni. In confronto agli angoli di Eulero presentano funzioni più semplici da comporre ed evitano il problema del blocco cardanico. Confrontati con le matrici di rotazione essi sono più stabili numericamente e forse più efficienti. Quando vengono usati per rappresentare le rotazioni, i quaternioni vengono anche chiamati versori o quaternioni di rotazione, quando invece vengono usati per rappresentare le direzioni sono chiamati quaternioni di orientamento.

Accelerometro

L’esempio 2 riguarda l’estrazione dei valori dell’accelerometro dal nostro sensore per capire come si sta muovendo. Aprire l’esempio accedendo a File > Esempi > SparkFun BNO08X Cortex based IMU > Esempio_02_Accelerometro.

Selezionare la scheda nel menu Strumenti e la porta corretta su cui è enumerata, e fare clic su “Carica”. Dopo aver caricato il codice, aprire il Monitor seriale con il baud rate impostato su 115200.

Dovrebbe apparire un output dei valori dell’accelerometro per x, y e z in m/s2. Se la breakout board è sul tavolo con l’asse z rivolto verso il soffitto, è possibile vedere un valore vicino al valore di circa +9,81 m/s. Naturalmente, tale valore può variare a seconda di dove ci si trovi sulla Terra (come sappiamo, l’accelerazione di gravità diminuisce al crescere dell’altitudine), o se la tavola non è completamente appoggiata su un tavolo piatto.

sparkfun accelerometer IMU

Giroscopio

Nell’esempio 3, estrarremo i valori dal giroscopio dell’IMU per ottenere un vettore per la nostra velocità angolare. Aprire l’esempio accedendo a File > Esempi > SparkFun BNO08X Cortex based IMU > Esempio_03_Gyro.

Selezionare la propria scheda nel menu Strumenti e la porta corretta su cui è enumerata e fare clic su “Carica”. Dopo aver caricato il codice, apri il Monitor seriale con il baud rate impostato su 115200.

Verrà presentata la velocità angolare per x, y e z in radianti/s. Provare ora a ruotare la board attorno a ciascun asse. I valori cambieranno a seconda della direzione in cui si ruota la scheda.

SparkFun IMU

Inoltre, si possono controllare i valori attraverso un grafico, aprendo il plotter seriale alla stessa velocità di trasmissione, per visualizzare le letture di ciascun canale del giroscopio tracciate l’una rispetto all’altra. Ruotando l’IMU per vedere come rispondono i valori, abbiamo ottenuto il seguente output lasciando semplicemente oscillare l’IMU sul suo cavo.

graphic of the gyroscope

Altri esempi

La libreria fornita da Sparkfun presenta altri interessanti esempi: un magnetometo, uno step counter (contapassi), un classificatore automatico di stato (!) utilizzando accelerometo e giroscopio, un classificatore di attività (in auto, in bicicletta, a piedi, fermo, pendente, camminando, correndo, sulle scale) e molto altro. Con sedici diversi esempi sarà possibile approfondire l’utilizzo di questa schedina e valutare la progettaxzione di nuovi esempi.

Ovviamente è anche possibile modificare la porta di comunicazione I2C attraverso la configurazione software (avanzata).

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.