Installer GRBL sur l’Arduino (Téléverser)

Comment installer la dernière version de GRBL sur un Arduino Uno: c’est une opération familière pour ceux qui  “bricolent” un peu avec un Arduino, mais pour de nombreux amateurs de CNC, c’est encore de la magie noire…. Rien de bien compliqué, pourtant, comme nous allons le montrer dans cet article.

Ce dont vous avez besoin:

  • 1 PC (ou Mac)
  • 1 Arduino Uno (ça fonctionne de la même manière avec un Arduino Mega, il faudra juste indiquer la bonne carte)
  • 1 Cable USB pour brancher l’Arduino sur le PC
  • L’Environnement de Développement Intégré Arduino (IDE)
  • La dernière version de GRBL

Vous pouvez télécharger l’IDE Arduino pour Windows ici:  https://www.arduino.cc/en/Main/Donate et ici pour Mac: https://www.arduino.cc/en/Main/Donate
Pour obtenir la dernière version de GRBL, allez sur le répertoire GitHub, cliquez sur release, et téléchargez le code source https://github.com/gnea/grbl/releases. La version actuelle est v1.1f (g pour la version en pré-release)

Il existe une version optimisée pour l’Arduino Mega2560, que vous pouvez télécharger ici: https://github.com/gnea/grbl-Mega/releases  Tout ce qui suit s’applique de la même manière pour les 2 versions.

 

Installer GRBL dans les librairies Arduino

 

2019-05-13 11_09_56-Installer GRBL sur l’Arduino (Téléverser) - Open Live Writer

 

Vous pouvez extraire les fichiers de l’archive zip directement dans le répertoire librairies de l’Arduino. Lorsque vous installez l’IDE Arduino sur votre machine (Je parles de Windows, n’ayant pas de Mac. Il faut retrouver les répertoires équivalents sur le Mac et sur Linux), un répertoire Arduino est créé dans votre répertoire Documents. A l’intérieur de ce répertoire Arduino se trouvent quelques répertoires avec des exemples de code, et un répertoire “libraries”. C’est dans ce répertoire qu’il faut copier (où extraire) le répertoire GRBL.

Ensuite, il faut “dire” à l’IDE Arduino qu’il y a une nouvelle librairie. Pour se faire, menu Croquis/ Importer Bibliothèque/ Ajouter Bibliothéque, et sélectionner le répertoire GRBL dans votre répertoire librairies.

A l’intérieur de votre répertoire GRBL, se trouve un répertoire “Examples”, qui contient un répertoire “grblUpload”. Copiez ce répertoire à l’extérieur du répertoire “libraries”. Le mieux est sans doute de le copier directement sous “Arduino”

Ouvrir GRBLUpload et Téléverser

Une fois copié le répertoire grblUpload, nous revenons à l’IDE Arduino pour ouvrir le fichier qu’il contient, grblUpload.ino. Comme vous pouvez le voir, il y a beaucoup de commentaires, et pas beaucoup de code, dans ce fichier:

2019-05-13 11_27_12-Installer GRBL sur l’Arduino (Téléverser) - Open Live Writer
Nous pouvons maintenant compiler GRBL, pour vérifier que tout va bien, en cliquant sur la marque cochée, icône la plus à gauche. Si tout se passe bien, vous devriez voir quelque chose comme ceci au bas de la fenêtre de l’IDE:
2019-05-13 11_31_31-Installer GRBL sur l’Arduino (Téléverser) - Open Live Writer
Il est temps de brancher l’Arduino sur le PC à l’aide du câble USB, si vous ne l’avez pas déjà fait, puis d’identifier le port COM affecté à cette liaison USB-série. Dans Windows, vous pouvez aller dans le panneau de configuration/système et sécurité/système/Gestionnaire de périphériques. Scrollez vers Ports, en bas, et cliquez pour ouvrir:

2019-05-13 11_38_59-Gestionnaire de périphériques

Le port USB-Serial et le COM9.  Vérifiez dans l’IDE Arduino que le type de carte et le port sont correctement sélectionnés:

2019-05-13 11_42_58-grblUpload _ Arduino 1.6.12019-05-13 11_42_29-grblUpload _ Arduino 1.6.1

Maintenant on peut “téléverser/uploader” GRBL dans votre Arduino, en cliquant sur la flèche vers la droite  (2ème icône) Le message au bas de la fenêtre sera exactement le même que lors de la compilation effectuée précédemment, simplement avec l’indication Téléversement Terminé. Vous pouvez vérifier que GRBL est bien fonctionnel et actif en ouvrant le moniteur série (Outils/Moniteur série). Vous devriez voir quelque chose comme ceci:

2019-05-13 11_50_30-Installer GRBL sur l’Arduino (Téléverser) - Open Live Writer

Vous pouvez taper $$ dans la ligne de saisie en haut pour voir les valeurs de tous les paramètres de GRBL:

2019-05-13 11_52_57-Installer GRBL sur l’Arduino (Téléverser) - Open Live Writer

 

Epilogue

Comme vous pouvez le voir, rien de bien compliqué, et surtout, pas de magie noire Smile Pourtant, je conçois bien que tout ceci puisse sembler un peu mystérieux pour quelqu’un de peu (où pas du tout) familier avec l’Arduino et son IDE. J’espère donc que cet article vous aidera à mettre le pied à l’étrier, et à passer à la dernière version pour ceux qui utilisent déjà GBL.

Maintenant, “y’a plus qu’à” installer ça sur votre machine CNC.

Comme d’habitude n’hésitez pas pour les questions, et n’oubliez pas que le Forum est fait pour ça: https://lebearcnc.com/forums/viewforum.php?f=15&sid=ba6db9cef89ff2337c2ef50701ec3563




