Iot.Device.Myo.TMyo

De IoT
Aller à : navigation, rechercher

Aller au parent Périphériques ThingConnect


Le Myo Armband est un brassard de contrôle gestuel Bluetooth qui lit l'activité des muscles de votre avant-bras, et offre un contrôle de technologie, sans toucher, avec des gestes de la main.

Utilisez le composant TMyo pour communiquer avec le brassard Myo.

Projets exemple de la démo

Après l'installation du composant, les projets exemple associés au composant Myo Armband se trouvent dans les répertoires démo IoT suivants :

  • Démarrer | Programmes | Embarcadero RAD Studio Berlin | Exemples puis naviguez jusqu'à :
    • Delphi : Internet of Things\Object Pascal\Thing Connect\MyoArmband
    • C++ : Internet of Things\CPP\Thing Connect\MyoArmband

Services pris en charge

Le composant Myo Armband prend en charge les services et les caractéristiques Bluetooth LE suivants :

Service Caractéristique Propriété Evénement Lecture Abonnement Ecriture
Battery Service Battery Level BatteryLevel OnBatteryLevelUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Device Information Manufacturer Name String ManufacturerName OnManufacturerNameUpdate
YesSubscriptionFeature.png

Le composant Myo Armband prend en charge les services personnalisés suivants :

Service Propriété Evénement Lecture Abonnement Ecriture Description
Myo Classifier Service OnClassifierEventDataUpdate
YesSubscriptionFeature.png
Données d'événement IClassifier avec le type TMyoClassifierEvent.
Myo EMG Data Service OnEMGData0Update
YesSubscriptionFeature.png
EMG Data0 avec le type TMyoEMGData.
OnEMGData0Update
YesSubscriptionFeature.png
EMG Data1 avec le type TMyoEMGData.
OnEMGData2Update
YesSubscriptionFeature.png
EMG Data2 avec le type TMyoEMGData.
OnEMGData3Update
YesSubscriptionFeature.png
EMG Data3 avec le type TMyoEMGData.
Myo IMU Data Service OnIMUDataUpdate
YesSubscriptionFeature.png
Données IMU avec le type TIMUDataService.
Myo Info Service Command
YesSubscriptionFeature.png
Ecrit une commande avec le type TMyoCommand.
FirmwareVersion OnFirmwareVersionUpdate
YesSubscriptionFeature.png
Lit la version du microprogramme avec le type TMyoFirmwareVersion.
Info OnInfoUpdate
YesSubscriptionFeature.png
Lit les informations Myo avec le type TMyoInfoService.

Types de données personnalisés

Le brassard Myo définit ses types de données personnalisés dans l'unité suivante :

  • Iot.Device.MyoTypes

Données EMG du brassard Myo

L'enregistrement TMyoEMGData contient le tableau d'octets de la caractéristique EMG Data.

Pose HW du brassard Myo

TMyoHWPose énumère les poses prises en charge : Rest, Fist, WaveIn, WaveOut, FingersSpread, DoubleTap et Unknown = $FFFF.

Type Classificateur actif du brassard Myo

TMyoActiveClassifierType énumère les types possibles de modèle de classificateur MyoBuiltin et Custom.

Flux du brassard Myo indiquant la source

TMyoStreamIndicatingSource énumère les sources Myo possibles du flux de données BLE et OtherSource.

Valeur SKU du brassard Myo

TMyoSKUValue énumère les SKU Myo connus BlackMyo, WhiteMyo et Unknown. Unknown est la valeur par défaut des anciens microprogrammes.

Service Info du brassard Myo

