We need to calculate the Azimuth ? or its course. According to Wikipedia,the Azimuth or the course is the angle that the intended path of the boat makes with a fixed reference object (typically true north). Typically course is measured in degrees from 0° clockwise to 360° in compass convention (0° being north, 90° being east). Course is customarily expressed in three digits, using preliminary zeros if needed, e.g. 058°. This angle is measured using a compass, a magnetic compass or gyro.
The components that I have chosen to calculate my Azimuth:
HMC5843 magnetic compass is a three-axis magnetometer. It identifies the angle of rotation relative to the magnetic north of the Earth with a resolution of 7 milli-gauss.
The accelerometer AXL335 delivering voltages proportional to acceleration with a sensitivity: + / – 3 g.
B) Calculate Azimuth ? without compensation:
This expression works if the HMC5843 is not tilted.
ps: Warning in Excel, you must reverse the values for atan2, it can save you time ….
You can download a sample program that demonstrates how to read a microcontroller ATMega328 HMC5843
C) The angles Ø Pitch and Roll ? for a two-axis accelerometer and three axis:
With the ADXL335 accelerometer, it is possible to calculate the pitch Ø and Roll ? to correct our azimuth ?. Here is a scheme to visualize the angle on the boat.
For a two-axis accelerometer following equation:
For a three-axis accelerometer as the HMC5843 equation here:
D) Azimuth ? tilt compensation :
The HMC5843 provides correct values if it is flat. So every time my boat will be tilted angle the rotation relative to magnetic north by the compass given no longer correct. It is possible to compensate for this error (tilt compensation) using the values of the compass and an accelerometer.
That compensation is also possible for two lines with the compass algorithm Yun Seong Cho and Chan Gook Park, which allows using the dip angle to estimate the third axis. You can download their work below
Download : TiltCompensation.pdf
For a two-axis magnetometer, you must calculate the dip angle to approximate the third axis Z.
To calculate :
ex: ou 48.86213° coïncide avec ma latitude.
Compass for two axes, it is necessary to approximate the third axis Z by the value of the dip angle
However, to get more accurate values, it is better to use a compass as the HMC5843 three axes.
To calculate the azimuth with compensation:
Horizontal vector :
Vertical vector :
Links : http://fr.wikipedia.org/wiki/Cap_%28navigation%29
Cette note est également disponible en: French