Branchement Simple et Fiable Sonde de Proximité 6-36 volts. (Z auto-leveling)

Je ne sais pas pour vous, mais l’ajout d’une sonde (inductive où capacitive), alimentée en 12 volts (où plus) est toujours un petit casse-tête. Une recherche internet amène toute sorte de réponses, généralement basée sur des résistances pour abaisser la tension de 12 volts vers 5 volts (en fait, ce devrait être 4.8 volts). On parle aussi de diodes, de mélange des 2, et pas 2 croquis sont identiques! De quoi y perdre son latin (où ses électrons, comme vous voudrez 😉 )

Cependant, sur un des divers articles/messages que j’ai pu lire, on parlait d’optocoupleur. Ha? j’ai bien cherché, mais pas trouvé avec ce terme ce que je voulais. Puis je me suis souvenu avoir utilisé « quelque chose » (je ne suis pas électronicien, je ne fais que lire et tacher de comprendre) pour brancher un détecteur 5 volts sur un Arduino Due (qui lui n’accepte que 3.3 volts). Seulement la chose porte un nom totalement différent, il m’a fallu quelque temps et recherches de plus pour trouver…

Utiliser un convertisseur de niveau logique bidirectionnel

En effet, c’est bien le nom de la chose en question. Ce petit circuit est vendu le plus souvent comme convertisseur 3.3 volts – 5 volts. Mais en fait il fonctionne parfaitement avec 12/24 volts d’un coté et 5 volts de l’autre.

Schéma du montage de la sonde avec le convertisseur logique.
Schéma Fritzing du montage

Sur la sonde, noir = signal, bleu = neutre, où moins, marron = plus. Le plus et le moins doivent recevoir une alimentation en 12 volts, 24 volts si vous avez. Personnellement, j’ai monté 2 Mosfet, pour la tête chauffante et le bed, qui sont alimentés en 24 volts. Je prends l’alimentation pour la sonde sur l’arrivée 24 volts de l’un des mosfet. Le signal (fil noir) est lui branché directement. ATTENTION a bien utiliser le coté marqué HV des pins du circuit (pour High Voltage).

Pour le coté Arduino/carte mère, il faut connecter l’alimentation 5 volts au circuit. Une prise 3 fils, avec le neutre au milieu, est ce qui correspond à une carte Ramp. Le gros avantage  de ce système est que l’Arduino ne recevra jamais un voltage supérieur à celui qu’il envoie. J’ai mesuré de nombreuses fois, le voltage envoyé à la sonde peut varier de 10 à 24 volts (pas essayé plus), le signal vers l’Arduino reste toujours à 4.8 volts. pas de bricolage, de calcul pour un résultat approximatif avec des résistances.  ATTENTION a bien utiliser le coté LV (pour Low Voltage)

Voici ce que j’ai réalisé. pas vraiment un modèle d’exposition, mais ça fonctionne parfaitement:

Montage sur plaque du convertisseur logique bi-directionnel
Montage sur plaque du convertisseur logique bi-directionnel

Ces circuits se trouvent un peu partout, sur Amazon, Ebay, les fournisseurs de composants électroniques, et les habituels chinois BangGood et Aliexpress. On en trouve à 4 canaux, 8 canaux, 2 canaux. On n’utilise qu’un seul « canal », ici, mais les prix ne varient pas vraiment en fonction.

Exemple sur Amazon: https://amzn.to/2Vl64J5

Rien de bien compliqué, juste un peu de soudure. Si certains ne souhaitent pas souder, faites-le moi savoir, je verrais à réaliser un circuit pour éliminer au maximum les risques d’erreurs et de soudure maladroite… (je sais, c’était mon cas il n’y a pas si longtemps….)




Chaîne Bois

La Chaîne Logicielle

De l’idée de départ jusqu’à la fabrication de la pièce sur votre machine CNC, tout va se passer sur l’ordinateur, utilisant différents logiciels selon l’étape du processus à effectuer, constituant ainsi une chaîne logicielle.

LA Chaîne logicielle, dans l’absolu, n’existe pas. Il y a la vôtre, celle que vous allez petit à petit adopter, qui vous sera la plus familière. Même si, selon les cas particuliers, vous allez sans doute avoir besoin de l‘adapter.

Dans cet article, La Chaîne Logicielle est générique. Nous allons voir les différentes étapes nécessaires pour transformer une idée en objet fini, et évoquer les différents outils logiciels qui peuvent être utilisés. Certains logiciels permettent d’effectuer TOUTES les étapes, où presque, alors que d’autres ne permettent qu’une seule opération. Nous reviendrons plus en détail sur certains de ces logiciels dans le futur.

Il existe aussi de nombreux utilitaires, permettant de passage d’une étape à une autre, comme la conversion d’un fichier DXF en GCode, mais je n’en parlerais pas dans cet article, dans la mesure où le but est d’avoir le MINIMUM d’étapes. Je vais donc me focaliser sur les outils plus complets, par rapport à des utilitaires ne remplissant qu’une seule fonction. Le Forum est là pour en parler, une discussion me semble plus appropriée qu’un article, qui ne peut brosser qu’un tableau générique.

Étapes de Création

  1. Conception/Dessin 2D.
  2. Passage au 3D (ou Conception 3D directement).
  3. Génération des chemins de l’outil (des outils), création du GCode.
  4. Envoi du GCode à la machine.
  5. Interprétation du GCode et transformation en mouvements sur la machine.

