LSM9DS1
- Il modulo inerziale LSM9DS1 è integrato nell'Arduino Nano 33 BLE Sense e pertanto si può usare solo con tale scheda.
- Il datasheet è accessibile qui (scaricato) o qui (fonte originale).
- Per l'uso dei sensori su questa scheda è necessario installare la libreria omonima. Si può fare in due modi:
- Il modo più comodo per perdere meno tempo con gli studenti in laboratorio è copiare i file Arduino_LSM9DS1.h, LSM9DS1.h e LSM9DS1.cpp nella cartella del progetto, quella in cui è presente anche il file .ino. Poi il progetto sarà portabile a tutti i computer senza ulteriore setup necessario. I tre file sono già presenti nei progetti di esempio per accelerometro, giroscopio e magnetometro, quindi basta copiare le relative cartelle e modificarle.
- Altrimenti basta andare in
Strumenti -> Gestione librerie
, cercare "LSM9DS1" ed installare "Arduino_LSM9DS1". Bisognerà però ripetere questa azione su ogni computer su cui si vuole usare il progetto.
- Per interagire con la libreria all'interno del codice bisogna includerla con
#include "Arduino_LSM9DS1.h"
. La documentazione della libreria è disponibile qui. - All'interno del
setup()
, per inizializzare la connessione con il modulo, si usaIMU.begin()
.
Accelerometro
Progetto di esempio: accelerometro
// include la libreria che mette a disposizione l'oggetto IMU
#include "Arduino_LSM9DS1.h"
void setup() {
// inizializza il seriale
Serial.begin(9600);
// inizializza il LSM9DS1
IMU.begin();
}
void loop() {
// le misurazioni sono a 104Hz, quindi piuttosto lente rispetto alla velocità di esecuzione di
// codice dell'Arduino, pertanto bisogna controllare se sono arrivati dei dati prima di leggerli
if (IMU.accelerationAvailable()) {
// crea le variabili x, y e z, inizialmente senza alcun valore
float x, y, z;
// legge l'accelerazione lungo x, y e z nelle tre variabili x, y e z
// (unita' di misura: g)
IMU.readAcceleration(x, y, z);
// scrive sulla seriale una linea contenente i tre valori letti separati da uno spazio, così
// che si possano visualizzare col Plotter Seriale
Serial.print(x);
Serial.print(" ");
Serial.print(y);
Serial.print(" ");
Serial.println(z);
}
}
- Fornisce misurazioni ad una frequenza di 104Hz.
- Riesce a leggere accelerazioni da a , con una precisione di .
- Fornisce i dati nell'unità di misura , cioè rispetto all'accelerazione di gravità.
Più informazioni sull'accelerometro sono disponibili nel tutorial ufficiale di Arduino.