Projets:A-maze
Description du projet
Créer un dispositif pour améliorer l'apprentissage du Tae Kwon Do par des malvoyants.
L'idée est de créer une application qui permette de choisir différentes séquences de mouvements avec des rotations et des déplacements afin que l'usager puisse être corrigé en temps réel avec un retour haptique sur les épaules sous forme de vibration.
Il existe un vingtaine de patterns (séquence de mouvements) incluant chacun une dizaine de rotation.
L'entrée et la sortie sont situés à la même position pour chaque pattern.
Pour les patterns, "les labyrinthes virtuels", la surface de deplacement est de 20m2. Il y a peu de déviation en réalité. Il n'y a jamais plus de 2 ou 3 pas d'affilé, suivis de rotation.
La séquence que nous appelons ici un labyrinthe virtuel change selon le niveau du pratiquant. La largeur du couloir est équivalent à environ 50 cm, largeur du bassin. Il s'agit de créer un exercice de mobilité avec lequel il travaille ses orientations. Le retour haptique représente le retour du mur du labyrinthe virtuel par rapport au déplacement.
Les pratiquants les plus avancés font des huitièmes de 360 degrés , soit 45 degrés. Pour arriver à cette précision il faut environ 6 ans pour un malvoyant et cet exercice permettrait d'accélérer l'apprentissage.
Il y a trois rotations possibles: 45, 90 et 180 degrés.
Les épaules sont reliées au bassin.
Aujourd'hui sans ce dispositif, le maitre rectifie avec tapotement sur l'épaule ou en bougeant le noeud de ceinture, la personne s'oriente. Il n'y a pas de vocalisation, pour rester concentré sur le mouvement et c'est la raison pour laquelle on ne souhaite pas vocaliser les erreurs.
Le principe ici serait de faire porter à la personne un gyroscope au niveau de la ceinture, "la boussole" du Tae Kwon Do, située à 3cm derrière le nombril, centre de gravité, point par lequel passe le point de rotation
Le dispositif est composé de trois parties :
- Le gyroscope au niveau de la ceinture
- un moteur vibrant sur chaque épaule
- une application depuis laquelle on choisit quelle séquence on travaille
Fonctionnement du dispositif:
- on declenche la séquence sur le téléphone (ou microcontroleur)
- le gyroscope reçoit et contrôle les angles de la séquence reçus en bluetooth de l'application (téléphone)
- le retour haptique (les moteurs vibreurs) indique à l'usager s'il fait une erreur.
Schéma du dispositif
Les éléments à prendre en compte pour programmer l'application
Un angle est détecté seulement si l'angle est supétieur à 35 degrés (à voir). La marge d'erreur toléré sur l'angle doit être réglable selon le niveau de l'usager et selon la taille de la personne.
L'usager aurait une seule chance de rectifier sinon tant pis il continue le pattern mais comme les angles sont relatifs à sa position, pas de problème. Dans le soft, il y a l'apsect usager final qui choisit son pattern et l'éducateur qui peut entrer le pattern. Ces patterns devraient pouvoir être ajoutés via l' interface utilisateur avec retour visuel du pattern.
En 1ere approche seuls les changements de direction sont à prendre en compte. Séquence d'angles.
Si on veut 180 et qu'on fait plus, vibration, mais si moins de 160 retour haptique?
Il faut signer les angles plus ou moins 90 degrés pour savoir si on est allé "dans le mur" ou si on a fait une rotation incomplète . Par défaut on est au nord. Travaille avec les points cardinaux.
Quand erreur, ca vibre, et arrete de vibrer quand l'utilisateur rectifie.
Pour passer à l'étape suivante mettre un autre seuil que celui du retour haptique. Par exemple, jusqu'à 20 degrés c'est un degré parasite, de 20 à 40, c'est une rotation et c'est donc une erreur de rotation qui n'a pas atteint les 45 degrés.
Cahier des charges
Analyse de l'existant
Equipe (Porteur de projet et contributeurs)
- Porteurs du projet : Sébaastien
- Concepteurs/contributeurs : Yves, Delphine
- Animateur (coordinateur du projet)
- Fabmanager référent :Delphine
- Responsable de documentation
Matériel nécessaire
- Téléphone Android
- ESP 32
Outils nécessaires
Coût
Délai estimé
Fichiers source
Etapes de fabrication pas à pas
Application Android pour envoyer la séquence du pattern au boitier contrôleur du pratiquant
Télécharger l'APK et l'installer sur le téléphone
l'application sur le smartphone de l'enseignant.
Définir les différents patterns
Dans un tableur, définir les patterns sous le format suivant : (format provisoire )
Nom du pattern | Niveau de difficultée | A définir (ex: rotation) | A définir (ex: temps) | A définir (ex: rotation) | A définir (ex: temps) (etc...) |
---|
Exporter le fichier au format csv avec virgule comme séparateur
Connecter le téléphone à l'ordinateur
Copier le fichier CSV dans le téléphone dans le repertoire suivant : Mémoire de stockage interne/Android/data/appinventor.ai_yveslc35.TAEKWONDO/files/Nom_du_fichier.csv
NB: Si on désinstalle l'application le fichier va disparaitre il faudra le réinstaller au même endroit.
Si on est en mode développeur sur Appinventor en mode Companion , le fichier est à uploader depuis l'application companion dans le "File"
Usage de l'application
- Ouvrir l'application TaeKwonDo sur le téléphone.
- Cliquer sur le bouton "Scan"
- La liste bluetooth des contrôleurs de TaekwonDo apparait
- Sélectionner le contrôleur (sous tension) de l'usager taekwondo (ex: "taekwondo 01") et cliquer sur le bouton "Connecter"
- Cliquer le bouton "Valider le choix du contrôleur" ou le bouton "déconnection" puis recommencer.
- Une fois le choix validé la liste déroulante des patterns s'affiche. Cliquer sur le pattern voulu. La liste des niveaux correspondant à ces patterns s'affiche.
- Cliquer sur le niveau voulu
- Cliquer sur le bouton "Validation". L'ensemble du pattern est alors transmis au contrôleur.
- Cliquer sur le bouton en bas "Autre contrôleur" et recommencer la procédure avec le contrôleur suivant
Durée de fabrication du prototype final
Journal de bord
14/02/2022
Bonne nouvelle : le module CMPS12 est très réactif et convient parfaitement pour la détection de mouvements ou de rotations Cliquer sur le PDF pour voir l'intégralité du document. Proposition ci-dessous.
- Comment dissocier un mouvement parasite d'une rotation mal faite?
- suggestion: avoir deux capteurs pour dissocier mvt parasite: quand rotation, les jambes bougent, donc si bougent pas c'est parasite donc on ne calcule pas la rotation (ce n'est donc pas une rotation mal faite)
17/02/2022
- Comment dissocier un mouvement parasite d'une rotation mal faite?
- suggestion Yann: avoir deux capteurs pour dissocier mvt parasite: quand rotation, les jambes bougent, donc si bougent pas c'est parasite donc on ne calcule pas la rotation (ce n'est donc pas une rotation mal faite)
- Relecture du pdf
- ajouter angle 270 et zéro pour mouvement sans rotation. Il y aura les angles suivants dans les patterns :0, 90, 180, 270 degrés
- scénario d'usage :intégrer un timing pour chaque rotation
2 modes pour application
- une sans timing. Apprentissage de l'espace
- une avec timing pour entrainement à compétition de la personne pour une personne qui maitrise déjà l'espace.
Mode timing
Le découpage du temps peut être différent du découpage des rotations.
Entre deux rotations, il peut y avoir un découpage de temps ou pas. Et ce que chaque élément de mvt a une durée différente? Oui. Avoir en surimpression de rotation un métronome qui donne le rythme.
Soit quand le temps est écoulé, on fait un son pour dire que le temps est écoulé
Scénario d'usage
- Dans l'application du téléphone on importe un fichier csv qui contient tous les patterns.
- On choisit le pattern et à quel microcontrôleur (positionné sur le pratiquant) on l'envoie en bluetooth
- Le pratiquant non voyant déclenche le début de séquence avec un bouton relié au microcontrôleur
Fonctionnement du microcontroleur que le pratiquant malvoyant porte sur son nombril. Informations retours à l'usager
- Bip (son) = timing
- Vibration (retour haptique sur les épaules) = correction
Chaque bip précède un mouvement qui peut être une rotation ou pas.
La séquence de mouvement une fois envoyée se déroule continuellement. Si l'usager tourne alors qu'il devrait pas, il faut une indication. (Vérifier que les non rotations sont bien des non rotations.)
Limites de calcul
Tant que la rotation n'est pas figée , le calcul ne se lance pas (si je depasse ma rotation et revient en un seul mouvement, le dépassement bn'est pas prise en compte).
Tableau à remplir par usager final (enseignant) pour écrire les séquences
Priorité secondaire de développement
Nom du pattern | Niveau | Mouvement | Angle | Angle accepté (seuil tolérance) | Temps |
---|---|---|---|---|---|
Pattern 1 | A | 1 | 90 | 87-97 | 1 |
Pattern 1 | A | 2 | 0 | -10-10 | 1 |
Pattern 2 | B | 1 | 90 | 87-97 | 1 |
A transformer en un fichier csv où chaque ligne est un pattern. On importe le fichier csv qui contient tous les patterns dans le téléphone où on a un menu pour choisir quel pattern on sélectionne.
Pour initialiser et terminer la séquence
Le téléphone (appli globale des patterns pour le coach) envoie en bluetooth la séquence au microcontroleur du pratiquant. Bouton sur microcontroleur qui se trouve sur l' utilisateur puis séquence (salut+respiration+séquence).
A la fin de la séquence, on signale que c'est terminé par 3 bips
En cas d'erreur ou abandon en cours de route
Eventuellement, il faudrait avoir un point de reprise quand abandon de séquence en cours de route (priorité secondaire). Si on a pas fini la séquence et qu'on rappuie sur le bouton cela la stoppe. Si on rappuie dessus on repart du début.
En cas de de plusieurs séquences les unes à la suite des autres. Il faudrait envoyer les séquences additionnés de manière dissociée. Quand l'usager clique une fois, le déroulement de la séquence s'arrête. S'il clique une fois, la séquence reprend (celle qui a été bandonné). Double clic on reprend l'ensemble des séquences depuis le début.
To DO
- Réflexion de Sébastien et Yann, pour valider le format du pattern car il manque peut-être des informations pour corrections, notamment la direction