Différences entre versions de « Projets:MyoCoach »

De wikilab
 
(33 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
{{Infobox projet
 +
|Image principale=Materiel pre-requis.png
 +
|Description=Le MyoCoach est un appareil de rééducation DIY permettant d'apprendre à utiliser des capteurs EMG (musculaires) de manière ludique.
 +
|Porteur de projet=Bionico
 +
|Contributeurs=Orthopus, Refactory
 +
|Fabmanager=Bionico
 +
|Référent documentation=Bionico, SulianeMHK
 +
|Catégorie de handicap=Membre supérieur, Motricité
 +
|Etat d'avancement=Réalisés
 +
|Statut de la documentation=Complète
 +
|Relecture de la documentation=Non vérifiée
 +
|Techniques=arduino, raspberry pi
 +
|Durée de fabrication=de 4 à 8 h
 +
|Coût matériel=De 50 à 100 euros
 +
|Niveau=Facile
 +
|Licence=by-sa
 +
|Projet date=2022-02-23
 +
|Nom humanlab=Humanlab_MHK
 +
}}
 
== Description du projet ==
 
== Description du projet ==
  
Le système MyoCoach est destiné aux professionnels de santé et aux utilisateurs de prothèses du membre supérieur. Ses fonctionnalités permettent de :
+
Le MyoCoach est une solution Do It Yourself de fabrication d'un appareil de rééducation fonctionnel permettant d'apprendre à utiliser des capteurs EMG (capteurs musculaires) de manière ludique. Ses fonctionnalités permettent de jouer à des jeux vidéos minimalistes à partir des contractions musculaires de l'avant-bras.
  
Mesurer le potentiel musculaire à l'aide de capteurs myoélectriques
+
== Cahier des charges ==
Définition de la position optimale des électrodes
 
Réglage des électrodes myoélectriques
 
Exercice de contraction musculaire et de coordination
 
  
 +
* Facile à mettre en place
 +
* Diversité des jeux
  
== Cahier des charges ==
+
== Analyse de l'existant ==
  
== Analyse de l'existant ==
+
Il existe une documentation [https://github.com/orthopus/01-myocoach ici], mais le prototype que nous avons en test est une évolution.
  
 
== Equipe (Porteur de projet et contributeurs) ==
 
== Equipe (Porteur de projet et contributeurs) ==
  
* Porteurs du projet :
+
* Porteurs du projet : Nicolas Huchet
* Concepteurs/contributeurs :
+
* Concepteurs/contributeurs : Orthopus et Re-Factory
* Animateur (coordinateur du projet)
+
* Responsable de documentation : Suliane
* Fabmanager référent
 
* Responsable de documentation
 
  
 
== Matériel nécessaire ==
 
== Matériel nécessaire ==
  
1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web
+
1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web<br>
1 coffret MyoCoach
+
1 coffret MyoCoach<br>
1 câble USB (Arduino)
+
1 câble USB (Arduino)<br>
2 électrodes Ottobock (Réf 13E202)
+
2 électrodes Ottobock (Réf 13E202)<br>
2 câbles d'électrodes
+
2 câbles d'électrodes<br>
2 porte-électrodes
+
2 porte-électrodes<br>
 
1 sangle velcro
 
1 sangle velcro
  
Ligne 35 : Ligne 51 :
 
1 tournevis plat
 
1 tournevis plat
  
 +
==Fichiers source==
 +
https://github.com/orthopus/01-myocoach
 +
 +
[[:File:connexion myocoach.pdf | Mémo pour se connecter au système Myocoach, visualiser le signal et jouer]]
 +
 +
==Etapes de fabrication pas à pas==
 +
 +
<gallery>
 +
File:about_page.png
 +
File:acces_potentiometre.png
 +
File:adpatateur_electrode.png
 +
File:ads1015.jpg
 +
File:ap_page_1.png
 +
File:ap_page_2.png
 +
File:captive_portal_1.png
 +
File:captive_portal_2.png
 +
File:connecteur_boitier.png
 +
File:connexion_boitier_ordi.png
 +
File:contraction_muscle_extenseur.png
 +
File:contraction_muscle_flechisseur.png
 +
File:dashboard.png
 +
File:deplacement_electrode.png
 +
File:emg_0_emg_1.png
 +
File:game_page_1.png
 +
File:game_page_2.png
 +
File:game_page_3.png
 +
File:game_page_4.png
 +
File:main_app_bar_1.png
 +
File:maintien_electrode.png
 +
File:marquage_position_electrode.png
 +
File:materiel_pre-requis.png
 +
File:muscle_flechisseur_et_extenseur.png
 +
File:myo_placement_muscle.png
 +
File:settings_page.png
 +
File:signal_page.png
 +
File:training_page_1_1.png
 +
File:training_page_1_2.png
 +
File:training_page_2.png
 +
File:training_page_3.png
 +
File:training_page_create.png
 +
File:training_page_delete.png
 +
File:training_page_export.png
 +
File:training_page_import_1.png
 +
File:training_page_import_2.png
 +
File:vue_brassard.png
 +
File:20220222_172121.jpg
 +
</gallery>
  
  
Ligne 280 : Ligne 343 :
  
 
6️La documentation RaspAP complète est disponible à l'adresse suivante : https://docs.raspap.com/
 
6️La documentation RaspAP complète est disponible à l'adresse suivante : https://docs.raspap.com/
 
==Fichiers source==
 
https://github.com/orthopus/01-myocoach
 
 
==Etapes de fabrication pas à pas==
 
 
==Durée de fabrication du prototype final==
 
 
==Journal de bord==
 
 
22/02/22
 
 
Les signaux des capteurs ne sont pas facilement exploitable car trop de variation. Qu'est qui génére les hachures, parasites....
 
 
Des coupures ou pics, réguliers empechent la lecture du signal
 
 
 
Pour éviter les interférences il faut brancher l'arduino via le raspberry en passant par le port usb ET pour supprimer les parasites extérieurs il faut faire masse grâce au bracelet raccordé au négatif de l'arduino et au négatif sur une prise electrique
 
VOIR PHOTO
 
 
Solution : pour supprimer les interférences il a fallu brancher le raspi sur une power bank et garder la masse entre l'arduino et le bracelet.
 
 
La consommation est inférieur à 1 ampere  : 5 watt
 
Ce qui permet l’utilisation d'un power bank 10,000 mAh avec une sortie de 2 amperes
 
 
1/ Supprimer la carte arduino qui sert a recuperer les information des capteurs, pour l'integrer en direct sur le raspi au moyen d'un convertisseur analogique digital double  : voir lien
 
 
2/ Placer un afficheur led, 128X128  :  1,12 pouces  : afficher le nom du hotspot reseau wifi du raspi, afficher l'adresse html du site, l'état (la tension de la batterie) et surtout les valeurs des capteurs avant meme qu'ils arrivent sur le logiciel du pc.
 
 
3/ rajouter un bouton poussoir  : : permet d'arreter et mettre en marche l'afficheur et ou le raspi.
 
 
Bouton a led RVB : Donner des informations supplémentaires grâce aux couleurs
 
 
IMPORTANT  : les capteurs ne fonctionnent pas a 3,3 V, prevoir 5 volt.
 
En consequence, ajouter un convertisseur de niveau logique sur le port I2C entre le convertisseur et le raspi
 
 
23/02/2022
 
 
Suite à la suppression de l'arduino, rajout du Convertisseur Analogique Digital ADS1015 sur le Raspberry.
 
 
Les électrodes envoient des signaux analogiques, grace au ADS1015, les informations envoyées par les capteurs sont converties en numerique pour qu'elles soient compréhensibles par des applications, comme les jeux.
 
On intervertit les capteurs autobock et orthopus sur le myocoach : le problème d'interférence est toujouts présent.
 
 
Quand on mets les capteurss autobock sur le myoboy, cela fonctionne donc cela ne vient pas des capteurs.
 
 
Cela ne vient pas non plus de l'alimentation raspi : si j'alimente l'arduino via le port usb, plus le jack d'alimentation : pareil
 
 
Résultat  : Nécessité de ne pas l'alimenter par l'usb pour plus de propreté dans la réception du signal. Signal plus clair mais pics intempestifs si contact avec la peau
 
 
Nouvel essai avec la masse (electrode) coincé dans le coude et raccordé a la prise de courant: signal PLUS stable
 
 
 
Pour éviter les interférences il faut brancher l'arduino via le raspberry en passant par le port usb ET pour supprimer les parasites extérieurs il faut faire masse grâce au bracelet raccordé au négatif de l'arduino et au négatif sur une prise electrique
 
VOIR PHOTO
 
 
Solution : pour supprimer les interférences il a fallu brancher le raspi sur une power bank et garder la masse entre l'arduino et le bracelet.
 
 
La consommation est inférieur à 1 ampere  : 5 watt
 
Ce qui permet l’utilisation d'un power bank 10,000 mAh avec une sortie de 2 amperes
 
 
1/ Supprimer la carte arduino qui sert a recuperer les information des capteurs, pour l'integrer en direct sur le raspi au moyen d'un convertisseur analogique digital double  : voir lien
 
 
2/ Placer un afficheur led, 128X128  :  1,12 pouces  : afficher le nom du hotspot reseau wifi du raspi, afficher l'adresse html du site, l'état (la tension de la batterie) et surtout les valeurs des capteurs avant meme qu'ils arrivent sur le logiciel du pc.
 
 
3/ rajouter un bouton poussoir  : : permet d'arreter et mettre en marche l'afficheur et ou le raspi.
 
 
Bouton a led RVB : Donner des informations supplémentaires grâce aux couleurs
 
 
IMPORTANT  : les capteurs ne fonctionnent pas a 3,3 V, prevoir 5 volt.
 
En consequence, ajouter un convertisseur de niveau logique sur le port I2C entre le convertisseur et le raspi
 
 
23/02/2022
 
 
Suite à la suppression de l'arduino, rajout du Convertisseur Analogique Digital ADS1015 sur le Raspberry.
 
 
Les électrodes envoient des signaux analogiques, grace au ADS1015, les informations envoyées par les capteurs sont converties en numerique pour qu'elles soient compréhensibles par des applications, comme les jeux.
 
 
Réduction de place, de côut et de consommation d'énergie
 
mais nécessite de réécrire le code
 
 
  
 
Guide de programmation du serveur
 
Guide de programmation du serveur
Ligne 370 : Ligne 353 :
 
Développement de jeux : Godot Engine
 
Développement de jeux : Godot Engine
 
La carte d'environnement d'origine choisie pour héberger l'application est une Raspberry Pi 3 modèle B+ mais le processus d'installation reste identique aux versions ultérieures des cartes Raspberry Pi et peut probablement être adapté pour d'autres cartes de développement ou postes de travail de bureau fonctionnant sous un système d'exploitation GNU/Linux.
 
La carte d'environnement d'origine choisie pour héberger l'application est une Raspberry Pi 3 modèle B+ mais le processus d'installation reste identique aux versions ultérieures des cartes Raspberry Pi et peut probablement être adapté pour d'autres cartes de développement ou postes de travail de bureau fonctionnant sous un système d'exploitation GNU/Linux.
 +
  
 
Configuration du système d'exploitation
 
Configuration du système d'exploitation
Ligne 427 : Ligne 411 :
 
Puis lancez la compilation Webpack avec la commande suivante :
 
Puis lancez la compilation Webpack avec la commande suivante :
 
pi@raspberrypi  : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js
 
pi@raspberrypi  : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js
 +
 +
La mise en réseau
 +
Nom d'hôte
 +
Dans l'objectif de changer le nom d'hôte MyoCoach (actuellement raspberrypi), ouvrez l'interface des paramètres système avec les commandes suivantes :
 +
pi@raspberrypi : ~ $ sudo raspi-config
 +
Sur l'interface des paramètres système, sélectionnez 1 Options système , Nom d' hôte S4 puis OK . Tapez le nouveau nom "myocoach" . Sélectionnez Terminer pour enregistrer la configuration. Enfin, sélectionnez Oui pour redémarrer le système afin que les modifications prennent effet.
 +
 +
Le nom d'hôte du fichier hosts doit être actualisé pour enregistrer le nouveau nom d'hôte.
 +
 +
 +
---------------
 +
 +
 +
 +
Une fois les informations renseignées, enregistrez et fermez le fichier.
 +
Les informations de taille de fichier pour game.pck et game.wasm peuvent être trouvées en regardant dans le fichier game.html qui a été généré lors de l'exportation. Il est important de renseigner ces informations afin que le chargeur de jeu fonctionne correctement.
 +
Les dimensions de l'écran (largeur et hauteur en nombre de pixels) sont les dimensions par défaut de l'écran de jeu que l'on peut trouver dans l'environnement de développement Godot. Il est important de renseigner ces informations afin que l'application web MyoCoach conserve le format d'écran du jeu quelle que soit la taille de l'écran de l'appareil.
 +
  
 
[[Category:Projets]]
 
[[Category:Projets]]
 
[[Category:En cours]]
 
[[Category:En cours]]
 +
 +
==Journal de Bord==
 +
22/02/22
 +
 +
Les signaux des capteurs ne sont pas facilement exploitable car trop de variation. Qu'est qui génére les hachures, parasites....
 +
 +
Des coupures ou pics, réguliers empechent la lecture du signal
 +
 +
On intervertit les capteurs autobock et orthopus sur le myocoach : le problème d'interférence est toujouts présent.
 +
 +
Quand on mets les capteurs autobock sur le myoboy, cela fonctionne donc cela ne vient pas des capteurs.
 +
 +
Cela ne vient pas non plus de l'alimentation raspi : si j'alimente l'arduino via le port usb, plus le jack d'alimentation : pareil
 +
 +
Résultat  : Nécessité de ne pas l'alimenter par l'usb pour plus de propreté dans la réception du signal. Signal plus clair mais pics intempestifs si contact avec la peau
 +
 +
Nouvel essai avec la masse (electrode) coincé dans le coude et raccordé a la prise de courant: signal PLUS stable
 +
 +
Pour éviter les interférences il faut brancher l'arduino via le raspberry en passant par le port usb ET pour supprimer les parasites extérieurs il faut faire masse grâce au bracelet raccordé au négatif de l'arduino et au négatif sur une prise electrique
 +
VOIR PHOTO
 +
 +
Solution : pour supprimer les interférences il a fallu brancher le raspi sur une power bank et garder la masse entre l'arduino et le bracelet.
 +
 +
La consommation est inférieur à 1 ampere  : 5 watt
 +
Ce qui permet l’utilisation d'un power bank 10,000 mAh avec une sortie de 2 amperes
 +
 +
1/ Supprimer la carte arduino qui sert a recuperer les information des capteurs, pour l'integrer en direct sur le raspi au moyen d'un convertisseur analogique digital double  : voir lien
 +
 +
2/ Placer un afficheur led, 128X128  :  1,12 pouces  : afficher le nom du hotspot reseau wifi du raspi, afficher l'adresse html du site, l'état (la tension de la batterie) et surtout les valeurs des capteurs avant meme qu'ils arrivent sur le logiciel du pc.
 +
 +
3/ rajouter un bouton poussoir  : : permet d'arreter et mettre en marche l'afficheur et ou le raspi.
 +
 +
Bouton a led RVB : Donner des informations supplémentaires grâce aux couleurs
 +
 +
IMPORTANT  : les capteurs ne fonctionnent pas a 3,3 V, prevoir 5 volt.
 +
En consequence, ajouter un convertisseur de niveau logique sur le port I2C entre le convertisseur et le raspi
 +
 +
23/02/2022
 +
 +
Suite à la suppression de l'arduino, rajout du Convertisseur Analogique Digital ADS1015 sur le Raspberry.
 +
 +
Les électrodes envoient des signaux analogiques, grace au ADS1015, les informations envoyées par les capteurs sont converties en numerique pour qu'elles soient compréhensibles par des applications, comme les jeux.
 +
 +
Réduction de place, de côut et de consommation d'énergie
 +
mais nécessite de réécrire le code
 +
 +
 +
********************
 +
Bonjour, suite à notre Fokus Myocoach, j'ai réalisé quelques mesures sur les capteurs.
 +
J'ai réalisé les mesures sur les capteurs de Mathilde, les originaux je crois.
 +
Tension de fonctionnement mini : 4.2v.
 +
Résistance de sortie ou impédance  : <100 ohms
 +
tension maxi du niveau de sortie avec 5v en alimentation : 4.4v
 +
Lorsque l'on test le capteur sur un banc de test, il ne semble pas être sensible au perturbation
 +
extérieur mais il faut tenir compte que lorsque l'on mesure, on perturbe toujours l'objet mesuré soit dans un sens soit dans l'autre.
 +
Il se peut que mes sondes de mesures en mettant le gnd du capteur à la masse (terre) et réduisent de fait les perturbations, comme lors de nos tests.
 +
L'impédance de sortie qui est assez faible garanti que les perturbations électriques qui pourraient atteindre les fils seront très réduites.
 +
Le schéma qui avait été imaginé lors du focus, celui pour connecter le capteur au CAN  ADS1015, reste valide avec seulement un changement de valeur des résistances.
 +
Photos du cablage du capteur :
 +
[[Fichier:Adpatateur electrode.png|220px|vignette|left|Vue générale Adaptateur.]]
 +
[[Fichier:Adap_Capteur_Mathilde2.png|220px|vignette|left|Vue Détail du connecteur.]]
 +
[[Fichier:Capteur.jpg|220px|vignette|left|Position des fils (GND, +5V, OUT) au niveau du Capteur.]]
 +
[[Fichier:Connecteur1.jpg|220px|vignette|left|Position des fils (GND, +5V, OUT) au niveau de l'adaptateur recto.]]
 +
[[Fichier:Connecteur2.jpg|220px|vignette|left|Position des fils (GND, +5V, OUT) au niveau de l'adaptateur verso.]]
 +
********************

Version actuelle datée du 24 novembre 2022 à 11:04

MyoCoach

Materiel pre-requis.png

Informations
Description Le MyoCoach est un appareil de rééducation DIY permettant d'apprendre à utiliser des capteurs EMG (musculaires) de manière ludique.
Catégorie Membre supérieur Motricité
Etat d'avancement Réalisés
Techniques arduino, raspberry pi
Durée de fabrication de 4 à 8 h
Coût matériel De 50 à 100 euros
Niveau Facile
Licence by-sa
Date de création 2022-02-23
Équipe
Porteur de projet Bionico
Contributeurs Orthopus, Refactory
Fabmanager Bionico
Référent documentation Bionico, SulianeMHK
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Complète
Relecture de la documentation Non vérifiée

Description du projet

Le MyoCoach est une solution Do It Yourself de fabrication d'un appareil de rééducation fonctionnel permettant d'apprendre à utiliser des capteurs EMG (capteurs musculaires) de manière ludique. Ses fonctionnalités permettent de jouer à des jeux vidéos minimalistes à partir des contractions musculaires de l'avant-bras.

Cahier des charges

  • Facile à mettre en place
  • Diversité des jeux

Analyse de l'existant

Il existe une documentation ici, mais le prototype que nous avons en test est une évolution.

Equipe (Porteur de projet et contributeurs)

  • Porteurs du projet : Nicolas Huchet
  • Concepteurs/contributeurs : Orthopus et Re-Factory
  • Responsable de documentation : Suliane

Matériel nécessaire

1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web
1 coffret MyoCoach
1 câble USB (Arduino)
2 électrodes Ottobock (Réf 13E202)
2 câbles d'électrodes
2 porte-électrodes
1 sangle velcro

Outils nécessaires

1 tournevis plat

Fichiers source

https://github.com/orthopus/01-myocoach

Mémo pour se connecter au système Myocoach, visualiser le signal et jouer

Etapes de fabrication pas à pas


L'application et le boîtier MyoCoach permettent à l'utilisateur de tester sa capacité à contrôler une prothèse myoélectrique. Ces tests sont réalisés sur ordinateur et sont proches des conditions réelles.

Les exercices interactifs et le jeu vidéo intégrés à l'application permettent un entraînement musculaire ludique. De plus, il accélère l'apprentissage de la dissociation des différents groupes musculaires.

Deux électrodes 13E202 connectées au boîtier MyoCoach reçoivent les signaux musculaires myoélectriques de l'utilisateur. Ces signaux sont ensuite envoyés aux appareils connectés pour être affichés dans un navigateur Web.

Le MyoCoach s'allume en branchant l'alimentation du boîtier sur un chargeur USB ou sur le port USB d'un PC. Ensuite, l'utilisateur doit connecter son appareil (PC, smartphone ou tablette) au réseau Wi-Fi MyoCoach.

Pour éteindre le MyoCoach, allez dans la section "Paramètres" de l'application web et appuyez sur le bouton "Arrêter". Ou si le MyoCoach est équipé d'un bouton d'alimentation LED (en option), appuyez simplement dessus. 'Protocole de placement des électrodes'''' La fonction principale du MyoCoach est d'optimiser le placement des électrodes et de trouver le bon réglage de gain.

Pour ce protocole, nous utilisons des électrodes Ottobock (Ref 13E202).

Ce protocole est le résultat d'une publication scientifique de l'Université de Salford (Royaume-Uni).

💡Chadwell Alix, Kenney Laurence, Thies Sibylle, Galpin Adam, Head John (2016) La réalité des prothèses myoélectriques : comprendre ce qui rend ces appareils difficiles à contrôler pour certains utilisateurs url

Ce protocole de test permet la mise en place de deux électrodes utiles à l'utilisation d'une prothèse myoélectrique. Nous utilisons deux groupes de muscles du poignet pour contrôler la prothèse :

les muscles fléchisseurs du poignet pour fermer la main de la prothèse (1) les muscles extenseurs du poignet pour ouvrir la main de la prothèse (2) muscle_flechisseur_et_extenseur

1- Équiper une électrode d'une barrette à broches pour réaliser un adaptateur avec le système de connecteur MyoCoach (voir la section connecteur d'électrode dans le manuel de fabrication ). adaptateur_electrode

2- Réglez le gain de l'électrode à un niveau moyen entre 3 et 4 Pour accéder au potentiomètre de réglage de gain du capteur Ottobock 13E202, il n'est pas nécessaire de retirer le capteur du brassard ! Déplacez-le simplement comme indiqué ci-dessous.

accès_potentiomètre

3- Connectez cette électrode au connecteur EMG 0 du boîtier MyoCoach. connecteur_boitier

4- Connectez la box MyoCoach à l'ordinateur à l'aide du câble USB fourni avec la carte Arduino. connexion_boitier_ordi


5️ Lancez l'application MyoCoach sur l'ordinateur, connectez l'application à la carte Arduino et choisissez le Widget Signal. 6️ Maintenez l'électrode sur le muscle de l'utilisateur. maintien_electrode

Une électrode EMG doit être placée le long et au milieu de la fibre musculaire.

myo_placement_muscle

7Demander à l'utilisateur de contracter de manière répétée et régulière le muscle concerné par l'électrode à un niveau confortable, sans trop d'intensité musculaire. Notez le niveau du signal obtenu. contraction_muscle_extenseur ontraction_muscle_flechisseur

8Déplacez ensuite l'électrode dans les 4 directions (haut, bas, gauche et droite) à partir de la position de départ. Le mouvement doit être d'environ la moitié de la largeur de l'électrode (1 cm). déplacement_électrode

9Si l'amplitude du signal est supérieure à l'une des nouvelles positions, répétez l'étape8️⃣, définissant cette nouvelle position comme point de départ.

10La position avec l'amplitude maximale est ensuite marquée sur la peau de l'utilisateur avec un crayon .

marquage_position_électrode

Enfin, le réglage du gain est défini pour que l'utilisateur puisse atteindre confortablement un niveau de signal compris entre 20 et 80% sur le Widget Signal de l'application. Ce protocole doit être répété pour la deuxième électrode.

Connectez l'électrode à la boîte 1️Assemblez les deux électrodes sur le brassard. Le brassard offre plusieurs degrés de liberté pour permettre un positionnement optimal des électrodes sur le bras de l'utilisateur. (Voir la section Brassard : Ajustements et positionnement dans le manuel de fabrication ).

vue_brassard

2️Connectez les électrodes au boîtier MyoCoach.

L'électrode à l' extérieur de l'avant-bras doit être connectée au connecteur EMG 0 du boîtier. L'électrode placée à l' intérieur de l'avant-bras doit être connectée au connecteur EMG 1 du boîtier. emg_0_emg_1

Une fois les électrodes connectées et le brassard ajusté, l'utilisateur est prêt à s'entraîner à utiliser les capteurs EMG !


Aperçu des applications L'application web MyoCoach est hébergée sur un ordinateur Raspberry Pi. Le Raspberry Pi est défini comme un point d'accès Wi-Fi et l'application est accessible aux clients connectés à l'aide d'un navigateur Web.

Pour une prise en charge complète des fonctionnalités et une bonne expérience utilisateur, nous vous recommandons d'utiliser l'un des navigateurs Web suivants :

Navigateur Firefox (version 93) Google Chrome/Chrome (version 88) Commencer 1️Connectez le Raspberry Pi avec un câble USB. Selon l'équipement, le bouton DEL s'allumera en blanc. 2️Attendez que le MyoCoach soit prêt à l'emploi. Selon l'équipement, la couleur du bouton DEL doit passer au bleu lorsque le système est prêt. 3️Connectez votre appareil client (PC, téléphone ou tablette) au réseau MyoCoach par Wi-Fi. Les identifiants peuvent être : préalablement configuré avec le document INSTALL-fr précédemment configuré par Orthopus - SSID = myocoach-01, secret = null (pas de mot de passe) non configuré, valeur par défaut - SSID = raspi-webgui, secret = ChangeMe 4️Un portail captif apparaît automatiquement : portail_captif_1

5️Une nouvelle page apparaît avec le lien pour accéder à l'application web : portail_captif_2

Copiez puis collez le lien dans un navigateur Web. La fenêtre du portail captif peut maintenant être fermée.

6️L'application web MyoCoach démarre par la section suivante : signal_page

Pour utiliser l'application MyoCoach sur un smartphone ou une tablette, nous vous conseillons de régler l'écran de l'appareil en mode horizontal (paysage).

7️Les procédures d'arrêt et de redémarrage sont expliquées dans la partie section Paramètres. Appuyez sur le bouton LED (le cas échéant) pour un arrêt direct. Barre d'application principale La barre principale de l'application permet à l'utilisateur de naviguer dans toutes les sections de l'application et de surveiller l'état du système. Selon la largeur d'écran de l'appareil client, la barre d'application peut être affichée à gauche ou en haut de l'écran :

main_app_bar_1

Aller à la section Signal (section par défaut) Accéder à la rubrique Formation Étendre/réduire la liste des jeux Aller à la section jeu "FlappyPoulpy" Aller à la section À propos Activer/désactiver le mode sombre (la valeur par défaut dépend des paramètres du système d'exploitation de l'appareil client) Activer/désactiver le mode plein écran (non disponible sur le navigateur Web Safari) État de la connexion au serveur État de connexion du carton des capteurs Allez dans la section Paramètres Étendre/réduire la barre d'application principale Afficher/masquer le menu de l'application Tableau de bord Le composant tableau de bord affiche les mesures des capteurs EMG :

tableau de bord


Section des signaux La section signal est la section par défaut de l'application et affiche les tracés des mesures des capteurs EMG :

signal_page

Rubrique formation La section entraînement propose plusieurs exercices à réaliser avec les capteurs EMG. La première vue invite l'utilisateur à configurer et lancer une session d'entraînement et/ou à créer de nouveaux parcours personnalisés.

Mise en place de la session de formation La configuration de la session de formation permet à l'utilisateur de configurer une session avant de démarrer une session de formation.

formation_page_1_1

1La liste de sélection des sentiers contient tous les sentiers créés à partir de la section Gérer les sentiers. 2Le curseur de largeur de piste définit la largeur de piste de 10 à 30 pour ajuster le niveau de difficulté de la séance d'entraînement. 3Un aperçu graphique du parcours sélectionné. 4La puce Last Score affiche le score de la session précédente. 5Le bouton Démarrer lance la session. formation_page_2

Avant le début de la session, un compte à rebours centré apparaît pour se préparer. La session peut être interrompue en cliquant ou en appuyant sur le compte à rebours pour revenir à la configuration de la session d'entraînement.

formation_page_3

Le but de l'exercice est de faire en sorte que les tracés de signaux EMG restent dans le chemin de couleur correspondant pendant la durée de la session. La session peut être interrompue en cliquant ou en appuyant sur le bouton "Arrêter" pour revenir à la configuration de la session d'entraînement. La durée de la séance est indiquée par le compte à rebours et la barre de progression. La couleur de ces puces dépend du fait que les tracés du signal EMG sont dans ou hors du chemin. Gérer les sentiers La section gérer les parcours permet de créer, importer, exporter et supprimer des parcours :

formation_page_1_2

Cliquer sur le bouton créer ouvrira une boîte de dialogue pour créer un nouveau parcours avec les spécifications suivantes : formation_page_create

Dans l'application MyoCoach, un parcours est un ensemble de points temps/valeur.

a - Le nom du parcours qui apparaîtra dans la liste de sélection des parcours et sera également le nom du fichier donné en cas d'exportation.

b - Le type d'interpolation définit comment deux points suivants seront liés dans la trace.

c - La section EMG0 Points permet d'ajouter l'ensemble des points temps/valeur. Utilisez le bouton "Plus" pour ajouter et le "Moins" pour supprimer le dernier élément ajouté.

d - La section Points EMG1 a les mêmes fonctionnalités que la section ci-dessus. Pour n'utiliser qu'un seul capteur, l'autre ensemble doit rester vide

Cliquer sur le bouton d'exportation ouvrira une boîte de dialogue avec la liste des sentiers. Cliquer sur le bouton "Exporter" générera puis téléchargera le parcours sélectionné dans un fichier .xlm qui pourra être téléchargé sur un autre appareil MyoCoach (en utilisant la fonction d'importation de parcours) :

formation_page_export

Cliquer sur le bouton d'importation ouvrira une boîte de dialogue pour télécharger un fichier compatible .xml. Le bouton "Parcourir..." permet à l'utilisateur de choisir le fichier à importer sur le système de fichiers du client puis de l'ajouter à la liste de sélection du parcours : formation_page_import_1

training_page_import_2

Cliquer sur le bouton Supprimer ouvrira une boîte de dialogue avec la liste des sentiers. Le bouton "Supprimer" supprime le parcours sélectionné : training_page_delete

Rubrique jeu Les jeux disponibles dans MyoCoach sont une alternative amusante pour pratiquer le contrôle du capteur EMG.

Par défaut, un jeu est disponible sur le MyoCoach : FlappyPoulpy

FlappyPoulpy est un jeu de type FlappyBird qui utilise des capteurs EMG comme contrôleur.

Une fois le jeu terminé, l'écran suivant apparaît : game_page_1

Cliquez ou appuyez sur le bouton "Jouer" pour continuer. Ensuite, une vue apparaît et explique comment utiliser les capteurs EMG en tant que contrôleur. Cliquez, tapotez ou dépassez le seuil de 30% avec le capteur EMG1 (visible avec le composant Dashboard) pour lancer le jeu : jeu_page_2

Une fois le jeu lancé l'objectif est de franchir les "portes" entre deux colonnes et d'atteindre le meilleur score possible. A chaque porte franchie le score et la vitesse de jeu augmentent : game_page_3

En cas de passage manqué, l'écran de jeu s'affiche en affichant le score atteint. Cliquez ou tapez sur le bouton "Jouer" ou dépassez le seuil de 30% avec le capteur EMG1 pour démarrer une nouvelle partie : jeu_page_4

À propos de la rubrique La section à propos affiche des informations supplémentaires sur le projet MyoCoach et Orthopus :

about_page

Rubrique Paramètres La section des paramètres montre l'état général de MyoCoach et propose des actions système :

paramètres_page

1️Indique si les capteurs carton et serveur sont connectés ou non. 2️Permuter les entrées EMG : Lorsque vous cliquez dessus, les entrées des capteurs EMG sont permutées immédiatement. Une alerte avertit les utilisateurs de l'effet de l'action. 3️Régler l'heure : Lorsque vous cliquez dessus, cela règle immédiatement l'horloge MyoCoach (horloge interne du Raspberry Pi) sur l'heure de l'appareil client. Une alerte avertit les utilisateurs de l'effet de l'action. 4️Redémarrer : Lorsque vous cliquez dessus, une boîte de dialogue s'affiche pour demander confirmation pour redémarrer le système. Une alerte avertit les utilisateurs de l'effet de l'action. Selon l'équipement, le bouton DEL clignotera en jaune jusqu'à ce que le système redémarre effectivement. 5️Arrêt : lorsque vous cliquez dessus, une boîte de dialogue s'affiche pour demander confirmation de l'arrêt du système. Une alerte avertit les utilisateurs de l'effet de l'action. Selon l'équipement, le bouton DEL clignotera en rouge jusqu'à ce que le système s'éteigne effectivement. Gestion des points d'accès Wi-Fi Le MyoCoach comprend une configuration d'application de point d'accès appelée RaspAP pour permettre la connexion Wi-Fi à l'application Web MyoCoach. RaspAP permet au Raspberry Pi de fonctionner comme un routeur et dispose également d'une application web pour son administration.

Commencer 1️Assurez-vous que la section "Mise en route" de l'application Web MyoCoach a été suivie avant de commencer cette section. 2️Connectez votre appareil au réseau Wi-Fi MyoCoach. 3️Pour accéder à l'application web d'administration du PA, ouvrez une fenêtre de navigateur web et rendez-vous à l'adresse suivante : http://raspap.myocoach.lan 4️Une boîte de dialogue de demande d'authentification apparaît : ap_page_1

Les identifiants peuvent être :

préalablement configuré suivant le manuel de programmation du serveur ).

non configuré, valeur par défaut - Nom d'utilisateur = admin, Mot de passe = secret

5️Une fois l'accès à l'application Web RaspAP accordé, la page suivante apparaît où toutes les configurations sont disponibles :

ap_page_2

6️La documentation RaspAP complète est disponible à l'adresse suivante : https://docs.raspap.com/

Guide de programmation du serveur / / L'application MyoCoach v2.0 permet la visualisation des signaux EMG bruts et permet aux utilisateurs de s'entraîner en faisant des exercices ou via des jeux vidéo. S'agissant d'une application Web au design réactif, elle est accessible à l'aide d'un navigateur Web installé sur un poste de travail de bureau ou sur un appareil mobile tel qu'un smartphone ou une tablette. L'application MyoCoach v2.0 a été créée en utilisant les technologies suivantes : Développement back-end : Python Flask, SQLite, Socket-IO Développement front-end : TypeScript, React, Material-UI Développement de jeux : Godot Engine La carte d'environnement d'origine choisie pour héberger l'application est une Raspberry Pi 3 modèle B+ mais le processus d'installation reste identique aux versions ultérieures des cartes Raspberry Pi et peut probablement être adapté pour d'autres cartes de développement ou postes de travail de bureau fonctionnant sous un système d'exploitation GNU/Linux.


Configuration du système d'exploitation Téléchargez une image Raspberry Pi OS Lite disponible à l'adresse suivante depuis un poste de travail : https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Décompressez l'archive téléchargée pour obtenir le fichier image (extension de fichier .img). Depuis un terminal, allez dans le répertoire où se trouve le fichier .img puis connectez une carte MicroSD sur le poste (16Go A1 minimum recommandé). La carte MicroSD doit être démontée si elle a été montée automatiquement. Lancez ensuite la commande suivante : Remarque : Remplacez 2021-05-07-raspios-buster-armhf-lite par le nom de fichier .img réel. ~ > sudo dd bs=1m if=2021-05-07-raspios-buster-armhf-lite.img of=/dev/rdisk2 Éjectez la carte MicroSD de la fente SD de la station de travail, puis insérez-la dans la fente MicroSD du Raspberry Pi. Connectez un écran, un clavier et un câble ethernet puis allumez la carte Raspberry Pi. Attendez que le système soit prêt. Une fois le système démarré, authentifiez-vous sur le terminal avec l'utilisateur "pi" (mot de passe : raspberry).

Accès SSH Sur le Raspberry Pi, activez l'accès ssh pour autoriser la connexion à distance à partir d'un autre poste de travail. Exécutez la commande suivante : pi@raspberrypi : ~ $ sudo raspi-config Sélectionnez l'option suivante sur l'interface utilisateur : 3 Options d'interface , P2 SSH puis sélectionnez Oui . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande. Clavier Il peut être nécessaire de configurer le type de clavier utilisé. Exécutez la commande suivante : pi@raspberrypi : ~ $ sudo raspi-config Sélectionnez l'option suivante sur l'interface utilisateur : 5 Options de localisation , Clavier L3 puis suivez les instructions pour configurer le clavier (par exemple : Logitech, Français-Français (ancien, alt.), La disposition par défaut du clavier, Pas de touche de composition) . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande. Mot de passe Pi Pour changer le mot de passe par défaut, exécutez la commande suivante : pi@raspberrypi : ~ $ mot de passe Tapez ensuite le mot de passe actuel, le nouveau mot de passe et enfin validez.

Installation des packages système Pour installer un logiciel à partir d'Internet, il est nécessaire de câbler le Raspberry Pi à un routeur à l'aide de l'interface Ethernet. Pour ce faire, branchez un câble RJ45 sur le port Ethernet de la carte et connectez-le à un routeur disposant d'une connexion à Internet. Avant d'installer de nouveaux composants, il peut être nécessaire d'obtenir la liste des packages à jour : pi@raspberrypi : ~ $ sudo apt mise à jour Ainsi que les packages installés par défaut : pi@raspberrypi : ~ mise à niveau $ sudo apt L'installation de MyoCoach nécessite plusieurs packages pour fonctionner correctement : Pip3, VirtualEnv, Flask, NodeJs, SQLite. Ajoutez d'abord le dépôt nodesource apt afin de pouvoir obtenir les packages nodejs : pi@raspberrypi : ~ $ curl -sL https://deb.nodesource.com/setup_16.x | coup de sudo - Installez ensuite les packages : pi@raspberrypi : ~ $ sudo apt install nodejs git python3-pip python3-flask sqlite3 virtualenv

Configuration de l'application Obtenir le code d'application Pour obtenir la dernière version du code source de l'application, maintenez la carte connectée à Internet via le port Ethernet et exécutez les commandes suivantes : pi@raspberrypi : ~ clone $ git https://github.com/orthopus/01-myocoach.git Récupérer les dépendances des applications Sur le Raspberry Pi, rendez-vous dans le répertoire de la webapp MyoCoach : pi@raspberrypi : ~ $ cd 01-myocoach/src/software/webapp/ Pour obtenir les packages Python, exécutez la commande suivante : pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ sudo pip3 install -r requirements.txt Exécutez la commande suivante pour obtenir les dépendances nodejs : pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ installation npm Variables d'environnement et compilation Créez une copie du fichier .env.example nommé .env : pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ cp .env.example .env Vérifiez ensuite son contenu et adaptez-le si nécessaire à l'aide d'un éditeur de texte : pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ nano .env .env NODE_ENV=production ENDPOINT=http://app.myocoach.lan Puis lancez la compilation Webpack avec la commande suivante : pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js

La mise en réseau Nom d'hôte Dans l'objectif de changer le nom d'hôte MyoCoach (actuellement raspberrypi), ouvrez l'interface des paramètres système avec les commandes suivantes : pi@raspberrypi : ~ $ sudo raspi-config Sur l'interface des paramètres système, sélectionnez 1 Options système , Nom d' hôte S4 puis OK . Tapez le nouveau nom "myocoach" . Sélectionnez Terminer pour enregistrer la configuration. Enfin, sélectionnez Oui pour redémarrer le système afin que les modifications prennent effet.

Le nom d'hôte du fichier hosts doit être actualisé pour enregistrer le nouveau nom d'hôte.




Une fois les informations renseignées, enregistrez et fermez le fichier. Les informations de taille de fichier pour game.pck et game.wasm peuvent être trouvées en regardant dans le fichier game.html qui a été généré lors de l'exportation. Il est important de renseigner ces informations afin que le chargeur de jeu fonctionne correctement. Les dimensions de l'écran (largeur et hauteur en nombre de pixels) sont les dimensions par défaut de l'écran de jeu que l'on peut trouver dans l'environnement de développement Godot. Il est important de renseigner ces informations afin que l'application web MyoCoach conserve le format d'écran du jeu quelle que soit la taille de l'écran de l'appareil.

Journal de Bord

22/02/22

Les signaux des capteurs ne sont pas facilement exploitable car trop de variation. Qu'est qui génére les hachures, parasites....

Des coupures ou pics, réguliers empechent la lecture du signal

On intervertit les capteurs autobock et orthopus sur le myocoach : le problème d'interférence est toujouts présent.

Quand on mets les capteurs autobock sur le myoboy, cela fonctionne donc cela ne vient pas des capteurs.

Cela ne vient pas non plus de l'alimentation raspi : si j'alimente l'arduino via le port usb, plus le jack d'alimentation : pareil

Résultat : Nécessité de ne pas l'alimenter par l'usb pour plus de propreté dans la réception du signal. Signal plus clair mais pics intempestifs si contact avec la peau

Nouvel essai avec la masse (electrode) coincé dans le coude et raccordé a la prise de courant: signal PLUS stable

Pour éviter les interférences il faut brancher l'arduino via le raspberry en passant par le port usb ET pour supprimer les parasites extérieurs il faut faire masse grâce au bracelet raccordé au négatif de l'arduino et au négatif sur une prise electrique VOIR PHOTO

Solution : pour supprimer les interférences il a fallu brancher le raspi sur une power bank et garder la masse entre l'arduino et le bracelet.

La consommation est inférieur à 1 ampere : 5 watt Ce qui permet l’utilisation d'un power bank 10,000 mAh avec une sortie de 2 amperes

1/ Supprimer la carte arduino qui sert a recuperer les information des capteurs, pour l'integrer en direct sur le raspi au moyen d'un convertisseur analogique digital double : voir lien

2/ Placer un afficheur led, 128X128 : 1,12 pouces : afficher le nom du hotspot reseau wifi du raspi, afficher l'adresse html du site, l'état (la tension de la batterie) et surtout les valeurs des capteurs avant meme qu'ils arrivent sur le logiciel du pc.

3/ rajouter un bouton poussoir : : permet d'arreter et mettre en marche l'afficheur et ou le raspi.

Bouton a led RVB : Donner des informations supplémentaires grâce aux couleurs

IMPORTANT : les capteurs ne fonctionnent pas a 3,3 V, prevoir 5 volt. En consequence, ajouter un convertisseur de niveau logique sur le port I2C entre le convertisseur et le raspi

23/02/2022

Suite à la suppression de l'arduino, rajout du Convertisseur Analogique Digital ADS1015 sur le Raspberry.

Les électrodes envoient des signaux analogiques, grace au ADS1015, les informations envoyées par les capteurs sont converties en numerique pour qu'elles soient compréhensibles par des applications, comme les jeux.

Réduction de place, de côut et de consommation d'énergie mais nécessite de réécrire le code


Bonjour, suite à notre Fokus Myocoach, j'ai réalisé quelques mesures sur les capteurs. J'ai réalisé les mesures sur les capteurs de Mathilde, les originaux je crois. Tension de fonctionnement mini : 4.2v. Résistance de sortie ou impédance : <100 ohms tension maxi du niveau de sortie avec 5v en alimentation : 4.4v Lorsque l'on test le capteur sur un banc de test, il ne semble pas être sensible au perturbation extérieur mais il faut tenir compte que lorsque l'on mesure, on perturbe toujours l'objet mesuré soit dans un sens soit dans l'autre. Il se peut que mes sondes de mesures en mettant le gnd du capteur à la masse (terre) et réduisent de fait les perturbations, comme lors de nos tests. L'impédance de sortie qui est assez faible garanti que les perturbations électriques qui pourraient atteindre les fils seront très réduites. Le schéma qui avait été imaginé lors du focus, celui pour connecter le capteur au CAN ADS1015, reste valide avec seulement un changement de valeur des résistances. Photos du cablage du capteur :

Vue générale Adaptateur.
Vue Détail du connecteur.
Position des fils (GND, +5V, OUT) au niveau du Capteur.
Position des fils (GND, +5V, OUT) au niveau de l'adaptateur recto.
Position des fils (GND, +5V, OUT) au niveau de l'adaptateur verso.