Human–computer interaction

March 31st, 2011 by jed No comments »

Post to Twitter

First stable version of HCI 20 march 2011


Tilt Compensation Azimuth ? with Pitch Ø et le Roll ?

March 19th, 2011 by jed 9 comments »

Post to Twitter

A) Introduction

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:

\psi = (180 *(\frac{atan2(-1 * YMagneto, XMagneto)}{pi}))+180;

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
Download: here

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:

\theta=\arcsin(Xaccel)*\frac{180}{pi}

\phi= \arcsin(Yaccel)*\frac{180}{pi}

For a three-axis accelerometer as the HMC5843 equation here:

\theta= \dfrac {atan(-Xaccel)} {\sqrt(Yaccel^2+Zaccell^2))}*\frac{180}{pi}

\phi= \dfrac {atan(Yaccel)}{\sqrt(Xaccel^2+Zaccel^2))}*\frac{180}{pi}

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 :

\delta = \dfrac{1}{tan(2*tan(Latitude)}

ex:  \delta = \dfrac{1}{tan(2*tan(48.86213)} ) = 25.0112° 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

Zmagneto = \dfrac {sin(\theta)+Xmc*sin(\theta)-Ymc*cos(\theta)*sin(\phi)} {cos(\phi)*cos(\theta) }

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 : xh = x*cos(\theta)+y*sin(\phi)-z*cos(\theta)*sin(\theta);

Vertical vector : yh= y*cos(\phi)+z*sin(\phi);

Heading : \psi= arctan(-yh/xh)

Links : http://fr.wikipedia.org/wiki/Cap_%28navigation%29

Components selected

March 19th, 2011 by jed No comments »

Post to Twitter

A) Components selected :

The main motherboard responsible for performing the calculations, the choice is the Fox board Board G20

His features

Power

+ 5

Volts

Consumption

60 mA

Processeur ARM9™ AT91SAM9G20400 MHz d’Atmel™
Memory 64mbyte@ 32bit 133MHZ
I/0 – 28 portsd’entrées/sorties

– 2 ports série (niveau 3,3 V)

– 4 entrées de conversion “A/N”

– bus I2C™ / SPI™

– Sortie PWM

The GPS is the MediaTek MT3329


His features

Channels 66 channels
Sensitivity -165dBm tracking
Maximum update rate up to 10Hz
Dimension? 16mm x 16mm x 6mm
Position Accuracy Position Accuracy
Cold Start under 35 seconds (Typical)
Warm Start under 34 seconds (Typical)
Hot Start under 1 second (Typical)
Low Power Consumption 48mA @ acquisition, 37mA @ tracking
Low shut-down current consumption? 15uA, typical

The magnetometer is the HMC5843 three axes:

Alimentation

voltage of 2.5-3.3VDC

Sorties

Dimensions

0.5×0.5″ (12.7×12.7mm)

Alimentation

Consommation

Résolution

Précision

Filtrage

Sorties

I2C interface

The accelerometer is the ADXL335

His features

Dimensions 4 mm × 4 mm × 1.45 mm LFCSP
Sensing 3-axis sensing
Consommation Low power – 350 ?A (typical)
Excellent temperature stability
Single-supply operation1.8 V to 3.6 V

Communication is based on XBee

Alimentation

+ 3.3

Volts

Consommation

210 mA

Puissance

50 mW

(+17 dBm) power output

Point-to-multipointnetworking ideal for low-latency applications

Support for large, dense networks128-bit AES encryption

RPSMA connector

Industrial temperature rating

(-40° C to +85° C)

Advanced mesh networking and low-power modes supported

2- The expression of needs

January 10th, 2011 by jed No comments »

Post to Twitter

A) Introduction

The main component of my project is a sailboat. This boat must be large enough to allow the integration of all electronic components. The boat performances need to be satisfactory. However, the project’s main goal is not high-performance because it requires more investments. The boat must have a reasonable stability. By stability we mean the resistance of the boat to tilt under the influence of external forces, but also the balance when the boat is not subjected to external forces. The bulb of the keel acts as a force to the bottom by his weight and strength led by the up by Buoyancy. When the boat heels, the center of gravity shifts depending on the inclination.B) Electronic Components

First, I need a motherboard that will perform all calculations and the managment the navigation system. This motherboard will use a small space so I can install it in my sailboat. On the other hand, it should be powerful enough to perform all calculations in a period of less than 1 / s. This card should consume as little energy as possible and have a large number of input-output PWM, I2C, Serial port, but also the ADC (Analog Digital Converter). Finally, this motherboard will run on a Linux system. Second, I need a GPS to determine the latitude longitude position of the boat. We need the support of GPS EGNOS / WAAS to improve accuracy. As the main motherboard, the consumption and size are very important criteria. Third, I need a set of sensors, an accelerometer, a magnetometer, a wind vane, an anemometer (optional). The magnetometer will have a margin of error of less than 1 ° to determine the direction followed by the boat. An accelerometer with a sensitivity of + / – 2g to measure the heeling of the boat (cottage), but also to correct the values provided by the magnetometer. Finally, the wind vane will calculate the true/apparent wind direction (TWA) / with a margin of error if possible of less than 1 °. Fourth, I need a long-range communication system to communicate from the ground station and to monitor the sensors.

Finally, the battery will allow it to operate all electronic equipment with an autonomy of around 12 hours. We could also use solar panels / small wind / hyrdroeoliennes to increase this autonomy.

1- Pre-Opportunity Review AUSV

December 19th, 2010 by jed No comments »

Post to Twitter

I am working on building an autonomous sailboat AUSV (Autonomous Unmanned Surface Vehicle) type model-making. This project includes several sensors, such as a GPS, a magnetometer, an accelerometer, an anemometer, a vane direction. The ultimate goal is, for example to have the sailboat leave Saint-Malo and sail to Dinard on its own.

For the navigation I plan to use an algorithm of reinforcement learning. The reinforcement learning refers to a class of problems of machine learning, whose goal is to learn from experience, what to do in different situations, to maximize a digital reward over time.

Why this project? I am computer science student. This project is a challenge for me. In my view, taking up a challenge improves yourself. I have limited skills in electronics, this project will give me the opportunity to develop and improve my knowledge. In addition, the design of a project of this size will strengthen my perseverance and my rigour, which are essential to a good practice of my profession.

Sailboats consume very little energy because they can move with the wind. Today, the issue of renewable energy is becoming essential.

Shipping with fossil fuels is unsustainable on the long term. It is possible that autonomous sailboats, in the next century, can carry containers thanks to the wind with satisfactory results regarding energy consumption and time.

I started thinking about the technical and financial feasibility of my project. I beginning to have a clear vision of budget / time / skills required.

Therefore, I am looking for support.

You want to help? You have an idea, any advice .. ? I’m interested:

You can contact me here

I am working on building an autonomous sailboat AUSV (Autonomous Unmanned Surface Vehicle) type model-making. This project includes several sensors, such as a GPS, a magnetometer, an accelerometer, an anemometer, a vane direction. The ultimate goal is, for example to have the sailboat leave Saint-Malo and sail to Dinard on its own.

For the navigation I plan to use an algorithm of reinforcement learning. The reinforcement learning refers to a class of problems of machine learning, whose goal is to learn from experience, what to do in different situations, to maximize a digital reward over time.

Why this project? I am computer science student. This project is a challenge for me. In my view, taking up a challenge improves yourself. I have limited skills in electronics, this project will give me the opportunity to develop and improve my knowledge. In addition, the design of a project of this size will strengthen my perseverance and my rigour, which are essential to a good practice of my profession.

Sailboats consume very little energy because they can move with the wind. Today, the issue of renewable energy is becoming essential.

Shipping with fossil fuels is unsustainable on the long term. It is possible that autonomous sailboats, in the next century, can carry containers thanks to the wind with satisfactory results regarding energy consumption and time.

I started thinking about the technical and financial feasibility of my project. I beginning to have a clear vision of budget / time / skills required.

Therefore, I am looking for support.

You want to help? You have an idea, any advice .. ? I’m interested:

You can contact me here

Twitter links powered by Tweet This v1.8.1, a WordPress plugin for Twitter.