Their is a mismatch  between the MPU6000 documentation and the arduimu source about the

Scale Range of the Accelerometer.

The output from the arduimu software looks good !

I have another MPU6050 from Drotek

http://www.drotek.fr/shop/en/42-mpu6050-gyro-accelerometer.html

and the output from this one match the documentation. Then the doc is not totally wrong.

Any idea why the MPU6000 inside the ArduIMU V3 don't match the specs ?

Here are my references

Looking at MPU6000.ino I see

MPU6000_SPI_write(MPUREG_ACCEL_CONFIG,0x08);            // Accel scale 4g (4096LSB/g)

0x08 => AFS_SEL=1 and then this is the "4g" range

But in the documentation (see attached picture), AFS_SEL=1 means 8192LSB/g, but the output from the ArduIMU V3 match the 4096LSB/g scale !

Any idea why two similar chipset with the same config return value in two different range ?

Regards

Views: 465

Attachments:

Reply to This

Replies to This Discussion

Hey ....can u give me the correct code for the arduimu v3 ....

This is the line I wrote in first post :

MPU6000_SPI_write(MPUREG_ACCEL_CONFIG,0x08);            // Accel scale 4g (4096LSB/g)

attached is the code I use.

Regards

 

Attachments:

Thanks Alain for the reply ...i am currently using the following code for arduimu v3 ....

http://code.google.com/p/ardu-imu/downloads/detail?name=ArduIMU_1.9...

..i think it is similar to one u r using .....

the problem i face are :

accelerometer doesn't provide good values when moving at faster speed .....

and when i turn my board by 90 degrees ..heading does not change by 90 degrees ..any solution to above issues...??

to convert acc to dist i used the logic -  sqrt((.125*.125*square(ax) +(.125*.125*square(ay)+(.125*.125*square(az)) ... .125 is sampling time....

i.e net diatance =sqrt(dx(2)+dy(2)+dz(2))

dx= .125*.125*ax and so on ....is my method correct ?

and repeating the same for entire set of readings and adding them .....

In my original post, I just say that the spec of the MPU60*0 in the ArduIMU board looks to the documentation and the spec of another MPU60*0 board. 

ArduIMU_1.9 code is working fine with the ArduIMU board ! 

Now, about your equations : 

The definition of speed and acc are :

speed = variation of the distance versus time 

acceleration  = variation of the speed versus time

the opposite require to make some integral calculation

speed=integral of the acc by the time + original speed 

distance = integral of the speed + original position

if acc is a constant or if the period is short :

(1) speed = acc *  delta_time + s0

(2) distance = speed * delta_time + d0

because this is integral calculation you cannot replace speed of (2) by speed of (1) 

double integral of the constant acc is  : (acc*t^2)/2 + v0*t + d0

Then  your equation would be better like this :

sqrt(square(0.5*.125*.125*ax)+square(0.5*.125*.125*ay)+square(0.5*.125*.125*az))

Thanks Alian ,

what u told i implemented it in the attached file ...column N denotes the same ...and column O denotes the corresponding total distance .

Also what i want to ask is that do you get change in heading of about 90 degrees by turning the board by 90 degrees..? also Heading should remain constant when we move in a straight line but it changes practically ..... Heading is calculated by Tan-1(-MY/Mx) (magnetometer readings) if we neglect roll and pitch effects....

Attachments:

Sorry I have not the time to throubleshot your program or data.

My ArduIMU 3 is working well with ArduIMU_1_9 or with my own software.

Be carefull they is lot of trap when working in 3D. Data are not always what you expect and sometime you see the oposit of what you are expecting. 

Here the force is always in the opposite direction of the move.

An yes my magnetometer is working fine and as expected and show a rotation when I turn of 90°

Regards

ok ..no problem ...thanks once again ...:)

HI ..i got fine yaw values when i switched off the magnetometer with expected turn ...but problem is that there is a yaw drift ...any idea how to solve it ...?

What does 1g/4g range actually means..?

Also i want to take readings from GPS only periodically and switch it off for remaining time ...what changes do i need to incorporate in my code..?

Thanks in advance

RSS

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service