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.
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.
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.
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.
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…