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 usa IMU.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.

Orientazione