LinuxCNC – Contrôler la machine avec in joystick ou une manette de jeu

Utiliser une manette ou un joystick pour contrôler linuxcnc

Voici la suite de la série sur LinuxCNC

On peut vraiment tout faire avec Linux, y compris détourner l’utilisation première de certains matériel. J’avoue que c’est un peu du gadget, mais c’est tellement pratique que ce serait dommage de s’en passer.

Dans l’atelier, le clavier n’est pas vraiment nécessaire, la plupart des actions se font à la souris. De plus, clavier et poussière ne font pas forcément bon ménage et le clavier prend de la place là où on en manque toujours…

L’idée est de remplacer (au moins de l’avoir en parallèle) le clavier par une commande moins imposante pour contrôler la CNC.
Et puis ça fait tellement geek et futuriste de piloter la machine avec un joystick que je vois l’admiration et le respect s’allumer dans les yeux des spectateurs qui me voient leur créer les pièces demandées, un peu comme si je pilotais la navette spatiale. Priceless!

Tout d’abord, il vous faudra une manette ou un joystick de jeu, de préférence USB. Cherchez dans les occasions si vous n’en avez pas, faites le tour des dépôts ventes ou sur le bon coin, mais on en trouve entre 2 et 10 €, selon l’état et le modèle. On trouve même des adaptateurs pour mettre en USB la plupart des manettes, cherchez sur la baie ou amazon.

J’utilise un joystick Microsoft SideWinder Precision 2 (acheté chez cashtruc pour 5 €) qui a un fil de 2m de long, ce qui est très bien pour déplacer le joystick à l’endroit voulu. En plus il a plein de boutons qui me permettent de paramétrer ce que je veux dessus.
Autant je suis très critique sur les logiciels estampillés Microsoft, autant je considère les matériels portant cette marque comme solides et fiables, mais c’est mon avis personnel.
On peut aussi utiliser des manettes sans fil, ce que je faisais au début, mais la baisse de puissance des piles ou des parasites amènent des problèmes dans la commande de la machine. C’est suffisamment risqué pour que je vous le déconseille, rien de tel que les fils.


Le joystick dans le bureau pour la rédaction de ce tuto.

==== Installation du logiciel de contrôle ====

Il va falloir installer auparavant une dépendance afin que le logiciel fonctionne correctement. Pour cela, il va falloir ajouter un dépôt au système.
– Ouvrez le gestionnaire de paquets Synaptic (Applications/Système/Gestionnaire de paquets synaptic)
– Allez dans le menu Configuration/Dépots
– Cliquez sur l’onglet Other Software
– Cliquez sur le bouton Add
– Entrez la ligne suivante: deb http://http.debian.net/debian wheezy-backports main
– Validez, fermez
– Cliquez sur le bouton Recharger
– Cliquez sur le bouton de recherche, tapez libsdl2 et installez libsdl2-2.0-0 (clic droit, sélectionner pour installation). Faites la même chose pour libqt4-network
– Cliquez sur appliquer
– Fermez synaptic

Le programme permettant de mapper les touches s’appelle Antimicro. Il est disponible à cette adresse:
https://github.com/Ryochan7/antimicro/releases

Téléchargez le paquet antimicro_2.14-1.jessie_i386.deb, c’est celui qui va bien pour wheezy (votre version de Debian), et enregistrez le paquet sur votre ordinateur.

On peut l’installer graphiquement, mais je vais vous apprendre comment installer un paquet deb téléchargé avec le terminal.
– Ouvrez un terminal (Applications/Emulateur de terminal)
– tapez la commande suivante en adaptant ce qui doit l’être: sudo dpkg -i /home/votre_utilisateur/Téléchargements/antimicro_2.14-1.jessie_i386.deb (pensez à la complétion (voir dans les posts précédents) pour vous aider à taper la commande)
– Validez, entrez votre mot de passe
– Le logiciel est installé!

==== Lancement du logiciel antimicro ====

On peut lancer le logiciel au démarrage de la session. Pour cela, il suffit de créer un script de démarrage comme on l’a fait précédemment pour le serveur VNC.
Mais je préfère faire autrement, car je n’ai pas envie qu’un coup de coude dans le joystick déplace la broche par accident.

J’ouvre un terminal( Applications/Emulateur de Terminal ou clic droit sur le bureau Ouvrir un terminal ici) et je tape la commande antimicro que je valide par entrée. Si je ferme le terminal par la suite, le joystick est désactivé (et j’en suis certain). Si j’en ai besoin de nouveau, je recommence.

==== Paramétrage du joystick ====

Au lancement de antimicro, choisissez le français et validez tout par défaut; la fenêtre de configuration s’ouvre. Je ne vais pas entrer dans les détails, juste vous expliquer quelques petites choses, le reste est assez simple.
* Lorsque vous aurez créé votre configuration, sauvegardez là. Si vous n’en avez qu’une, elle sera automatiquement rechargée au démarrage du logiciel
* Testez les boutons et axes de votre manette/joystick, vous les verrez s’éclairer
* La première fois que vous lancez le logiciel, mettez à jour les manettes (CTRL+U ou menu Options). C’est important sinon des choses peuvent ne pas fonctionner.

* cliquez sur le bouton que vous voulez modifier et réglez les options
* Si vous donnez un nom (Axe X, ou Arrêt d’urgence) vous pouvez afficher les noms à la place des boutons si vous cliquez sur le bouton Noms
* Il y a des options déjà prévues pour les axes (haut/bas, ou gauche/droite, etc) Utilisez les, même si on peut les modifier autrement.

* Enregistrez votre configuration en lui donnant le nom de votre contrôleur à la racine de votre home (votre dossier personnel)
* Enfin, cachez le logiciel (ne le fermez pas, sinon il n’agira pas sur LinuxCNC) par CTRL + H
* Le logiciel est placé en haut à droite, à côté de l’heure. Un clic sur l’icone le fait réapparaître.

Personnellement, j’ai paramétré les axes X et Y sur le joystick, l’axe Z est sur la rotation du joystick, la gâchette est la touche SHIFT (avance rapide sur linuxcnc), ce qui me permet de commander toute la broche avec le joystick. Les autres boutons me permettent d’arrêter l’AU (F1), démarrer/arrêter la machine (F2), ouvrir un fichier gcode (o) et de marquer la prise d’origine de l’axe en cours (orig). Je ne me sers pas des autres boutons et axes, mais rien ne dis que je n’en aurai pas besoin plus tard. Il suffit de laisser le curseur sur un bouton de linuxcnc pour connaître la touche correspondante et la paramétrer dans antimicro.

Je n’ai pas de quoi vous faire une vidéo, mais croyez moi sur parole, ça fonctionne très bien. Maintenant, le clavier est rangé et je ne le sors que lorsque j’en ai besoin, tout le reste se fait au joystick.

Articles en relation: