Table of contents
3.Introduction
4.Specification requirements
5.Solutions suggestions
6.The magnetic fields sensors
7.The inclination measurement system
8.The gyroscope
9.The data acquisition system
10.Communication system
11.The power supply
12.Realisation of the PCB
13.The embedded system
14.Static Library Util.a
15.ViewPort
16.Xcompass
17.Sensors controller commands
18.Test
19.Future improvements
20.Conclusion
21.References
The main objective of this project is to
realise an electromagnetic compass. As this kind of device has never been
developed in IAU, we started by studying the different component available on
the market.
After initial researches on the Internet
and thanks to the document: Where am I? [2], our attention was kept by a solution
based on three magnetoresistive sensors. This kind of sensors is able to
measure, with good accuracy, the value of a magnetic field. To get a good
resolution, it is important to determine precisely the component of the earth
field on horizontal plan. The azimuth can be calculated from these two values.
However, the result will be extremely sensible to an inclination. To
counter-act this effect, an inclinometer and a third axis for the
magneto-sensor are required.
To detect the tilt angle on the robot,
one of the possibilities could be to implement accelerometer 2 axis. Indeed,
the inclination value can be deducted from the earth gravity. At this point,
acceleration on the robot will also be interpreted as a tilt. A third axis one
the accelerometer will clarify the situation. A further possibility could be to
adjoin a gyro, which will determine the angular rate of the robot when this one
turns. Indirectly, by comparison with the angle calculated from the compass, we
are able to determine if the variation on the accelerometer is due to
acceleration or a tilt.
In addition, the angular rate could be
use to confirm the value given by the magnetic field sensors. By integrating
this measure, we also obtain the angle position of the robot. This result could
confirm the result of the magnetic north, but also be an alternative of this
last one if the robot meets an important magnetic interference that disturbs
the sensor.
Once the overview of the system
elaborated, the choice of the components has been done according to the
following factors:
- The price (cheaper as possible)
- The specifications (corresponding
as close as possible to our needs)
. Example: The
temperature range has to be between -10 and 40°C because the MMR is used
outdoors.
- The performance (best as possible)
- The size (the PCB has not to exceed 8 by 10 centimetres)
- The package (SO or DIP)
In addition, we selected the component
among those that can be supply by a 0-5V power. This specification avoids the
multiplication of the reference voltages.
A great part of the design depends on the
specific components used. To reduce the cost of our cards we also tried to
reuse many components as possible already available in IAU. Consequently, we
orientated the choice of the basic components (resistor, zener, diode,
capacitors, and transistors) between those already presents.
As most of the outdoors system, the
electromagnetic compass has to be waterproofed. Therefore, we have to choose a
box to wrap the all system. The different connectors to communicate with an
outside computer or for supplying the system will use the same connectors as
the ones implemented on the MMR. An important characteristic is not to perturb
the magnetic earth field.
The navigation system has to be able to
works autonomously: to compute, at any moment, the angle to magnetic north by
itself. A foreign system could then request this value via an RS485 connection.
This specification requires the presence of a dedicate MCU which will,
according to the request, collect the measure from the sensor, process the
information and reply the corresponding value. The communication is setup at
115200 baud.
This program has to be developed on Linux
operating system and communicate with the connection RS232 and RS485 directly from a PC.
|