Premessa: All’inizio, l’unità di misura inerziale è un dispositivo elettronico che misura e riporta la velocità, l’orientamento e le forze gravitazionali di un’imbarcazione, utilizzando una combinazione di accelerometri, giroscopi e magnetometri. Ora le IMU sono comunemente utilizzate nell’interazione uomo-computer (HCI), scopi di navigazione e tecnologia di bilanciamento utilizzati nel Segway Personal Transporter come tutti sappiamo.
Aggiornamento versione : V2.0 ha aggiornato l’IC del sensore del barometro a BMP280.
CARATTERISTICHE TECNICHE
- Wide power input range from 3 to 5 volts
- Low noise LDO regulator
- Low cost IMU
- Interface: I2C
- M3x2 mounting holes for easily fixing in your mobile platforms,robots,HCI or UAVs
- LED power indication
- Integrate 10 dof sensors
- Adxl345 accelerometer
- ITG3200 gyro
- HMC5883L Compass
- BMP280 temperature & barometer sensor
- Compact size design and easy-to-use
- Compatible with Arduino controllers
- Electricity gold PCB
- Size: 26x18mm
LISTA MATERIALI
-
10 DOF Mems IMU Sensor€50.00
-
KIT 30 Jumer (M/F) (M/M) (F/F)€7.50
-
DFRduino UNO R3€18.50
-
Prodotto in venditaCavo USB A – B€1.25
-
Breadboard 400 contatti€10.00
SCHEMA DI COLLEGAMENTO
CODICE DI ESEMPIO
Librerie:
- FreeSixIMU GPLv3: dfrobot.com/image/data/SEN0140/10%20Dof%20sample%20codes.zip
- HMC5883L GPLv3: dfrobot.com/image/data/SEN0140/10%20Dof%20sample%20codes.zip
- DFRobot_BMP280 CC BY-SA v3.0: dfrobot.com/image/data/SEN0140/10%20Dof%20sample%20codes.zip
- Wire LGPL: arduino.cc/en/Reference/Wire
#include <FreeSixIMU.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>
#include <Wire.h>
float angles[3]; // yaw pitch roll
// Set the FreeSixIMU object
FreeSixIMU sixDOF = FreeSixIMU();
void setup() {
Serial.begin(9600);
Wire.begin();
delay(5);
sixDOF.init(); //begin the IMU
delay(5);
}
void loop() {
sixDOF.getEuler(angles);
Serial.print(angles[0]);
Serial.print(" | ");
Serial.print(angles[1]);
Serial.print(" | ");
Serial.println(angles[2]);
delay(100);
}
CODICE DI ESEMPIO 2
#include <Wire.h>
#include "DFRobot_BMP280.h"
DFRobot_BMP280 bmp280;
void setup() {
Serial.begin(9600);
Serial.println("BMP280 demo");
if (!bmp280.begin()) {
Serial.println("Could not find a valid BMP280 sensor!");
while (1);
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp280.readTemperatureValue());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp280.readPressureValue());
Serial.println(" Pa");
Serial.print("Altitude = ");
Serial.print(bmp280.readAltitudeValue(1013.25)); // this should be adjusted to your local forcase
Serial.println(" m");
Serial.println();
delay(2000);
}
Buon Progetto.