L'enregistrement TMyoInfoService contient divers paramètres qui peuvent affecter le comportement de ce brassard Myo lorsqu'une connexion est établie.

  • Create : Initialise une instance de TMyoInfoService avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • SerialNumber : Renvoie un UInt64 avec le numéro de série unique du Myo.
  • HWPose : Renvoie la pose qui doit être interprétée comme pose de déverrouillage.
  • ActiveClassifierType : Renvoie un TMyoActiveClassifierType indiquant si Myo utilise actuellement un classificateur personnalisé ou intégré.
  • ActiveClassifierIndex : Renvoie un UInt8 indiquant l'index du classificateur actuellement actif.
  • HasCustomClassifier : Indique si Myo contient un classificateur personnalisé valide. 1 si c'est le cas, 0 sinon.
  • StreamIndicatingSource : Renvoie un TMyoStreamIndicatingSource indiquant si le Myo utilise le flux de données BLE pour la fiabilité de la capture.
  • SKUValue : Renvoie la valeur SKU du périphérique.

Version microprogramme du brassard Myo

L'enregistrement TMyoFirmwareVersion contient les informations de version du microprogramme Myo.

  • Create : Initialise une instance de TMyoFirmwareVersion avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • MajorVersion : Renvoie un UInt16 avec la version majeure du microprogramme.
  • MinorVersion : Renvoie un UInt16 avec la version mineure. La version mineure est incrémentée pour les changements d'interface.
  • PatchVersion : Renvoie un UInt16 avec la version patch. La version patch est incrémentée pour les changements du microprogramme n'introduisant pas de changement d'interface.
  • HardwareRevision : Renvoie un UInt8 avec la révision matérielle de Myo.

Type de commande du brassard Myo

TMyoCommandType énumère les types de commandes possibles :

  • SetMode = $01 : Définir les modes EMG et IMU.
  • Vibration = $03 : Définir la vibration.
  • DeepSleep = $04 : Placer Myo en veille profonde.
  • Vibrate2 = $07 : Vibration étendue.
  • SetSleepMode = $09 : Définir en mode mise en veille.
  • Unlock = $0A : Déverrouiller Myo.
  • UserAction = $0B : Notifier l'utilisateur qu'une action a été reconnue ou confirmée.

Mode EMG du brassard Myo

TMyoEMGMode énumère les modes EMG possibles.

  • None = $00 : Ne pas envoyer de données EMG.
  • SendEMG = $02 : Envoyer les données EMG filtrées.
  • SendEMGRaw = $03 : Envoyer les données EMG brutes (non filtrées).

Mode IMU du brassard Myo

TMyoIMUMode énumère les modes IMU possibles.

  • None : Ne pas envoyer des événements ou données IMU.
  • SendData : Envoyer les flux de données IMU accéléromètre, gyroscope et orientation.
  • SendEvents : Envoyer les événements de mouvement détectés par le IMU.
  • SendAll : Envoyer les événements de mouvement et les flux de données IMU.
  • SendRaw : Envoyer les flux de données IMU.

Mode de classificateur du brassard Myo

TMyoClassifierMode énumère les modes de classificateur possibles.

  • Disabled : Désactiver et réinitialiser l'état interne du classificateur de bord.
  • Enabled : Envoyer les événements classificateur (événements poses et bras).

Commande du brassard Myo

L'enregistrement TMyoCommand contient le tableau d'octets des commandes Myo.

  • Create : Le constructeur comporte cinq méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TDelayOnOff avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : Constructeur de commande Myo utilisant un paramètre.
    • Troisième méthode surchargée : Constructeur de la commande Myo de définition du mode.
    • Quatrième méthode surchargée : Constructeur des commandes Myo utilisant deux paramètres.
    • Cinquième méthode surchargée : Constructeur de la commande Myo de vibration étendue.

ADuration avec la durée sous la forme d'un UInt16 et AStrength avec la force sous la forme d'un UInt8.

  • Value : Tableau d'octets brut reçu du périphérique.
  • CommandType : Renvoie le type de commande.
  • PayloadSize : Renvoie la taille de la charge utile de la commande (UInt8) qui exclut le type de commande et l'octet taille.
  • EMGMode : Renvoie le mode EMG.
  • IMUMode : Renvoie le mode IMU.
  • ClassifierMode : Renvoie le mode de classificateur.
  • Duration : Renvoie le tableau de type UInt16, contenant les durées de vibration.
  • Strength : Renvoie le tableau de type UInt8, contenant les forces de vibration.

