Étape 5: PyMyo (.exe)
Cet exécutable est où la communication réelle à la Myo se produit. C’est une modification de Bonjour-myo qui imprime une version compacte de l’état du brassard Myo - seulement 9 octets - chaque 50ms.
Comment ça marche :
Cela fonctionne de manière similaire à Bonjour-myo (voir ici pour une documentation complète) ; la plupart de nos changements devait capturer les données de l’accéléromètre, imprimer les données de façon compacte et gérer l’entrée de la console pour vibrer le Myo.
Pour regarder de plus près ces changements, consultez notre fonction inputThread() (qui se déroule à l’entrée comme un thread séparé) et DataCollector::print(), qui imprime l’État Myo pour Myo.py de recevoir.
Le protocole :
L’exécutable envoie une chaîne emballée d’octets à 20Hz - le format est :
Accélération X, Y et Z (3 octets) forment le vecteur d’accélération.
Rotation, W, X, Y et Z (4 octets) forment un quaternion représentant la rotation actuelle.
Pose de main (1 octet) indique l’état de la main (Fist, WaveIn, etc.). Il utilise les mêmes valeurs enum comme la bibliothèque myo.
# De bras (1 octet) est égal à 0 ou 1 pour droite/gauche, respectivement, ou ASCII « A » (0 x 41) si le bras n’est pas présent.