Pages: [1]   Go Down
Author Topic: Arduino uno + Flora 9Dof imu 2020 - LSM9DS0: Pan - Tilt Code  (Read 122 times)
0 Members and 1 Guest are viewing this topic.
Agrinio - Greece
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Here is a Pan Tilt Code for FLORA 9-DOF Accelerometer/Gyroscope/Magnetometer - LSM9DS0 (https://www.adafruit.com/product/2020):


Code:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM9DS0.h>
#include <Adafruit_9DOF.h>


   
/* Assign a unique base ID for this sensor */   
Adafruit_LSM9DS0 lsm = Adafruit_LSM9DS0(1000);  // Use I2C, ID #1000
Adafruit_9DOF  dof   = Adafruit_9DOF();



#define LSM9DS0_XM_CS 10
#define LSM9DS0_GYRO_CS 9



#define LSM9DS0_SCLK 13
#define LSM9DS0_MISO 12
#define LSM9DS0_MOSI 11





/**************************************************************************/
/*
    Configures the gain and integration time for the TSL2561
*/
/**************************************************************************/
void configureSensor(void)
{
  // 1.) Set the accelerometer range
  lsm.setupAccel(lsm.LSM9DS0_ACCELRANGE_2G);
  //lsm.setupAccel(lsm.LSM9DS0_ACCELRANGE_4G);
  //lsm.setupAccel(lsm.LSM9DS0_ACCELRANGE_6G);
  //lsm.setupAccel(lsm.LSM9DS0_ACCELRANGE_8G);
  //lsm.setupAccel(lsm.LSM9DS0_ACCELRANGE_16G);
 
  // 2.) Set the magnetometer sensitivity
  lsm.setupMag(lsm.LSM9DS0_MAGGAIN_2GAUSS);
  //lsm.setupMag(lsm.LSM9DS0_MAGGAIN_4GAUSS);
  //lsm.setupMag(lsm.LSM9DS0_MAGGAIN_8GAUSS);
  //lsm.setupMag(lsm.LSM9DS0_MAGGAIN_12GAUSS);

  // 3.) Setup the gyroscope
  lsm.setupGyro(lsm.LSM9DS0_GYROSCALE_245DPS);
  //lsm.setupGyro(lsm.LSM9DS0_GYROSCALE_500DPS);
  //lsm.setupGyro(lsm.LSM9DS0_GYROSCALE_2000DPS);
}

/**************************************************************************/
/*
    Arduino setup function (automatically called at startup)
*/
/**************************************************************************/
void setup(void)
{
  while (!Serial);  // wait for flora/leonardo
 
  Serial.begin(9600);
  Serial.println(F("LSM9DS0 9DOF Sensor Test")); Serial.println("");
 
  /* Initialise the sensor */
  if(!lsm.begin())
  {
    /* There was a problem detecting the LSM9DS0 ... check your connections */
    Serial.print(F("Ooops, no LSM9DS0 detected ... Check your wiring or I2C ADDR!"));
    while(1);
  }
  Serial.println(F("Found LSM9DS0 9DOF"));
 

 
  /* Setup the sensor gain and integration time */
  configureSensor();
 
  /* We're ready to go! */
  Serial.println("");
}


void loop(void)

  /* Get a new sensor event */
  sensors_event_t accel, mag, gyro, temp;
  sensors_vec_t   orientation;
  lsm.getEvent(&accel, &mag, &gyro, &temp);
  if (dof.fusionGetOrientation(&accel, &mag, &orientation))
  {
   
/* 'orientation' should have valid .roll and .pitch fields */
    Serial.print(F("Orientation: "));
    Serial.print(orientation.roll);
    Serial.print(F(" "));
    Serial.print(orientation.pitch);
    Serial.println(F(" "));

  }
  delay(1250);
}
Logged

Scotland
Offline Offline
Edison Member
*
Karma: 26
Posts: 1338
Have you had your Arduino fix today?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

And your installation question is?
Logged

Drew.
http://www.uk-pcb.co.uk - My UK Based PCB Fab & Assembly Company
Design work undertaken
SMD & Thru-Hole assembly

Agrinio - Greece
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages (Wikipedia).
Please respond in a more polite way
Logged

Pages: [1]   Go Up
Jump to: