Brassard Myo
Sommaire
- 1 Projets exemple de la démo
- 2 Services pris en charge
- 3 Types de données personnalisés
- 3.1 Données EMG du brassard Myo
- 3.2 Pose HW du brassard Myo
- 3.3 Type Classificateur actif du brassard Myo
- 3.4 Flux du brassard Myo indiquant la source
- 3.5 Valeur SKU du brassard Myo
- 3.6 Service Info du brassard Myo
- 3.7 Version microprogramme du brassard Myo
- 3.8 Type de commande du brassard Myo
- 3.9 Mode EMG du brassard Myo
- 3.10 Mode IMU du brassard Myo
- 3.11 Mode de classificateur du brassard Myo
- 3.12 Commande du brassard Myo
- 3.13 Service IMU Data du brassard Myo
- 3.14 Type de l'événement classificateur du brassard Myo
- 3.15 Bras du brassard Myo
- 3.16 Direction X du brassard Myo
- 3.17 Résultat de la synchronisation du brassard Myo
- 3.18 Evénement classificateur du brassard Myo
- 4 Informations sur le périphérique
- 5 Problèmes connus
- 6 Informations spécifiques au périphérique
- 7 Voir aussi
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
- Delphi :
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
|
|||
| Device Information | Manufacturer Name String | ManufacturerName
|
OnManufacturerNameUpdate
|
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
|
Données d'événement IClassifier avec le type TMyoClassifierEvent. | ||||
| Myo EMG Data Service | OnEMGData0Update
|
EMG Data0 avec le type TMyoEMGData. | ||||
OnEMGData0Update
|
EMG Data1 avec le type TMyoEMGData. | |||||
OnEMGData2Update
|
EMG Data2 avec le type TMyoEMGData. | |||||
OnEMGData3Update
|
EMG Data3 avec le type TMyoEMGData. | |||||
| Myo IMU Data Service | OnIMUDataUpdate
|
Données IMU avec le type TIMUDataService. | ||||
| Myo Info Service | Command
|
Ecrit une commande avec le type TMyoCommand. | ||||
FirmwareVersion
|
OnFirmwareVersionUpdate
|
Lit la version du microprogramme avec le type TMyoFirmwareVersion. | ||||
Info
|
OnInfoUpdate
|
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.
Create: Initialise une instance deTMyoEMGDataavec un tableau d'octets reçu du périphérique.Value: Tableau d'octets brut reçu du périphérique.
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 deTMyoInfoServiceavec 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.1si c'est le cas,0sinon.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 deTMyoFirmwareVersionavec 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
TDelayOnOffavec un tableau d'octets reçu du périphérique.- Paramètres :
AValueavec le type TBytes.
- Paramètres :
- Deuxième méthode surchargée : Constructeur de commande Myo utilisant un paramètre.
- Paramètres :
ACommandavec le type de commande.
- Paramètres :
- Troisième méthode surchargée : Constructeur de la commande Myo de définition du mode.
- Paramètres :
ACommandavec le type de commande,AEMGModeavec le mode EMG,AIMUModeavec le mode IMU etAClassifierModeavec le mode de classificateur.
- Paramètres :
- Quatrième méthode surchargée : Constructeur des commandes Myo utilisant deux paramètres.
- Paramètres :
ACommandavec le type de commande etADataavec le type integer.
- Paramètres :
- Cinquième méthode surchargée : Constructeur de la commande Myo de vibration étendue.
- Paramètres :
ACommandavec le type de commande,
- Paramètres :
- Première méthode surchargée : Initialise une instance de
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 deTIMUDataServiceavec 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.
Create: Initialise une instance deTMyoClassifierEventavec un tableau d'octets reçu du périphérique.Value: Tableau d'octets brut reçu du périphérique.EventType: Renvoie le type de l'événement classificateur.Arm: Renvoie le bras de l'utilisateur.XDirection: Renvoie la direction X Myo avec l'axe x des directions possibles de Myo relativement au bras de l'utilisateur.Pose: Renvoie la pose déverrouillage.SyncResult: Renvoie le résultat de la synchronisation indiquant le résultat possible lorsque l'utilisateur tente un geste de synchronisation.
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 :
- IMUData pour les données de mouvement.
- ClassiffierEvent pour les données de pose (gestes de la main et du poignet).
- 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));