Différences entre versions de « Projets:Magic Joystick 2020 »

De wikilab
Ligne 28 : Ligne 28 :
  
 
= Réalisation =
 
= Réalisation =
 +
 +
== TL;DR ==
 +
 +
'''((A COMPLETER))'''
 +
 +
==  Schéma général ==
  
 
[[File:schema_global_simple_mardi.png|600px|caption schéma global simplifié]]
 
[[File:schema_global_simple_mardi.png|600px|caption schéma global simplifié]]
Ligne 43 : Ligne 49 :
 
* écran OLED 0.96'' 128x64 pixels
 
* écran OLED 0.96'' 128x64 pixels
 
* convertisseur 12bits analogique/numérique ADS1015
 
* convertisseur 12bits analogique/numérique ADS1015
* Raspberry Pi 3 + carte SD avec système Raspbian 10 «Buster» et driver pour bus CAN
+
* Raspberry Pi 3 + carte SD avec système Raspbian 10 «Buster» et configuration spécifique
 
* carte PiCAN2 pour Raspberry Pi
 
* carte PiCAN2 pour Raspberry Pi
 
* cables de connection R-net
 
* cables de connection R-net
 +
* cable en Y pour capture des trames r-net
  
 
===  Configuration du Raspberry Pi ===
 
===  Configuration du Raspberry Pi ===
Ligne 51 : Ligne 58 :
 
OS : Raspbian 10 «Buster»<br />
 
OS : Raspbian 10 «Buster»<br />
 
Configuration pour utiliser la carte PiCAN2 : https://www.skptechnology.co.uk/pican2-software-installation/
 
Configuration pour utiliser la carte PiCAN2 : https://www.skptechnology.co.uk/pican2-software-installation/
 +
 +
Configuration additionnelle '''((A COMPLETER AVEC L'HISTORY DU RPI))''' 
 +
* Installation python + lib. additionnelles (SSD1306, ADS1015)
 +
* Installation '''candump'''
 +
* Installation des outils du projet (scripts d'analyse r-net, client joystick, serveur r-net)
 +
 +
'''Fournir une image du système sur carte SD ??'''
  
 
== Captation ==
 
== Captation ==
  
Pour le circuit, recherche de méthodes pour configurer la carte MLX90333<br />
+
Un aimant est fixé sur une housse de silicone portée en bout d'index. Le capteur est fixé sur le fauteuil par une tige articulée. Des légers mouvement du doigt, au dessus, sont relevés par le capteur magnétique et transmis au Raspberry Pi.
Pour l'utilisation moulage d'un doigt afin d'y fixer un aimant<br />
+
 
Modélisation des pièces 3D pour fixer le joystick (avec Catia)
+
2 pistes différents sont suivies en parallèle pour la captation du mouvement 
 +
* un joystick magnétique composé uniquement d'un aimant et du capteur à effet Hall MLX90333
 +
* un joystick «traditionnel» à faible force, le joystick dépalce un aimant au dessus du capteur à effet Hall MLX90333
 +
 
 +
=== Joystick magnétique ===
  
=== Moulage ===
+
((CIRCUIT A COMPLETER)))
 +
 
 +
==== Moulage ====
  
 
Afin de créer un contrôleur adapté, moulage du doigt en plusieurs étapes. l'aimant est mixé sur le moulage.
 
Afin de créer un contrôleur adapté, moulage du doigt en plusieurs étapes. l'aimant est mixé sur le moulage.
Ligne 65 : Ligne 85 :
  
 
Pâte RTV 3535 vendue par Rougié &amp; Plé : [https://www.rougier-ple.fr/silicone-en-pate-rtv-3535-300-g.r.html silicone RTV 3535 300G]
 
Pâte RTV 3535 vendue par Rougié &amp; Plé : [https://www.rougier-ple.fr/silicone-en-pate-rtv-3535-300-g.r.html silicone RTV 3535 300G]
 +
 +
[[File:moulage_complet.jpg|900px|caption 6 étapes pour le moulage du doigt]]
 +
 +
Le joystick magnétique est fixé sur le fauteuil, sous la main gauche. Le «dé à coudre» qui intègre l'aimant est enfilé sur l'index, au-dessus du capteur.<br />
 +
 +
[[File:fixation_joystick_magnetique.jpg|600px|fixation du joystick magnétique]]
 +
 +
=== Joystick faible force ===
 +
 +
Prototype modifié :
 +
 +
[[File:joystick_faible_force.jpg|600px|caption joystick faible force]]
 +
 +
'''((AJOUTER FICHIERS .STEP + .STL))'''
  
 
== Communication ==
 
== Communication ==

Version du 21 octobre 2020 à 23:53

Description du projet

Réaliser un joystick à faible force, qui puisse être manipulé avec une mobilité très réduite et interfacé avec un fauteuil électrique.

Génèse du projet

Ce projet a démarré au Fabrikarium 2019, organisé avec ArianeGroup sur le site des Mureaux. Cette première étape a permis de développer des premiers prototypes de joystick à faible force et de mettre au point la communication avec le fauteuil par le protocole R-net. A la fin de ce premier fabrikarium, une manette xbox était reliée au système du fauteuil, avec succès!

État technique

Le joystick à faible force existe sous forme de prototype fonctionnel, mais il va être amélioré dans cette deuxième étape.
L'interface CAN/R-net a été testée avec une matériel industriel, il reste à la faire fonctionner sur une carte raspberry pi.

Documentation de l'étape précédente sur le wiki :

Cahier des charges

Améliorer le fonctionnement du joystick, en particulier de la rotule et de la détection.
Mettre au point la communication SPI entre le capteur angulaire et la carte Raspberry Pi.
Traitement des données et calibration.
Mettre au point la communication avec le fauteuil par R-net en utilisant une carte PiCAN2.
Fusionner les 2 fonctions pour qu'elles soient utilisables sur la même carte Raspberry Pi.
Chercher une solution permettant l'alimentation électrique de l'ensemble.

Réalisation

TL;DR

((A COMPLETER))

 Schéma général

caption schéma global simplifié

(schéma du mardi 21 oct, 10h)

Matériel nécessaire

imprimante 3D

  • pièces en impression 3D
  • (rotules en métal à faible frottement)
  • aimants néodyme 3x3mm
  • capteur de positionnement MLX90333
  • écran OLED 0.96 128x64 pixels
  • convertisseur 12bits analogique/numérique ADS1015
  • Raspberry Pi 3 + carte SD avec système Raspbian 10 «Buster» et configuration spécifique
  • carte PiCAN2 pour Raspberry Pi
  • cables de connection R-net
  • cable en Y pour capture des trames r-net

 Configuration du Raspberry Pi

OS : Raspbian 10 «Buster»
Configuration pour utiliser la carte PiCAN2 : https://www.skptechnology.co.uk/pican2-software-installation/

Configuration additionnelle ((A COMPLETER AVEC L'HISTORY DU RPI))

  • Installation python + lib. additionnelles (SSD1306, ADS1015)
  • Installation candump
  • Installation des outils du projet (scripts d'analyse r-net, client joystick, serveur r-net)

Fournir une image du système sur carte SD ??

Captation

Un aimant est fixé sur une housse de silicone portée en bout d'index. Le capteur est fixé sur le fauteuil par une tige articulée. Des légers mouvement du doigt, au dessus, sont relevés par le capteur magnétique et transmis au Raspberry Pi.

2 pistes différents sont suivies en parallèle pour la captation du mouvement

  • un joystick magnétique composé uniquement d'un aimant et du capteur à effet Hall MLX90333
  • un joystick «traditionnel» à faible force, le joystick dépalce un aimant au dessus du capteur à effet Hall MLX90333

Joystick magnétique

((CIRCUIT A COMPLETER)))

Moulage

Afin de créer un contrôleur adapté, moulage du doigt en plusieurs étapes. l'aimant est mixé sur le moulage.

La pâte utilisée pour le moulage est de type bi-composant, elle est travaillée directement sur le doigt et sèche en 5 minutes environ.

Pâte RTV 3535 vendue par Rougié & Plé : silicone RTV 3535 300G

caption 6 étapes pour le moulage du doigt

Le joystick magnétique est fixé sur le fauteuil, sous la main gauche. Le «dé à coudre» qui intègre l'aimant est enfilé sur l'index, au-dessus du capteur.

fixation du joystick magnétique

Joystick faible force

Prototype modifié :

caption joystick faible force

((AJOUTER FICHIERS .STEP + .STL))

Communication

Premiers tests avec un système Raspberry Pi + PiCAN2

caption brochage du connecteur R-net

Composants utilisés

Capteur de positionnement MLX90333

caption capteur de positionnement MLX90333

datasheet du capteur angulaire MLX90333

Module équipé d'un circuit intégré MLX90333 de Melexis, avec la capacité de capter la position 3D d'un aimant (effet Hall). Ce circuit peut communiquer de différentes manières : analogique, PWM ou série SPI. Sur cette carte, il est configuré par défaut pour une double sortie analogique, et donne les valeurs x et y. Recherches en cours pour changer de mode et récupéer les données x,y,z!

caption valeurs mesurées par le capteur MLX90333

carte PiCAN2

caption carte PiCAN2

Carte additionnelle pour Raspberry Pi, fabriquée par SK Pang Electronics permettant de mettre en oeuvre un bus CAN (nécessite l'installation d'un driver sur le système du Raspberry Pi).

Documentation de la carte PiCAN2 (à télécharger sur le site de SK Pang Electronics)

écran OLED 0.96" avec contrôleur SSD1306

caption écran OLED

Module d'écran noir et blanc 128x64 pixels avec communication par I2C

datasheet du contrôleur SSD1306
tutoriel d'utilisation avec Raspberry Pi

convertisseur analogique-numérique 12bits ADS1015

convertisseur analogique-numérique 12bits ADS1015

Convertisseur analogique numérique à 4 entrées avec communication par I2C

datasheet du composant ADS1015
tutoriel d'utilisation avec Raspberry Pi

Annexe - lexique

CAN (Controller Area Network) : Bus de communication série utilisé en électronique, particulièrement dans l'industrie automobile. Il fonctionne sur le principe du multiplexage ou chaque équipement connecté communique avec tous les autres. https://fr.wikipedia.org/wiki/Bus_de_donn%C3%A9es_CAN

Effet Hall : https://fr.wikipedia.org/wiki/Effet_Hall

ISM (Intelligent Seating/lighting Module) : (module électronique d'un fauteuil) assise «intelligente» et éclairage.

JSM (Joystick Module) (module électronique d'un fauteuil) joystick d'assistance à l'arrière du fauteuil, prioritaire sur le contrôle du déplacement.

PM (Power Module) : (module électronique d'un fauteuil) bloc moteur, module d’alimentation (unité de commande)

R-net : Le protocole R-net définit des commandes qui passent sur un bus CAN. Il a été mis au point en 2011 par PGDT (PG Drives Technology) pour le contrôle des fauteuils électriques. Il s'agit d'un protocole propriétaire, en 2016 des informations sur ce protocole ont été trouvées par Stephen Chavez par ingénierie inverse pour le projet https://github.com/redragonx/can2RNET.

SPI (Serial Peripheral Interface) : Bus de communication série utilisé en électronique. «Les circuits communiquent selon un schéma maître-esclave, où le maître contrôle la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée « Slave Select (SS) ». https://fr.wikipedia.org/wiki/Serial_Peripheral_Interface