L’articolo Arduino nano 33 BLE Magnetometro LSM9DS1 chiude la serie di articoli di test eseguiti utilizzando il sensore IMU montato sulla nuova arduino nano 33 BLE.
Il magnetometro, o bussola, ti permette di raccogliere le informazioni provenienti dal campo magnetico terrestre.
Sfruttando queste informazioni puoi capire sia dove ti trovi rispetto ai poli magnetici sia correggere le eventuali derive degli altri sensori IMU già analizzati:
In questo articolo ci dedicheremo alla visualizzazione dei dati raccolti dal magnetometro IMU madiante il monitor seriale ( nel caso specifico il plotter seriale ).
I dati dall’Arduino nano 33 BLE Magnetometro LSM9DS1
Per leggere i dati dell’Arduino nano 33 BLE Magnetometro LSM9DS1 usi l’esempio fornito con la libreria ufficiale:
se non sai come scaricare ed installare la libreria Arduino_LSM9DS1 puoi seguire il primo articolo che ho scritto sull’argomento.
L’esempio, come hai letto nell’immagine, si chiama “SimpleMagnetometer” ed il codice, troverai, è molto simile ai precedenti du esempi dedicati al sensore 9DoF IMU della nano 33.
Sketch “SimpleMagnetometer”
L’esempio citato ha il seguente sketch:
#include <Arduino_LSM9DS1.h> void setup() { Serial.begin(9600); while (!Serial); Serial.println("Started"); if (!IMU.begin()) { Serial.println("Failed to initialize IMU!"); while (1); } Serial.print("Magnetic field sample rate = "); Serial.print(IMU.magneticFieldSampleRate()); Serial.println(" uT"); Serial.println(); Serial.println("Magnetic Field in uT"); Serial.println("X\tY\tZ"); } void loop() { float x, y, z; if (IMU.magneticFieldAvailable()) { IMU.readMagneticField(x, y, z); Serial.print(x); Serial.print('\t'); Serial.print(y); Serial.print('\t'); Serial.println(z); } }
in cui le uniche linee che differiscono dai precedenti esempi usati con l’Arduino nano 33 BLE ed il sensore LSM9DS1 sono le linee 12-17: in cui oltre al testo che viene visualizzato nel monitor seriale varia solo la linea 13: in cui usi il metodo magneticFieldSampleRate() per visualizzare i parametri di default impostati;
linea 23: usi il metodo magneticFieldAvailable() per verificare che vi siano dati da inviare al monitor seriale o al plotter seriale;
linea 24: usi il metodo readMagneticField(x, y, z) per leggere direttamente dal magnetometro;
La restante parte dello sketch serve a inviare i dati tramite protocollo seriale e per le consuete impostazioni e check di default durante la fase di setup();
Il Video
anche in questo articolo, come spesso accade, un video è più chiaro di molte parole ed ecco cosa accade sul plotter seriale quando sposti la arduino nano 33:
in cui, al pari con i precedenti articoli, vedi il segnale dei tre assi variare il proprio percorso, conseguentemente al valore, in funzione della posizione.
Conclusioni
Ti ricordo che la maggior parte delle informazioni che ho acquisito per utilizzare e testare l’IMU dell’Arduino nano 33 BLE Magnetometro LSM9DS1 l’ho acquisita sul sito ufficiale Arduino.
Puoi leggere le medesime informazioni nella scheda del prodotto e nella pagina “Getting started with the Arduino nano 33 BLE“.
In quest’ultima pagina trovi anche tanti altre informazioni che possono esserti utili per utilizzare al meglio la tua scheda.