Projets:JimStick
Description du projet
Le but de ce système est de rendre possible la commande d’un ordinateur a une personne ne pouvant pas utiliser ses mains. Pour cela nous réalisons un système qui sera considéré par l’ordinateur comme une souris et qui est composé de trois parties :
• une boîte contenant quatre boutons, • un joystick, • une boîte contenant un microcontrôleur.
Cahier des charges
Les besoins identifiés pour ce projet sont :
- Utilisation d'un ordinateur ou un smartphone sans souris
- Système facilement transportable
- Système modulable
L'architecture choisie afin de satisfaire ces besoins a été l’utilisation d’un joystick afin de contrôler le déplacement de la souris, ainsi que 4 boutons dont la fonction est :
- un appui sur le bouton gauche en mode clic génère un clic gauche souris, voir plus loin dans le mode appuyer
- un appui sur le bouton droit, idem précédemment mais pour la version droite.
- un appui sur le bouton molette, bascule du mode déplacement souris en mode molette.
- un appui sur le bouton appuyer, active le mode appuyé/relâché
Cet ensemble est fixé devant un écran dans « un support type Tableau magnétique», avec sur le côté gauche une boîte composé de quatre boutons lumineux, puis sur le côté droit un joystick muni d’un manche adapté (U). Et enfin pour connecté ces deux éléments (les boutons et le joystick) au milieu la boîte avec le microcontrôleur, elle même connecté à l’ordinateur.
Analyse de l'existant
https://handicat.com/at-num-28697.html
[[1]]
Equipe (Porteur de projet et contributeurs)
- Porteurs du projet : Amaury
- Concepteurs/contributeurs : David Z, Thibaut
- Fabmanager référent : Yohann
Matériel nécessaire
- Arduino Micro
- Boutons arcade
- 6 Connecteurs jack
Outils nécessaires
Coût
Délai estimé
Fichiers source
Etapes de fabrication pas à pas
Boutons de commande
Il faut réaliser 4 boutons de commande afin de réaliser toutes les fonctions d’une souris Chaque bouton sert pour effectuer une action. Les deux boutons ‘gauche’ et ‘droit’ permettent de simuler un appui souris. Le troisième permet d’utiliser l’axe y du joystick pour simuler la molette. Le quatrième permet enclencher le mode appuyer/relâcher pour simuler un appui long
Les boutons choisis sont des boutons d'arcade équipés d’une diode lumineuse et d’un interrupteur. La diode est branché en série avec une résistance (220Ω). Ces boutons sont reliés à 4 connecteurs 3,5 mm et ces connecteurs se trouve sur le coté droit de la boîte, positionné de façon à ne pas gêner les boutons.
Les boutons choisis sont des boutons d’arcade possédant une LED à l’intérieur. Chacun des 4 boutons doit être soudé à un connecteur jack. Les deux masses doivent être reliées au S, La sortie LED 5V doit être soudé à une résistance 220Ω puis au T du jack. Enfin le contact sec doit être relié au R. Le montage à réaliser est le suivant :
Les boitiers des boutons sont modélisés en 3D, voici quelques exemples de boitiers possibles : File:box_boutons.zip
Le joystick
Le joystick est muni d’un manche adapté (U), les deux potentiomètres (axe X et Y) sont relié à deux connecteurs 3,5 mm.
Jack axe: pointe = en série avec une résistance puis connecté au plus. milieu = la valeur est fonction de la position base = masse
L’axe X est branché sur l’entrée A0. L’axe Y est branché sur l’entrée A1.
Le boitier du joystick est modélisé en 3D, voici un exemple de boitier possible : File:box_joystick.zip
Le déplacement du joystick est découpé en trois zones. Dans la zone du milieu même si les valeurs mesurées du joystick change dans une certaine limite, la souris elle ne se déplace pas. Dans les zones de chaque cotés, la position de la souris évolue (ex:512+100>1..5).
Microcontrôleur
La boîte contient un microcontrôleur permettant de simuler une souris ainsi qu’un buzzer, elle est relié à l’ordinateur via un câble USB. (@fr ajouter une potentiomètre permettant d’ajuster de déplacement)
// parameters for reading the joystick: const int center = 1024 / 2; // resting position value const int threshold_min = center-50; // min resting threshold const int threshold_max = center+50; // max resting threshold
if ((axisPosition > threshold_min)&&(axisPosition < threshold_max)) { ret = 0; } else if (axisPosition>threshold_max) { ret = (axisPosition-threshold_max)/10; } else if (axisPosition<threshold_min) { ret = -(threshold_min-axisPosition)/10; }
Ces deux éléments sont connecté via 6 (4+2) connecteurs (jack 3,5 mm, 3 fils) à une carte (Arduino micro) qui est elle même connecté via un câble USB type a mâle à un port USB de l’ordinateur.
Cas d’utilisation :
- un appui sur le bouton gauche en mode clic génère un clic gauche souris, voir plus loin dans le mode appuyer
- un appui sur le bouton droit, idem précédemment mais pour la version droite.
- un appui sur le bouton molette, bascule du mode déplacement souris en mode molette.
- un appui sur le bouton appuyer, active le mode appuyé/relâché
un appui sur l’un de ces deux boutons génère le début d’un clic long, Un second appui sur le même bouton génère le relâchement du clic équivalent.
Fonction | Couleur | Entrée | Sortie |
---|---|---|---|
Bouton Gauche | Rouge | D5 | D8 |
Bouton Droit | Vert | D4 | D10 |
Molette | Jaune | D3 | D11 |
Appuyer | Bleu | D2 | D12 |
Piedzo | D9 | ||
Axe X | A0 | ||
Axe Y | A1 |
Le boitier du microcontrôleur est découpé à la laser, voici un exemple de boitier possible : File:box_arduino.zip.