Transformer votre robot SCARA DIY en graveur laser précis avec Arduino
Présentation du projet
Dans ce tutoriel, je vous montre comment j'ai converti mon robot SCARA imprimé en 3D, construit dans une vidéo précédente, pour qu'il fonctionne comme graveur laser. Vous pouvez regarder la vidéo ci-dessous ou lire l'article.
Vue d'ensemble du projet
Le robot SCARA a 4 degrés de liberté entraînés par 4 moteurs pas-à-pas NEMA 17 et contrôlés par une carte Arduino. Dans la vidéo originale, j'utilisais un Arduino UNO avec un shield CNC, mais maintenant nous utiliserons un Arduino MEGA avec une carte RAMPS. Cette combinaison est nécessaire car nous utiliserons le firmware Marlin d'imprimante 3D pour contrôler le robot.

Côté mécanique, j'ai juste dû remplacer le mécanisme de pince par un module laser. J'utilise ici un module laser de 5,5 W, suffisant pour la gravure.
Une caractéristique intéressante de cette configuration SCARA est qu'on obtient une plus grande amplitude de mouvement sur l'axe Z, permettant de graver des objets plus hauts.

La zone de travail est également impressionnante compte tenu de la faible emprise au sol du robot. Il peut utiliser la zone devant lui ainsi que sur les deux côtés. On peut même le configurer pour utiliser presque 360 degrés autour du robot comme zone de travail, grâce au firmware open-source Marlin qui offre des options pour la gravure laser et la configuration SCARA.

Pour générer les G-codes, j'utilise un autre logiciel open-source : Inkscape et son plugin Inkscape-Lasertools. On peut générer des G-codes avec contours seulement ou avec contours et remplissage à partir de la même image vectorielle, avec diverses options comme l'ajustement du faisceau laser, vitesse de déplacement, vitesse de remplissage, vitesse de périmètre, commandes laser on/off incluant le contrôle PWM, etc.

Je vais maintenant vous guider à travers tout le processus de configuration d'un robot SCARA pour en faire un graveur laser. Nous examinerons la conception de ce robot SCARA, comment installer et configurer le firmware Marlin selon notre machine, et comment préparer les dessins et G-codes pour la gravure. Commençons.
Conception et modèle 3D
Voici un aperçu rapide du modèle 3D de ce robot SCARA pour voir comment il fonctionne, au cas où vous n'auriez pas vu le tutoriel original où j'explique en détail sa construction.

Le robot est conçu pour que la plupart des pièces puissent être facilement imprimées en 3D. Les articulations sont entraînées par des moteurs pas-à-pas NEMA 17 dont la vitesse est réduite par des courroies GT2 et des poulies GT2 imprimées en 3D. Le robot a 4 degrés de liberté, mais dans ce cas, nous n'en avons besoin que de 3 : deux rotations pour atteindre n'importe quel point dans la zone de travail et un mouvement linéaire pour ajuster la hauteur du laser.

La 4ème articulation qui fait pivoter l'effecteur final ne sera pas utilisée, bien que le module laser y soit attaché. J'ai conçu le support du laser de façon que le faisceau soit au centre de rotation de ce 4ème axe, donc même si l'axe tourne, cela n'affectera pas la position finale.

Vous pouvez trouver et télécharger ce modèle 3D, ainsi que l'explorer dans votre navigateur sur Thangs :
Télécharger le modèle 3D d'assemblage depuis Thangs.
Merci à Thangs pour le soutien de ce tutoriel.
Fichiers STL pour l'impression 3D :
Sponsorisé
J'ai conçu ce robot SCARA avec 3DEXPERIENCE SOLIDWORKS for Makers, qui est aussi le sponsor de cette vidéo. Oui, vous avez bien entendu. Avec 3DEXPERIENCE SOLIDWORKS for Makers, SOLIDWORKS propose enfin ses outils de conception leaders de l'industrie aux makers à un prix incroyablement bas.

Les makers peuvent maintenant accéder aux meilleurs outils de conception SOLIDWORKS pour seulement 99 $ par an, mais pour MES spectateurs, SOLIDWORKS propose une offre limitée dans le temps pour obtenir ces outils encore moins cher !
C'est exact. Pour les spectateurs de cette vidéo, vous pouvez obtenir ce pack aujourd'hui – qui inclut une version cloud de SOLIDWORKS, ainsi que des outils de conception basés navigateur comme 3D Creator et 3D Sculptor – à un prix spécial de 20 % de réduction tant qu'il y en a !

Il suffit de cliquer sur mon lien ci-dessous et de créer votre identifiant 3DEXPERIENCE gratuit, ce qui vous permettra d'accéder à cette offre spéciale de 20 % de réduction – pour commencer à créer avec le meilleur dès aujourd'hui. Un grand merci à SOLIDWORKS pour le sponsoring et le soutien de contenu éducatif comme celui-ci.
Découvrir SOLIDWORKS for makers
20 % de réduction sur SOLIDWORKS for makers
Installation du module laser
D'abord, j'ai retiré le mécanisme de pince du robot, maintenu en place par quatre boulons.

Les fils utilisés pour contrôler le servomoteur de la pince serviront maintenant à contrôler le module laser.

Le module laser que j'ai fonctionne en 12V et peut être contrôlé par signal PWM avec seulement deux fils : Masse et VCC. Pour connecter le laser, j'ai utilisé le connecteur fourni avec le module, celui à 3 broches. Le fil noir de gauche est la Masse et le du milieu, le fil blanc dans mon cas, est le VCC. J'ai soudé deux connecteurs mâles sur ces fils pour les brancher facilement aux fils de l'effecteur final.
Puis j'ai simplement mis le connecteur en place, fait passer le fil par une des ouvertures du support, et fixé le module laser avec deux boulons M3. Avec quatre boulons M4, j'ai fixé le module laser au robot.

Ensuite, comme mentionné, au lieu de l'Arduino UNO utilisé dans la vidéo originale, nous avons maintenant besoin d'une carte Arduino MEGA combinée à une carte RAMPS.

Ici, nous devons d'abord sélectionner la résolution de pas des drivers. Pour un mouvement plus fluide, nous devons sélectionner la plus haute résolution possible en ajoutant trois jumpers par driver pas-à-pas. J'utilise le driver A4988 qui a une résolution de 1/16 de pas, mais on peut aussi utiliser le DRV8825 qui a une résolution de 1/32.

Ensuite, nous pouvons connecter tous les fils en place. J'avais tous mes fils étiquetés pour ne pas les mélanger.
Schéma de câblage du graveur laser robot SCARA
Voici le schéma de câblage montrant comment tout doit être connecté.

Les moteurs pas-à-pas vont juste au-dessus des drivers et les fins de course (normalement fermés, deux fils) vont aux broches S et – des endstops pour chaque axe respectivement.
Pour contrôler le module laser, nous utiliserons la broche D9 qui, dans une configuration d'imprimante 3D, sert à contrôler un ventilateur. Cette broche est capable de PWM, donc on peut contrôler l'intensité du laser avec. Pour l'alimentation, nous avons besoin d'une alimentation 12V avec un courant minimum de 3A.
Vous pouvez vous procurer les composants nécessaires pour ce projet via les liens ci-dessous :
- Moteur pas-à-pas – NEMA 17………………
- Driver pas-à-pas A4988…………………..…
- Carte RAMPS 1.6………………………..…
- Arduino MEGA………………….…..………
- Fin de course …………………………………. Amazon / Banggood / AliExpress
- Alimentation DC …………………………. Amazon / Banggood / AliExpress
- Module Laser ………………………………… Amazon / Banggood / AliExpress
- Lunettes de protection laser …………………….. Amazon / Banggod / AliExpress
Pour les composants mécaniques, consultez l'article original.
Une fois tout connecté comme expliqué, j'ai un peu serré les fils et couvert l'électronique pour que tout soit propre et net.

