Micro:bit - utilisation de plateforme d'apprentissage pour l'étude de la synchronisation réseau

Attention, il ne s'agit pas ici d'un article pour les débutants 10-12 ans mais plutôt d'une étude technique réseau (et synchronisation) avancée.

Comme quoi, il est possible de faire de la technologie de haut vol avec les Micro:bit, du matériel destiné au débutant! Le projet ci-dessous utilise Micro Python sur Micro:bit à un niveau universitaire.

Musique synchronisée sur Micro:bit
Sur le blog de flowblok, Peter Ward se penche sur une réseau maillé de Micro:bit, réseau mettant en oeuvre une synchronisation temporelle afin de permettre le rendu d'une musique (via Piezo) depuis un micro:bit racine (root).

Cet article est proposé avec une vidéo mettant en oeuvre un noeud root et synchronisé avec deux autres noeuds... soit trois dans le cas présent mais le projet s'est étendu sur 13 noeuds Micro:bit.
Source: flowblok blog


Vous pouvez visionner la vidéo de Peter Ward (Youtube) disponible ci-dessous


Il faut réaliser que les différents Micro:bits utilise leur connexions Bluetooth pour réaliser une topologie maillée (typique du réseau Ethernet) permettant de communiquer l'information de proche en proche.
Topologie Maillée (Mesh en anglais)

Réaliser une synchronisation dans un réseau n'est pas trivial, il faut pouvoir arriver à synchroniser un tous les noeuds ensemble pour que la musique soit jouée de façon synchro.
 

Protocole PTP - Precision Time Protocol
Heureusement, il est possible de mettre en oeuvre (visiblement assez facilement) un protocole nommé Precision Time Protocol (PTP, wikipedia).

PTP est conçu pour fonctionner sur plusieurs segments réseau (donc similaire au réseau maillé/mesh).
Sur chaque segment, il y a un maître (master en anglais) utilisé par tous les autres noeuds pour réaliser leur synchronisation avec le maître.

Le protocole PTP prévoit chaque noeud fasse régulièrement une sorte de ping vers le maître (Delay_Req et Delay_Resp), ce qui permet au noeud d'évaluer le temps de transmission entre lui et le maître (Le Round Trip Time aussi appelé RTT).
Source: blog de meinbergglobal.com

Le maître envoi régulièrement des requêtes Sync vers les noeuds. Comme les Noeuds connaissent leur RTT, il suffit de rajouter RTT/2 du temps transmis par le Sync pour avoir la synchronisation corrigée.

Les choses sont un peu plus compliquées mais l'idée générale y est.
Si vous voulez avoir plus de détails le biller de Peter.

Décomposition du projet
Pour réaliser ce projet, Peter l'a scinder en différents éléments.
  • network protocol: protocole réseau permettant d'envoyer des données structurées via des paquets radio micro:bit.
  • time sync: Permet à tous les micro:bits sur le réseau de partager un même "temps commun".
  • triggers: demande à tous les micro-bits de faire une action à un moment donné.
  • music: fait jouer des notes de musique sur le Piezo buzzer  the micro:bits play notes on a piezo buzzer.
Dans son projet, Peter à utiliser l'affichage matriciel du Micro:Bit pour indiquer des informations utiles et pratique comme le niveau du noeud, le trafic réseau de la carte et l'ajustement de temps lorsque cela est nécessaire.
En savoir plus
N'hésitez pas à consulter les références suivantes

Où acheter