Nous allons surtout nous intéresser aux 3 premières étapes, indépendantes des étapes 4 et 5, nécessaires quelle que soit la machine et technique utilisée (Fraisage, découpe laser où même impression 3D). Mon but n’est pas d’être exhaustif et de citer tous les logiciels possible pour une étape particulière, mais de proposer une découverte de certains outils particulièrement adaptés à une utilisation amateur/semi-professionnelle, de par leur prix et (ou) leur simplicité d’utilisation.

C’est l’ensemble des logiciels et utilitaires permettant d’effectuer au mieux chacune de ces étapes qui vont constituer votre chaîne logicielle.

Étape 1 : Conception/Dessin 2D

C’est sans doute pour cette première étape que la palette de choix possibles est la plus vaste, puisque pratiquement n’importe quel logiciel de dessin peut-être utilisé. La difficulté risque d’être le passage aux étapes suivantes, il vaut donc mieux choisir d’entrée un outil connu pour son intégration aisée dans l’ensemble du processus.

Pour cette raison, il paraît nécessaire d’éliminer d’emblée les logiciels de dessins “matriciels” (raster) pour se pencher vers les outils de dessin vectoriels (vectors, lignes). Pendant qu’on y est, autant se focaliser sur les outils type dessins industriels, plutôt qu’artistiques, selon vos buts, bien sûr. Il existe de nombreuses solutions permettant de passer de l’un à l’autre, simplement cela rajoute une étape, donc de la complexité, du temps et une source d’erreurs supplémentaire.

    • Inkscape

      • Pourtant, le premier logiciel que je veux présenter est justement un de ceux qui permettent cette conversion, mais il est capable de bien plus! Je veux parler de Inkscape, qui est un logiciel de dessin vectoriel Open Source et gratuit. Attention, il ne s’agit pas de dessin paramétré, type dessin industriel, mais de dessin libre, “artistique”, ce qui peut parfaitement vous convenir, pour réaliser des signaux, panneaux, logos, etc…
      • Étant capable d’exporter les créations en fichier SVG et DXF, il pourra s’intégrer avec tous les outils dont nous allons parler par la suite.
    • Draftsight

      • Créé par Dassault Systèmes, Draftsight est un équivalent très proche des fameux Autocad et Autocad LT. On ne parle plus de dessin “artistique” ici, mais de toute la puissance nécessaire à la CAO, avec toutes les fonctionnalités habituellement trouvées dans ce genre d’outils. Il a l’avantage d’avoir une version gratuite. La seule vraie différence entre la version gratuite et la version professionnelle est LISP, un langage de programmation permettant d’automatiser de nombreuses taches répétitive de dessin.

Étape 2: Conception/Modélisation 3D

On aborde ici les outils les plus spectaculaires, longtemps réservés aux seules entreprises capables de s’offrir des outils dont la licence dépassait allégrement les 10 000 € par poste. Cela a bien changé récemment, mais pas pour tout le monde! Tout d’abord, une distinction importante: Conception et Modélisation 3D ne sont pas la même chose. La conception permet d’élaborer, dessiner, visualiser un objet en 3 dimensions. La modélisation va plus loin, permettant de modéliser des mouvements des objets en relation les uns avec les autres, de simuler des efforts, etc. Autrement dit, tous les outils de conception 3D ne sont pas nécessairement aussi des outils de modélisation.

    • SketchUp

      • Le plus connu des outils de conception 3D (mais PAS de modélisation) est certainement SketchUp. La version “Make” est gratuite, et il existe beaucoup de tutoriels et d’exemples sur le Net. Son principal inconvénient, de mon point de vue, est qu’il s’agit plus d’un logiciel de “dessin” en 3D, que d’un logiciel de “Conception”, ce qui le rend parfaitement adapté à l’architecture, mais pas autant à l’assemblage mécanique. Ce que je veux dire, c’est que SketchUp manipule des volumes ( un cube est un assemblage de 6 faces carrées) et pas réellement des objets, où un cube est un solide dont toutes les dimensions sont égales. Cela peut sembler, à la lecture, de petites nuances, mais en pratique, dans l’utilisation quotidienne, c’est une vraie différence.
      • L’autre inconvénient, c’est la difficulté à exporter sous des formats standards en vue de la fabrication et la génération de GCode.
      • Personnellement, c’est avec SketchUp que j’ai commencé la conception 3D, mais je suis très heureux d’avoir découvert Fusion 360 dont je ne pourrais plus me passer.
    • SolidWorks

      • Passons maintenant au Français de la série, SolidWorks, lui aussi produit par Dassault Systèmes. On a ici affaire à un véritable outil industriel, capable de modéliser des solides. Il est utilisé par un certain nombre de modélistes connus, comme Laurent Buissyne, dont tous les plans récents publiés dans RC Pilot sont créés avec SolidWorks.
      • Je n’ai personnellement aucune expérience avec cet outil, mais à voir les résultats produits, je n’ai aucun doute sur ces capacités. Les inconvénients sont, tout d’abord, le prix de la licence, qui dépend des modules choisis, mais tourne autour de 7 000€ (sauf si vous pouvez bénéficier d’une licence éducation). Ensuite, il n’y a pas de module de fabrication directement intégré, il va donc falloir passer par un export en fichier d’échange (DXF), puis l’utilisation d’un autre outil logiciel pour générer les passages d’outils et le GCode.
    • Autodesk Inventor

      • Concurrent direct de SolidWorks, Inventor est aussi parfaitement adapté à nos besoins, même si lui non plus ne comporte pas de module capable de générer le GCode. N’ayant pas non plus d’expérience personnelle avec cet outil, je ne peux que vous renvoyer à cette comparaison. Au final, tout dépend de vos besoins particuliers, qu’il vaut mieux avoir identifiés correctement, puisqu’au final, sur 5 ans, vous aurez dépensé plus de 12 000 $US

 

    • Gamme Vectric (Cut2D, VCarve, Aspire, Cut3D)

      • Spécialement conçus pour le fraisage en 2 et 3D, les divers logiciels de cette gamme n’ont pas toutes les possibilités d’outils comme SolidWorks ou Inventor, mais ils permettent d’effectuer toutes les étapes nécessaires, depuis le dessin de base, jusqu’à la génération du GCode. Ils comportent aussi (de base où en complément) de généreuses librairies de pièces décoratives que vous pouvez incorporer dans votre création, où juste fraiser pour elles même. Ils sont complétement orienté bois, et TRES faciles d’emploi. Pour des débuts avec une fraiseuse CNC de table, Cut2D Desktop (135€), vous permettra d’obtenir des résultats immédiatement, puisqu’à lui tout seul il est capable de l’ensemble des opérations.
    • Fusion 360

      • Le petit dernier parmi les grands, et de ce fait le moins connu, Fusion 360 est le plus complet au regard de nos besoins, dans la mesure où c’est le seul à intégrer directement un module de génération de GCode, mais pas seulement! Il peut aussi piloter directement une imprimante 3D, générer du GCode adapté à la découpe laser où plasma. C’est donc non seulement un outil de Conception/Modélisation 3D évolué, avec simulation des joints/articulations entre pièces, mais aussi un outil de fabrication des pièces modélisées. Le Gode peut aussi être généré pour du VRAI 3D, pas juste du 2.5D ( X, Y et Z) comme la plupart des autres outils le font.
      • Il a aussi l’immense avantage, pour nous, d’être gratuit, pour autant que vous où votre entreprise ne fassiez pas plus de 100 000 $US/An (ou que vous puissiez justifier d’un statut Étudiant/Professeur). J’aurais l’occasion d’expliquer cela en détail dans un futur article. ATTENTION, vous ne pouvez bénéficier de cette possibilité que si vous utilisez le lien ci-dessus, PAS LE SITE FRANCAIS!
    • CamBam

      • Selon vos besoins, CamBam peut s’avérer suffisant, c’est pour cette raison que je le cite ici. Il ne s’agit pas réellement de “conception 3D”, mais plutôt de dessins 2D auxquels on affecte une épaisseur. Il peut aussi importer des fichiers DXF et est capable d’importer un certains nombre de formats de fichiers 3D, que vous ne pourrez cependant pas modifier dans CamBam. Très connu et très utilisé, CamBam n’est pas gratuit.

Étape 3: Génération des chemins de l’outil et du GCode

Tout d’un coup, il y a beaucoup moins de monde pour cette étape! Si vous tapez dans Google “generate GCode from DXF” vous allez avoir une foultitude de résultats (79 700 exactement!). Pour une recherche un peu moins restrictive (“GCode generator”) vous obtenez 274 000 résultats! Pourquoi dire qu’il y a beaucoup moins de monde, au vu de ces résultats? Tout simplement parce qu’il s’agit, à 99%, d’utilitaires plus où moins bien ficelés, relativement limités et manquants de souplesse. La encore, votre expérience peut différer, et je vous invite à utiliser le Forum pour partager votre expérience et poser des question à ce sujet. je me limiterais donc, dans cet article, aux 2 outils déjà cités.

CamBam

C’est le but premier de CamBam, parfaitement capable de générer des chemins complexes, tenant correctement compte des fraises utilisées et des machines auxquelles le GCode est destiné. La licence est abordable, et il existe maintenant en Français. Étant largement répandu, il est assez facile de trouver de l’aide à son sujet, notamment au travers de discussions sur Usinages. Le seul véritable inconvénient de CamBam, par rapport à un module intégré comme dans Fusion 360, est que toute modification de dernière minute va nécessiter l’utilisation de plusieurs logiciels et la régénération de fichiers d’échange.

Exemple: j’ai prévu des percements de diamètre 5mm, et je me rends compte qu’il vaut mieux percer à 6mm. Avec CamBam, il faut

  1. Modifier le dessin d’origine dans DraftSight (par exemple)
  2. Exporter en fichier DXF
  3. Aller dans CamBam
  4. Importer le Fichier DXF
  5. Refaire les opérations nécessaires pour générer le GCode depuis ce nouveau fichier.

Fusion 360

Le module CAM de Fusion 360 est pratiquement un rêve devenu réalité. Pour comparer avec les étapes de l’exemple précédent, voici les étapes nécessaires:

  1. Modifier le diamètre des trous dans le module Model
  2. Retourner dans le module CAM et régénérer les chemins d’outils.

C’est tout! N’oubliez pas non plus que vous pouvez directement imprimer (ou faire imprimer par des entreprises spécialisées) en 3D vos objets conçus avec Fusion 360, depuis le module Model. Selon vos besoins, vous pourrez trouver Fusion 360 un peu lourd, même si l’interface utilisateur me semble très réussie. Il y a beaucoup de possibilités, donc beaucoup à apprendre. Mais CamBam demande aussi un apprentissage non négligeable.

Gamme Vectric

Je ne veux pas répéter ce que j’ai écrit plus haut, mais l’ensemble de la gamme Vectric est à classer ici aussi.

Étape 4: Envoi du GCode à la machine CNC

Les étapes 4 et 5 ne sont distinctes, pratiquement, qu’avec GRBL, qui ne comporte pas d’interface utilisateur. Pour tous les autres programmes couramment utilisés par les amateurs et artisans (par différence avec l’industrie), c’est le même logiciel qui va effectuer ces 2 étapes, bien que généralement la partie “envoi des impulsions aux moteurs” va être gérée par le firmware de la carte externe branchée sur le PC. L’étape 4 commence donc avec l’existence d’un fichier GCode (généralement avec une extension .NC où .CNC), dont il nous faut maintenant “faire quelque chose avec”….