Finalisation de l'assemblage
Il y a une chose de plus à changer sur mon robot SCARA pour qu'il fonctionne correctement : le moment où le fin de course du second bras est déclenché. Comme le robot SCARA sera configuré pour travailler en mode droitier, le homing du second bras doit être à 0 degrés, ou aligné avec le premier bras, tout en pouvant pivoter vers la gauche. Pour cela, j'ai simplement collé un petit morceau sur l'articulation du bras pour qu'il déclenche le fin de course à la position décrite.

En fait, il y a un autre petit détail à changer. Le déclencheur du fin de course original interférait avec un des écrous au bas du bras, empêchant le bras d'atteindre son mouvement complet.

J'ai simplement retiré cet écrou, le remplaçant par un insert fileté pour qu'en revissant la pièce en place, il ne dépasse pas.

Et voilà. Le robot SCARA est maintenant prêt à fonctionner comme graveur laser, mais bien sûr, il faut d'abord installer le firmware sur la carte Arduino.
Voir aussi : Bras robot Arduino avec contrôle par smartphone
Firmware Marlin pour gravure laser avec robot SCARA
Comme dit, j'utiliserai le firmware Marlin, l'un des firmwares open-source les plus utilisés pour imprimantes 3D, qui a aussi des options pour la gravure laser et les configurations SCARA. On peut télécharger Marlin soit depuis son site officiel, soit depuis Github.com.

Pour installer le firmware Marlin sur la carte Arduino MEGA, nous utiliserons PlatformIO IDE au lieu de l'IDE Arduino. Comme le firmware Marlin est volumineux et complexe, l'IDE Arduino peut parfois donner des erreurs et ne pas parvenir à le compiler.

PlatformIO est construit sur l'éditeur Visual Studio Code, et s'installe comme extension. Il faut donc d'abord installer Visual Studio Code, puis chercher PlatformIO dans le gestionnaire d'extensions et l'installer.

Une fois l'installation terminée, on clique sur le bouton Open Project, on navigue vers le dossier Marlin téléchargé et décompressé, et on clique sur « Open Marlin ».

Cela charge tous les fichiers Marlin dans l'éditeur pour qu'on puisse les ouvrir et les modifier. Les deux fichiers principaux où on fait tous les ajustements selon notre configuration sont Configuration.h et Configuration_adv.h.

En fait, avant d'ouvrir le dossier Marlin, il faut d'abord aller sur le dépôt Configuration sur Github.com d'où on peut télécharger des fichiers de configuration pré-testés qui nous conviennent. Dans le dossier « Examples », aller dans le dossier « SCARA » et copier ces deux fichiers de configuration pour les coller dans notre dossier Marlin.
Voir aussi : Comment configurer GRBL et contrôler une machine CNC avec Arduino
Configuration du firmware Marlin
Une fois qu'on a rouvert le dossier Marlin avec les fichiers de configuration « SCARA », on peut ouvrir Configuration.h et modifier certains paramètres selon notre machine. La première chose est de sélectionner le type de robot SCARA.
/** * MORGAN_SCARA a été développé par QHARLEY en Afrique du Sud en 2012-2013. * Implémenté et légèrement retravaillé par JCERNY en juin 2014. */ //#define MORGAN_SCARA /** * Mostly Printed SCARA est un design open source par Tyler Williams. Voir : * https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */ #define MP_SCARA #if EITHER(MORGAN_SCARA, MP_SCARA) // Si le mouvement est saccadé, essayez de baisser cette valeur #define SCARA_SEGMENTS_PER_SECOND 100 // Longueur des bras de support intérieur et extérieur. Mesurez les longueurs des bras précisément. #define SCARA_LINKAGE_1 228.15 // Longueur bras 1 - 228(mm) #define SCARA_LINKAGE_2 136.2 // Longueur bras 2 - 136.5(mm) // Décalage tour SCARA (position de la tour par rapport à la position zéro du plateau) // Cela doit être raisonnablement précis car cela définit la position du plateau dans l'espace SCARA. #define SCARA_OFFSET_X 300 // (mm) #define SCARA_OFFSET_Y 150 // (mm)Langage : Arduino (arduino)
Le « MORGAN_SCARA » est pour un robot SCARA parallèle et le « MP_SCARA » pour un robot SCARA en série, comme celui que nous avons. Cela est basé sur un design open-source de Tyler Williams qui implémente la cinématique inverse sur les G-codes générés pour des systèmes cartésiens normaux.
Dans mon tutoriel précédent, j'ai déjà expliqué ce qu'est la cinématique inverse et comment elle fonctionne avec ce robot SCARA, pour plus de détails consultez ce tutoriel. En bref, avec la cinématique inverse, on calcule à quels angles les deux bras doivent se positionner pour atteindre une coordonnée X, Y donnée. Les mathématiques derrière la cinématique inverse sont basées sur la trigonométrie, et le résultat dépend uniquement des longueurs des deux bras.

