Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

Joystick à retour d'effort

Envoyé par MDJacques 
Joystick à retour d'effort
mercredi 7 mars 2012 15:03:08
Bonjours à tous.

Je possède un joystick à retour d'effort (SideWinder Force Feedback 2) depuis de nombreuses années. Disons que globalement, le concept est sympathique, mais il y a quelques détails qui me chiffonnent :
1) la présence de zones mortes impossibles à supprimer, car c'est le joystick lui-même qui les gèrent, alors qu'il n'y a pas de ressort de rappel. Du coup, cela crée un manque de précision vers le point milieu.
2) la manette des gaz est codé sur 7 bits, c'est pas beaucoup.

Je me disais qu'il devrait être possible de remplacer complètement l'électronique pour supprimer ces défauts. Pour la gestion des capteurs et des boutons, ce forum plus diverses recherches sur le net, ça va. par contre, il faut 2 PWM pour les moteurs, et les effets sont stockés dans le microcontroleur. Et la, je ne sais plus.
Pour info, je signale la présence d'un capteur (LED infrarouge à l'arrière du manche) qui autorise le retour d'effort.

Quelqu'un a-t-il une piste ?

Re: Joystick à retour d'effort
jeudi 8 mars 2012 18:58:27
Salut,

As-tu un oscilloscope pour voir ce qui se passe concretement au niveau des signaux?

De base pour un projet comme tu as (qui est très intéréssant au passage), le mieux est de commencer par un petit dessin de l'architecture globale: les capteurs, comment ils interferent avec les moteurs,... en simplifié.

Benjamin

.: [www.roboticus.org] :. Control your own world !
Re: Joystick à retour d'effort
lundi 19 mars 2012 15:27:54
Un petit peu de réflexion et je suis de retour,

Premièrement, je ne dispose pas d'un oscilloscope. Je suis totalement débutant en matière de PIC, je potasse en ce moment même les cours de Bigonoff.

J'ai ouvert mon joystick pour voir ce qu'il y a dedans, fait des photos et une petite vidéo qui sont dispos à cet adresse :
[www.mediafire.com]

J'ai aussi fait une petite simulation pour montrer le principe mécanique.

En fait, le concept est simple : il s'agit d'un joystick traditionnel, auquel on a ajouté des moteurs pour appliquer un effort suivant les deux axes principaux, que l'on ressent dans la main, et parfois même très bien d’ailleurs. Donc pas réellement d'interaction entre capteurs et moteurs. L'effort de rappel au centre est un des effets présent dans la mémoire interne du joystick (voir DI View.png)

Voici la liste des composants ce que j'y ai vu :

U1 : MSFTC2000
051700-105FP
V1000
105 0350106 (micro-contrôleur ? )
U2 U5 U6 : LM324 4 ampli op
U3 : LM393 2 ampli op haute précision
U4 : LM339 4 ampli op
U9 : 78L12 régulateur 12 V
IC1 à 4 : 3004 OC4 ( mémoires ? )

J'ai aussi chercher divers trucs :
- dans list of usb id.pdf, 045e Microsoft Corp et 001b SideWinder Force Feedback 2 Joystick, confirmé avec Hid Reader
- j'ai recherché dans HID Descriptor tool (DT) mais je n'ai pas trouvé d'exemple de joystick avec retour d'effort ou quelque chose qui ressemble.

