Utilisation d'un capteur à effet hall 3D pour un joystick

Utilisation d'un capteur à effet hall 3D pour un joystick - Robotique et modélisme - Electronique, domotique, DIY

Marsh Posté le 07-04-2018 à 18:25:28    

Bonjour,
 
Pour commencer, autant dire tout de suite que je suis nouveau dans le domaine de la programmation et de l'électronique. Mon bilan de compétences s'arrête à U=R*I. Après c'est plus flou dans ma tête, même si certaines notions pourront éventuellement me mettre le ravioli en ébullition...  
 
Concernant mon projet complet, il s'agit de réaliser une manette de jeu type H.O.T.A.S (Hands On Throttle And Stick) à moindre coût (ça reste à vérifier, mais ce sera au moins un investissement étalé). Je dis mon projet, mais je suis assisté par mon frère et 2 potes à nous (mais comme nous n'habitons pas dans la même ville ce n'est pas toujours simple de se concerter...).
Le projet est à peine commencé pour ainsi dire. Nous avons choisi de commencer par le joystick (qui nous semblait être la principale difficulté du projet). Pour ce faire, nous avons choisi d'aller chercher des idées et des sources sur internet (les russes semblent d'ailleurs assez créatifs dans ce domaine) et la partie mécanique semble se profiler petit à petit.
 
Pour faire l'interface entre les capteurs et boutons qui composent la manette et l'ordinateur, nous avons choisi un arduino leonardo (qui a la particularité de pouvoir se brancher comme un périphérique d'ordinateur).
 
Quel rapport avec mon titre me direz-vous? J'y viens !
Pour mesurer les rotations de notre joystik autour des axes X, Y et Z (pour éviter le palonnier nous souhaitons avoir cet axe sur le joystick) nous avons eu 2 idées : Des potentiomètres ou un capteur à effet hall 3D.
 
Cette seconde option semble de plus en plus utilisée dans le domaine des contrôleurs de type joystick (C'est le cas notamment du Thrustmaster Warthog (http://www.thrustmaster.com/fr_FR/ [...] as-warthog), la référence actuelle du H.O.T.A.S), donc nous avions envie d'en savoir un peu plus.
En recherchant dans cette direction, nous avons trouvé un américain qui s'est lancé dans un projet de joystick open source (http://openjoystick.tumblr.com) qui utilise un capteur à effet hall 3D de la marque Melexis.
 
Après quelque recherches sur le site de melexis, j'ai trouvé mon bonheur. Le MLX90393 (https://www.melexis.com/en/product/ [...] gnetometer), qui répondrait à toutes mes exigences. Mais voilà que 3 questions se posent :
 
1. Ce capteur peut-il être librement utilisé avec une plateforme arduino ou faut-il passer par une interface particulière ? (désolé si cette question semble bête, mais c'est le novice qui parle. De plus, ce qui m'a posé question ce sont les post présents sur le site du projet de joystick open source)
 
2. Quelle est la position idéale du capteur pour les mesures ? Sur les modèles d'application, un schéma (oui, c'est assez subtil comme info) situe le capteur au croisement des axes de rotation X, Y et Z. Ailleur sur le net (malheureusement, je ne sais plus où), j'ai vu un schéma (encore assez subtil) plaçant le capteur en-dessous des axes). Est-ce important ou bien la programmation permettra-t-elle de pallier à ce genre de problème?
 
3. Comment bien choisir l'aimant qui permettra au capteur de mesurer la rotation de mon joystick? J'avoue que je me perd avec toutes les unités utilisées (si le Tesla semble être l'unité de référence, les fabricants semblent utiliser le Kg, d'autres le Gauss,...). D'après ce que j'ai lu sur le datasheet du capteur, le début de la saturation magnétique se fait à 50mT... Est-ce qu'il faut que je choisisse un aimant qui, à environ 5mm du capteur aie une puissance magnétique d'environ 50mT ?
 
Merci d'avoir pris le temps de tout lire (parce que c'est un peu long, j'avoue), et d'avance merci pour vos retours.

Reply

Marsh Posté le 07-04-2018 à 18:25:28   

Reply

Marsh Posté le 07-04-2018 à 18:39:03    

sora38 a écrit :

1. Ce capteur peut-il être librement utilisé avec une plateforme arduino ou faut-il passer par une interface particulière ? (désolé si cette question semble bête, mais c'est le novice qui parle. De plus, ce qui m'a posé question ce sont les post présents sur le site du projet de joystick open source)

Le machin parle du I2C ou du SPI, les deux très faciles à mettre en oeuvre (enfin relativement) et présents sur un Arduino, mais il faudra un circuit d'adapation de niveau (tension) à moins de faire fonctionner l'Arduino en 3,3V (J'ai pas vérifié pour le modèle indiqué). D'après la doc Digital IO Supply c'est max Vdd et Vdd c'est max 3,6V donc sur du 3,3V ça devrait passer. Si l'Arduino c'est du 5V faudra prévoir de quoi adapter les niveaux.
 
Par contre vous êtes sûr de pouvoir souder ce composant? Il est minuscule!

Reply

Marsh Posté le 08-04-2018 à 00:05:19    

Bonsoir, et merci pour votre réponse.  :jap:  
 

rat de combat a écrit :

Le machin parle du I2C ou du SPI, les deux très faciles à mettre en oeuvre (enfin relativement) et présents sur un Arduino, [...]


Effectivement, il semble pouvoir communiquer avec un arduino. Voilà qui pourrait me faciliter la tâche !  :)  
 

rat de combat a écrit :

[...], mais il faudra un circuit d'adapation de niveau (tension) à moins de faire fonctionner l'Arduino en 3,3V (J'ai pas vérifié pour le modèle indiqué). D'après la doc Digital IO Supply c'est max Vdd et Vdd c'est max 3,6V donc sur du 3,3V ça devrait passer. Si l'Arduino c'est du 5V faudra prévoir de quoi adapter les niveaux.


Concernant les tensions, la doc arduino indique "3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA". Si je comprends bien, l'arduino sera alimenté en 5V (qu'il soit alimenté par une alim externe ou par USB), mais il aurait déjà un circuit qui réduirait cette tension à 3,3V? (source : https://store.arduino.cc/arduino-leonardo-with-headers, volet documentation)
 

rat de combat a écrit :

Par contre vous êtes sûr de pouvoir souder ce composant? Il est minuscule!


Je suis persuadé que je ne pourrais effectivement rien en faire, mais mon ami chinois l'a fait pour moi : https://fr.aliexpress.com/premium/m [...] =y&catId=0  :jap:  
 
Encore merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed