Présentation et installation de LinuxCNC

Je vais tenter ici de démystifier un peu Linux/LinuxCNC en expliquant simplement les choses de base à connaître. Par conséquent, je vais employer des raccourcis que les puristes pourront me reprocher, mais il sera toujours temps d’apporter des précisions par la suite une fois que les idées de bases auront été intégrées.
Je ne vais parler que de ce que je connais, le fraisage en CNC, n’ayant jamais fait de tournage numérique.

1- Présentation de Linux

Linux (on devrait dire GNU/Linux, mais par commodité, je ne dirais que « Linux » ici) est un système alternatif à Microsoft pour faire l’interface entre l’utilisateur et l’ordinateur.
Il est développé par une communauté d’utilisateurs, mais aussi par de grands groupes (en particulier HP et Google) qui utilisent Linux sur leurs systèmes.
Il n’existe pas UN Linux, mais une multitude. D’ailleurs, une fois que vous aurez personnalisé votre ordinateur sous Linux, vous aurez VOTRE Linux.
Son rôle est exactement le même que Windows : il sert d’intermédiaire entre vous (et votre manière de penser) et l’ordinateur (et sa logique). C’est un outil qui répond à un besoin, et par conséquent, il n’est pas si différent de Windows, puisque le besoin est le même. Par contre, il a une philosophie différente, et c’est ce qui peut perturber l’utilisateur habitué à Windows.
Comme Linux n’appartient à personne (pas de société commerciale), il n’y a pas d’impératifs de vente ; par conséquent, l’idée est de fournir le meilleur logiciel (seul ou à plusieurs) en apportant la meilleure réponse possible au besoin de l’utilisateur. Une des idées est aussi celle ci : ne faire qu’une chose, mais la faire bien.

Par contre, pour les mêmes raisons, et parce que beaucoup de développeurs travaillent sur leur temps libre (et vous savez que c’est une denrée rare), l’avancée des logiciels ou la correction de bugs peut parfois prendre un peu de temps. Par contre, une faille de sécurité mobilise l’ensemble de la communauté et le correctif apparaît dans les jours qui suivent l’apparition du programme. C’est aussi une des raisons de la solidité de Linux.

2-Les distributions Linux

Une distribution est une « base Linux » sur laquelle l’éditeur (au sens large du terme) va faire des choix à votre place pour proposer un ensemble complet et cohérent de logiciels. Un peu comme un fabriquant de voiture va choisir un châssis, un moteur, une carrosserie et des accessoires pour proposer un modèle de voiture. Beaucoup d’éléments sont commun à d’autres modèles, mais l’ensemble des choix en fait un modèle à part. Le plus grand choix, en tout cas le plus visible étant le gestionnaire de l’interface (KDE, Gnome, Mate, XFCE, OpenBox, …), ayant chacun ses avantages et ses inconvénients.
Les distributions vont intégrer tel ou tel logiciel, interface, thème, choix de fonctionnement pour être une distribution différente des autres. Parfois, on prend une distribution existante, on modifie certaines choses, on apporte d’autres choix et logiciels, et cela devient une autre distribution.

Par exemple, Ubuntu, Mint, LinuxCnc, et bien d’autres, sont basées sur Debian qui est reconnue pour sa stabilité.
Suse, slackware, Handylinux, RedHat, … sont aussi des distributions linux. Je ne parle pas des distributions basées sur BSD pour rester dans la simplicité,
Comme on peu tout personnaliser sur Linux, on trouve des distributions spécialisées pour une fonction : le développement, le hacking, les firewall, les serveurs de fichiers, les routeurs, l’automatisme, l’embarqué, …. La liste est infinie puisqu’il suffit de personnaliser Linux avec les outils désirés.

À la maison, j’utilise plusieurs distributions, adaptées au rôle que j’en attend : Debian sur mes serveur, Ubuntu sur le poste de ma femme, XBMC (maintenant kido) sur le media center, SLAX sur le poste des mes enfants, Ipcop sur le firewall, … C’est déjà adapté au besoin, il suffit de faire confiance aux choix des développeurs. Et sinon, je fais mes propres choix (et modifications).
Sur Linux, tout est personnalisable et modifiable.Tellement qu’on peut aussi lui donner l’aspect strictement identique à XP, W7 ou MacOs !

L’important est de choisir l’outil adapté au besoin. Vous n’iriez pas utiliser un couteau à la place d’un tournevis, n’est ce pas ? De même, on n’utilise pas une distribution bureautique pour commander une machine numérique, même si c’est faisable.

Sachez aussi que la ligne de commande n’est plus obligatoire avec les distributions modernes de Linux, mais c’est un outil extrêmement puissant même s’il n’est pas toujours simple à maîtriser. Prenons l’exemple d’un ciseau à bois et d’une défonceuse. Il peut paraître plus simple d’utiliser la défonceuse (force, rapidité) et que le ciseau paraisse plus simpliste. Mais si le ciseau est bien affûté (angle, finesse) et bien utilisé (angle, force appliquée, sensations) on obtient le même résultat, voire mieux qu’avec la défonceuse. La ligne de commande est un outil (parmi d’autres) qui offre un large éventail de possibilités quasiment sans limite, une rapidité et une précision terrible. Mais il n’est pas obligatoire de savoir l’utiliser, d’autres outils sont présents pour l’utilisateur.

Vous trouverez plein d’informations sur le site des cousins de QuebecOS concernant toutes les distributions existantes : quebecos.com

3-LinuxCNC

LinuxCNC est un logiciel de commande de machine numérique. Pour fonctionner, il a besoin d’une chose particulière : un noyau en temps réel.
Il en existe plusieurs, mais ils intègrent toujours les lettres RT (pour Real Time) dans leur nom.

Sur un ordinateur, même si vous avez l’impression que plusieurs chose fonctionnement en même temps (le navigateur sur youtube, le son qui sort des enceintes, l’affichage, les frappes clavier, la commande de la CNC, …) sachez qu’en fait un ordonnanceur se charge d’effectuer les tâches les unes après les autres quitte à en mettre parfois en pause un temps, certes court, mais pouvant poser problème aux machines numériques. Si l’ordinateur est occupé à traiter l’arrivée d’un nouveau mail et ne voit pas le signal de fin de course de votre machine, que pensez vous qu’il va arriver ? Pensez vous que le système d’un 747 puisse mettre en attente une commande du pilote pour actualiser le plan de vol ? Ou que les freins de votre voiture soient en pause le temps de mettre à jour les stations de radio ? Même une micro seconde ?

C’est à ça que sert le noyau en temps réel, ne pas mettre d’opération en pause et les traiter quand elle arrivent. C’est pour ça aussi que la machine qui sert à la commande ne devrait pas faire autre chose pendant le fonctionnement, voire même servir à autre chose.
Windows n’intègre pas de noyau en temps réel, il faut donc un paramétrage très fin pour éviter les problèmes (désactiver les tâches planifiées, les mises à jour, les programmes en arrière plan, les services inutiles, …). Et même avec ça, le système lui même peut décider d’autres priorités que la commande de la CNC.

Si vous installez LinuxCNC sur un Linux qui ne tourne pas sur un noyau en temps réel, le logiciel ne fonctionnera qu’en mode démo, pour éviter qu’on vienne dire que ça ne fonctionne pas et qu’un accident ne se produise. C’est la raison pour laquelle il faut faire attention lors des mises à jour afin que le noyau ne soit pas remplacé par un autre plus récent mais pas en temps réel. Mais même si ça se produit, ce n’est pas insoluble, il suffit d’être guidé une fois pour résoudre le problème seul si ça vous arrive à nouveau.

LinuxCNC est le logiciel de commande, mais ce n’est pas lui que vous voyez, c’est AXIS qui lui sert d’interface. Il en existe d’autres, mais Axis est simple et paramétrable (bon, j’admets, personnaliser l’interface d’Axis n’est pas aussi simple que ça, mais de base elle est suffisante pour tout).
LinuxCNC est accompagné d’un assistant qui vous permet de paramétrer le logiciel en fonction de votre machine (vitesse d’avance maximale, accélération, limites, …) et une fois ceci réalisé, c’est fonctionnel. Il faudra certainement affiner certaines choses, mais ça fonctionne quasiment tout de suite !

Auparavant, LinuxCNC était basé sur Ubuntu puisque c’était la distribution montante que les gens connaissaient. Mais Ubuntu s’est mis à choisir d’installer de plus en plus de choses de base pour répondre aux besoins des utilisateurs et être universelle. Par conséquent, elle s’est éloignée des besoins en commande numérique. Ce n’est pas une critique, elle est destinée aux Linuxiens débutants ou ne voulant pas mettre les mains dans le système, donc moins destinée à une spécialisation telle que la commande CNC.

La dernière version de LinuxCNC est revenue à la base de Ubuntu, à savoir Debian dont la stabilité n’est plus à démonter. Une nouvelle version de Debian sort quand elle est prête, pas à une date définie. Il se passe parfois du temps, certains logiciels ne sont pas les plus récents, mais c’est éprouvé et donc stable. Et c’est ce qu’on recherche sur une commande numérique, pas d’avoir la dernière version de flash.
Comme l’ordinateur qui va commander la CNC doit être dédié à cet usage, il est encore plus simple d’installer LinuxCNC en même temps que le système. L’image basée sur Debian wheezy installe le système (Debian) sur un noyau temps réel, LinuxCNC et Axis, soit un système de commande complet.

4-Installation de Linux

Si vous désirez installer Linux sur votre poste de travail, je vous renvoie aussi sur le site de Ubuntu et son forum où vous trouverez toute la documentation et l’assistance nécessaire, J’y suis aussi sous un autre pseudo, mais moins souvent, le temps manque pour tout faire…

5-Essayer LinuxCNC

Téléchargez l’image iso d’installation à cette adresse :http://www.linuxcnc.org/binary.hybrid.iso

Gravez l’image sur un disque ou avec une clef usb bootable (demandez à google) et démarrez votre ordinateur sur ce support.

Une fois l’ordinateur démarré, vous obtenez l’image suivante qui vous demande quel système démarrer. C’est le premier qui nous intéresse pour tester si votre ordinateur pourra faire tourner le système,

demarrage
Appuyez sur Entrée, le système se lance, plein de choses blanches s’écrivent sur l’écran noir, n’en tenez pas compte en temps normal. Sachez que si le système ne peut pas démarrer, toutes ces choses écrites permettent de savoir ce qui se passe, et donc de dépanner pour arriver à l’interface. Je trouve ça beaucoup plus pratique que Windows qui cache tout ce qui se passe.

Le système se lance dans la mémoire de l’ordinateur et tout ce que vous ferez (sauf écritures sur les disques) disparaîtra lorsque vous éteindrez l’ordinateur.
Vous arrivez sur le bureau du système LiveCD. Cela vous permet aussi de tester le système (pas pour la commande de la CNC, hein, ça reste risqué même si c’est faisable tant que l’on ne profite pas de toute la mémoire en ayant installé le système).

bureau

Ne vous inquiétez pas, lorsque le système sera installé, tout sera en français de chez nous.

Testez ce que vous désirez, mais si vous arrivez sur le bureau, vous pouvez donc installer LinuxCNC.

6-Installation de LinuxCNC

ATTENTION : si c’est votre première installation, je vous conseille de le faire sur un ordinateur dédié n’ayant aucune donnée importante sur le disque, on va tout remplacer, y compris si un windows est installé sur l’ordinateur !
Il est parfaitement possible d’installer Linux en dual boot sur l’ordinateur, mais je vais rester dans le cas général, sur une machine dédiée.

Vous pouvez vous faire la main en l’installant dans une machine virtuelle, mais vous ne pourrez pas commander de CNC depuis celle ci.

Redémarrez l’ordinateur en cliquant sur la porte de sortie en haut à gauche et cliquez sur restart. Refaites ensuite un démarrage comme précédemment, puis sélectionnez Install(Graphical) avec les flèches et validez par entrée.

Un assistant d’installation va se lancer. Utilisez la souris et cliquez sur continuer à chaque fois.
– Choisissez la langue qui vous intéresse, la région et le clavier que vous utilisez.
– Donnez le nom que vous voulez à la machine (il vous propose debian par défaut)
– Indiquez le domaine ou laissez vide
– Donnez un login qui sera l’utilisateur de la machine (obligatoire), puis l’identifiant.
– Indiquez son mot de passe (obligatoire). Il servira pour l’administration par la suite.
– Indiquez le type de partitionnement. A moins de savoir ce que vous faites, choisissez la première option (assisté – utiliser un disque entier). Attention, tout ce qui est sur le disque sera perdu !
– Validez l’application des changements sur le disque.
– Laissez le système s’installer (environ 10 minutes). Redémarrez, et c’est tout !

Redémarrez, ne touchez à rien, et vous arriverez sur l’écran de connexion suivant :

connexion

Indiquez l’identifiant et le mot de passe choisi pour l’installation en validant à chaque fois.

Lorsque le système vous demande le paramétrage du premier tableau de bord, choisissez d’utiliser les paramètres par défaut.

7-Mises à jour

