Compass Inertial Messurement Unit

Dieser Artikel wird auf diverse Kompass und IMU Module eingehen.

TBD

 

Aktuell!

GY-9150 / GY-521 breakout board using MPU-9150

GY-9150-BreakoutBoardGY-9150-BreakoutBoard

Gyro Accelerometer

 

Magnetometer

There are two possible solutions to get the magnetometer data from this device:

IIRC,  there are at least two ways that this can potentially work.   

One way,  is to use the main I2C bus to look right through the 9250  and communicate with the magnetometer directly.   I could never get this to work.    I guess this scheme is the "serial interface bypass".

The other way,   is to tell the 9250   to  continually read the 6 data registers of the magnetic device itself,    and copy the data into 6 of the spare registers on the 9250,     and then you just read the data from those 6 spare registers on the 9250.     It was a problem to get this to work,    but once I got it working,   it worked just fine.     I guess this scheme is not the "serial interface bypass".

 

 

 

Verbindung AVR MPU9150

i2c is an open collector setup. The pins of a device should only pull the line low, or release them (set them as high-impedence inputs for example), allowing the i2c pullup resistors to pull the line up to VCC. VCC can be anything within the devices specs. In this case, a 3.3v pullup will work with the sensor, and at (AVR VCC 5v * 0.6) = 3v is higher than the minimum Logic High for the AVR. You just need to make sure that the pull-ups are only connected to 3.3v, so all others should be cut out/removed or in the case of internal pull-ups, disabled.

The Sensor module you link to already has external pull-up resistors tied to it's VCC (so assuming 3.3v). You just need to disable any internal pull-ups on the AVR or i2c library you are using (if you are using one).

 

 

Have you tried alternative addresses for the AK8975 slave, such as 0x0D or 0x0E? Also, have you enabled I2C slave bypass mode on the MPU9150? The AK8975 inside the MPU is wired up to the AUX I2C pins rather than the main I2C pins, so you will not be able to talk directly to the magnetometer without first enabling bypass.

I have not yet worked with the MPU9150 much yet, so I am kind of guessing here.

 http://playground.arduino.cc/Main/MPU-6050

http://playground.arduino.cc/Main/InterfacingWithHardware#DOF

http://www.varesano.net/projects/hardware/FreeIMU

 

Weitere Kompass- bzw. IMU-Module:

HMC5883L - 3 - Axis Digital Compass

http://bazaar.launchpad.net/~fabio-varesano/freeimu/trunk/files/head:/libraries/HMC58X3/

https://learn.adafruit.com/adafruit-hmc5883l-breakout-triple-axis-magnetometer-compass-sensor/wiring-and-test

http://forum.hobbycomponents.com/viewtopic.php?f=73&t=1485

https://github.com/sleemanj/HMC5883L_Simple/blob/master/HMC5883L_Simple/HMC5883L_Simple.cpp

 

HDMM01 - Dual-axis Magnetic Sensor Module With I2C Interface

HMC1051Z - 1, 2 and 3 Axis Magnetic Sensors HMC1051/HMC1052L/HMC1053

MMA7361 - ±1.5g, ±6g Three Axis Low-g Micromachined Accelerometer

Xsens Motion Tracker MTi-Serie

 

Magnetic Field Calculators

http://www.ngdc.noaa.gov/geomag-web/#igrfwmm

http://geomag.bgs.ac.uk/data_service/models_compass/wmm_calc.html

Orders of magnitude

http://en.wikipedia.org/wiki/Orders_of_magnitude_%28magnetic_field%29

 http://files.mikrokopter.de/pictures/Calibration2b.gif

 

 

 

SOME more LINKS

https://sites.google.com/site/myimuestimationexperience/sensors/magnetometer

http://forum.arduino.cc/index.php/topic,8573.0.html

http://stackoverflow.com/questions/24639529/tilted-magnetometer-output-pitch-and-roll-tilt-compensation-i-am-lost

http://forum.arduino.cc/index.php?topic=152529.0

https://github.com/markfink/epicii/tree/master/basic_samples/imu

http://www.starlino.com/imu_kalman_arduino.html

https://code.google.com/p/ardu-imu/wiki/Code

https://code.google.com/p/nav6/wiki/Protocol

http://www.varesano.net/blog/fabio/freeimu-magnetometer-and-accelerometer-calibration-gui-alpha-version-out

http://bazaar.launchpad.net/~fabio-varesano/freeimu/trunk/view/head:/libraries/FreeIMU/examples/FreeIMU_serial/FreeIMU_serial.ino

http://www.vectornav.com/support/library/magnetometer

http://www.camelsoftware.com/firetail/blog/uavs/3-axis-magnetometer-calibration-a-simple-technique-for-hard-soft-errors/

http://diydrones.com/profiles/blogs/advanced-hard-and-soft-iron-magnetometer-calibration-for-dummies

https://gist.github.com/timtrueman/322555

https://github.com/kolosy/ArduSailor/blob/master/firmware/ahrs.cpp

http://diydrones.com/forum/topics/magnetometer-tilt-compensation-tutorial-sensor-analysis?id=705844%3ATopic%3A1650205&page=2#comments

http://theccontinuum.com/2012/09/24/arduino-imu-pitch-roll-from-accelerometer/

http://tom.pycke.be/mav/69/accelerometer-to-attitude

http://theboredengineers.com/2012/09/the-quadcopter-get-its-orientation-from-sensors/

http://www.st.com/web/en/resource/technical/document/application_note/CD00268887.pdf

http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf

http://stackoverflow.com/questions/3755059/3d-accelerometer-calculate-the-orientation

http://physics.rutgers.edu/~aatish/teach/srr/workshop3.pdf