Projets:Fokus Magic control 2022
Description du projet
Fokus Magic control est un hackathon de deux jours dédié à la poursuite du projet Magic Control commencé lors du Fabrikarium en 2021, qui était lui-même la suite du projet Magic joystick de 2020
Il englobe 3 ensembles principaux:
- un joystick DIY faible pression qui s'adapte à une faible force et des débattements de très faible amplitude
- un contrôle d'environnement basé sur raspberry pi permettant de communiquer avec le fauteuil avec le protocole RNET dans lequel on peut naviguer via une interface web
- le reverse des trames RNET qui permettent de contrôler l'environnement (le fauteuil, et la domotique)
Cahier des charges
Air joystick v2
L'objectif est d'avoir un joystick simple à fabriquer et qui nécessite très peu de force.
Dans la première version de 2021, l'aimant collé au bout du doigt se déplaçait en l'air au dessus du capteur à effet de hall. Trouver la position zéro et les limites des axes X et Y, était difficile puisque sans repère.
Dans cette nouvelle version, il a été décidé de modéliser une pièce légèrement incurvée sur laquelle l'aimant collé au bout du doigt va glisser et au dessous- de laquelle le capteur à effet de hall est positionné. On a ainsi plus de facilité à savoir où se trouve le zéro et les limites (X,Y) de détection du joystick.
Contrôle d'environnement
- Implémenter le contrôle des vérins du fauteuil, les lumières, clignotants et klaxons
- Définir la méthode qui sera développée pour la configuration des fauteuils JSM-raspi avec le contrôle d'environnement
Interface appli web
- Intégrer les différents contrôles d'environnement dans l'interface web
Code
- Implémenter la librairie qui permet de recevoir les données du capteur à effet de hall directement en valeurs numériques en supprimant l'ADC précédemment utilisé.
Intégration hardware sur le fauteuil
- Modéliser un boitier pour la raspi pour l'attacher sur le fauteuil
Emulation souris + briques bluetooth , IR
- Implémenter le bluetooth sur raspi 4 pour émuler la souris avec le joyctick
- Implémenter les fonctionalités bluetooth +IR pour contrôler la domotique depuis le contrôle d'environnement
Analyse de l'existant
Equipe (Porteur de projet et contributeurs)
- Porteurs du projet : Jonathan
- Concepteurs/contributeurs : Stan , Sam ; (modélisation coque dessous+réceptacle doigt), Eric (implémentation librairie pour supprimer l'ADC (convertisseur analogique numérique), Roxane et Christophe (implémentation bluetooth sur raspi 4 pour émulation souris avec le joystick pour naviguer dans le contrôle d'environnement), Fred Brice et François (reverse trames RNET)
- Animateur (coordinateur du projet), Jérôme (modélisation boitier pour raspi sur fauteuil)
- Fabmanager référent :Delphine, Roger
- Responsable de documentation :Delphine
Air joystick v2
Matériel nécessaire pour le Air joystick
- un capteur MLX90393 qui permette une récupération des axes x,y,z, voir par exemple chez adafruit https://www.adafruit.com/product/4022 (le modèle 3d du support joystick correpond à la ref d'adafruit)
- un aimant de 3 mm de diamètre
- un cable blindé avec 5 fils
- modèles 3D pour air joystick : coque dessous, réceptacle doigt
- Flexible pour accrocher le support joystick au fauteuil : https://www.otelo.fr/flexibles-arrosage-petit-debit-14-635-mm/otmt-14020a-72010613/SF-ID-00090401/ref-23730.html
- 4 vis 6 pans creux (BTR) 4mm diamètre , 30mm longueur pour le support sur fauteuil
- 2 inserts pour support doigt si fabriqué en polyuréthane
- 1 vis BTR tête arrondie, 4-18mm pour l'embout flexible du support fauteuil qui intègre aussi un mini cône
Outils nécessaires pour le Air joystick
- imprimante 3D
- CNC ou imprimante pour le socle du doigt (fichier STL "partie supérieure")
- petites vis en plastique ou laiton
Coût
Fichiers source
Le fichier "Partie supérieure" a été usiné à la CNC en polyuréthane mais peut aussi être imprimé.
Télécharger le fichier de l'attache du joystick au fauteuil
Etapes de fabrication pas à pas
Assemblage pièces imprimées
- Imprimer les STL
- Si usinée à la CNC en polyuréthane , ajouter des inserts (pour vis de 2mm de diamètre) pour le support doigt
- Les assembler de manière à mettre le support doigt au-dessus, le capteur à effet de hall dessous, puis la partie inférieure.
Nous avons usiné avec une CNC, la pièce supérieure du support du doigt en polyuréthane, mais cela peut aussi s'imprimer en PLA.
- Ajouter les deux vis (non magnétiques: laiton, plastique) de part et d'autre afin de maintenir l'ensemble. (AJOUTER LA REF DES VIS)
- Visser la partie mâle du flexible (pièce orange) dans la partie inférieure afin ensuite d'ajouter les éléments de flexible à la longueur adéquate pour maintenir le joystick sous la main.
- Fixer le support de fixation du joystick sur le fauteuil avec 4 vis 6 pans creux (BTR) 4mm diamètre , 30mm longueur
- L'embout du flexible vient se fixer sur le support de fixation du fauteuil.
Avec 1 vis BTR tête arrondie, 4-18mm pour l'embout flexible du support fauteuil qui intègre aussi un mini cône
Reste à faire
- Un "dé à coudre" à mettre sur le doigt dans lequel est intégré l'aimant en s'inspirant de la version initiale du Air joystic dans le projet Magic joystick 2020 fabriquée en silicone
- Tester cet asssemblage avec le capteur
- Remapper les valeurs pour qu'elle soient adaptées à l'amplitude de mouvement de l'usager (Jonathan).
- Vérifier que le centre du support du doigt est bien au dessus du zéro du capteur.
Autres pistes à explorer pour le le "Air joystick"
- Sam: Utilisation d'un leap motion (https://www.ultraleap.com/product/leap-motion-controller/) pour traquer le mouvement des doigts. Attention à la luminosité, il faudrait mettre un cache au dessus de la main pour ne pas perturber la capture du mouvement.
- Stan : Proposition d'un modèle 3D qui s'imprime en une seule pièce (Télécharger le STEP et STL): testé ici en impression PLA mais pas assez solide.
Suggestions de Stan pour qu'il soit plus résistant : d’autres techniques d’impression (SLA, PolyJet, DLP ou MJF) permettrait de réduire l’épaisseur des resorts et garantissent un meilleur lien entre les couches.
La pièce pourrait être fonctionnelle en l'imprimant sur une Formlabs ou en la commandant chez un prestataire pro (Xometry, Shapeways etc.).
Pour augmenter la durabilité il sera peut être nécessaire d’ajouter un étage de plus par axe (2 cadres de plus).
- Stan : utiliser une combinaison des pieces indus et d’impression donnera des résultats bien meilleurs.
Notamment, le palier avec un ressort (https://www.igus.fr/product/388?artNr=KGLM-02) semblent une piste très prometteuse.
Réponse de Christian qui avait essayé (avec un autre modèle). Il avait rencontré le problème de la remise à zéro. Il avait mis un aimant sous le capteur à effet de hall qui venait attirer la tige du joystick au bout duquel se trouve l'aimant. Mais, à cause la force électromagnétique entre les deux aimants, cela faisait pression sur la rotule et avait un effet de frottement et du coup la tige ne revenait jamais au même point zéro...
- Eric: proposition de faire un joystick avec du filament flexible qui permettrait un retour à zéro sans aimant et qui est super solide même avec 1mm d'épaisseur a priori.
Code :implémentation de la librairie pour recevoir directement les valeurs numériques du capteur MLX90393 sur la raspi
Pendant le hackathon Éric a effectué les tests avec le Magic joystick 2022 car le Air joystick était en cours de création.
Connecter les câbles du capteur à effet de hall en I2C à la raspberry pi.
AJOUTER LE SCHEMA ÉLECTRONIQUE ET LE CODE DE DÉMO D'UTILISATION DU CAPTEUR UTILISÉ POUR FAIRE LES TESTS.
AJOUTER LE CODE ET LE SCHEMA MIS A JOUR IMPLÉMENTÉ DANS MAGIC CONTROL
La plaque de support du capteur "Porte-hall" du projet Magic joystick 2022 a été modélisée pour le capteur à effet de hall MLX90333, or ici nous utilisons le capteur MLX90393. Les trous ne sont donc pas adaptés au nouveau capteur. Des trous ont été refaits mais sans mesure précise pour centrer l'aimant au dessus du capteur. Il faut donc remodéliser la pièce pour que l'aimant se retrouve précisément au-dessus du zéro du capteur.
Télécharger le STL Porte_Hall pour le capteur MLX90333 utilisé dans la première version du joystick
AJOUTER LE NOUVEAU STL du porte-all pour MLX90393 et son image quand il sera modélisé
Explications d'Eric :
Le nouveau capteur utilisé, le MLX90393 dans son mode de réglage initial est en mode beaucoup trop sensible. Les convertisseurs analogiques numériques internes travaillent sur 19 bits et par défaut ils renvoient les 16 bits de poids faible. Du coup si on remonte sur des valeurs plus grandes, les valeurs changent de signe et ne sont pas exploitables
Pour résoudre ce problème, il y a une option de résolution à régler. C'est de remonter la valeur des 16 bits les plus forts donc on perd en résolution sur des petits mouvements par contre on gagne en amplitude.. Il faut aussi réduire le gain à 1 ce qui fait qu'on a des valeurs qui bougent dans des plages raisonnables et qui sont pas binaires mais en tout cas croissantes ou décroissantes.
C'est la résolution qui posait souci. La résolution par défaut est fixée sur la plus haute résolution, qui permet de recevoir l'information de micro mouvements mais ce qui nous intéresse ce n'est pas ça, c'est d'avoir la plage maximum de débattement donc obtenir vraiment les valeurs les plus grandes. L'aimant doit cependant être bien centré par rapport au capteur.
Là on obtient les plages de valeurs suivantes :
- en y : -2500 ; 2000
- en x : -3000 ; +1600
On ne peut pas refaire ce centrage totalement au niveau soft car on sort des plages de sensibilité du capteur. L'idée c'est quand même de le centrer au niveau mécanique. Après il y a un offset qui est fait pour les petits décalages au niveau soft, mais au moins les amplitudes d'un côté et de l'autre doivent être à peu près équivalentes avec le centrage de l'aimant au dessus du capteur au niveau mécanique.
Contrôle d'environnement
- AJOUTER LE LIEN VERS LE REPO GITHUB
- DÉCRIRE LA MÉTHODE qui sera développée pour la configuration des fauteuils JSM-raspi avec le contrôle d'environnement
Reste à faire
- récupération trames + appli web contrôle fauteuil:
- Niveau de batterie
- Vitesse en km/h
- Nombre de km parcourus
- Modes de conduite: 5 pré-réglages de vitesse (qui comprennent environ 20 sous réglages :vitesse avant, vitesse recul, vitesse rotation, etc.. 20 réglages ). Jonathan AJOUTER ICI le détail
Interface application web
AJOUTER LE LIEN VERS LE REPO GITHUB +Images de l'interface avec les nouvelles fonctionalités (vérins, lumières, klaxon, clignotants)
Reste à faire
- design icones et intégration appli web contrôle fauteuil:
- Niveau de batterie
- Vitesse en km/h
- Nombre de km parcourus
- Modes de conduite: 5 pré-réglages de vitesse (qui comprennent environ 20 sous réglages :vitesse avant, vitesse recul, vitesse rotation, etc.. 20 réglages ). Jonathan AJOUTER ICI le détail
Émulation de la souris avec le joystick (contrôle d'environnement) + plusieurs briques :IR, bluetooth
AJOUTER LE LIEN VERS LE REPO GITHUB. Dans l'idéal avoir le code de démo et celui implémenté dans le code global du Magic control.
Intégration hard (raspi) sur le fauteuil
Modélisation du boitier
AJOUTER les fichiers STEP +STL +une photo du boitier sur le fauteuil