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 0x68if (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