Cela dit, ici nous devons entrer la longueur des bras du robot, dans ce cas 228 mm pour le premier bras et 136,5 mm pour le second. Le paramètre suivant à régler est la position zéro du plateau de travail. Cette valeur est entrée avec SCARA_OFFSET_X et Y et c'est la distance depuis la tour ou la première articulation par rapport à la position zéro du plateau.
Il y a un autre ensemble de paramètres à ajuster : MANUAL_X_HOME_POS pour X et Y. Ces valeurs sont les distances X et Y depuis l'effecteur final du robot (ou le laser) en position home, par rapport à la position zéro du plateau qu'on vient de définir. Pour obtenir ces valeurs, j'ai fait un croquis simple dans SOLIDWORKS avec deux lignes représentant les deux bras du robot SCARA.

Depuis là, on peut définir la position zéro du plateau souhaitée et obtenir les valeurs pour les variables MANUAL_X_HOME_POS.
Ensuite, nous devons définir les connecteurs de fin de course. Dans notre cas, nous avons un fin de course par axe, à la position minimum.
#define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUGLangage : Arduino (arduino)
En plus, nous devons définir X_HOME_DIR à –1 qui indique la direction des fins de course lors du homing.
// Direction des fins de course lors du homing ; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1Langage : Arduino (arduino)
Ici, nous devrions aussi vérifier que toutes les variables __MIN_ENDSTOP_INVERTING sont à « FALSE ».
Puis nous devons ajuster les valeurs DEFAULT_AXIS_STEPS_PER_UNIT pour qu'elles correspondent à notre machine.
#define DEFAULT_AXIS_STEPS_PER_UNIT { 177.7777777, 142.2222222, 400, 93 }Langage : Arduino (arduino)
Ces valeurs indiquent combien de pas le programme doit envoyer aux drivers pour que le moteur bouge d'une unité, ici une rotation d'un degré de l'articulation. Voici comment j'ai calculé ces valeurs pour mon robot SCARA.