Si vous utilisez GRBL, du fait qu’il “tourne” sur un Arduino, vous allez avoir besoin d’un logiciel interface utilisateur, pour communiquer et contrôler GRBL.

  • Panneau de Contrôle GRBL

    • Ce logiciel est le seul a être francisé (à ma connaissance) . Vous pouvez le télécharger ici. Il comporte tous les contrôles nécessaire au pilotage d’une fraiseuse CNC, tels qu’on peut les trouver sur des machines industrielles. Il évolue constamment. Bien qu’il ne comporte pas la visualisation de la pièce travaillée et de la position de l’outil, il reste mon préféré.
  • grblControl / Candle

    • Relativement récent parmi ces logiciels “envoyeurs de GCode”, il a l’avantage de pouvoir fonctionner aussi sur Linux, en plus de Windows. Il permet aussi de visualiser graphiquement le GCode, mais est un peu moins complet en ce qui concerne l’interaction avec GRBL. Vous pouvez le télécharger directement depuis son répertoire GitHub, puisqu’il est Open Source, tout comme GRBLPanel / Panneau de Contrôle GRBL

Comme dit précédemment, il existe de nombreux autres outils remplissant cette fonction. Vous pouvez accéder à la liste ici, complète (ou à très peu près, je crois).

Étape 5: Interprétation du GCode et envoi des impulsions aux pilotes des Moteurs

Ne nous y trompons pas, dans pratiquement tous les cas de figure (pratiquement, parce qu’avec le Raspberry PI et équivalents, on voit commencer à apparaître des solutions complétement intégrées), c’est une carte reliée au PC qui va effectivement envoyer les commandes aux drivers. Et le code se trouve dans le firmware de la carte. Pas vraiment de différences donc avec GRBL, dans le principe. La vraie différence vient du type de liaison entre le PC et la carte électronique (généralement propriétaire), ainsi que du Firmware lui même, bien sûr.

  • Mach3, Mach 4

    • Plus aucun PC, et encore moins de portable/tablette ne comportent maintenant de port parallèle, qui fait un peu figure d’antiquité. Pourtant Mach3, comme Mach4, bien plus récent, ont tous deux besoin d’un port parallèle, dans leurs versions de base. Il existe des plugins et différentes cartes permettant d’utiliser un port USB, mais il me semble préférable d’utiliser un logiciel conçu dès l’origine pour utiliser un port USB où un port Ethernet. Ces logiciels sont complets, même si un peu complexes à mettre en œuvre au départ. Ils peuvent piloter jusqu’à 6 axes, ce qui dépasse très largement les besoins amateurs et même professionnels en fraisage courant.
  • PlanetCNC

    • Alternative relativement peu connue, PlanetCNC conçoit et fabrique ses propres cartes contrôleurs USB, et diffuse son propre logiciel (gratuit) compatible avec ces cartes. L’ensemble est d’un fonctionnement robuste et sans soucis particuliers, après avoir proprement paramétré le logiciel en fonction de sa machine.
  • CNCdrive

    • Alternative intéressante et moderne à Mach3, avec une licence à 55€ en ce moment, le logiciel de CNCdrive, UCCNC peut importer les réglages faits pour Mach3. Certaines des cartes proposées sont compatibles avec Mach3, elles existent pour port USB où pour port Ethernet. L’utilisation d’in port Ethernet comporte plusieurs avantages (par rapport à un port USB), notamment la possibilité d’accroître la distance entre le PC et la carte sans risques, et une connexion plus stable, sans bruits électriques.
  • GRBL

    • Il n’est bien sur pas question d’oublier GRBL, qui est le seul à ne pas avoir besoin de carte propriétaire, mais de l’Open Source Arduino. Un Uno suffit, et le simple fait que toutes ces fonctionnalités “tiennent” dans cette mémoire ridiculement petite est complétement étonnant. La version actuelle, 1.1, est disponilbe sur Github ici. GRBL va évoluer vers l’utilisation d’un Atmel (Arduino Due)

 

Tableau Récapitulatif de possibles composants de votre Chaîne Logicielle

Logiciels / Etapes Conception 2D Conception / Modélisation 3D Génération GCode Envoi GCode Interprétation GCode – Impulsions Moteurs Hardware
InkScape X
DraftSight X
TurboCAD Standard X
SketchUp X (Conception)
SolidWorks X X
Inventor X X
Fusion 360 X X X
Vectric Cut 2 D X X
Vectric VCarve X X
Vectric Aspire X X (Pas de modélisation) X
Vectric Cut3D Lecture uniquement fichiers 3D X
CAMBAM X (Conception simple 2.5D) X
Panneau de Contrôle GRBL X
GrblControl X
GRBL X Arduino Uno – USB-Série
Mach3 et Mach 4 X X Cartes Contrôleurs, Port // ou USB avec Plugin
PlanetCNC X X Carte USB propriétaire
CNCdrive X X Cartes USB et Ethernet

J’espère que cet article aide à clarifier qui fait quoi, et comment. Surtout, n’hésitez pas a commenter et à poser des questions, ci-dessous, dans les commentaires, ou dans le Forum, qui est particulièrement adapté à ce genre de discussion.




Visual Micro pour coder Arduino avec Visual Studio