Dès la connexion, le système vous informe qu’il y a des mises à jour par une petite bulle en haut à droite, et par une icône de point d’exclamation dans un triangle rouge au même endroit.
Il faut bien sûr les faire, et nous allons voir comment.

Cliquez sur l’icone triangulaire. Il vous demande votre mot de passe, puisque nous allons modifier des choses sur le système lui même. Ça évite que n’importe qui fasse n’importe quoi, même si Rémi Gauillard vient rarement dans mon atelier.

Debian vous indique les mises à jour disponibles que vous allez pouvoir installer. Utilisez l’ascenseur pour les parcourir et vérifier qu’il ne va pas remplacer le noyau, cherchez donc linux-image ou linux-kernel. Normalement, cette version basée sur Debian ne vous proposera pas de changer le noyau par une version non RT, au contraire de la version sur Ubuntu.
S’il vous propose un noyau qui ne contient pas RT dans son nom, décochez la case correspondante. Ensuite, cliquez sur Install Updates pour installer les mises à jour. Le temps dépend du nombre de mises à jour, mais cela prend en général une quinzaine de minutes, c’est très rapide comparé à d’autres systèmes.
Quand des mises à jour seront disponibles, vous serez prévenu de la même manière.

L’interface graphique que vous voyez est basée sur Xfce qui a l’avantage d’être très légère en occupation mémoire tout en restant intuitive. D’autres interfaces sont plus légères encore, mais il faut prendre le temps de les découvrir pour les apprécier. La légèreté de l’interface laisse plus de mémoire disponible pour le système et la commande de la CNC, ce qui est le but recherché. Si vous voulez encore plus léger, renseignez vous sur OpenBox.

Vous avez désormais un ordinateur tournant sous Debian Linux qui vous donnera un aperçu de ce qu’on peut faire sous linux. Gardez en tête que cette version est destinée à faire fonctionner une CNC et que si vous n’arrivez pas à faire quelque chose (genre installer un jeu), c’est que vous n’êtes pas sur un système destiné à être un poste de travail. Tournez vous vers l’installation d’une Debian ou Ubuntu classique avant de décider que Linux ne fonctionne pas ou que c’est compliqué.

8-Paramétrage de LinuxCNC

Le paramétrage dépendra de la machine que vous avez à commander, c’est à vous de connaître les paramètres à appliquer. Je vais vous montrer celui correspondant à MA machine.

Allez dans le menu des applications en haut à gauche, placez vous sur le menu CNC et lancez le programme Latency Test permettant de connaître la latence de votre ordinateur. Celle ci dépendant de beaucoup de paramtètres, elle est propre à chaque ordinateur.
Cette valeur permettra à LinuxCNC de savoir à quel moment envoyer les commandes avant le moment voulu pour qu’elle arrive exactement quand il faut.
Commencez par faire un reset des statistiques puis utilisez abusivement l’ordinateur, déplacez des fenêtres à travers l’écran, surfez sur le web, faites tourner plein de programmes pour occuper votre PC. Notez ensuite la valeur la plus élevée de Max Jitter qui nous servira pour la configuration de LinuxCNC.

Si vous souhaitez commander un tour numérique, vous devrez ensuite utiliser LinuxCNC Pncconf Wizard, mais je m’arrêterai là pour l’aide à vous apporter n’ayant pas de tour.

Si vous avez une fraiseuse numérique, vous utiliserez LinuxCNC Stepconf Wizard. Il est en anglais, mais c’est assez simple à configurer.
Cliquez sur start à la première fenêtre pour commencer la configuration.
stepconf1

A partir d’ici, vous pouvez créer une nouvelle configuration (Create new configuration) ou modifier une configuration déjà existante (Modify a configuration).
Laissez les cases du bas cochées, cela vous créera une icône directement sur le bureau, ce qui sera plus pratique pour lancer Axis avec votre configuration. Cliquez sur Forward (suivant).

stepconf2

– Donnez un nom à votre machine (par exemple fraiseuse1)
– Sélectionnez le nombre d’axes que vous avez sur cette machine. Dans mon cas XYZ.
– Indiquez votre unité de mesure (inch ou mm)
– Indiquez vos drivers de moteur pas à pas. S’ils ne sont pas présents, choisissez Autre et renseignez – les champs nécessaires, les infos étant disponibles avec vos drivers.
– Dans base period maximum jitter, indiquez la valeur relevée précédemment, ou relancez le test en cliquant sur le bouton Test base period jitter.

stepconf3

