Différences entre versions de « Projets:Fit and Fun Kids »
(29 versions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
|Evènement associé=Fabrikarium Palavas 6 au 8 juin 2023 | |Evènement associé=Fabrikarium Palavas 6 au 8 juin 2023 | ||
|Porteur de projet=Tya, Koreilya: maman de Tya | |Porteur de projet=Tya, Koreilya: maman de Tya | ||
− | |Contributeurs=ChristineAzevedo, | + | |Contributeurs=Cecilepacoret, ChristineAzevedo, Pissard, Maxime, Siméon Getti, Virginie Ceccarelli, Gaelle Thibaudat, Rémy Devos, Guillaume Colin, Judith Maurin, Tanguy Dréan |
|Fabmanager=Sijobert | |Fabmanager=Sijobert | ||
|Animateur=Sijobert | |Animateur=Sijobert | ||
Ligne 12 : | Ligne 12 : | ||
|Statut de la documentation=Partielle | |Statut de la documentation=Partielle | ||
|Relecture de la documentation=Non vérifiée | |Relecture de la documentation=Non vérifiée | ||
− | |Techniques= | + | |Techniques=micro-bit, scratch |
|Durée de fabrication=de 0 à 2 h | |Durée de fabrication=de 0 à 2 h | ||
|Coût matériel=De 50 à 100 euros | |Coût matériel=De 50 à 100 euros | ||
Ligne 20 : | Ligne 20 : | ||
|Recherche compétences=Informatique, Internet des objets | |Recherche compétences=Informatique, Internet des objets | ||
|Projet date=2023-06-06 | |Projet date=2023-06-06 | ||
− | |Partenaires=Humanlab Autonabee, Humanlab INRIA | + | |Partenaires=Humanlab Autonabee, HLI (Humanlab INRIA) |
|Nom humanlab=Humanlab_SP | |Nom humanlab=Humanlab_SP | ||
}} | }} | ||
Ligne 94 : | Ligne 94 : | ||
[[Fichier:Ffk caz.jpg| vignette | Tya et Christine devant le PC]] | [[Fichier:Ffk caz.jpg| vignette | Tya et Christine devant le PC]] | ||
− | Cette plateforme est décrite en détails ainsi que les procédures d’installation de l’environnement sur PC dans | + | Cette plateforme est décrite en détails ainsi que les procédures d’installation de l’environnement sur PC dans la [https://project.inria.fr/humanlabinria/files/2023/07/FitFunKids-ScratchCo.pdf fiche Fit&FunKids-Scratch&Co] |
==== Logiciel SCRATCH + extension micro:bit + installation SCRATCH LINK ==== | ==== Logiciel SCRATCH + extension micro:bit + installation SCRATCH LINK ==== | ||
Ligne 118 : | Ligne 118 : | ||
[[Fichier:Ffk portail scratch.png|vignette|Portail Studio scratch]] | [[Fichier:Ffk portail scratch.png|vignette|Portail Studio scratch]] | ||
− | |||
− | |||
Présentation des jeux sous forme de vidéos : | Présentation des jeux sous forme de vidéos : | ||
− | * Installation | + | * [https://www.youtube.com/watch?v=CSYampL72J4 Installation] |
− | * Corde à Sauter | + | * [https://www.youtube.com/watch?v=fdVG6INDALs Corde à Sauter] |
− | * Attrape Mouette | + | * Attrape Mouette (non disponible) |
− | * Chat et Souris | + | * [https://www.youtube.com/watch?v=KhuwyJKzIVU Chat et Souris] |
− | * Grenouille | + | * [https://www.youtube.com/watch?v=CbzLcgfdkzc Grenouille] |
− | * Space dog | + | * [https://www.youtube.com/watch?v=mi16WvY2_fo Space dog] |
=== Plateforme Fit&Fun sur Console dédiée === | === Plateforme Fit&Fun sur Console dédiée === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | [[Fichier:Johan-fit and fun.png| 200 px | Utilisation du Maindalier Fit and Fun]] | ||
+ | || | ||
Lors du Fabrikarium 2022 à Rennes, le projet [https://wikilab.myhumankit.org/index.php?title=Projets:Fit_and_Fun Fit & Fun] devait rendre un pédalier à main basique plus ludique. Ce dispositif est utilisé dans les salles de sport adaptées (APA’Mouv, ANTS) et les centres dé rééducation fonctionnelle. Une console de jeux ‘rétrogaming’, à base de Raspberry 4, a été réalisée dont le contrôle du jeu est relié à la vitesse du pédalier par l’intermédiaire d’un capteur sans fil MQTT. Siméon en stage a travaillé par la suite du Fabrikarium à l’extension des fonctionnalités et la ‘robustifcation’ de la console. On veut étudier la piste de réutiliser certains composants (capteurs MQTT par exemple) pour ce projet voire d’intégrer les jeux kids sur cette console. | Lors du Fabrikarium 2022 à Rennes, le projet [https://wikilab.myhumankit.org/index.php?title=Projets:Fit_and_Fun Fit & Fun] devait rendre un pédalier à main basique plus ludique. Ce dispositif est utilisé dans les salles de sport adaptées (APA’Mouv, ANTS) et les centres dé rééducation fonctionnelle. Une console de jeux ‘rétrogaming’, à base de Raspberry 4, a été réalisée dont le contrôle du jeu est relié à la vitesse du pédalier par l’intermédiaire d’un capteur sans fil MQTT. Siméon en stage a travaillé par la suite du Fabrikarium à l’extension des fonctionnalités et la ‘robustifcation’ de la console. On veut étudier la piste de réutiliser certains composants (capteurs MQTT par exemple) pour ce projet voire d’intégrer les jeux kids sur cette console. | ||
− | + | * [https://www.youtube.com/shorts/qf-dMaPRG_g Vidéo de démo] | |
+ | |||
+ | |} | ||
==== Utilisation du protocole MQTT ==== | ==== Utilisation du protocole MQTT ==== | ||
Ligne 177 : | Ligne 181 : | ||
Nous avons testé différents capteurs. | Nous avons testé différents capteurs. | ||
+ | |||
+ | [[Fichier:Ffk bno055.png|vignette|Adafruit bno055]] | ||
'''Centrale inertielle BNO055 (IMU DIY)''' : il s’agit d’un module qui permet de mesurer et suivre avec précision mouvement et l'orientation d'un objet dans l'espace tridimensionnel. Doté de capteurs de gyroscope, accéléromètre et magnétomètre, il fournit des mesures précises et stables, permettant de calculer l'angle d'orientation, la vitesse angulaire, l'accélération linéaire et les champs magnétiques. | '''Centrale inertielle BNO055 (IMU DIY)''' : il s’agit d’un module qui permet de mesurer et suivre avec précision mouvement et l'orientation d'un objet dans l'espace tridimensionnel. Doté de capteurs de gyroscope, accéléromètre et magnétomètre, il fournit des mesures précises et stables, permettant de calculer l'angle d'orientation, la vitesse angulaire, l'accélération linéaire et les champs magnétiques. | ||
− | [https://learn.adafruit.com/adafruit-bno055-absolute-orientation- | + | [https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor plus d'info] |
− | |||
− | |||
Un boîtier a été réalisé pour accueillir le capteur et le porter avec une sangle tel un bracelet | Un boîtier a été réalisé pour accueillir le capteur et le porter avec une sangle tel un bracelet | ||
− | + | [[Fichier:Ffk boitier.png|Boitier micro:bit|200px]] | |
− | |||
'''Centrale inertielle M5StickC''' : basé sur un ESP32-Pico incluant des interfaces WiFi et Bluetooth combinées à un afficheur LCD 1,14". alimenté par un accu LiPo de 120 mAh et doté d’un connecteur Grove. Il est doté de capteurs: 1 accéléro/gyro MPU6886, 1 micro RTC BM8563, 1 bouton poussoir… | '''Centrale inertielle M5StickC''' : basé sur un ESP32-Pico incluant des interfaces WiFi et Bluetooth combinées à un afficheur LCD 1,14". alimenté par un accu LiPo de 120 mAh et doté d’un connecteur Grove. Il est doté de capteurs: 1 accéléro/gyro MPU6886, 1 micro RTC BM8563, 1 bouton poussoir… | ||
[https://docs.m5stack.com/en/core/m5stickc plus d'info] | [https://docs.m5stack.com/en/core/m5stickc plus d'info] | ||
− | [[Fichier:Ffk m5stick.png| | + | [[Fichier:Ffk m5stick.png| 200px | centrale M5Sstick5]] |
− | '''Capteur Electromyogramme (EMG) MyoWare''' : L'électromyogramme (EMG) est la mesure de l’activité musculaire en mesurant les signaux électriques générés par les muscles lorsqu’ils se contractent. Dans le cadre de notre projet, l'objectif est de détecter l'ouverture de la main à travers la contraction des muscles de l’avant-bras. Pour ce faire, nous avons intégré le capteur MyoWare Muscle Sensor Kit, qui permet de capturer les signaux électromyographiques et de les convertir en informations exploitables. Dans le cadre du projet, la version 1.0 du capteur MyoWare Muscle Sensor a été utilisée pour les tests de validation, bien qu'il existe une version plus récente disponible (MyoWare 2.0 Muscle Sensor - DEV-21265 - SparkFun Electronics). De plus, l'utilisation de la carte MyoWare Power a été intégrée pour garantir une alimentation fiable et optimale du capteur, assurant ainsi des mesures précises et cohérentes de l'activité musculaire. | + | '''Capteur Electromyogramme (EMG) MyoWare''' : L'électromyogramme (EMG) est la mesure de l’activité musculaire en mesurant les signaux électriques générés par les muscles lorsqu’ils se contractent. Dans le cadre de notre projet, l'objectif est de détecter l'ouverture de la main à travers la contraction des muscles de l’avant-bras. Pour ce faire, nous avons intégré le capteur MyoWare Muscle Sensor Kit, qui permet de capturer les signaux électromyographiques et de les convertir en informations exploitables. Dans le cadre du projet, la version 1.0 du capteur MyoWare Muscle Sensor a été utilisée pour les tests de validation, bien qu'il existe une version plus récente disponible ([ https://www.sparkfun.com/products/21265 MyoWare 2.0 Muscle Sensor - DEV-21265 - SparkFun Electronics]). De plus, l'utilisation de la carte MyoWare Power a été intégrée pour garantir une alimentation fiable et optimale du capteur, assurant ainsi des mesures précises et cohérentes de l'activité musculaire. |
[[Fichier:Ffk emg capteur.png|vignette|Myoware V2]] | [[Fichier:Ffk emg capteur.png|vignette|Myoware V2]] | ||
Liens utiles pour utiliser la carte MYOWARE POWER: | Liens utiles pour utiliser la carte MYOWARE POWER: | ||
− | MyoWare Muscle Sensor Kit - SparkFun Learn | + | # [https://learn.sparkfun.com/tutorials/myoware-muscle-sensor-kit/all#resources-and-going-further MyoWare Muscle Sensor Kit - SparkFun Learn] |
− | + | # [https://cdn.sparkfun.com/assets/learn_tutorials/4/9/1/MyoWareDatasheet.pdf lead Muscle / Electromyography Sensor for Microcontroller Applications] | |
+ | |||
Concernant la position et l'orientation des électrodes du capteur musculaire, elles ont un impact significatif sur la qualité du signal mesuré. Il est important de placer les électrodes au centre du groupe musculaire ciblé et de les aligner dans le sens de l'orientation des fibres musculaires. | Concernant la position et l'orientation des électrodes du capteur musculaire, elles ont un impact significatif sur la qualité du signal mesuré. Il est important de placer les électrodes au centre du groupe musculaire ciblé et de les aligner dans le sens de l'orientation des fibres musculaires. | ||
+ | [[Fichier:Ffk emg muscle.png| 400 px | Positionnement correct des électrodes]] | ||
− | + | Plus la contraction est forte, plus le nombre d’unités motrices recrutées est grand et plus la force musculaire gérée est importante et une plus grande activité électrique dans le muscle. MyoWare analyse cette activité électrique et émet un signal analogique qui représente la quantité de contraction. La sortie indicative doit s'activer (LED verte) lorsqu'une contraction est détectée. | |
+ | Voir les étapes ci-dessous pour placer le capteur et mesurer les signaux. | ||
+ | |||
+ | # Nettoyer la surface de la peau | ||
+ | # Fixer les patchs adhésifs aux connecteurs du capteur. | ||
+ | # Placer le capteur sur le muscle souhaité | ||
+ | # Placez l'électrode de référence sur une partie osseuse ou musculaire à proximité du muscle ciblé. | ||
+ | # Connectez l'entrée ADC d'une carte de développement (exemple MS5STICK) pour le traitement du signal. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | [[Fichier:Ffk emg.png|600px|Connexion Myoware à M5Stick]] | ||
− | + | ''Commentaires'': Connexion MyoWare à M5Stick pour l'acquisition de données EMG. Pour alimenter MyoWare et obtenir des données, trois câbles sont nécessaires (port Grove) : Vout (rouge), GND (noir), G33 (jaune). | |
Pour effectuer des tests en étant connecté à la plateforme de développement (par exemple, Arduino IDE), il est nécessaire de faire attention au schéma de connexion, comme indiqué ci-dessous. | Pour effectuer des tests en étant connecté à la plateforme de développement (par exemple, Arduino IDE), il est nécessaire de faire attention au schéma de connexion, comme indiqué ci-dessous. | ||
− | + | [[Fichier:Ffk emg secu.png|600px|Isolation USB pour Myoware]] | |
− | + | Test du capteur EMG avec un jeu Fit&Fun en [https://www.youtube.com/watch?v=6-KqFDjzyPc Vidéo] | |
− | https:// | ||
− | '''Capteur FLEX''' : capteur de flexion ou capteur de force flexible qui détecte et mesure le degré de flexion ou de courbure d'un objet physique. Il s'agit d'une fine bande ou d'un module flexible qui modifie sa résistance électrique lorsqu'il est soumis à une flexion ou à une courbure. Ils peuvent être intégrés dans des gants, des exosquelettes et d'autres technologies portables pour capturer et mesurer les mouvements des doigts ou des articulations. Le capteur de flexion est généralement composé d'un matériau substrat avec des pistes conductrices ou des matériaux intégrés. Lorsque le capteur se plie, l'espacement entre les éléments conducteurs change, entraînant une variation de la résistance électrique. Cette variation de résistance est proportionnelle à la quantité de flexion ou de courbure appliquée au capteur. Pour d'autres informations techniques et des exemples, consultez la | + | '''Capteur FLEX''' : capteur de flexion ou capteur de force flexible qui détecte et mesure le degré de flexion ou de courbure d'un objet physique. Il s'agit d'une fine bande ou d'un module flexible qui modifie sa résistance électrique lorsqu'il est soumis à une flexion ou à une courbure. Ils peuvent être intégrés dans des gants, des exosquelettes et d'autres technologies portables pour capturer et mesurer les mouvements des doigts ou des articulations. Le capteur de flexion est généralement composé d'un matériau substrat avec des pistes conductrices ou des matériaux intégrés. Lorsque le capteur se plie, l'espacement entre les éléments conducteurs change, entraînant une variation de la résistance électrique. Cette variation de résistance est proportionnelle à la quantité de flexion ou de courbure appliquée au capteur. Pour d'autres informations techniques et des exemples, consultez la [https://www.gotronic.fr/pj2-fiche-technique-capteur-de-flexion-2093.pdf fiche technique gotronic] : |
− | Les capteurs de flexion agissent généralement comme des résistances variables. Une méthode courante pour exploiter la variation de résistance consiste à intégrer le capteur de flexion dans un circuit diviseur de résistance. En connectant le capteur de flexion en série avec une résistance fixe, une tension analogique peut être générée à travers le capteur de flexion en fonction de la tension appliquée au circuit diviseur de résistance. Cette tension peut ensuite être mesurée et utilisée pour un traitement ultérieur ou une interface avec d'autres composants électroniques. Par exemple, la tension de sortie du capteur de flexion peut être convertie en une valeur numérique à l'aide d'un convertisseur analogique numérique, permettant des mesures précises et une intégration avec des systèmes numériques | + | Les capteurs de flexion agissent généralement comme des résistances variables. Une méthode courante pour exploiter la variation de résistance consiste à intégrer le capteur de flexion dans un circuit diviseur de résistance. En connectant le capteur de flexion en série avec une résistance fixe, une tension analogique peut être générée à travers le capteur de flexion en fonction de la tension appliquée au circuit diviseur de résistance. Cette tension peut ensuite être mesurée et utilisée pour un traitement ultérieur ou une interface avec d'autres composants électroniques. Par exemple, la tension de sortie du capteur de flexion peut être convertie en une valeur numérique à l'aide d'un convertisseur analogique numérique, permettant des mesures précises et une intégration avec des systèmes numériques. |
[[Fichier:Ffk flex capteur.png|vignette|Myoware V2]] | [[Fichier:Ffk flex capteur.png|vignette|Myoware V2]] | ||
− | + | [[Fichier:Ffk emg ampli.png|400px|Conditionnement avec ampli-op]] | |
+ | |||
+ | ''Commentaires'': Le capteur de flexion dans un circuit diviseur de résistance. Circuit a) uniquement le diviseur de tension qui serait connecté à l'entrée du convertisseur analogique-numérique ; b) diviseur de tension avec le capteur flex associé à un circuit de conditionnement (amplificateur opérationnel dans la configuration non inverseur) pour le réglage du gain et qui serait également relié à l'entrée du convertisseur analogique-numérique. La configuration a a été utilisée dans les expériences et était suffisante pour détecter une main ouverte ou fermée. | ||
Profitant de cette solution simple, le capteur a été utilisé pour détecter l'ouverture ou la fermeture de la main. Pour illustrer son applicabilité dans ce contexte, une simulation tinkercad a été réalisée. La simulation est disponible sur le [https://www.tinkercad.com/things/1cNeFTw3pid lien tinkercad] | Profitant de cette solution simple, le capteur a été utilisé pour détecter l'ouverture ou la fermeture de la main. Pour illustrer son applicabilité dans ce contexte, une simulation tinkercad a été réalisée. La simulation est disponible sur le [https://www.tinkercad.com/things/1cNeFTw3pid lien tinkercad] | ||
− | + | La configuration simple du diviseur de tension a été utilisée. | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | [[Fichier:Ffk flex arduino opened.png|300px|Capteur non fléchi -> main ouverte]] | ||
+ | [[Fichier:Ffk flex arduino closed.png|300px| Capteur fléchi -> main pliée]] | ||
+ | [[Fichier:Ffk flex.png|vignette|Capteur flex intégrer]] | ||
− | + | Test du capteur Flex en [https://drive.google.com/file/d/1ekCK_oaYbLvkIv_UD86L7IvguFW57F9q/view?usp=drive_link vidéo] | |
− | |||
− | |||
− | |||
− | |||
==Outils== | ==Outils== | ||
Ligne 293 : | Ligne 293 : | ||
==Retours utilisateurs== | ==Retours utilisateurs== | ||
− | + | Retour de Tya sur le jeu Attrape Mouette en [https://youtu.be/kqD9vgnIhPo video] | |
− | + | ==Point à améliorer== | |
− | |||
− | + | A REVOIR | |
− | + | Ancien texte | |
+ | Dans ce contexte, le projet Fit&Fun Kids se présente comme une solution pertinente. En effet, il est essentiel de rendre l'Activité Physique Adaptée (APA) plus attrayante pour les enfants. Pour ce faire, nous envisageons d'intégrer des capteurs permettant aux enfants d'interagir avec des jeux affichés à l'écran. De plus, nous souhaitons développer un système générique qui puisse être utilisé avec différents appareils d'APA équipés de divers types de capteurs. Nous prévoyons également la création d'un catalogue de jeux variés, offrant même la possibilité aux enfants de concevoir leurs propres jeux. | ||
+ | L'objectif principal du projet Fit&Fun Kids est de concevoir une architecture logicielle et matérielle modulaire et évolutive. Cette architecture permettra le développement d'une bibliothèque de jeux vidéo utilisables avec différents types de capteurs, tels que les capteurs IMU, EMG, etc. De plus, nous nous engageons à rendre la création de ces jeux vidéo accessible à tous grâce à une programmation par blocs (Scratch). | ||
+ | Nous sommes convaincus que ce projet ouvrira de nouvelles perspectives pour les enfants ayant des besoins spécifiques en matière d'activité physique. En rendant ces activités à la fois amusantes et accessibles, nous espérons encourager leur participation et contribuer ainsi à leur bien-être global. | ||
+ | En somme, le projet Fit&Fun Kids représente une véritable opportunité d'améliorer la qualité de vie des enfants en situation de handicap en leur offrant une expérience d'activité physique enrichissante et divertissante. Grâce à notre approche innovante, nous espérons stimuler l'engagement des enfants et favoriser leur épanouissement dans le cadre de l'APA. |
Version actuelle datée du 20 septembre 2023 à 13:28
Fit and Fun Kids | |
---|---|
Ce projet recherche ces compétences :
Informatique, Internet des objets | |
Informations | |
Description | Fit & Fun Kids œuvre à développer des jeux interactifs, adaptés à différents types d’activités physiques tout en encourageant leur pratique. |
Evènement associé | Fabrikarium Palavas 6 au 8 juin 2023 |
Catégorie | Motricité |
Etat d'avancement | En cours |
Techniques | micro-bit, scratch |
Durée de fabrication | de 0 à 2 h |
Coût matériel | De 50 à 100 euros |
Niveau | Moyen |
Licence | autre: MIT |
Date de création | 2023-06-06 |
Équipe | |
Porteur de projet | Tya, Koreilya: maman de Tya |
Contributeurs | Cecilepacoret, ChristineAzevedo, Pissard, Maxime, Siméon Getti, Virginie Ceccarelli, Gaelle Thibaudat, Rémy Devos, Guillaume Colin, Judith Maurin, Tanguy Dréan |
Animateur | Sijobert |
Fabmanager | Sijobert |
Référent documentation | Tiago Coelho |
Partenaires: | Humanlab Autonabee, HLI (Humanlab INRIA) |
Nom humanlab | Humanlab_SP |
Documentation | |
Statut de la documentation | Partielle |
Relecture de la documentation | Non vérifiée |
Description du projet
- Porteuses de Projet : Tya et sa maman Koreilya
- Concepteur.e.s, contributeurs/contributrices : Maxime (programmeur ‘en herbe’ suivi à l'Institut Saint-Pierre), Siméon Getti (Stagiaire M2 HumanLab INRIA), Gaëlle Thibaudat (Stagiaire M1 HumanLab INRIA), Rémy Devos (bénévole Autonabee), Tiago Coelho (Post-doctorant INRIA), Cécile Pacoret (Présidente Autonabee), Guillaume Colin (XXXXX), Virginie Ceccarelli (éducatrice technique informatique à l'Institut Saint-Pierre), Christine Azevedo (Directrice de Recherche HumanLab INRIA), Roger Pissard Gibollet (Ingénieur de Recherche HumanLab INRIA), Judith Maurin (APA’MOUV), Tanguy Dréan (APA’MOUV),
- Animateur : Benoît Sijobert (Fab Manager HumanLab Saint Pierre)
- Fabmanager référent : Benoît Sijobert (Fab Manager HumanLab Saint Pierre)
- Responsable de documentation : Tiago Coelho
Cahier des charges
Le projet Fit&Fun Kids a pour objectif principal de rendre la pratique d'activités physiques ludique pour Tya, 11 ans, que ce soit à domicile ou en salle de sport (APA’MOUV). Il s’agit de proposer des activités adaptées, incluant l'utilisation d'équipements d'entraînement spécialisés. Les dispositifs actuellement disponibles, principalement destinés à la rééducation des adultes, proposent rarement des interactions ludiques pendant l'activité physique.
Description des besoins sous forme de fonctions du produit final dans les sous-sections suivantes.
Développement de Jeux interactifs
- Déclencher des actions lors d’exercices physiques de l’utilisateur:
- Pédalage (utilisation d’un ergocycle)
- Extension du bras
- Ouverture de la main (extension des doigts et du poignet)
- Rotation externe de la main (supination)
- Lever le bras
- Répondre à une variable soit binaire soit analogique issue de divers capteurs
- Permettre l’utilisation du logiciel Scratch pour permettre à des enfants de modifier des jeux existants (personnages, couleurs, musique…) ou de créer de nouveaux jeux.
- Inclure dans l’un des jeux un dauphin, la couleur rouge et s’inspirer de dessins animés japonais pour répondre au souhait de Tya
- Permettre un déploiement sur le PC personnel de Tya (Windows 11) et sur une console dédiée
Capteurs
Autoriser l’utilisation de divers types de capteurs (centrales inertielles, Electromyographie, Capteurs Flex…). Les capteurs devront permettre d’évaluer les mouvements (sans besoin d’une grande précision). L’encombrement, le poids et le mode de fixation des capteurs portés par Tya ne doivent pas perturber la bonne exécution des mouvements et Tya doit pouvoir s’équiper seule.
Portabilité et interface utilisateur physique
- Contenir l’électronique (capteur + batterie + communication)
- Permettre la circulation d’air pour limiter l’échauffement de l’électronique (batterie et antenne wifi)
- Isoler thermiquement et mécaniquement la batterie qui se déforme dans le temps
- Brancher facilement un câble USB micro
- Limiter la torsion sur le connecteur USB
- Avoir accès au bouton reset
- Être démontable pour changer les composants
- Les logiciels développés sous Scratch devront pouvoir être exportés en Python pour une utilisation sur la console.
- Architecture de communication inter-code et sans-fil
Architecture
Analyse de l'existant et liens utiles
- Certaines briques développées dans le projet Fit&Fun seront exploitées.
- Vidéos captées dans la salle APA’Mouv des jeux déjà utilisés
- APA Mouv - ErgoCycle.mp4
- APA - Mouv - Capteur de force.jpg
- VID_20230606_160439.mp4
- VID_20230606_160838.mp4
- APA Mouv - Capteur de force 2.jpg
- APA Mouv - Jeu multijoueurs.mp4
- APA - Mouv Muscu Elastique.mp4
- Intérêt des Quaternions versus angle d’Euler pour la reconstruction d’attitude. Meilleure gestion des singularités cf lien
Matériel
Deux pistes ont été explorées, la première est l’utilisation du logiciel SCRATCH en ligne, la seconde est l’adaptation de la solution Fit&Fun existante avec une version sur console et une version sur PC. Nous souhaitons que les jeux développés sous SCRATCH soient exportables dans la plateforme Fit&Fun pour permettre un développement facile de jeux sous SCRATCH en plus de développements de type Pygame.
Plateforme SCRATCH-MICRO:BIT sur PC
Cette plateforme est décrite en détails ainsi que les procédures d’installation de l’environnement sur PC dans la fiche Fit&FunKids-Scratch&Co
Logiciel SCRATCH + extension micro:bit + installation SCRATCH LINK
L’interface de programmation SCRATCH s'utilise dans un navigateur internet. SCRATCH permet de développer des jeux interactifs de façon simple en utilisant un langage de programmation graphique en blocs. SCRATCH est enseigné en collège ce qui permettra aux plus jeunes de programmer de nouveaux jeux ou de modifier les jeux existants (changement d’avatar, de décor…).
Carte micro:bit BBC V1 ou V2 + alimentation via une pile bouton 3,2V
Micro:bit est une carte électronique programmable créée pour promouvoir l'apprentissage du codage auprès des plus jeunes. La carte embarque des capteurs et actionneurs, dont une centrale inertielle. Une extension permet d’utiliser une carte micro:bit BBC V1 ou V2 sous SCRATCH. La connexion avec la carte micro:bit utilise le bluetooth.
Système de fixation sur la main de Tya
Le module micro:bit et son alimentation se glissent dans des gants ou des bandeaux que nous avons réalisés en néoprène en adaptant des gants de planche à voile. Il est aussi possible d’utiliser une single à velcros.
Assemblage de gants de planche à voile adaptés au capteur micro:bit (couture d’une pièce de néoprène sur le dessus de la main et découpe des 4 doigts pour simplifier l’enfilage)
6 jeux fonctionnels
Ils ont été mis à la disposition de Tya sur un studio SCRATCH auxquels elle accède depuis son PC personnel. Ces jeux permettent à Tya de déclencher des actions de divers personnages en inclinant la carte micro:bit : d’avant en arrière pour travailler l’extension des doigts / poignet / coude / épaule ou de gauche à droite pour travailler la supination. Les jeux proposent des exercices qui nécessitent des répétitions de mouvements ou le maintien de certaines positions. Des explications sont fournies pour chaque jeu. Il n’est pas nécessaire d’avoir un compte utilisateur pour jouer.
Présentation des jeux sous forme de vidéos :
- Installation
- Corde à Sauter
- Attrape Mouette (non disponible)
- Chat et Souris
- Grenouille
- Space dog
Plateforme Fit&Fun sur Console dédiée
Lors du Fabrikarium 2022 à Rennes, le projet Fit & Fun devait rendre un pédalier à main basique plus ludique. Ce dispositif est utilisé dans les salles de sport adaptées (APA’Mouv, ANTS) et les centres dé rééducation fonctionnelle. Une console de jeux ‘rétrogaming’, à base de Raspberry 4, a été réalisée dont le contrôle du jeu est relié à la vitesse du pédalier par l’intermédiaire d’un capteur sans fil MQTT. Siméon en stage a travaillé par la suite du Fabrikarium à l’extension des fonctionnalités et la ‘robustifcation’ de la console. On veut étudier la piste de réutiliser certains composants (capteurs MQTT par exemple) pour ce projet voire d’intégrer les jeux kids sur cette console. |
Utilisation du protocole MQTT
Pour répondre à la demande de Tya, nous avons exploré la possibilité d’utiliser divers capteurs. Pour connecter les capteurs et l’ordinateur de Tya, nous avons utilisé une connexion Wi-Fi et le protocole MQTT. Ce protocole permet à un grand nombre de clients connectés à un même réseau Wi-Fi de communiquer via des messages, envoyés sur un topic spécifique et redistribués à tous les autres clients abonnés à ce topic. Plus de détails sur le fonctionnement de MQTT ici
Pour fonctionner, ce protocole nécessite la présence de 4 éléments :
- Un réseau Wi-Fi partagé
- Des clients souhaitant communiquer
- Un “broker MQTT”, logiciel qui tourne en fond sur une machine connectée au réseau et chargé de la distribution des messages en fonction des abonnements des différents clients
- Des topics en commun
Dans notre cas, nous avons essayé tout d’abord une approche où le broker était hébergé sur l’ordinateur où tournaient les jeux (celui de Tya). Cette solution nous a paru un peu lourde du point de vue de Tya : nous avons voulu simplifier la procédure pour que Tya aie le moins de manipulation possible à exécuter avant de pouvoir jouer.
Nous avons donc choisi une autre solution : embarquer le broker MQTT directement sur la carte responsable de l’envoi des données du capteur (dans notre cas, un ESP32 ou un M5StickC-Plus). Nous sommes même allés plus loin en hébergeant directement le réseau Wi-Fi sur cette même carte. Ainsi, Tya aurait seulement à allumer le capteur (via un interrupteur) et connecter son PC au réseau Wi-Fi hébergé par la carte avant de pouvoir jouer. En fonction du capteur utilisé, la carte associée va envoyer à intervalle régulier un message concernant un topic spécifique sous la forme “fit_and_fun/[nom_du_capteur]”. Le programme Python tournant sur la machine de Tya reçoit ensuite ces données et les interprète pour interagir avec le jeu.
Microcontrôleur ESP32
Le module ESP32 est une plateforme de développement polyvalente largement utilisée dans le domaine de l'Internet des Objets (IdO). Doté d'un processeur puissant, de connectivités Wi-Fi et Bluetooth intégrées, ainsi que de nombreuses broches d'entrées/sorties (E/S) programmables, l'ESP32 offre une grande flexibilité pour la création de projets électroniques. Il est apprécié pour sa facilité d'utilisation, sa compatibilité avec les langages de programmation tels que le langage Arduino, ainsi que pour sa capacité à se connecter à des réseaux sans fil, ce qui en fait un choix privilégié pour les applications de l'IdO et les projets de prototypage rapide. Overview | Adafruit HUZZAH32 - ESP32 Feather. Ce microcontrôleur sera utilisé en Wi-Fi. La batterie est fixée en permanence, car le microcontrôleur permet la charge via l’USB.
Point d’accès et Broker embarqué
Note : dans cette partie le terme contrôleur de jeu définit le ou les capteurs de mouvement permettant d’interagir avec le jeu vidéo. La console de jeu désigne l’appareil sur lequel est lancé le jeu, PC , Tablette…
Le choix d’embarquer le point d’accès wifi ainsi que le service de communication au contrôleur de jeu apporte une facilité de mise en place du système par l’utilisateur. Afin de mettre en place le système, il suffit de se connecter au réseau wifi créé par le contrôleur de jeu, puis de lancer l’application de jeu sur la console.
Ce choix évite des manipulations d’appareillage et de configuration du jeu et offre également une portabilité aisée des applications sur tablette ou d’autre système d’exploitation du fait de la standardisation des capteurs.
Génération du point d’accès wifi
La gestion et la création du point d’accès via la library <WiFi.h>. Elle permet de créer facilement le point d’accès wifi en l’appelant dans la partie setup du code via : WiFi.mode(WIFI_AP);
Choix du broker
Le broker PicoMQTT a été choisi après une phase d’essai/erreur. Il permet de créer un broker MQTT stable sur l’ESP32 et suffisamment rapide pour maintenir la communication. Il a également l’avantage de pouvoir publier est souscrire a un topic par lui-même.
Capteurs testés
Nous avons testé différents capteurs.
Centrale inertielle BNO055 (IMU DIY) : il s’agit d’un module qui permet de mesurer et suivre avec précision mouvement et l'orientation d'un objet dans l'espace tridimensionnel. Doté de capteurs de gyroscope, accéléromètre et magnétomètre, il fournit des mesures précises et stables, permettant de calculer l'angle d'orientation, la vitesse angulaire, l'accélération linéaire et les champs magnétiques. plus d'info
Un boîtier a été réalisé pour accueillir le capteur et le porter avec une sangle tel un bracelet
Centrale inertielle M5StickC : basé sur un ESP32-Pico incluant des interfaces WiFi et Bluetooth combinées à un afficheur LCD 1,14". alimenté par un accu LiPo de 120 mAh et doté d’un connecteur Grove. Il est doté de capteurs: 1 accéléro/gyro MPU6886, 1 micro RTC BM8563, 1 bouton poussoir… plus d'info
Capteur Electromyogramme (EMG) MyoWare : L'électromyogramme (EMG) est la mesure de l’activité musculaire en mesurant les signaux électriques générés par les muscles lorsqu’ils se contractent. Dans le cadre de notre projet, l'objectif est de détecter l'ouverture de la main à travers la contraction des muscles de l’avant-bras. Pour ce faire, nous avons intégré le capteur MyoWare Muscle Sensor Kit, qui permet de capturer les signaux électromyographiques et de les convertir en informations exploitables. Dans le cadre du projet, la version 1.0 du capteur MyoWare Muscle Sensor a été utilisée pour les tests de validation, bien qu'il existe une version plus récente disponible ([ https://www.sparkfun.com/products/21265 MyoWare 2.0 Muscle Sensor - DEV-21265 - SparkFun Electronics]). De plus, l'utilisation de la carte MyoWare Power a été intégrée pour garantir une alimentation fiable et optimale du capteur, assurant ainsi des mesures précises et cohérentes de l'activité musculaire.
Liens utiles pour utiliser la carte MYOWARE POWER:
- MyoWare Muscle Sensor Kit - SparkFun Learn
- lead Muscle / Electromyography Sensor for Microcontroller Applications
Concernant la position et l'orientation des électrodes du capteur musculaire, elles ont un impact significatif sur la qualité du signal mesuré. Il est important de placer les électrodes au centre du groupe musculaire ciblé et de les aligner dans le sens de l'orientation des fibres musculaires.
Plus la contraction est forte, plus le nombre d’unités motrices recrutées est grand et plus la force musculaire gérée est importante et une plus grande activité électrique dans le muscle. MyoWare analyse cette activité électrique et émet un signal analogique qui représente la quantité de contraction. La sortie indicative doit s'activer (LED verte) lorsqu'une contraction est détectée. Voir les étapes ci-dessous pour placer le capteur et mesurer les signaux.
- Nettoyer la surface de la peau
- Fixer les patchs adhésifs aux connecteurs du capteur.
- Placer le capteur sur le muscle souhaité
- Placez l'électrode de référence sur une partie osseuse ou musculaire à proximité du muscle ciblé.
- Connectez l'entrée ADC d'une carte de développement (exemple MS5STICK) pour le traitement du signal.
Commentaires: Connexion MyoWare à M5Stick pour l'acquisition de données EMG. Pour alimenter MyoWare et obtenir des données, trois câbles sont nécessaires (port Grove) : Vout (rouge), GND (noir), G33 (jaune).
Pour effectuer des tests en étant connecté à la plateforme de développement (par exemple, Arduino IDE), il est nécessaire de faire attention au schéma de connexion, comme indiqué ci-dessous.
Test du capteur EMG avec un jeu Fit&Fun en Vidéo
Capteur FLEX : capteur de flexion ou capteur de force flexible qui détecte et mesure le degré de flexion ou de courbure d'un objet physique. Il s'agit d'une fine bande ou d'un module flexible qui modifie sa résistance électrique lorsqu'il est soumis à une flexion ou à une courbure. Ils peuvent être intégrés dans des gants, des exosquelettes et d'autres technologies portables pour capturer et mesurer les mouvements des doigts ou des articulations. Le capteur de flexion est généralement composé d'un matériau substrat avec des pistes conductrices ou des matériaux intégrés. Lorsque le capteur se plie, l'espacement entre les éléments conducteurs change, entraînant une variation de la résistance électrique. Cette variation de résistance est proportionnelle à la quantité de flexion ou de courbure appliquée au capteur. Pour d'autres informations techniques et des exemples, consultez la fiche technique gotronic :
Les capteurs de flexion agissent généralement comme des résistances variables. Une méthode courante pour exploiter la variation de résistance consiste à intégrer le capteur de flexion dans un circuit diviseur de résistance. En connectant le capteur de flexion en série avec une résistance fixe, une tension analogique peut être générée à travers le capteur de flexion en fonction de la tension appliquée au circuit diviseur de résistance. Cette tension peut ensuite être mesurée et utilisée pour un traitement ultérieur ou une interface avec d'autres composants électroniques. Par exemple, la tension de sortie du capteur de flexion peut être convertie en une valeur numérique à l'aide d'un convertisseur analogique numérique, permettant des mesures précises et une intégration avec des systèmes numériques.
Commentaires: Le capteur de flexion dans un circuit diviseur de résistance. Circuit a) uniquement le diviseur de tension qui serait connecté à l'entrée du convertisseur analogique-numérique ; b) diviseur de tension avec le capteur flex associé à un circuit de conditionnement (amplificateur opérationnel dans la configuration non inverseur) pour le réglage du gain et qui serait également relié à l'entrée du convertisseur analogique-numérique. La configuration a a été utilisée dans les expériences et était suffisante pour détecter une main ouverte ou fermée.
Profitant de cette solution simple, le capteur a été utilisé pour détecter l'ouverture ou la fermeture de la main. Pour illustrer son applicabilité dans ce contexte, une simulation tinkercad a été réalisée. La simulation est disponible sur le lien tinkercad
La configuration simple du diviseur de tension a été utilisée.
Test du capteur Flex en vidéo
Outils
Pour la version SCRATCH PC:
- PC sous windows
- carte micro:bit
- Imprimante 3D pour imprimer le boitier capteur
- Pile
Pour la version Console Fit&Fun:
- PC sous Linux
- Dispositif Fit&Fun
Fichiers source
Jeux directement en scratch
Disponible sur le portail scratch
Jeux python convertis depuis scratch
Disponible sur Github Autonabee
Ce code permet de générer des jeux scratch (.sb3) en Python que l’on peut exécuter sur 1 PC (linux/ubuntu, Windows non testé) connecté à des capteurs mqtt. Les jeux sont dans games/:
- Attrape_Mouai_te_by_Tya
- Jeu_de_la grenouille_mode
- Jeu_du_chat_et_de_la_souris_mode
- Space_dog
Le répertoire contient deux sous-projets:
- Le code du micro-controleur mqtt_sensors. On peut configurer le code du microcontroller (struct esp_config cfg) pour choisir le type de données capteurs à renvoyer, si il active un hot-spot wifi et un broker mqtt (un seul capteur dans ce mode si on utilise plusieurs capteurs).
- Le générateur de code python sb3topy qui est un outil qui convertit un projet Scratch 3.0 en Python. Le projet qui est exporté dans un seul fichier sb3, une fois traduit peut être exécuté en utilisant le moteur d’exécution sb3topy et Pygame. Les fichiers Python du moteur d’exécution sont copiés automatiquement lors de la conversion. Le lien est un clone avec des modifications mineures pour corriger un bug. Fit&Fun kids propose une extension au moteur d’exécution sb3topy dont le principe est de faire correspondre une variable (MODE) Scratch/Python avec la valeur du capteur de mouvement envoyé par MQTT. La variable constamment mise à jour par la valeur capteur est alors utilisé dans le jeu.
Plan 3D
TBD
- Boitier capteur : Fichiers STL et FUSION
- Tige doigt pour capteur Flex: A récupérer
Retours utilisateurs
Retour de Tya sur le jeu Attrape Mouette en video
Point à améliorer
A REVOIR
Ancien texte Dans ce contexte, le projet Fit&Fun Kids se présente comme une solution pertinente. En effet, il est essentiel de rendre l'Activité Physique Adaptée (APA) plus attrayante pour les enfants. Pour ce faire, nous envisageons d'intégrer des capteurs permettant aux enfants d'interagir avec des jeux affichés à l'écran. De plus, nous souhaitons développer un système générique qui puisse être utilisé avec différents appareils d'APA équipés de divers types de capteurs. Nous prévoyons également la création d'un catalogue de jeux variés, offrant même la possibilité aux enfants de concevoir leurs propres jeux. L'objectif principal du projet Fit&Fun Kids est de concevoir une architecture logicielle et matérielle modulaire et évolutive. Cette architecture permettra le développement d'une bibliothèque de jeux vidéo utilisables avec différents types de capteurs, tels que les capteurs IMU, EMG, etc. De plus, nous nous engageons à rendre la création de ces jeux vidéo accessible à tous grâce à une programmation par blocs (Scratch). Nous sommes convaincus que ce projet ouvrira de nouvelles perspectives pour les enfants ayant des besoins spécifiques en matière d'activité physique. En rendant ces activités à la fois amusantes et accessibles, nous espérons encourager leur participation et contribuer ainsi à leur bien-être global. En somme, le projet Fit&Fun Kids représente une véritable opportunité d'améliorer la qualité de vie des enfants en situation de handicap en leur offrant une expérience d'activité physique enrichissante et divertissante. Grâce à notre approche innovante, nous espérons stimuler l'engagement des enfants et favoriser leur épanouissement dans le cadre de l'APA.