Je ne sais pas pour vous, mais ces cartes microcontrôleur qui nous envahissent sous différentes formes sont extrêmement séduisantes pour ceux qui aiment “bidouiller”, d’autant qu’elles ouvrent la porte à tout un monde de capteurs divers et variés, circuits, montages, etc. Visual Micro permet de coder ces cartes depuis la Rolls des environnements de développement, Visual Studio.

 Pour quelqu’un qui vient, comme moi, d’une informatique de gestion, principalement, pouvoir faire clignoter une LED avec un petit bout de code à quelque chose de magique. Il était donc logique de s’intéresser à la plus répandue de ces cartes, très bon marché, qui est maintenant toute une famille, l’Arduino. Plus spécifiquement, dans mon cas, l’Arduino Uno, puisque mes besoins ne nécessitent pas plus, mais ce que je vais décrire dans cet article est valable pour toute la famille, et bon nombre de clones.

Au début, je n’ai pas écrit grand chose, comme code, l’environnement de programmation, une application Java disponible sur le site officiel (https://www.arduino.cc/), me convenait très bien dans la mesure où il me permettait facilement de flasher la carte avec les exemples trouvés ici et là.

Au bout de quelque temps, lorsque des idées de projets personnels ont commencées à se bousculer, et donc qu’il me fallait actuellement coder, je n’ai pu m’empêcher de regretter les diverses fonctionnalités présentes dans l’éditeur de Visual Studio. (J’en profite pour indiquer à ceux qui ne le sauraient pas encore, qu’il existe une version gratuite, aussi puissante que la version pro, appelée Visual Studio Community. Disponible ici: https://www.visualstudio.com/fr-fr/products/visual-studio-community-vs.aspx ). La version Community, par différence avec les “anciennes” versions Express, accepte les plugins, et ne vous limite pas à un seul type de développement, comme c’était le cas.

Je me suis donc mis à rêver une extension permettant d’écrire du code pour Arduino, directement depuis Visual Studio. Comme bien souvent, ce rêve correspondait à un réel besoin, je n’étais donc sûrement pas le seul à l’avoir fait. Après quelques recherches (Google is my friend!), j’ai découvert un produit appelé “Visual Micro” http://www.visualmicro.com/, le nom d’un plugin développé exactement dans ce but.

Plus qu’un éditeur dédié à l’Arduino, utilisant les capacité de l’éditeur de Visual Studio, il s’agit d’un véritable environnement pour Arduino et compatibles, intégré à Visual Studio. Ce plugin est gratuit, mais si vous vous en servez régulièrement, vous voudrez sans doute acquérir la version Pro (ce que j’ai fait), elle comporte quelques fonctionnalités supplémentaires, notamment coté debugger.

Voyons donc comment installer, régler, et utiliser cet outil dont je ne pourrais plus me passer, maintenant que je m’y suis habitué.

Pré-requis et Installation

Tout d’abord, il faut que l’environnement Arduino déjà cité soit installé sur votre machine, puisqu’avec lui sont installés un certain nombre d’utilitaires et de librairies qui vont être utilisés par Visual Micro. Les dernières versions de Visual Micro vous permettent de télécharger et d’installer l’IDE Arduino directement depuis l’écran de setup, au cas où vous n’auriez pas encore installé Arduino sur votre machine. Nous allons voir ci-dessous ces différentes étapes, en partant de Visual Studio Community avec Visual Micro gratuit, sur une machine Windows 10 en 64 bits (A ma connaissance, aucune différence avec Windows 7 pour cette installation).

La première fois que vous lancez Visual Studio après avoir téléchargé et installé Visual Micro, l’écran de configuration va apparaître:

Il vous faut entrer les chemins correspondant à votre installation de l’IDE Arduino. Dans mon cas, l’Ide n’étant pas installé sur cette machine, je cliques sur le bouton “Download/Install Ide”, ce qui m’amène à la page de téléchargement du logiciel Arduino, où je choisis l’installateur pour Windows:

Une fois l’environnement Arduino installé, il vous faut indiquer les chemins. Par défaut, C:\Program Files (x86)\Arduino. Vous pouvez tester si votre environnement est correctement réglé dans Visual Micro en ouvrant Visual Micro Explorer (Il y a une nouvelle option dans le menu supérieur de Visual Studio, dénommée “vMicro”). Vous devriez voir la liste de toutes les cartes gérées, ainsi que l’ensemble des librairies installées:

Selon les cas, vous pouvez avoir à localiser l’emplacement où Arduino installe les librairies et “sketches”. Sur ma machine, c’est dans “C:\Users\USERNAME\Documents\Arduino”. Si c’est le cas, il vous faut indiquer ce chemin sur l’onglet “Configure”.

Maintenant, vous pouvez tester pour vérifier si votre installation est correcte. Branchez votre Arduino avec un câble USB, Windows doit le reconnaître (vous avez installé le driver à la fin de l’installation de l’IDE). Chargez un des exemples (Onglet Exemples). Le plus classique est “Blink.ino”. Commencez par créer un nouveau projet: Fichier/Nouveau Projet/ Arduino Project:

Le fichier Blink.ino est créé pour vous, vide. Il faut le supprimer, et faire ajout, pour aller chercher le fichier (déjà ouvert si vous avez cliqué sur son nom depuis Visual Micro Explorer) Si vous passez la souris sur le tab du nom du fichier, dans Visual Studio, le chemin est indiqué. Vous devez copier le fichier pour le mettre dans le répertoire du projet, à moins que vous n’exécutiez Visual Studio en mode Administrateur, ce qui n’est pas vraiment conseillé. Une autre solution est tout simplement de copier le contenu du fichier Blink exemple dans le fichier créé par Visual Studio.

Après avoir vérifié que le Port Com sélectionné est bien celui correspondant à votre Arduino, vous pouvez cliquez sur la petite flèche pour compiler et envoyer le code dans l’Arduino:

La fenêtre de sortie doit vous indiquer après quelque temps la réussite de l’opération, et vous devriez voir la led liée au Port 13 de l’Arduino clignoter toutes les secondes. Ce test est le plus classique parce qu’il ne nécessite aucun matériel en dehors de la carte elle-même.

Quels avantages? (Et éventuels inconvénients?)

Si vous êtes déjà familier avec Visual Studio, vous le savez déjà! Sinon, vous allez vite voir que c’est un excellent, si ce n’est le tout meilleur, environnement de développement actuellement disponible, et ce, complétement gratuitement! Voici une petite liste des fonctionnalités de Visual Micro avec Visual Studio:

  • Complétement compatible avec l’IDE Arduino, chaque projet de l’IDE Arduino est un projet Visual MIcro, et vice versa. Utilise les outils Arduino en arrière plan.
  • Interface utilisateur hautement configurable (Disposition des fenêtres, couleurs et fontes, barres d’outils..)
  • Supporte IntelliSense: Auto-suggestions, auto-complétions et nom des classes lorsque vous tapez
  • Vérification syntaxique “juste à temps”: Détecte, surligne et explique les erreurs de syntaxe immédiatement sans compilation
  • Support pour de multiples fichiers .ino, .cpp par projet, sous-dossiers de projet pour de plus grand projets.
  • Support pour un grand nombre de cartes: Arduino et compatibles, Teensy, Sparkfun, Adafruit, Intel,…
  • Débuggeur unique ( points d’arrêt, traçage, surveillance et changement de variables) [Uniquement dans la version pro, gratuit pendant une période d’essai.] Aucun matériel spécifique requis, fonctionne avec USB comme avec WiFi.
  • Puissant gestionnaire de librairies
    • Télécharge des libraires tierce et les intègres à Visual Micro
    • Recherche de librairies en-ligne
  • Gestionnaire de cartes: Téléchargez le support de nouvelles cartes directement depuis l’IDE, pas d’installation requise
  • Travailles avec plusieurs cartes simultanément
  • Création de nouvelles librairies Arduino en un clic
  • Support pour GIT et TFS
  • Partage de code avec d’autres projets
  • Base installée de plus de 10 000 utilisateurs
  • Support de programmateurs et boot loaders
  • Services Gratuits:
    • Support au travers d’un forum modéré
    • Mises à jour continues et gratuites pour une compatibilité certaine avec les dernières version de l’IDE Arduino
    • Documentation complète
  • Supporte Visual Studio 2012, 2013 et 2015

A cette liste déjà longue, je voudrais ajouter 2 éléments découverts à l’usage,

  1. Utilisation du système de “Solutions” de Visual Studio

Ce qui peut sembler un inconvénient, si on est habitué à l’IDE Arduino, apportant une certaine lourdeur au regard de la simplicité de “télé verser” un simple fichier vers la carte micro-contrôleur, est en fait, à l’usage, un immense avantage. Il est en effet très facile de regrouper divers projets dans la même solution, que ces projets soient Arduino, où pas! Cela vous permet d’avoir, par exemple, plusieurs projets Arduino regroupés sous la même solution. Très facile alors de tester divers exemples, et de développer votre propre code à partir de ceux-ci. Très pratique aussi dans le cas où vous développez un programme Windows dialoguant par communication série avec votre carte. Vous pouvez afficher simultanément les 2 codes l’un à coté de l’autre.

 

  1. Sur cette copie d’écran, vous pouvez voir 5 projets dans la même solution. Deux sont des projets Arduino et trois des projets Windows, comprenant deux librairies. Visual Studio permettant de passer très facilement d’un projet à l’autre (Définir comme projet de démarrage), vous pouvez compiler à la fois pour Windows et pour Arduino depuis la même solution.
  2. 2. Possibilité d’utiliser le contrôle de version, lié à Visual Studio

Si vous n’utilisez pas de système de contrôle de version, vous devriez! Vous pouvez créer un compte Visual Studio Team Services gratuitement et gérer autant de projet que vous voulez. Ce projet peut être partagé avec 4 autres personnes. Le service devient payant au-delà. Ce serait vraiment dommage de se priver de se service, d’autant que vous pouvez choisir d’utiliser Gît.

En guise de conclusion sur Visual Micro

Je ne me vois pas revenir à l’utilisation exclusive de l’IDE Arduino pour mes développements. Le simple fait de bénéficier d’IntelliSense suffirait sans doute à faire pencher la balance, pour moi. Mais toutes les fonctions apportées sont utiles, le contrôle de version étant sans doute dans le tiercé de tête. Si vous codez souvent pour l’Arduino, si vous avez un projet qui vous tient à cœur, essayez Visual Micro, et dites-moi ce que vous en pensez.

Petite précision pour la transparence: je n’ai strictement aucun intérêt financier, ni avec Visual Micro Limited, la société éditrice de ce plugin, ni avec Microsoft.




GRBL

GRBL c’est quoi?

GRBL est un logiciel pour contrôler le mouvement de machines qui font “des trucs”. Si le mouvement Maker était une industrie, GRBL en serait le standard.

La plupart des imprimantes 3D Open-Source sont basées sur GRBL. Il a été adapté pour être utilisé dans des centaines de projets, comprenant des machines à découpe laser, des écritoires manuels automatisés, perceuses, peintre de graffiti et machines à dessins bizarroïdes… En raison de ses performances, de sa simplicité et de sa frugalité en besoins matériels, GRBL a grossi en un vrai petit phénomène Open Source.

Origine

Vous avez peut-être déjà lu ce nom ici où là, si vous vous intéressez à la CNC amateur et à la manière de les contrôler. GRBL est un contrôleur logiciel libre, open-source, haute performance, écrit en C hautement optimisé pour tourner sur un Arduino “standard” (Uno).

Le créateur, Simen Svale Skogsrud explique sur son blog que lorsqu’il commanda sa première fraiseuse pilotée par ordinateur, en 2007, il a été perplexe quant à la manière de la contrôler. La pratique courante à l’époque (qui n’a que peu changée!) était de sauver une vieille boîte beige avec un port parallèle et d’utiliser cela pour envoyer les impulsions aux moteurs. Cela lui apparu juste dépassé. Il voulait un simple système embarqué sur la machine qui dialoguerait en USB avec un ordinateur portable. Ce sont exactement les mêmes raisons qui m’ont poussées à choisir Arduino + GRBL comme solution principale.

Choix du Contrôleur

Simen à choisi l’Arduino pour plusieurs raisons. La plus importante étant que c’était, et c’est toujours, le système embarqué le plus populaire dans la communauté du DIY (Do It Yourself, Faites-le Vous Même). Un ordinateur d’une simplicité touchante.

Pourtant, c’est une machine chétive au regard de la tache a effectuer. Ses 2kb de mémoire sont risibles, même par rapport au standard des années 80.

Voici ce que GRBL doit faire avec ces 2Kb:

  • – Analyser G-Code, un langage ordinateur cryptique né dans les années 50 pour décrire les actions idéalisées d’une fraiseuse
  • – Construire un modèle de ces actions et les traduire en une séquence de mouvements physiquement possible pour une machine donnée.
  • – Exécuter ces mouvements en envoyant un flot continu de pulsions haute fréquence aux moteurs pas à pas qui déplacent effectivement l’outil.

Faire tenir tout ça dans si peu d’espace est un vrai tour de force. Les premières versions de GRBL ont été offertes en Open-Source par Simen en 2009. Depuis 2011, c’est Sungeun K. Jeon Ph.D. (@chamnit) qui est le leader du projet.

GRBL, pour qui?

Pour ceux qui font du fraisage et ont besoin d’un contrôleur simple pour leur système basé sur l’omniprésent Arduino. Ceux qui haïssent d’encombrer leur atelier avec un PC-Tour juste pour le port parallèle. Bricoleurs/Hackers qui veulent un contrôleur écrit en compact et modulaire C comme base de leur projet.

Fonctionnalités

GRBL est prêt pour la production non intensive. Nous l’utilisons pour tous nos fraisages, depuis Laptop où PCs, utilisant d’excellentes interfaces utilisateur. Il est écrit en C optimisé pour utiliser les fonctions intelligentes des puces Atmega328, pour obtenir un timing précis et des fonctions asynchrones. Il est capable de maintenir un taux de pas supérieur à 30kHz, et délivre un courant propre de pulsations de contrôle.

GRBL est pour l’usinage 3 axes. Pas d’axe de rotation (pas encore!) – Juste X, Y et Z.

L’interpréteur G-Code implémente un sous-ensemble du standard NIST rs274/ngc et est testé au travers d’un grand nombre d’outils sans problèmes. Mouvements linéaires, circulaires et hélicoïdaux sont supportés sans problèmes.

  • G-Codes supporté avec v0.9i
    • G38.3, G38.4, G38.5: Sondage
    • G40: Modes de compensation du rayon de coupe
    • G61: Modes de contrôle du chemin de l’outil
    • G91.1: Modes Distance d’Arc IJK
  • G-Codes supportés dans v0.9h
    • G38.2: Sondage
    • G43.1, G49: Décalage dynamique de longueur d’outils
  • G-Codes supportés dans v0.8 (and v0.9)
    • G0, G1: Mouvements Linéaires
    • G2, G3: Mouvements en Arcs et Hélicoïdaux
    • G4: Creuser
    • G10 L2, G10 L20: Réglage des décalages du travail
    • G17, G18, G19: Sélection de plan
    • G20, G21: Unités
    • G28, G30: Va en position pré-définie
    • G28.1, G30.1: Réglage de position pré-définie
    • G53:Mouvement en cordonnées absolues
    • G54, G55, G56, G57, G58, G59: Système des coordonnées du travail
    • G80: Abandonne le mode de Mouvement
    • G90, G91: Modes de distance
    • G92: Décalage des coordonnées
    • G92.1: Efface le décalage du système de coordonnées
    • G93, G94: Modes de taux de débit
    • M0, M2, M30: Pause et termine le programme
    • M3, M4, M5: Contrôle de la broche
    • M8, M9: Contrôle de refroidissement

La plupart des options de configuration peuvent être réglées en fonctionnement et sauvée en mémoire (eeprom) entre les sessions et même conservées entre différentes versions de GRBL lorsque vous mettez à jour le firmware.

Gestion de l’accélération

Dans les débuts, les contrôleurs Arduino n’avaient pas de planification d’accélération, et ne pouvaient pas tourner à pleine vitesse sans difficultés. La gestion constante de l’accélération par GRBL avec son planificateur d’avance a résolu cette issue et a été répliquée partout dans le monde du micro-contrôleur CNC. GRBL utilise intentionnellement un planificateur d’accélération constante simplifié, largement suffisante pour une utilisation amateur. Grace à cela, le temps de développement est utilisé sur les algorithmes de planification et sur l’obtention de la certitude que nos mouvements sont solides et fiables.

Si vous voulez en savoir plus sur GRBL et les fonctionnalités des dernières versions, je vous invite à vous reporter au Wiki original, dont cet article est une traduction partielle.