Les moteurs pas-à-pas NEMA 17 font 200 pas pour une rotation complète, mais avec une résolution de 1/16 de pas, il faut envoyer 3200 pas au driver pour une rotation complète de 360 degrés. De plus, pour la première articulation, nous avons une réduction de 20:1, ce qui signifie 64000 pas pour une rotation complète. En divisant par 360, on obtient 177,777, qui est le nombre de pas que le programme doit envoyer pour faire tourner l'articulation d'une unité (un degré).
Le second bras a une réduction de 16:1, donc la valeur sera 142,222. Pour l'axe Z, nous avons une vis de guidage au pas de 8 mm, ce qui signifie qu'une rotation complète du moteur donne 8 mm de mouvement linéaire. Une unité ici est 1 mm, donc on divise 3200 par 8 pour obtenir 400, le nombre de pas pour que l'axe Z bouge d'une unité (1 mm). La quatrième valeur est pour l'extrudeur, mais comme nous n'en avons pas, on n'a pas à la changer.
La direction du moteur dépend de comment on a branché les fils. Si c'est inversé, on peut soit inverser les fils, soit le changer ici en logiciel en mettant les variables INVERT_X_DIR à TRUE.
// Inverser la direction du pas-à-pas. Changer (ou inverser le connecteur du moteur) si un axe va dans le mauvais sens. #define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR falseLangage : Arduino (arduino)
Il faut faire quelques changements supplémentaires pour que ce firmware Marlin fonctionne. Comme Marlin est principalement un firmware pour imprimantes cartésiennes classiques, le mode SCARA a quelques petits bugs non résolus au moment de ce projet. Voici les changements que j'ai faits pour le faire fonctionner.
Dans scara.cpp, ligne 75, j'ai remplacé MORGAN_SCARA par MP_SCARA. Dans motion.cpp, j'ai mis en commentaire les lignes 1716 et 1717, dans configuration.h mis en commentaire VALIDATE_HOMING_ENDSTOPS, et dans configuration_adv.h décommenté QUICK_HOME.
Même avec ces changements, le homing ne fonctionnait pas encore 100 % correctement, mais j'expliquerai l'astuce que j'ai utilisée pour le faire marcher.
Néanmoins, maintenant on peut cliquer sur le bouton Upload en bas à gauche de l'éditeur et le firmware Marlin sera installé sur la carte Arduino. Vous pouvez télécharger ce firmware Marlin particulier avec tous mes changements pour qu'il fonctionne avec ce robot SCARA ci-dessous, ou bien sûr, télécharger le Marlin original depuis Github.com et faire tous les changements vous-même comme expliqué.
Logiciel de contrôle – Repetier-Host
Très bien, une fois le firmware Marlin installé, nous avons besoin d'un programme pour contrôler le robot et envoyer des G-codes. Il y a plusieurs options, mais j'ai choisi Repetier-Host, un logiciel d'impression 3D populaire. On peut le télécharger et l'utiliser gratuitement. Une fois installé, on va dans Config > Paramètres de l'imprimante et on règle plusieurs choses.

Il faut sélectionner le port COM auquel l'Arduino est connecté et le Baud Rate défini dans le firmware Marlin. Dans l'onglet Forme de l'imprimante, on doit définir les valeurs max X et Y et la Zone d'impression.
Une fois ces paramètres appliqués, on clique sur Connecter et le logiciel devrait se connecter à notre robot SCARA. Puis on va dans l'onglet Contrôle manuel et on essaie de déplacer l'imprimante.

Notez qu'en appuyant sur les flèches X ou Y, le robot peut se comporter bizarrement car il implémente la cinématique inverse immédiatement, et bougera probablement les deux bras même si on appuie sur une seule flèche.
Néanmoins, pour faire fonctionner le robot, il faut d'abord le référencer (homing). Avant de cliquer sur le bouton Home, on doit manuellement amener les articulations près des fins de course.

Quand on clique sur Home, le robot devrait commencer à bouger vers les fins de course. En fait, le second bras commence à bouger vers son fin de course pendant que le premier bras doit bouger en sens inverse. Une fois que le second bras (axe Y) atteint son fin de course, le premier bras (axe X) commence alors à bouger vers le sien. Une fois le fin de course X atteint, le robot va vers le fin de course Z.
Après le homing, on devrait pouvoir commencer à graver ou déplacer manuellement le robot dans sa zone de travail. Cependant, si on essaie de faire quoi que ce soit tout de suite, pour une raison quelconque le robot se comportera mal et fera des mouvements étranges. Pour éviter ce comportement, après le homing, il faut juste déconnecter le robot du logiciel et le reconnecter.
Maintenant, on peut déplacer manuellement ou graver et le robot fonctionnera correctement. C'est probablement un bug dans le firmware Marlin, présent parce que le mode SCARA n'est pas bien supporté faute d'intérêt.
Néanmoins, si on envoie la commande G-code G00 X0 Y0, le robot devrait aller à sa position zéro, celle qu'on a définie dans Configuration.h.

Puis on peut activer le laser en envoyant la commande M106 S10. La valeur après S peut aller de 0 à 255 et c'est en fait le contrôle PWM de la puissance du laser de 0 à 100 %. On utilise une valeur de S10 pour qu'il ne brûle rien mais qu'il soit visible pour voir la position zéro et ajuster le focus du laser.

Le focus peut être ajusté manuellement en tournant l'objectif du laser en bas et dépend aussi de la distance entre lui et la pièce. Il est recommandé de régler une distance d'environ 5 cm et d'ajuster le focus jusqu'à obtenir le point le plus petit possible.
Gravure laser avec le robot SCARA
Pour calibrer la machine, c'est une bonne idée de commencer par graver un carré simple pour voir si ça marche bien.

