ELECINF344/381

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

Catégories

MB Led: Algorithmie

Après une journée très épuisante lundi avec le communication challenge, nous voilà reparti sur le projet. Hier, j’ai revu l’algorithmie de base avec l’aide de Cédric et Benjamin. Aujourd’hui, j’ai parlé avec Sam sur le zéro MQ. En effet, pour l’instant, ma simulation est uniquement en Python (une classe pour le module, une pour l’envoi de message, une pour la réception). Sam me dit qu’il serait préférable — quand l’algorithmie sera au point — de programmer les modules en C directement et d’utiliser zéro MQ pour simuler un scénario et envoyer les messages entre modules.

 

Le schéma algorithmique est le suivant :
PING -> ELECTION DE LEADER -> ORIENTATION -> POSITIONNEMENT.

  • PING

Les modules ping tout le temps leur 4 interfaces (disant « HELLO MY_ID »). Au bout d’un certain nombre de messages reçus sur une interface, il considère qu’il a un voisin.

  • ELECTION DE LEADER

A la fin de la phase d’identification, il y a « élection de leader » pour savoir qui décidera de l’orientation. Pour l’élection, on choisit le module Bluetooth en premier et sinon, c’est celui avec l’ID le plus grand.

Si un module arrive sur un réseau déjà orienté, il n’y a pas d’élection de leader, il « subit » la loi du nombre.

  • ORIENTATION

Le « leader » oriente les autres modules selon son orientation.

  • POSITIONNEMENT

Le but est de savoir à chaque instant qui est dans le réseau (et où exactement).

Nous avons opté pour la création d’un tableau de voisin stocké en RAM. Au centre de ce tableau est inscrit le numéro du module.Ensuite, les voisins « directs » (accessibles par IrDA) sont stockés selon l’UART avec laquelle ils communiquent.

Ex : Le module est en rouge ici, le voisin qui communique avec l’UART 1 est stocké en 1, etc.


Quand un module arrive sur un réseau, il n’est pas considéré comme faisant parti du réseau tant qu’il n’est pas orienté correctement. Quand il le devient, il envoie un message à ses voisins disant « coucou je fais parti du réseau », ce à quoi on lui répond « OK. Voici tous les modules connectés au réseau (avec leurs coordonnées) »

Quand l’algorithme de positionnement sera fini (d’ici peu j’espère), je passerai à la programmation en C des modules et je tenterai un affichage graphique de la simulation.

 

Sur le même sujet :

  1. MB Led: Article post communication challenge.
  2. MB led: Liste des composants, modulation d’intensité et Python
  3. MB Led: PCB et algorithmique
  4. MB Led : architecture fonctionnelle
  5. Rosewheel : conception des cartes

2 comments to MB Led: Algorithmie