Différences entre versions de « Projets:Fit and Fun Kids »
(→Outils) |
(→Coût) |
||
Ligne 245 : | Ligne 245 : | ||
* PC sous Linux | * PC sous Linux | ||
* Dispositif Fit&Fun | * Dispositif Fit&Fun | ||
− | |||
− | |||
==Fichiers source== | ==Fichiers source== |
Version du 16 juillet 2023 à 20:59
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 | scratch, micro-bit |
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 | ChristineAzevedo, Cecilepacoret, Maxime, Siméon Getti, Virginie Ceccarelli, Gaelle Thibaudat, Rémy Devos, Guillaume Colin, Judith Maurin, Tanguy Dréan, Pissard |
Animateur | Sijobert |
Fabmanager | Sijobert |
Référent documentation | Tiago Coelho |
Partenaires: | Humanlab Autonabee, Humanlab INRIA"Humanlab INRIA" n’est pas dans la liste (le collège des Hautes Ourmes (Rennes), le collège des Chalais (Rennes), l’Institut Médico Educatif PREFAAS (Rennes), le collège Bellevue (Redon), l’Institut d’Education Motrice La Clarté (Redon), le collège Mahatma Gandhi (Fougères), l’Institut d’Education Sensoriel Paul Cézanne (Fougères), le collège Du Querpon (Maure-de-Bretagne), l’Institut Médico Éducatif Les enfants du pays (Poligné), Lab4i, ...) de valeurs autorisées pour la propriété "A partenaires". |
Nom humanlab | Humanlab_SP |
Documentation | |
Statut de la documentation | Partielle |
Relecture de la documentation | Non vérifiée |
Description du projet
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
TDB photo à intégrer
Cette plateforme est décrite en détails ainsi que les procédures d’installation de l’environnement sur PC dans le document [LINK 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)
TDB insertion photo gants
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.
TBD insertion photo studio et des films
Présentation des jeux sous forme de vidéos :
- Installation
- Corde à Sauter
- Attrape Mouette
- 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.
TBD Ajouter l’image du dispositif + film (récup sur PC de Siméon)->ROGER
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.
Schéma d'architecture : TBD insérer schéma
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
TBD insertion film Animation boîtier.mp4
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 (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 3-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.
Figure x - 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. 1) Nettoyer la surface de la peau 2) Fixer les patchs adhésifs aux connecteurs du capteur. 3) Placer le capteur sur le muscle souhaité 4) Placez l'électrode de référence sur une partie osseuse ou musculaire à proximité du muscle ciblé. 5) Connectez l'entrée ADC d'une carte de développement (exemple MS5STICK) pour le traitement du signal.
Figure x - 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.
Figure x - Schéma de connexion à la plateforme de développement. Dans l’image, l’Arduino illustre l’autre système informatique utilisé
Vidéo de test du capteur avec un jeu Fit&Fun : https://drive.google.com/file/d/1gFXCSU-u7OXf7zFS6elBnkpH-EOZ6Z-c/view?usp=drive_link
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 d'un modèle à l'adresse : https://www.gotronic.fr/pj2-fiche-technique-capteur-de-flexion-2093.pdf
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 (Figure x).
Figure x - 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 : https://www.tinkercad.com/things/1cNeFTw3pid
Figure x - Capteur non fléchi pour indiquer une main ouverte. La configuration simple du diviseur de tension a été utilisée.
Figure x - Capteur fléchi pour indiquer une main fermée. La configuration simple du diviseur de tension a été utilisée.
Intégration du capteur FLEX dans un tube en néoprène associé à une pièce imprimée en 3D.
Vidéos de test du capteur https://drive.google.com/file/d/1ekCK_oaYbLvkIv_UD86L7IvguFW57F9q/view?usp=drive_link
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