ELECINF344/381

Partie interactive du site pédagogique ELECINF344/ELECINF381 de Télécom ParisTech (occurrence 2011).

Catégories

[CASPER] can fetch and store mails

We made some improvements in our mail fetcher. Now, it’s able to fetch mails from most mail server ( pop3, secured or not). It can fetch the last mail received and store its content and subject into a file, so it can be read by our text-to-speach engine.

Moreover, we had the mail fetcher work in the Beagleboard.

As a reminder, we are using the C++ library Vmime 0.9.1.

[CASPER] Fetching mails

We started to work on the first web service we would like to have casper use : MAILS.

We choose to use the C++ library Vmime which support many protocols such as pop or imap. It also has functions to parse the retrieved mails and get only the parts interesting to us.

We wrote a program able to connect in POP3 to the pop3.free.fr mail server (which allows unsecured connections). Giving a login/password pair this program is able to print a mail (the first of the list for now).

We are now working on organizing and selecting the right data from the mail server.

 

 

IRL is back

FPGA

Yesterday we were working on the switching on/off of the laser spot and on the module wich will ensure security. The features are written but not yet working well. We need modelsim to debug but it is only installed on the school’s computers which are, as you know, not available this week-end. So we decided to give up and focus on the Web part until Monday.

Web

Twitter

We can now fetch the last few tweets containing a given hashtag on twitter and put them into a database. Another program queries the database to get the newest message and then displays it letter by letter on the oscilloscope. Everything is written in C and working on the Armadeus board.
For twitter, we don’t use any library apart from libcurl, to query the twitter’s API, and jansson to parse the incoming JSON object returned by twitter.

Here a small video, you can see the latest (at this time) tweet on #rose2011, displayed leter by letter on the oscilloscope.
You can read « 75% students attendance during the vacation #rose2011″.

Interface:

We can pack the result from a query to the database into a JSON object. Inserting values given by a JSON object into the database won’t be difficult.
Next step is to communicate with a client. As we don’t seem to be able to make Mongrell2 work on the Armadeus, we looked for an alternative. Yesterday we have quickly tried a library called libmicrohttpd to handle HTTP queries. We have only tested a simple GET command, but at least it works on the Armadeus, and it is written in pure C. Contrary to CGI, this library is able to manage multiple connections in only one process using Posix threads.

 

Copterix : finalisation du filtre de Kalman

Alors, comme nous l’avons dit hier, cette journée a été dédiée aux tests du FQA et du filtre de Kalman sur une IMU. On récupère les données brutes des capteurs (3 gyroscopes, 3 accéléromètres et 3 magnétomètres) par un script python. Le Kalman qui sera implémenté sur la Gumstix est en C++. Il a donc fallu dans un premier temps faire communiquer le script python et le programme C++ afin d’acheminer les données des capteurs vers notre Kalman. Nous avons pour cela utilisé ZeroMQ avec une architecture Publisher/Subscriber.

Une fois la communication fonctionnelle, nous avons pu commencer à tester notre FQA et notre Kalman. Au début, nous avions pas mal de problèmes au niveau de l’orientation de nos axes. Mais après avoir passé pas mal de temps à étudier les sorties des capteurs pour comprendre selon quels axes ils étaient positionnés, nous avons obtenu des résultats plutôt satisfaisants :

Dans la première vidéo , nous n’utilisons pas le filtre de Kalman (juste le FQA) alors que dans la seconde, le filtre de Kalman est activé. L’utilisation du filtre permet d’éliminer pas mal de bruit. Il reste tout de même quelques petits détails à régler car il y a quelques indéterminations qui chamboulent un petit peu le filtre.

Nous avons en outre reçu notre PCB :

La journée de demain sera consacrée à établir la communication avec notre nouvelle carte !

MB Led: Journée de présentation

Dernièrement, nous avons passé beaucoup de temps à adapter la structure de notre projet en fonction de nos possibilités et idées. La préparation de la présentation de demain matin nous a donc pris pas mal de temps.
Nous avons ainsi revu l’organisation logicielle des blocs que nous posterons après validation des enseignants. Nous avons également pensé à un système d’interaction avec les blocs permettant de les utiliser comme une manette de jeu vidéo. Benjamin continue la lecture de la Datasheet du driver de LED et continue à l’implémenter. Guillaume a continué de débugger la simulation de l’algorithme que nous avons choisi. A partir de différents scénarios (arrivée progressive des modules, deux réseaux qui se rencontrent, etc.), nous avons testé le modèle d’élection de leader, d’orientation et il semblerait marcher. Le plus dur étant le retrait d’un ou de plusieurs modules, ce qui oblige à recommencer le processus d’élection de leader, … .  A présent, Guillaume va commencer à l’implémenter en C via 0MQ. Pour ma part j’ai défini la structure du module de gestion de l’IrDA afin de l’adapter à l’envoi de données de tailles importantes.