Pages: [1]   Go Down
Author Topic: Best IMU  (Read 1565 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I want to use an IMU in my project, but i don't know very well how to work and what to look at a gyro and accel, as i never used it.

So, what is the best IMU:  ArduIMU V3 ou um MPU 9150 (https://www.sparkfun.com/products/11486)?

If there are other IMUs that are good too, please mention them.

Grateful
Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

There is no 'best', the MEMS sensors are all more or less unstable and noisy.
http://en.wikipedia.org/wiki/Microelectromechanical_systems

What you need is a good library and a good filter.

For example this one for the MPU-6050:
http://www.i2cdevlib.com/

Sparkfun has libraries for the ArduIMU V3, but I have not checked those.
https://www.sparkfun.com/products/11055
That board uses the older MPU-6000 with the very common HMC-5883L magnetometer.

Perhaps using gyro+accel+magnetometer is the best.
I would recommend the MPU-9150 and the i2cdevlib
http://www.i2cdevlib.com/devices/mpu9150
The MPU-9150 is the MPU-6050 with an extra magnetometer in the chip.


Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I asked this because, like you said, ArduIMU v3 uses mpu6000 and hmc5883l. MPU9150 must have the same specifications as the MPU 6050 but the magnetometer i don't know if it is any good.

It also says: "Digital Motion Processing™ (DMP™) engine offloads complex MotionFusion", what is this?

SO, you conclude MPU 9150 is better than ArduIMU v3?
Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Like I said, you need a good library, and I trust the i2cdevlib.
I forgot which magnetometer was included in the MPU-9150, but I assume that it is like other modern MEMS magnetometers.
So yes, I think the MPU9150 is better, since the MPU-6000 is older, and the libraries at Sparkfun are older.

The DMP is some kind of magic. It is a signal processing unit inside the chip.
Invensense does not provide all the documentation for it.
The MotionFusion and so on are pieces of firmware for the DMP.
The i2cdevlib uses DMP firmware that is retrieved by reverse engineering.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Like I said, you need a good library, and I trust the i2cdevlib.
I forgot which magnetometer was included in the MPU-9150, but I assume that it is like other modern MEMS magnetometers.
So yes, I think the MPU9150 is better, since the MPU-6000 is older, and the libraries at Sparkfun are older.

The DMP is some kind of magic. It is a signal processing unit inside the chip.
Invensense does not provide all the documentation for it.
The MotionFusion and so on are pieces of firmware for the DMP.
The i2cdevlib uses DMP firmware that is retrieved by reverse engineering.


SHouldn't DMP proccess that information and not i2cdevlib? i2cdevlib, for what i understood by reverse engineering, makes the same thing as DMP?

I just saw another, what do you think of RazorIMU, it has a good tutorial, in sparkfun:

I don't know which magnetmeter it uses too, that why i asked if it is best than hmc5883l.

Still mpu 9150 (just insisting because i really want to buy the best)?

Last question, i really apreciate yor help, ecl, eda, int and ad0 are used for what (http://i.ebayimg.com/00/s/NTAwWDUwMA==/z/G0kAAOxyRhBS8JzG/$_12.JPG)?
« Last Edit: February 08, 2014, 12:16:09 pm by TheDeadLives » Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is the RazorIMU:
https://www.sparkfun.com/products/10736
It uses other (also well known) chips and the HMC5883L.

The i2cdevlib fills the DMP with firmware that was retrieved by reverse engineering. So it actually uses the DMP processor. After that the i2cdevlib has additional calculations to calculate all sorts of output data.

The RazorIMU is not bad at all, with common used sensors.
The MPU-9150 has just one reliable library (the i2cdevlib), but the sensor board is a lot smaller. I still prefer this sensor.
So you could select either one of them, but I have another option:
The Adafruit libraries are up to date and well maintained, and they have also 9DOF and 10DOF IMU boards.
Like this one:
http://www.adafruit.com/products/1714
http://www.adafruit.com/products/1604
http://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/software

ECL, EDA, AD0: http://forum.arduino.cc/index.php/topic,186516.0.html
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote

Thanks.

WHy this must be so complicated  smiley-sad-blue ?

I really like MPU 9150. But all tutorials that i found, that shows the compass and the interactive position is using razor IMU. The problem of MPU 9150, like you said, are the libraries, just one and there are not a lot of tutorials.

Last question, because you know more about this than me:

Quote
I still prefer this sensor.

And between the ones from adafruit and MPU 9150?
Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Adafruit and Sparkfun both have open source hardware and software and allow that users ask questions.
In this case I like the Adafruit IMU 9DOF and 10DOF with the libraries more.
You can't go wrong with those Adafruit IMU boards.

For myself I would use the MPU-9150. I have only tried the MPU-6050, so I don't know the magnetometer part.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
In this case I like the Adafruit IMU 9DOF and 10DOF with the libraries more.
You can't go wrong with those Adafruit IMU boards.

For myself I would use the MPU-9150.

Looked in youtube for the adafruit but couldn't found anything.  Just found for Razor IMU, again.

So, i will get a MPU-9150 since you really like it and i like too smiley-wink

Thanks for all your help
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This http://www.ebay.com/itm/IMU-9DOF-MPU9150-Invensense-breakout-board-MPU6050-AK8975-/271135830629?pt=FR_YO_MaisonJardin_Bricolage_ElectroniqueComposants&hash=item3f20f47265

and this http://www.ebay.com/itm/9DOF-MPU-9150-9-Axis-Accelerometer-Gyroscope-Magnetic-Field-Sensor-Moudle-/200949159205?pt=AU_B_I_Electrical_Test_Equipment&hash=item2ec980d525

are the same?

The first one as a mosfet, that isn't in the datasheet of mpu9150. They do the same thing? The data will not be different?

Grateful
Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Almost the same.

Both have the MPU-9150 with a voltage regulator for 3.3V.

The first one is the Drotek board.
http://www.drotek.fr/shop/en/home/153-mpu9150-gyro-accelerometer-magnetometer.html
It has as extra a level shifter for the I2C bus, so you can connect it to a 5V I2C bus.

The second one is the common Ebay module.
There are cheaper ones (inclusive shipping) than the one you found.
http://www.ebay.com/sch/i.html?LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_nkw=%28mpu9150%2Cmpu-9150%29&_sacat=0

If you have a Arduino Uno for example, you can do without a I2C level shifter.
But if you have the Arduino Mega 2560, you need a I2C level shifter.
You could also use a seperate level shifter module, it might be handy some day:
http://www.ebay.com/sch/i.html?LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_nkw=i2c+level+module&_sacat=0
« Last Edit: February 09, 2014, 05:56:38 pm by Caltoa » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry for all question that i'm making, but i'm a noob  smiley-sweat

Quote
It has as extra a level shifter for the I2C bus, so you can connect it to a 5V I2C bus.

Could you explain what the level shifter is used for?
Logged

Offline Offline
Edison Member
*
Karma: 36
Posts: 1219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A level shifter has a 5V I2C bus as input and makes it a 3.3V I2C bus. The conversion is in both directions.

Suppose you have pull-up resistors of 4k7 to 5.0V. That makes it a 5V I2C bus, because the SDA and SCL would climb up to 5.0V if those signals are not pulled low. So when you connect a 3.3V sensor to that bus, the current via the 4k7 pull-up resistors might flow into the sensor, and damage it.

There is an endless discussion when you need a level shifter and when you don't:
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

With a level shifter you have both a 5V I2C bus and a 3.3V I2C bus. You can connect any I2C device to the proper voltage I2C bus. In the sketch there is no difference because the level shifter is fully transparent and no barrier at all.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A level shifter has a 5V I2C bus as input and makes it a 3.3V I2C bus. The conversion is in both directions.

Suppose you have pull-up resistors of 4k7 to 5.0V. That makes it a 5V I2C bus, because the SDA and SCL would climb up to 5.0V if those signals are not pulled low. So when you connect a 3.3V sensor to that bus, the current via the 4k7 pull-up resistors might flow into the sensor, and damage it.

There is an endless discussion when you need a level shifter and when you don't:
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

With a level shifter you have both a 5V I2C bus and a 3.3V I2C bus. You can connect any I2C device to the proper voltage I2C bus. In the sketch there is no difference because the level shifter is fully transparent and no barrier at all.

Thanks for the explanation smiley-wink
Logged

Pages: [1]   Go Up
Jump to: