Arbalet Mesh (fr)


#1

Le projet Arbalet Mesh
Une interface mobile et pratique

Le projet Arbalet Mesh rentre dans la lignée des autres projets du Arbalet Living Lab, qui est de pouvoir offrir une introduction à l’informatique accessible à tout le monde, et ceci dans un cadre artistique et divertissant à travers des interfaces “Pixel Art” grand format.
Si vous habitez Bordeaux, vous avez peut-être déjà pu remarquer les travaux de notre association, comme par exemple à la ou encore sur la façade du bâtiment A1 situé dans le campus universitaire.

Nous sommes une équipe de 7 étudiants informaticiens de l’école d’ingénieur ENSEIRB-MATMECA qui avons décidé de rejoindre ce projet de l’ Arbalet Living Lab afin de rendre l’implémentation plus simple et moins chère pour augmenter l’accessibilité de cet outil d’enseignement à tous.

Le Pixel Art

••••••••
Le Pixel Art est un style d’art qui rappelle le style d’art qui existait lors du début des jeux vidéos, lorsque la résolution ne permettait pas d’afficher plus de pixel à l’écran, on se retrouvait avec des dessins assez minimalistes où les pixels sont très visibles, comme le dessin ci-dessous :


Icône trouvée sur dribble et Wikipédia

Le principe d’Arbalet Mesh

Comme dans notre cas nous affichons des images sur des surfaces très grandes, il est nécessaire d’avoir pour chaque pixel un micro-contrôleur , ainsi, il faut pouvoir les synchroniser entre elles. Auparavant, il était nécessaire de relier chaque pixel entre eux vers un boitier central qui s’occupait d’envoyer à chaque pixel les informations dont ils avaient besoin. Mais cela présentait des inconvénients, comme le besoin de devoir câbler chaque contrôleur vers la centrale, ce qui limitait grandement notre portée et causait des soucis d’infrastructures, sans compter le temps que cela pouvait prendre.

La topologie Mesh

La topologie Mesh, ou système de communication de réseau en maille, est une organisation pensée de telle manière que chaque point du réseau est connectée à ses voisins, ainsi ici, les informations vont être envoyé de proche-en-proche, ici de micro-contrôleur à micro-contrôleur jusqu’à ce que tous les composants du réseau reçoivent l’information. Utiliser cette topologie présente deux grands avantages :

  • Si un des composants du réseau venait à ne plus fonctionner, on peut tout de même continuer à communique au reste du réseau grâce au principe de re-routage
  • On n’est pas obligé de relier chacun des composants à la centrale, permettant de réduire le câblage nécessaire au bon fonctionnement du système (aucun câblage réseau nécessaire)

Notre Objectif

L’objectif pour nous est de parvenir à trouver une implémentation qui soit évolutive et efficace répondant aux besoins de ce projet, pour ce faire nous discuterons des différentes technologies et modules les plus adaptés à ce projet, que cela soit d’un point de vue logiciel (langage de programmation), électronique (module d’extension et type de micro-contrôleur utilisé) ou matériel. Il nous faudra réaliser une intégration logicielle stable et robuste, implémenter notre propre système électronique et notre propre carénage pour pouvoir à la fin réussir à connecter 6 pixels en temps réel, et, à terme, pouvoir présenter notre prototype final d’ici l’été 2019.


#2

Les Pixels

Les pixels ont pour but d’être fixé à l’intérieur des bâtiments, sur les rebords de fenêtre. De plus ils doivent être strictement identiques et interchangeables pour faciliter l’installation.
Pour ce faire, ils doivent :

  • pouvoir communiquer entre eux via la technologie Mesh (qui garantie l’interchangeabilité des pixels);
  • éclairer de la couleur choisie;
  • être alimenté en énergie.

Nous nous intéressons ici à la partie hardware des pixels.

Composants électroniques

1) Communication et choix de couleur

Les pixels communiqueront entre eux à l’aide d’un réseau WifiMesh. Ils seront tous dotés d’une carte ESP32 qui leur permettra de communiquer via le Wifi.
De plus, les cartes ESP32 étant pourvues d’un microprocesseur et d’une mémoire suffisante, elles se suffiront à elles-mêmes.
Elles auront pour rôle d’assurer la communication au sein du réseau Mesh et de modifier la couleur du pixel (dont elles font parties) en fonction des informations qu’elles reçoivent.

2) Éclairage

Pour assurer l’éclairage, nous reprenons les mêmes rubans de LEDs que ceux utilisés dans les projets Arbalet précédents, à savoir le ruban WS2812B.
Ces rubans montent en parallèle des LEDs chacune pourvue d’un microcontrôleur et d’un identifiant. Elles sont donc adressables indépendamment les unes des autres.
Le ruban nécessite d’être alimenté en 5V et le niveau logique est lui aussi de 5V.

3) Alimentation

Les pixels seront équipés d’un boitier d’alimentation secteur délivrant la tension et le courant suffisant.
Les cartes ESP32 et les rubans WS2812B ayant des tensions de fonctionnement différentes, l’alimentation devra fournir à chacun des composants le voltage et l’ampérage adéquat.

Schéma du montage


#3

Première itération

Pour cette première itération, nous avons fait le point sur notre matériel, puis mis en place des objectifs simple pour se familiariser avec celui-ci.

Notre matériel

Pour ce projet, nous disposons de :

  • 6 cartes ESP32, correspondant chacune à un pixel. Ces cartes sont équippé d’un module de développement, facilitant leur manipulation.
  • 6 cables USB, 3 de 20 cm et 3 de 1m.
  • 2 chargeurs adaptateurs USB
  • 6 Alim 5V 2A
  • 6 adaptateurs femelle DC à souder

Une fois notre matériel présenté, nous avons défini les objectifs de notre première itération, centrée sur la communication au sein du réseau.

Le réseau

Présentons d’abord la structure du réseau. Nous disposons d’un serveur, sur lequel tourne le Backend : c’est à lui que se connecteront les clients, il a ainsi un rôle de superviseur. Il sélectionne les informations à transmettre au réseau Mesh, concernant les pixels à allumer et comment.

Ce serveur transmet ensuite ces informations au réseau Mesh, composé des différents noeuds, chacun d’entre eux correspondant à une carte ESP. Un noeud peut avoir différents rôles :

  • Noeud maître : noeud unique situé à l’entrée du réseau Mesh, passerelle avec le serveur.
  • Noeud intermédiaire : noeud capable d’exécuter du code, et de relayer les informations aux autres noeuds du réseau.
  • Noeud feuille : noeud terminal, ne retransmettant pas les messages qu’il reçoit.

Le réseau s’agençant de façon à transmettre le plus efficacement possible, ces rôles sont interchangeables entre noeuds, permettant de rapidement pallier à une panne réseau.

Nos objectifs

Nous avons ainsi décidé de nous concentrer sur deux grands axes :

  • La communication serveur - ESP32. Dans un premier temps, nous allons employer une communication serial via cable USB. Par la suite, nous vérifierons s’il est possible d’utiliser une connexion Wi-Fi entre les deux sans créer d’interférences dans le réseau Mesh.
  • La communication ESP32 - ESP32, base du réseau Mesh. Nous testerons d’abord comment initialiser cette connexion entre deux cartes, puis nous nous assurerons des propriété du réseau Mesh en les éloignant sufisamment pour qu’elles ne puissent plus communiquer entre elles et en ajoutant une troisième carte entre les deux.

Pour nous assurer que les données soient transmises et bien reçues, les cartes enverront un certain nombre, et les cartes le recevant devront clignoter d’autant de fois. Les cartes seront programmées avec l’IDE Arduino, configuré pour pouvoir téléverser le code sur les ESP32 directement.

Notre objectif est d’ainsi mettre en place une preuve de concept du réseau Mesh.