Service IMU Data du brassard Myo

L'enregistrement TIMUDataService contient le tableau d'octets des données d'orientation.

  • Create : Initialise une instance de TIMUDataService avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • WOrientation : Renvoie une valeur Int16 indiquant l'orientation W.
  • XOrientation : Renvoie une valeur Int16 indiquant l'orientation X.
  • YOrientation : Renvoie une valeur Int16 indiquant l'orientation Y.
  • ZOrientation : Renvoie une valeur Int16 indiquant l'orientation Z.
  • Accelerometer : Renvoie une valeur Int64 indiquant les données de l'accéléromètre. En unités de g. La plage est +/-16. Les valeurs sont multipliées par MyoHwAccelerometerScale (2048).
  • Gyroscope : Renvoie une valeur Int64 indiquant les données du gyroscope. En unités de deg/s. La plage est +/-2000. Les valeurs sont multipliées par MyoHwGyroscopeScale (16).

Type de l'événement classificateur du brassard Myo

TMyoClassifierEventType énumère les types de l'événement classificateur possibles ArmSynced = 1, ArmUnsynced, Pose, Unlocked, Locked et SyncFailed.

Bras du brassard Myo

TMyoArm énumère les valeurs possibles pour identifier le bras Right = 1, Left et Unknown = $FF.

Direction X du brassard Myo

TMyoXDirection énumère les directions possibles pour l'axe x de Myo relativement au bras de l'utilisateur, TowardsWrist = 1, TowardsElbow et Unknown = $FF.

Résultat de la synchronisation du brassard Myo

TMyoSyncResult énumère les résultats possibles lorsque l'utilisateur tente un geste de synchronisation Unknown et SyncFailedTooHard.

Evénement classificateur du brassard Myo

L'enregistrement TMyoClassifierEvent contient le tableau d'octets des données de l'événement classificateur.

Informations sur le périphérique

  • Périphérique : Myo Armband
  • Modèle : MYO
  • Technologie : Bluetooth LE

Problèmes connus

  • Le périphérique Myo Armband ne peut pas être appairé à une machine Windows. Si la plate-forme cible de votre application est Windows 32 bits ou Windows 64 bits, elle ne peut pas être appairée au brassard Myo.

Informations spécifiques au périphérique

Le brassard Myo requiert l'activation/désactivation des caractéristiques en lecture à chaque fois qu'il est connecté ou qu'il se reconnecte (ce comportement est provoqué par le mode économie d'énergie). Ce périphérique prend en charge les trois principales caractéristiques suivantes :

  1. IMUData pour les données de mouvement.
  2. ClassiffierEvent pour les données de pose (gestes de la main et du poignet).
  3. EMGData : données d'électromyographie (EN).
    Remarque : les données EMG sont rarement utilisées. Toutefois, si vous comptez les utiliser, assurez-vous que le firmware a été mis à jour. Cette caractéristique est disponible depuis décembre 2014.

Pour activer/désactiver ces caractéristiques, vous devez envoyer une commande. Par exemple, pour activer l'ensemble de ces caractéristiques, procédez comme suit :

Myo1.Command := TMyoCommand.Create(TMyoCommandType.SetMode, TMyoEMGMode.SendEMG, TMyoIMUMode.SendAll, TMyoClassifierMode.Enabled);

Vous devez aussi vous assurer que le brassard Myo est déverrouillé. Pour qu'il soit configuré en permanence en mode déverrouillé (jusqu'à la réception d'une nouvelle commande de verrouillage), utilisez la commande suivante :

Myo1.Command := TMyoCommand.Create(TMyoCommandType.Unlock, Integer(TMyoUnlockType.Hold));

Voir aussi