À mon premier essai, le carré n'était pas à la bonne position et orientation car j'avais mis une mauvaise valeur pour MANUAL_X_HOME_POS. Une fois corrigé, le carré est sorti proche de ce qu'il devait être.
J'ai chargé un G-code de mon logo et lancé la gravure.

Honnêtement, voir ce robot SCARA travailler comme graveur laser est vraiment cool, mais notez qu'on DOIT utiliser des lunettes de protection laser pour protéger nos yeux de la lumière UV du laser, c'est très dangereux. Aussi, on doit utiliser un masque respiratoire de sécurité et travailler en espace ouvert ou pièce bien ventilée, car les fumées produites pendant la gravure laser sont aussi dangereuses pour la santé.
Néanmoins, la gravure du logo est bien sortie, mais j'ai remarqué qu'elle n'était pas totalement carrée.

Je suis revenu à la gravure du carré simple pour trouver la cause. J'ai réalisé que le problème vient des dimensions des longueurs des bras. Comme le robot n'est pas très rigide, quand les bras sont étendus, leur poids fait pencher le robot légèrement vers l'avant. Cela cause une légère déviation de la position réelle des bras.

Après des dizaines de tests, j'ai fini par ajuster les valeurs de 228 à 228,15 mm pour le premier bras, et de 136,5 à 136,2 mm pour le second. Cela m'a donné le résultat le plus précis et le carré était correct. Toutefois, selon l'emplacement de l'impression, si le bras est totalement étendu ou non, la précision peut encore varier.
Génération de G-code pour la gravure laser
Enfin, laissez-moi vous montrer comment j'ai préparé les dessins et généré les G-codes pour la gravure. J'ai utilisé Inkscape, un logiciel de graphisme vectoriel open-source.
Ici, il faut d'abord régler la taille de la page à la taille de notre zone de travail. En exemple, je vais vous montrer comment j'ai préparé le logo Arduino pour la gravure laser.

J'ai téléchargé une image du logo Arduino et l'ai importée dans Inkscape. Avec la fonction Vectoriser le bitmap, on convertit d'abord l'image en format vectoriel. On ne peut générer des G-codes qu'à partir de formes vectorielles, et pour cela j'ai utilisé un plugin appelé Inkscape-Lasertools. On peut télécharger ce plugin depuis Github.com et l'installer en copiant les fichiers du zip dans le répertoire extensions d'Inkscape.
Une fois le plugin installé, on va dans Extensions > Lasertools pour l'ouvrir et l'utiliser pour générer un G-code. Il y a plusieurs options à régler. Comme nous avons connecté notre laser à la broche D9 (utilisée pour un ventilateur), on peut activer le laser en envoyant la commande M106.

On peut choisir si le G-code ne contiendra que les contours de la forme ou aussi le remplissage sur les boucles fermées. On peut régler la vitesse de déplacement du laser, la vitesse de remplissage et la vitesse de périmètre.
En choisissant un remplissage, si on veut baisser l'intensité du laser dans la zone de remplissage, on peut ajouter une valeur PWM à la commande M106 pour régler l'intensité, par exemple M106 S128 pour 50 % de puissance laser. On pourrait obtenir un effet similaire en laissant la puissance laser à 100 % mais en augmentant la vitesse de déplacement dans la zone de remplissage. Ce sont des réglages à tester pour voir ce qui marche le mieux.
Dans l'onglet Préférences, on peut sélectionner « Supprimer les petits chemins de remplissage », et dans l'onglet Cadre, sélectionner « Générer G-code pour aperçu du cadre ». Cette fonction est très utile car elle génère un G-code d'aperçu de la zone où le dessin aura lieu, pour positionner précisément la pièce.
Ok, une fois le G-code généré, on le charge dans Repetier-Host. Comme ce n'est pas de l'impression 3D mais juste des déplacements, on doit cocher « Afficher les déplacements » pour prévisualiser le G-code.

