Waveshare 10 DOF IMU

Waveshare 10 DOF IMU v2

https://www.waveshare.com/wiki/10_DOF_IMU_Sensor_(C)

  • MPU9255
    • MPU6500 – i2c address: 0x73 (MPU6050: 0x68, MPU9250: 0x71) (three-axis accelerometer / gyroscope)
    • AK8963 –  i2c address:  0x48  (three-axis magnetometer)
  • BMP280
  • DMP – Internal Digital Motion Processing

 

Ligações arduino

VCC – 3.3V~5.5V power supply > 5V
GND – power ground > GND
SDA – I2C data pin > SDA – A4 (uno/nano)
SCL – I2C clock pin > SLC – A5 (uno/nano)
INT – MPU9255 digital interrupt output > D2 ou D3 (uno/nano)
FSYNC – MPU9255 vertical sync signal

Bibliotecas testadas com o Waveshare 10 DOF IMU

SparkFun MPU-9250 9-DOF IMU

https://github.com/sparkfun/SparkFun_MPU-9250_Breakout_Arduino_Library

Esta biblioteca foi baseada no trabalho de:

https://github.com/kriswiner/MPU9250

Correcção do endereço I2C

No código do único exemplo :  MPU9250BasicAHRS, na linha 100, trocar o endereço i2c de 0x71 para 0x73, conforme exemplo:

if (c == 0x71) // WHO_AM_I should always be 0x68
if (c == 0x73) // WHO_AM_I should always be 0x68

Comentários

Promissor

Cerca de 5ms de resposta, mas creio que por vezes vem dados repetidos

Não contempla a leitura do barometro BMP?80

Não contempla a leitura da temperatura

Não contempla o DMP

Implementa o interrupt Data Ready

Tem transformações (Quaternion)

Memoria

O rascunho usa 18826 bytes (61%)
Variáveis globais usam 1236 bytes (60%) de memória dinâmica

SparkFun MPU-9250 DMP

https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library

Comentários

Apesar de dizer que não funciona no arduino, testei mas  funcionou apenas a parte sem o DMP, talvez por causa da memoria.

Variáveis globais usam 3863 bytes (188%) de memória dinâmica, restando -1815 bytes para variáveis locais. O maximo é 2048 bytes.

Informação

https://github.com/sparkfun/MPU-9250_Breakout/tree/master/Libraries/Arduino

Advanced Arduino library for the Invensense MPU-9250 inertial measurement unit (IMU), which enables the sensor’s digital motion processing (DMP) features. Along with configuring and reading from the accelerometer, gyroscope, and magnetometer, this library also supports the chip’s DMP features like:

  • Quaternion calculation
  • Pedometer
  • Gyroscope calibration
  • Tap detection
  • Orientation detection

 

https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide#using-the-mpu-9250-dmp-arduino-library

Bolder Flight Systems MPU9250

Existente para instalação no arduino IDE

https://github.com/bolderflight/MPU9250

Eventuais actualizações e outro software: bibliotecas e exemplos
https://github.com/jrowberg/i2cdevlib

Exemplo: Basic_I2C

Configuração do endereço I2C: MPU9250 IMU (Wire,0x68);

Loop time de 1 a 2 ms (predominantemente 1ms)

Output

  • acellerometer x, y, z  (unit m/s/s)
  • gyroscope x, y, z  (unit rads)
  • magnetometer x, y, z (unit uT)
  • temperature: unit C

Comentários

Importante: tem temperatura

Não contempla a leitura do barometro BMP180

Não contempla o DMP

Não tem transformações

MPU9255 Library from Bill2462

https://github.com/Bill2462/MPU9255-Arduino-Library

Comentários

Não contempla a leitura do barometro BMP?80

Não contempla o DMP

Não tem transformações

Não contempla a leitura da temperatura

quantenProjects/MPU-9250DMP

Não é propriamente uma biblioteca, se bem que se possa fazer uma biblioteca dela.

Comentários

Promissor

Aparenta ter 20ms entre leituras, com cerca de 5 a 6ms de tempo para processar.

Implementa o interrupt Data Ready

Tem transformações (Quaternion)

Contempla o uso  DMP

Memoria

O rascunho usa 16956 bytes (55%)
Variáveis globais usam 577 bytes (28%) de memória dinâmica

Adafruit BMP280 Library

Apenas barometro e temperatura (altitude)

Requer as libs:

  • SPI
  • Adafruit_Sensor

Comentários

Cerca de 1 a 2 ms por leitura

Memória

O rascunho usa 10160 bytes (33%)
Variáveis globais usam 565 bytes (27%) de memória dinâmica.

SparkFun BMP180

Comentários

Apenas temperatura e pressão (altitude)

Necessita de atenção, parece que a temperatura está mal

Memoria

O rascunho usa 8508 bytes (27%).
Variáveis globais usam 769 bytes (37%) de memória dinâmica

Dimensions

31 x 17 mm (sem pinos)

38 x 17 mm (com pinos)

4 mm (espaco por baixo)

15.6 mm (espaço jumpers de 2.6mm x 6 )

Sumário

10 DOF IMU Sensor (B) is good at motion monitor, as well as detecting/measuring the position, height, and temperature. It would be helpful for making your own copter or balancing robot, provides great man-machine interaction.

Caracteristicas

MPU9255 : 3-axis gyroscope, 3-axis accelerometer, and 3-axis compass/magnetometer
Internal Digital Motion Processing™ (DMP™) engine, offloads complicate fusion calculation, sensor synchronization, gesture recognition, etc.
Comparing with MPU6050, the MPU9255 is lower power consumption, and more suitable for wearable devices
BMP180 : barometric pressure sensor
Embedded temperature sensor for temperature compensation
You can get the 10 DOF data through I2C interface

Especificações

Power : 3.3V~5.5V (internal voltage regulation with low dropout)

Accelerometer
Resolution : 16 bit
Measurement range (configurable) : ±2, ±4, ±8, ±16g
Operating current : 450uA

Gyroscope
Resolution : 16 bit
Measurement range (configurable) : ±250, ±500, ±1000, ±2000°/sec
Operating current : 3.2mA

Compass/Magnetometer
Resolution (configurable) : 14 or 16 bit
Measurement range : ±4800µT
Operating current : 280uA

Barometric pressure sensor
Resolution (configurable) : 16~19 bit
Measurement range : 300~1100hPa (altitude : +9000m~-500m)
Accuracy : 0.02hPa(0.17m)

Aplicações
Quadcopter
Balancing robots
Indoor inertial navigation
Barometric altimeter
Industry measurement

 

Descrição das ligações

1 VCC – 3.3V~5.5V power supply
2 GND – power ground
3 SDA – I2C data pin
4 SCL – I2C clock pin
5 INT – MPU9255 digital interrupt output
6 FSYNC – MPU9255 vertical sync signal

 

Development Resources

http://www.waveshare.com/wiki/10_DOF_IMU_Sensor_%28B%29

waveshare-10-DOF-IMU-Sensor-B-User-Manual-EN

waveshare-10-DOF-IMU-Sensor-B-Schematic

https://www.waveshare.com/product/10-DOF-IMU-Sensor-C.htm

https://www.waveshare.com/wiki/10_DOF_IMU_Sensor_(C)

 


Links

MPU-9250

https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide

https://github.com/sparkfun/MPU-9250_Breakout
https://github.com/sparkfun/MPU-9250_Breakout/tree/master/Libraries/Arduino

 

BMP280

https://github.com/adafruit/Adafruit_BMP280_Library

https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout/arduino-test

https://www.arduinoecia.com.br/2017/04/bmp280-pressao-temperatura-altitude.html