J'ai oublié de signaler que l'axe des Z est codé sur 6 bits (c'est vraiment pas beaucoup).
Re: Joystick à retour d'effort
mardi 20 mars 2012 17:19:51
Salut,

Au vu de la tete de la carte et du matos que tu as à ta disposition, faire du reverse enginering va être compliqué...

Par contre, rien ne t'empeche comme en parles dans ton premier message de refaire toute l'électronique toi même. ça peut être un bel exercice d'ailleurs. Récupérer les effets, n'y pense pas pour le moment.

Quels types de moteurs tu as dedans pour faire le retour de force? (je crois voir que c'est des moteurs à courant continu?) voir comment les alimenter correctement pour déjà donner l'effet retour.

.: [www.roboticus.org] :. Control your own world !
Re: Joystick à retour d'effort
mercredi 4 avril 2012 11:59:58
Hou-la, le temps passe vite.
D’abord, les réponses aux questions.
Le reverse-enginering n'est effectivement pas nécessaire si je refait une carte. De toute façon, si on ne considère pas le processeur et les quatre puces à droite (sans doutes des mémoires mais je ne sais pas lesquelles), le reste, ce sont des ampli OP. Avec une course du joystick de 36° au lieu des 270 d'un potentiomètre, c'est préférable.
Les moteur sont à courant continu, de marque Johnson. J'ai regardé sur leur site, mais je n'ai pas trouvé la référence. Je leur ai écrit pour avoir une équivalence … pas de réponse.
De toute façon, je ne suis pas inquiet la-dessus : je commande les moteurs CC avec un L293 ou autre, on trouve tout ce qu'il faut sur le net. En fait, le vrai problème est le couple disponible sans faire chauffer le moteur. En effet, la plupart du temps, un couple est créé sans rotation réelle du moteur, donc il est en court-circuit. Il s'agit de ne pas trop lui en demander pour éviter qu'il ne grille. Une variable en Eprom pour fixer le plafond et quelques essais en commençant prudemment.
De même, je me demande si je ne refabriquerai pas une mécanique aussi, mais j'y reviendrai.
Pour le retour d'effort, je me suis toujours demandé quelles étaient les instructions qui passent par le port USB. J'ai regardé dans l'API DirectX de Microsoft et il y a des choses intéressantes. Un chapitre est consacré au retour d'effort, j'en ai fait un PDF (http://www.mediafire.com/download.php?v02rxb0m62tddj0). J'ai pas tout lu et j'ai pas tout compris, mais en gros, par défaut, le joystick simule un ressort. Ensuite, le jeu crée ses propres effets et les envoie dans la mémoire interne du joystick, pour pouvoir demander leur exécution au cours du jeu.
Conclusion : je confirme que pour les effets, c'est pas gagné. Je vais quand même regarder dans le monde linux les drivers pour le SideWinder, on ne sait jamais.
Sinon, une recherche de « force feedback diy » m'a permis de trouver des choses intéressantes comme [www.simprojects.nl] .
Ce site parle surtout de simulation de vol. Au niveau de la mécanique, ça peut donner des idées. Leur système est construit avec des courroies crantées, comme j'avais pensé le faire moi aussi, par contre, les moteurs sont balèzes et les démultiplications assez faibles. Je pencherai plutôt pour le contraire. Le SideWinder a des engrenages avec une démultiplication de 1/18, que je pensais remplacer par des courroies pour supprimer le jeu. Mais la partie mécanique ne m'inquiète pas, c'est un peu mon métier.
En bref, il y a encore pas mal d'information à glaner.
A force de chercher, on trouve.
Re: Joystick à retour d'effort
jeudi 5 avril 2012 13:42:24
Salut,

Comme je te comprends, les moteurs jouent clairement le rôle de s'opposer au mouvement et si tu forces dessus tu bloques leur mouvement et dès lors, en effet, le moteur se retrouve en court-circuit. Néanmoins, rien ne t'empeche de mesurer le courant qui passe dans le moteur. Dès que tu vas le faire forcer, le courant va augmenter (jusqu'à sa valeur de court-circuit). Tu peux facilement au travers d'une petite résistance et d'un ampli avoir l'image du courant qui circule dans le moteur pour jouer la protection du système (en théorie, tu n'es pas censé le maintenir bloqué pendant de longue période sans arrêt).

De ce que je comprends également dans ce que tu dis, de base le joystick n'a pas d'effet intégrer et c'est le jeu qui lui envoie la série d'effet utilisable que le joystick enregistre pour y accéder plus rapidement (certainement). Je ne sais pas le rôle de l'eeprom là dedans (sauf peut-être parce que les capacités de mémoire à l'époque était limitée ou couteuse?). La partie la plus difficile risque de rendre compatible ton joystick avec les drivers. et en effet de ce coté tu trouveras certainement pas mal d'information du coté des drivers sous linux.

.: [www.roboticus.org] :. Control your own world !
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter