Projets:Fokus Magic control 2022

De wikilab
Fokus Magic control 2022

Air joystickV2 support doigt ok.jpg

Informations
Description Fokus Magic control est un hackathon de deux jours :joystick et contrôle d'environnement de fauteuil
Catégorie Motricité
Etat d'avancement En cours
Techniques
Durée de fabrication
Coût matériel
Niveau
Licence by-sa
Date de création 2022-06-08
Équipe
Porteur de projet Jonathan
Contributeurs Stan, Sam, Roxane, Christophe, Fred, brice, François, Jérôme
Fabmanager Delphine, Roger
Référent documentation Delphine, Roxane, Brice
Partenaires: INRIA
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

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)

Le design du joystick physique faible pression (suite de Magic joystick 2020) a évolué en 2022 et sa documentation est également plus détaillée : https://wikilab.myhumankit.org/index.php?title=Projets:Magic_joystick_2022

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

Télécharger les STL pour le Air joystick V2 contenant également l'empreinte du capteur à effet de hall MLX90393 qu'il ne faut pas imprimer

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.

Pièce pour le support du doigt en polyuréthane
Assemblage des pièces


  • 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.
Assemblage avec le flexible


  • Fixer le support de fixation du joystick sur le fauteuil avec 4 vis 6 pans creux (BTR) 4mm diamètre , 30mm longueur
Support fixé sur le fauteuil avec embout flexible fixé par vis à l'intérieur avec un petit cône en plastique fourni avec le flexible
Support joystick sur fauteuil vu de face


  • 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

Embout du flexible avec cône dans lequel vient la vis qui se fixe dans le support joystick pour le fauteuil


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"

  • 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.
Modèle 3D de mécanisme de joystick imprimé en un seul block

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.

Jpystick filament flex.jpg

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.

Lecture position du capteur https://gitlab.inria.fr/humanlab-inria/magick_joystick/-/tree/20-lecture-position-capteur

Intégration du capteur sur le Porte hall 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

Image du Porte hall modélisé pour le capteur MLX90333 utilisé dans la première version du joystick
Support hall intégré dans la partie basse du joystick.


Vue d'ensemble du montage avec le joystick connecté à la raspi


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