Site ELEC344/ELEC381

Partie interactive du site pédagogique ELEC344/ELEC381 de Télécom ParisTech (occurrence 2010).

Catégories

La joie des grands espaces

Après la soutenance de vendredi, voyant que la démo s’était bien passée, nous avons décidé de profiter du grand espace intérieur du complexe pour (enfin !) s’amuser avec notre Heliokter.

Et voici un vol assez long et stable, avec Etienne au pilotage (le son a été supprimé) :

Simulateur !

Aujourd’hui j’ai continué à tester les différents algorithmes que nous avons mis en place pour l’initialisation de GLiP à l’aide d’un simulateur en python. Suite à la soutenance de mercredi, plusieurs parties de l’algorithme ont été reprises (cf wiki) et les étapes de ping, d’élection de leader et d’orientation des modules ont été simulées. Cela a permis de mettre en évidence quelques problèmes d’algorithmique qui ont pu être résolus.

Algo d’initialisation de la carte

Aujourd’hui j’ai travaillé sur l’algorithme d’établissement de la carte lors de l’initialisation. Par rapport à ce qui avait été fait avant la soutenance, j’ai ajouté le fait qu’on lise les données sur les positions dans le fichier glip et le fait qu’il puisse manquer un bloc. Reste à faire des essais sur des cas critiques (à trouver …!).

Test des protocoles de communications

Aujourd’hui après la soutenance de ce matin, nous avons établit le diagramme de Gantt pour la fin du projet.

A midi j’ai demandé à Alexis s’il pouvait me souder des micromatch pour connecter deux cartes de TPs et tester les communications avec notre protocole.

Puis dans l’après midi, j’ai commencé l’encodage et la configuration des cartes.

Avancé - Serpentina

Cet après-midi, j’ai travaillé sur le codage de l’algorithme de mouvement avant/arrière du serpent.

Pour l’instant, j’ai deux fonctions qui font les calculs pour trouver le zéro d’une fonction. Chacne utilise une méthode :
- celle de la dichotomie, qui est la plus simple à implémenter, mais qui converge moins vite; je l’ai utilisé pour une première simulation.
- celle de Brent, qui utilise les méthodes de la dichotomie, de la sécante et de l’interpolation quadratique inverse et qui théoriquement est plus rapide pour converger.

Ensuite, j’ai aussi calculé les valeurs d’un tableau d’arctangente, dont je me sers pour le calcul de l’angle de mouvement du moteur.

Ce que je fait là c’est la séparation du code pour chaque vertèbre, pour ensuite faire son intégration avec le PWM.

Flavia et moi, on a aussi choisi les responsables pour les tâches à accomplir. Notre diagramme de Gantt est le suivant (en rouge les tâches dont la responsable est Flavia, je suis responsable pour les tâches en bleu, et en vert ce sont des tâches optionnels et la préparation pour la soutenance) :

Quand le gyro est phare

Mardi, j’ai travaillé sur le gyroscope. J’ai réussi à obtenir de bons relevés de valeur, notamment en intégrant pour obtenir l’inclinaison de la carte. Cependant, il y a une dérive, normal. J’ai donc implémenté  un filtre que Fabien a conçu, mais je fais face à des bugs mystérieux.

Je continue d’y travailler. Par ailleurs, nous avons préparé la soutenance de ce matin !

Les PCB de Pâques

Non, ils ne sont pas enc chocolat mais ils sont arrivés aujourd’hui (pour nous en tout cas et pour plusieurs autres groupes aussi je crois). Cette après-midi, nous avons d’ailleurs (entre autres) aidé Alexis à souder les composants

Voici une petite photo du joujou :


Ce soir, j’ai converti tout ce que j’avais fit sur l’IMU sur cette carte et ça c’est fait plutôt sans douleur puisqu’il suffisait de changer les affectations des pins (et encore, le Bluetooth etait branché au même endroit et il y avait juste une permutation entre les ports SPI pour l’accéléromètre et le magnétomètre). Modulo le magnéto-résistor vertical, non encore soudé sur la carte pour des raisons de fragilité,  on a donc  pour le moment les mêmes fonctionnalités que sur la carte IMU.

Pour ce qui est du Wahba, le résultat n’est toujours pas très probant mais Fernando m’a parlé d’un algorithme qui pourrait mieux nous aider que le TRIAD. Pourtant les valeurs de base semblent bonnes puisqu’avec le magnétometre seul, je détecte bien le lacet et avec l’accéléromètre seul je détecte bien le roulis/tangage. C’est la combinaison des deux (avec les noeuds au cerveau qui viennent avec, dès qu’on pense ordre des rotations dans l’espace) qui n’est pas au point.

Le fait de se voir tous les quatres après les vacances de Pâques a été aussi l’occasion de mettre tout le monde à jour, de fixer les tâches de chacun et de préparer la soutenance de demain.

Avancé projet et présentation

Aujourd’hui j’ai continué dans la recherche autour de GLiP, notamment on a mis au point la structure des paquets que nous allons utiliser pour les communications.

Puis j’ai développé les fonctions permettant d’appliquer l’algorithme de Dijkstra à une map donnée afin de trouver le plus court chemin menant au destinataire d’un message.

Ce soir j’ai complété ma partie de la soutenance de demain matin et continué à travailler notamment sur la datasheet de l’IrDA sur laquelle je vais travailler ces prochains jours.

Tic Tac Tic Tac

Journée fructueuse (Youhou!!!)

Comme indiqué par Kellya ce matin le bus CAN fonctionne (ENFIN !!!). Cet après midi je me suis donc attaqué à la récupération des encodeurs. Comme il est impossible d’utiliser les modes « encodeur » des timers de la carte de TP (pins déja prises), j’ai utilisé la carte du projet propulsion de l’an dernier… Et pour pouvoir afficher le nombre de tic sur l’écran LCD je l’ai relié à ma carte de TP… avec le bus can (il faut bien qu’il serve à quelque chose…).

Le montage électrique est assez moche (dommage que je n’ai pas mon appareil photo !) mais ça fonctionne. En revanche on (Kellya et moi) constate qu’il y a une latence d’une seconde entre la rotation de la roue et l’affichage sur le LCD.

à faire :

déterminer d’où vient la latence. (LCD ? CAN ? encodeurs ?)

réaliser un petit programme de communication carte TP / port série  parce que minicom c’est quand même mieux qu’un LCD de 32 caractères.

faire les fonctions qui donnent la position, la vitesse, l’angle de lacet et la vitesse de rotation en lacet avec des unités compréhensibles (plus pratique pour le calibrage et les tests).

PS : j’ai aussi complété les slides de mon groupe pour la soutenance de Mercredi.

Heliokter, Jour 23 : Fall simulator

Résumé de notre avancée depuis le dernier post

Jour 21 (mardi) : Nous avons passé la journée avec Efix à coder pour interfacer le simulateur et l’asservissement que j’ai écrit en C. L’opération fût un succès, cependant il nous faut encore régler les coefficients des différents asservissement PID que nous faisons pour l’instant : roulis, tangage, lacet. Il reste également à implémenter l’asservissement en altitude et à régler les problèmes de modulo sur les angles. Après avoir bien joué avec le simulateur et regardé notre heliokter s’emballer de toutes les façons possibles nous avons décidé de nous concentrer uniquement sur la carte.  Les schémas sont à rendre vendredi !

Le soir j’ai aussi fini le placement routage de ma carte de TP.

Jour 22 : Petite soutenance improvisée avec un projecteur qui « tombe en panne ». L’exercice fut intéressant sans être trop pénible puisque la présentation était encore fraîche dans notre tête. A l’issue de cette soutenance, comme nous l’ont montré Alexis et Sam, nous avons décidé d’améliorer la communication interne et de bien définir la répartition des tâches afin que chacun soit à la fois responsabilisé et recoive le crédit qui lui est du pour son travail.

Nous nous sommes donc ensuite répartis les rôles pour le dessin de la carte :

Fernando : ZigBee et RS232

Miguel : Gyroscopes et controleurs brushless

Efix : Magnétomètre et accéléromètre

Moi même : Télémètre et LEDs

Le rôle de chacun est de lire à fond la datasheet du composant qui lui est attribué et de faire un schéma de connexion au processeur.