Paramétrez les sorties du port parallèle. Les choix de droite permettent de paramétrer les entrées depuis la CNC vers le port parallèle, souvent utilisées pour les fin de courses, les origines ou l’arrêt d’urgence (pin 10 dans mon cas)

stepconf4

Laissez tel quel pour l’instant, cochez la case du bas pour qu’il vous informe à l’écran quand un changement d’outils est nécessaire.

stepconf5

Ici nous allons régler chaque axe de la machine. Indiquez le nombre de pas par tour de votre moteur (200 pour moi), les micropas du driver (16 dans mon cas), le rapport des poulies (1:1 s’il s’agit d’une vis), l’avance par tour de moteur (1,5mm dans mon cas).
La vitesse et l’accélération maximum sont à définir en cliquant sur le bouton Test Axis

stepconf6

Vitesse et accélération pourront (dans une certaine variation) être changées pendant le test. Utilisez les flèches du jog pour déplacer votre axe a mi-course.
Modifiez la valeur de test Area pour faire la moitié de la course de votre axe puis cliquez sur Run. L’axe va faire des aller retour sur la longueur que vous avez indiqué. Vous pouvez modifier la vitesse et l’accélération jusqu’au maximum où vous perdez des pas. Diminuez ensuite et gardez une marge de sécurité puis cliquez sur Valider. Les valeurs retenues sont copiées dans les champs correspondants.

Affinez les réglages sur toute la course de la machine pour vous assurer que tout va bien.
Si l’augmentation ou la diminution des valeurs pendant le test n’est pas assez importante (il bloque et on ne peut plus aller au-delà), validez et recommencez le test, la butée précédente devient la valeur de départ à faire varier. C’est difficile à expliquer, mais vous comprendrez en le faisant.
Entrez les dimensions de votre axe, l’emplacement des fin de courses si vous en avez défini à l’étape précédente et passez à l’axe suivant.

Effectuez la même chose pour tous les axes.

stepconf7

Sur la dernière fenêtre, vous pouvez régler la commande de broche. Je ne l’utilise pas et je ne serai pas d’une grande aide sur ce point. Rabattez vous vers google.

Validez la dernière étape et vous avez sur le bureau une icône qui s’appelle lancer le_nom_de_machine_choisi. Double cliquez dessus pour lancer Axis.

linuxcnc_machine

9-Utilisation d’Axis

Il se peut que vous ayez des messages d’erreur au démarrage. Comme c’est le premier lancement, n’en tenez pas compte et fermez les.

Axis

– Au lancement, la machine est en arrêt d’urgence (icône rouge en haut à gauche). Cliquez sur l’icone pour débloquer l’AU ou appuyez sur F1.
– La machine est arrêtée (deuxième icône en haut à gauche). Cliquez dessus pour activer la communication ou appuyez sur F2.
– Allez chercher votre fichier Gcode en faisant fichier/ouvrir ou directement la lettre O (comme Ouvrir). Un premier fichier gcode d’exemple est chargé au démarrage pour que vous puissiez faire des essais.

Placez votre nez de broche à l’endroit voulu en utilisant les flèches du clavier (gauche droite pour X, haut bas pour Y, page up/ page down pour Z). Une fois à la position désirée, cliquez sur le bouton POM des axes, en cochant l’axe à chaque fois. Pour vous déplacer en vitesse rapide, appuyez sur SHIFT(majuscule) avant d’utiliser les flèches de direction.

Vous pouvez vous déplacer dans la vue en cliquant dessus avec les boutons gauche, clic molette et droite de la souris, je vous laisse trouver comment ça fonctionne.

Naviguez dans les menus, si vous avez déjà utilisé une CNC, vous comprendrez à quoi ils servent. Si c’est votre première fois, faites des tests, mais soyez prudent.

Cliquez sur le bouton Play (la flèche bleue) pour lancer l’usinage.

Toute la doc de LinuxCNC en français se trouve ici :http://www.linuxcnc.org/docs/html/index_fr.html

Elle n’est pas forcément à jour mais elle est complète et répondra à toutes vos questions. Si ce n’est pas le cas, demandez de l’aide sur les forums ou utilisez google, c’est ainsi que j’ai démarré avec LinuxCNC et la CNC.

Votre machine est désormais une Debian wheezy faisant tourner le gestionnaire de fenêtres Xfce4. Utilisez ces mots clefs lors de votre recherche.

Articles en relation:

Une réflexion sur « Présentation et installation de LinuxCNC »

  1. Ping : Personnaliser un peu LinuxCNC | Astuces d'Absolacom

Les commentaires sont fermés.