Debating in Copenhagen

Last week-end was quite exhausting for me.

I went to represent my school (or at least try) to a debating competition in Copenhagen hosted by CBS (Copenhagen Business School). The debating style was British Parliament and there were 5 rounds before the semi-finals. We finished in the second half of the ranking but it was an interesting experience. It was also an occasion to practise our English : debating is especially useful to enhance your fluency.

I also had the chance to discover the city and visit it in spite of the cold and bad weather.

A photo taken near Copenhagen's airport

A photo taken near Copenhagen’s harbour

During the return to Toulouse I had my flight cancelled from Frankfurt to Toulouse, the good new was that I had the possibility to take a lot of pictures on the huge hub that is Frankfurt Airport. I’ll post them on my website as soon as I sorted them.

DIY quadcopter : get the attitude

In my previous article about my quadcopter, I described my project. Now comes the first step where I explain how to get pitch, roll and yaw information from my inertial measurement unit (IMU) on my Arduino card.

For this part, I will be only using the accelerometer and the gyroscope of my MPU9150 (so it’s the same as a MPU6150).

Zoom on the MPU9150 which is the IMU used in my project

Zoom on the MPU9150, the IMU used on my quadcopter

We’ll first see why we need both an accelerometer and a gyroscope, then I’ll give you my wiring and finally I will talk quickly about the fusion algorithm.

Why do we need accelerometer AND gyroscope ?

To answer to this question, you need to understand what kind of information is given by the accelerometer and the gyroscope.

The accelerometer will measure acceleration, and in our case we are interested by the acceleration caused by gravity. If your sensor is not moving it will give you a 3D vector pointing at the ground, so you can know your attitude (pitch, roll and yaw). This is what is used in your smartphone to rotate what is displayed on your screen when you tilt your phone. Unfortunately, an accelerometer is sensible to movement and vibrations which are two elements that you have on a drone so you can’t use it alone.

The gyroscope will measure an angle velocity on every axis. By integrating this, you will be able to know what is your attitude. But you have to know your first attitude at the beginning (either by starting on a known position or by using data from another system like an accelerometer of course !). The gyroscope comes with another problem : it tends to drift over time so you need to reset its position from time to time.

This graph shows you calculated roll of my sensor if you only use an accelerometer or a gyroscope :

Gyroscope versus accelerometer

Gyroscope versus accelerometer

You can see that the accelerometer is noisy and that the gyroscope drift at the end. The point of a fusion algorithm is to get the advantages of both sensors in order to have a nice attitude indication.

Continue reading

Conky, when is my next bus ?

Tisseo (Toulouse’s public transport operator) have an API which can be used to get real time bus at a stop (among plenty of others features). So I requested the access (it’s free but you have to register) and now I can play with it.

I thought that a nice application would be to display the next bus using Conky (conky is a highly customizable software running on linux to display information on your desktop).

Here is the result :

A screenshot of my conky on my desktop

A screenshot of my conky on my desktop

I also added the data from JC Decaux’s API about their self-service bike.

For those wondering how I did here is a quick explanation : every 10 seconds, conky is executing a php script which will gather the data from the API and return what will be displayed on conky.

Here is the line on conky calling the script :

${execpi 10 php ~/.conky/php/bus.php}

And here is the php script gathering data from JC Decaux :


//put here your API key
$key = "key";

//name of the contract, toulouse in my case
$contract_name = "toulouse"; 

// Name of the station => ID of the station
$to_look = array("Fac de Pharma"=>228,"ENAC"=>223,"CNRS"=>237); 

foreach($to_look as $nom=>$id) //display every station in $to_look
	$link = "".$id."?contract=".$contract_name."&apiKey=".$key;
	$result = file_get_contents($link); //making the request
	$result = json_decode($result,true); //decoding

	echo('${offset 30}${color DDDDDD}'.$nom.' - '.$result["available_bikes"].' vélos & '.$result["available_bike_stands"]. ' stands');


I hope that this will give ideas to others !


Spotting the Beluga

After my article about the Airbus A380, here comes my pictures of the Airbus A300-600 Super Transporter, also known as the Beluga !

This aircraft was created by Airbus in order to move its pieces to the final assembly chain in Toulouse. Today there are 5 of them. Airbus is know planning to create a new Beluga, which would be based on the A330.

DIY Drone with Arduino

While I am still waiting for the pieces for my alarm clock to arrive, I’m continuing to develop my long-term project that I am going to present on this article.

Last summer I decided to build myself a drone : a quadcopter to be precise. My main goal is to create my own flight controller with an arduino card. Here is what it looks like now :

General view of the drone

General view of the drone

I didn’t want to spent much time choosing the motors or propellers so I bought a kit on Hobbyking with the frame, the motors and ESC (motor controllers) so I knew that there would be no dimension problem.

As long as electronics components are concerned, I chose to have a cheap alternate of the Arduino Uno (I know shame on me), and the MPU9150 as “attitude sensor”. I already had a Remote Controller (RX/TX).

The MPU9150 is 9 degrees of liberty sensor that is in fact composed of 3 sensors :

  • a 3-axis accelerometer
  • a 3-axis gyroscope
  • a 3-axis magnetometer, which is the equivalent of a compass
Zoom on the MPU9150 which is the IMU used in my project

Zoom on the MPU9150 which is the IMU used in my project

My goal with this project is to program and understand the process of flight stabilisation. The first step will be to change the data from IMU into a pitch, roll and yaw indication.