On peut enfin cliquer sur « Imprimer » et notre robot SCARA gravera la pièce. Comme dit, regarder ce robot graver est très satisfaisant et on peut graver beaucoup de choses avec.

Une bonne fonctionnalité est l'axe Z ajustable, ce qui permet de graver des objets plus hauts, comme cette boîte en bois pour mes mèches Forstner. J'ai gravé mon logo sur le devant et un texte « Forstner bits » au dos.

Voici un exemple de gravure de la même forme vectorielle, une silhouette de Batman, avec seulement les contours et avec remplissage sur boucles fermées.

Bien sûr, la gravure avec remplissage prend beaucoup plus de temps mais le rendu final est bien meilleur.
Enfin, laissez-moi vous montrer comment j'ai gravé ce grand dessin de 600x450 mm avec ce robot SCARA.

J'ai placé le robot sur la pièce pour qu'il atteigne le devant et les deux côtés. J'ai ajusté manuellement la pièce et le robot pour qu'ils soient au milieu et parallèles.

Dans le firmware Marlin, j'ai défini la position zéro au coin en bas à gauche de la pièce, à 300 mm du robot en X et 150 mm en Y. Attention aux signes pour ces valeurs. Selon cela, j'ai aussi changé les variables MANUAL_X et Y_HOME_POS.
Après avoir flashé le firmware avec ces nouvelles valeurs, j'ai fait le homing comme expliqué et envoyé le laser à la position zéro. Puis j'ai activé le laser pour ajuster l'orientation de la pièce si besoin.

En envoyant des commandes G01 (lignes droites), je pouvais vérifier et ajuster le positionnement de la pièce.
Pour préparer le G-code de cette gravure, j'ai fait un modèle avec cette configuration de la pièce et du robot dans Inkscape. De là, je vois où le robot peut atteindre avec le laser et modifier le dessin en conséquence.

Pour le dessin, j'ai téléchargé une image et la convertie en vectoriel avec l'outil Vectoriser le bitmap.

Puis j'ai redimensionné et positionné l'image comme je voulais, et avec l'outil Gomme, j'ai supprimé les zones où est le robot et celles hors de sa portée.

Puis j'ai généré le G-code et laissé la machine faire son travail. Cela a pris 4 heures pour graver ce dessin.

Une fois fini, je voulais remplir la zone vide où était le robot. Pour cela, j'ai repositionné le robot et la pièce, ainsi que changé les paramètres Marlin pour que la nouvelle zone de travail soit cet espace vide.

Dans l'ensemble, cette méthode demande du travail pour la configurer, mais ça marche très bien. J'aime beaucoup le résultat de cette gravure.
Conclusion
Pour conclure, bien qu'il y ait eu des problèmes avec le firmware, j'ai trouvé des contournements pour faire fonctionner ce robot SCARA comme graveur laser. Si on regarde de plus près la gravure, on voit qu'elle est loin d'être parfaite.

Le robot n'est pas très rigide et a du jeu, donc on ne peut pas obtenir des mouvements précis et fluides. Cependant, ce qu'on a appris ici peut s'appliquer à n'importe quel robot SCARA pour obtenir de meilleurs résultats.
J'espère que vous avez apprécié ce tutoriel et appris quelque chose. N'hésitez pas à poser vos questions dans les commentaires et consultez ma collection de projets Arduino.
Processus de fabrication
- Construire une horloge Numitron rétro avec Arduino : simple, fiable et économe en énergie
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Contrôlez votre Roomba Create 2 avec Arduino et Android – Guide pas à pas
- Construire un voltmètre DIY avec Arduino et écran Nokia 5110
- MobBob : Construisez votre propre robot Arduino, contrôlé via smartphone Android
- Construire une roue de mesure précise avec Arduino Nano et encodeur rotatif
- Construisez un moniteur de qualité d'air précis avec le capteur Sharp GP2Y1010AU0F
- Jeu Pong 1D avec Arduino et bande LED WS2812 – Tutoriel DIY pas à pas
- Bras robotique Arduino contrôlé par gestes manuels – Construction DIY pas à pas