Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Gravure au laser avec le robot DIY Arduino SCARA

Dans ce tutoriel, je vais vous montrer comment j'ai converti mon bras de robot SCARA imprimé en 3D que j'ai construit dans l'une de mes vidéos précédentes pour qu'il fonctionne comme un graveur laser. Vous pouvez regarder la vidéo suivante ou lire l'article ci-dessous.

Aperçu du projet

Le robot SCARA a 4 degrés de liberté qui sont entraînés par 4 moteurs pas à pas NEMA 17 et contrôlés à l'aide d'une carte Arduino. Dans la vidéo originale, j'ai utilisé une carte Arduino UNO en combinaison avec un CNC Shield, mais maintenant nous allons utiliser une carte Arduino MEGA en combinaison avec une carte RAMPs. Nous avons besoin de cette combinaison car nous utiliserons le firmware de l'imprimante 3D Marlin pour contrôler le robot.

Quant à la partie mécanique, j'ai juste eu à changer le mécanisme de préhension par un module laser. Dans ce cas, j'utilise un module laser de 5,5 W qui est assez bon pour la gravure.

Une fonctionnalité intéressante que nous obtenons avec cette configuration de robot SCARA est que nous pouvons avoir une plus grande plage de mouvement de l'axe Z et ainsi nous pouvons graver au laser des objets plus grands.

De plus, la zone de travail est assez impressionnante compte tenu du faible encombrement du robot. Il peut utiliser la zone devant lui ainsi que des deux côtés. Nous pouvons en fait le configurer pour utiliser la quasi-totalité des 360 degrés autour du robot comme zone de travail. Nous pouvons le faire grâce au micrologiciel de l'imprimante 3D Marling open-source qui propose des options pour la gravure au laser et la configuration du robot SCARA.

Pour générer les codes G, j'utilise encore un autre logiciel open-source, Inkscape et un plugin appelé Inkscape-Lasertools. Nous pouvons générer des codes G avec des contours uniquement ou avec des contours et un remplissage à partir de la même image vectorielle, et nous avons diverses options comme le réglage du faisceau laser, la vitesse de déplacement, la vitesse de remplissage, la vitesse périmétrique, les commandes d'activation et de désactivation du laser, y compris le contrôle PWM du laser et ainsi de suite.

Néanmoins, je vais maintenant vous guider tout au long du processus de configuration d'un robot SCARA pour travailler comme graveur laser. Nous allons voir la conception de ce robot SCARA, comment installer et configurer le firmware Marlin en fonction de notre machine, et comment préparer les dessins et les G-codes pour la gravure. Alors, commençons.

Conception et modèle 3D

Voici un aperçu rapide du modèle 3D de ce robot SCARA afin que vous puissiez voir comment cela fonctionne au cas où vous n'auriez pas regardé le tutoriel original où j'explique en détail comment je l'ai construit.

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

La 4e articulation qui fait tourner l'effecteur terminal ne sera pas utilisée, bien que le module laser y soit fixé. J'ai fabriqué le support pour le laser de manière à ce que le faisceau laser soit au centre de rotation de ce 4e 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échargez le modèle 3D d'assemblage à partir de Thangs.

Merci Thang d'avoir soutenu ce tutoriel.

Fichiers STL pour l'impression 3D :

Sponsorisé


J'ai conçu ce robot SCARA à l'aide de 3DEXPERIENCE SOLIDWORKS for Makers, qui est également le sponsor de cette vidéo. Oui, vous avez bien entendu. Avec 3DEXPERIENCE SOLIDWORKS for Makers, SOLIDWORKS propose enfin ses outils de conception de pointe aux créateurs de tous types à un prix incroyablement bas.

Les créateurs peuvent désormais accéder aux meilleurs outils de conception SOLIDWORKS pour seulement 99 $ par an, mais pour MES spectateurs, SOLIDWORKS propose une offre à durée limitée qui vous permettra d'obtenir ces outils encore moins cher !

C'est vrai. Pour les spectateurs de cette vidéo, vous pouvez obtenir ce lot aujourd'hui - qui comprend une version connectée au cloud de SOLIDWORKS, ainsi que des outils de conception basés sur un navigateur comme 3D Creator et 3D Sculptor - à un prix spécial de 20 % jusqu'à épuisement des stocks !

Tout ce que vous avez à faire est de cliquer sur mon lien suivant et de créer votre ID 3DEXPERIENCE gratuit, qui vous permettra d'accéder à cette offre spéciale de 20 % de réduction - afin que vous puissiez commencer à faire avec le meilleur dès aujourd'hui. Un grand merci à SOLIDWORKS pour le parrainage et le soutien de contenus éducatifs comme celui-ci.

Découvrez SOLIDWORKS pour les créateurs

20 % de réduction sur SOLIDWORKS pour les créateurs


Installation du module laser

Tout d'abord, j'ai retiré le mécanisme de préhension du robot qui était maintenu en place par quatre boulons.

Les fils utilisés pour contrôler le servo de la pince seront maintenant utilisés pour contrôler le module laser.

Le module laser particulier que j'ai fonctionne à 12V et peut être contrôlé à l'aide d'un signal PWM avec seulement deux fils, Ground et VCC. Pour connecter le laser, j'ai utilisé le connecteur fourni avec le module, celui avec les 3 broches. Le fil noir de gauche est la masse et le milieu, le fil blanc dans mon cas est le VCC. J'ai soudé deux connecteurs de fil de cavalier mâles à ces fils afin de pouvoir les connecter facilement aux fils de l'effecteur terminal.

Ensuite, j'ai simplement mis le connecteur en place, passé le fil à travers l'une des ouvertures du support et fixé le module laser avec deux boulons M3. À l'aide de quatre boulons M4, j'ai fixé le module laser au robot.

Ensuite, comme je l'ai mentionné plus tôt, au lieu de la carte Arduino UNO que j'ai utilisée pour contrôler le robot dans la vidéo originale, nous avons maintenant besoin d'une carte Arduino MEGA et d'une combinaison avec une carte RAMPS.

Ici, nous devons d'abord sélectionner la résolution de pas des pilotes. Bien sûr, pour un mouvement plus fluide, nous devons sélectionner la résolution la plus élevée possible en ajoutant trois cavaliers pour chaque pilote pas à pas. J'utilise le pilote pas à pas A4988 qui a une résolution de 16 étapes, mais nous pouvons également utiliser le pilote pas à pas DRV8825 qui a une résolution de 1/32 étapes.

Ensuite, nous pouvons connecter tous les fils en place. J'ai fait marquer tous mes fils pour ne pas les gâcher.

Schéma du circuit du robot graveur laser SCARA

Voici le schéma de circuit de la façon dont tout doit être connecté.

Les moteurs pas à pas vont juste au-dessus des pilotes et les interrupteurs de fin de course qui sont normalement fermés avec deux fils vont aux butées S et - broches pour chaque axe respectivement.

Pour contrôler le module laser, nous utiliserons la broche D9 qui, dans une configuration d'imprimante 3D, est utilisée pour contrôler un ventilateur. Cette broche est compatible PWM afin que nous puissions contrôler l'intensité du laser avec elle. Pour tout alimenter, nous avons besoin d'une alimentation 12V avec un courant minimum de 3A.

Vous pouvez obtenir les composants nécessaires à ce projet à partir des liens ci-dessous :

  • Moteur pas à pas – NEMA 17……………… 
  • Pilote pas à pas A4988…………………..… 
  • Carte RAMPS 1.6………………………..…
  • Arduino MEGA………………….…..………
  • Interrupteur de fin de course …………………………………. AmazonBanggood  / AliExpress
  • Alimentation CC …………………………. Amazon  / Bonjour  / AliExpress
  • Module laser ………………………………………… Amazon / Banggood / AliExpress
  • Lunettes de protection laser …………………….. Amazon / Banggod / AliExpress

En ce qui concerne les composants mécaniques, vous pouvez consulter l'article d'origine.

Une fois que j'ai tout connecté comme expliqué, j'ai serré un peu les fils et recouvert l'électronique pour que tout soit beau et propre.

Finir l'assemblage

Il y a encore une chose que je devais changer sur mon robot SCARA pour qu'il fonctionne correctement, et c'est de changer le moment où le deuxième interrupteur de fin de course du bras est déclenché. Comme le robot SCARA sera réglé pour fonctionner en tant que droitier, la prise d'origine du deuxième bras doit être à 0 degré, ou alignée avec le premier bras, tout en pouvant tourner vers la gauche. Pour cela, j'ai simplement collé un petit morceau à l'articulation du bras afin qu'il déclenche l'interrupteur de fin de course à la position décrite.

En fait, il y a encore un petit détail que je devais changer. La gâchette d'origine de l'interrupteur de fin de course interférait avec l'un des écrous au bas du bras, de sorte que le bras ne pouvait pas atteindre son mouvement complet.

J'ai simplement retiré cet écrou, je l'ai remplacé par un insert fileté afin que lors de la fixation de la pièce en place, elle ne dépasse pas.

Et c'est tout. Le robot SCARA est maintenant prêt à fonctionner comme un graveur laser, mais bien sûr, nous devons d'abord installer le firmware sur la carte Arduino.

Voir également : Bras de robot Arduino DIY avec contrôle par smartphone

Micrologiciel Marlin pour la gravure au laser avec le robot SCARA

Comme je l'ai dit, j'utiliserai le micrologiciel Marlin qui est l'un des micrologiciels open source les plus utilisés pour les imprimantes 3D, qui propose également des options pour la gravure au laser et les configurations de robot SCARA. Nous pouvons télécharger le firmware Marlin depuis son site officiel ou Github.com.

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

PlarformIO est construit au-dessus de l'éditeur de code Visual Studio et peut être installé en tant qu'extension de celui-ci. Cela signifie que nous devons d'abord installer Visual Studio Code, puis rechercher le PlatformIO dans le gestionnaire d'extensions et l'installer à partir de là.

Une fois l'installation terminée, nous pouvons cliquer sur le bouton Ouvrir le projet, accéder au dossier Marlin que nous avons téléchargé et décompressé, puis cliquer sur "Ouvrir Marlin".

Cela chargera tous les fichiers Marlin dans l'éditeur et nous pourrons ainsi les ouvrir et les modifier. Les deux fichiers principaux où nous effectuons tous les ajustements en fonction de la configuration de notre machine sont les fichiers Configuration.h et Configuration_adv.h.

En fait, avant d'ouvrir le dossier Marlin, nous devons d'abord accéder au référentiel de configuration sur Github.com à partir duquel nous pouvons télécharger des fichiers de configuration pré-testés qui nous conviennent. Dans le dossier "Exemples", nous devons aller dans le dossier "SCARA" et copier ces deux fichiers de configuration et les coller dans notre dossier Marlin.

Voir également : Comment configurer GRBL #038 ; Contrôler une machine CNC avec Arduino

Configuration du micrologiciel Marlin

Ainsi, une fois que nous avons rouvert le dossier Marlin avec les fichiers de configuration "SCARA", nous pouvons ouvrir le fichier Configuration.h et modifier certains paramètres en fonction de notre machine. La première chose ici est de sélectionner le type de robot SCARA dont nous disposons.

/**
 * MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013.
 * Implemented and slightly reworked by JCERNY in June, 2014.
 */
//#define MORGAN_SCARA

/**
 * Mostly Printed SCARA is an open source design by Tyler Williams. See:
 *   https://www.thingiverse.com/thing:2487048
 *   https://www.thingiverse.com/thing:1241491
 */
#define MP_SCARA

#if EITHER(MORGAN_SCARA, MP_SCARA)
  // If movement is choppy try lowering this value
  #define SCARA_SEGMENTS_PER_SECOND 100

  // Length of inner and outer support arms. Measure arm lengths precisely.
  #define SCARA_LINKAGE_1  228.15  // Arm 1 lenght - 228(mm)
  #define SCARA_LINKAGE_2 136.2    // Arm 2 lenght - 136.5(mm)

  // SCARA tower offset (position of Tower relative to bed zero position)
  // This needs to be reasonably accurate as it defines the printbed position in the SCARA space.
  #define SCARA_OFFSET_X    300       // (mm)
  #define SCARA_OFFSET_Y    150       // (mm)Code language: Arduino (arduino)

Le "MORGAN_SCARA" est pour le robot SCARA parallèle et le "MP_SCARA" est pour le robot SCARA série, tout comme celui que nous avons. Ceci est basé sur une conception open-source de Tyler Williams qui implémente une cinématique inverse sur les codes G générés pour les systèmes cartésiens normaux.

Dans mon précédent didacticiel, j'ai déjà expliqué ce qu'est la cinématique inverse et son fonctionnement avec ce robot SCARA. Pour plus de détails, vous pouvez consulter ce didacticiel. En bref, avec la cinématique inverse, nous calculons à 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 de la longueur des deux bras.

Cela étant dit, nous devons ici entrer la longueur des bras du robot, et dans ce cas, c'est 228 mm pour le premier bras et 136,5 mm pour le deuxième bras. Le paramètre suivant que nous devons définir est la position zéro du banc de travail. Cette valeur est entrée avec les valeurs SCARA_OFFSET_X et Y et c'est la distance de la tour ou du premier joint par rapport à la position zéro du lit.

Il y a un autre ensemble de paramètres que nous devons ajuster en fonction de notre machine, et c'est le MANUAL_X_HOME_POS pour X et Y. Ces valeurs sont les distances X et Y de l'effecteur d'extrémité du bras du robot ou du laser lorsqu'il est en position d'origine, par rapport à la position zéro du lit que nous avons définie précédemment. Afin d'obtenir ces valeurs, j'ai fait un croquis simple dans SOLIDWORKS avec les deux lignes représentant les deux bras du robot SCARA.

À partir de là, vous pouvez définir la position zéro du lit souhaitée et obtenir les valeurs des variables MANUAL_X_HOME_POS.

Ensuite, nous devons définir les connecteurs de butée. Dans notre cas, nous avons une butée pour chaque axe, qui est à la position minimale.

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUGCode language: Arduino (arduino)

En plus de cela, nous devons définir X_HOME_DIR sur -1 qui indique la direction des butées lors de la prise d'origine.

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1Code language: Arduino (arduino)

Ici, nous devons également vérifier si toutes les variables __MIN_ENDSTOP_INVERTING sont définies sur "FALSE".

Ensuite, 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 }Code language: Arduino (arduino)

Ces valeurs indiquent le nombre de pas que le programme doit envoyer aux pilotes pas à pas pour que le moteur se déplace d'une unité, et dans ce cas, il s'agit d'une rotation de l'articulation d'un degré. Voici comment j'ai calculé ces valeurs pour mon robot SCARA.

Les moteurs pas à pas NEMA 17 prennent 200 pas pour une rotation complète, mais comme nous utilisons une résolution de 16e pas, cela signifie que nous devons envoyer 3200 pas au pilote pour que le moteur effectue une rotation complète de 360 ​​degrés. En plus de cela, pour le premier joint, nous avons une réduction de vitesse de 20:1, ce qui signifie que nous avons besoin de 64 000 pas pour une rotation complète. Si nous divisons cette valeur par 360, nous obtiendrons le nombre 177,777, qui est en fait le nombre d'étapes que le programme doit envoyer au pilote afin de faire pivoter le joint d'une unité ou d'un degré.

Le deuxième bras a une réduction de vitesse de 16:1, la valeur sera donc de 142,222. Pour l'axe Z, nous avons une vis mère avec un pas de 8 mm, ce qui signifie qu'une rotation complète du moteur entraînera une surveillance linéaire de 8 mm. Une unité ici est un mm, nous devons donc diviser les 3200 pas par 8, et nous obtenons ainsi la valeur de 400, qui est le nombre de pas nécessaires pour que l'axe Z se déplace d'une unité ou d'un mm. La quatrième valeur ici concerne le moteur pas à pas de l'extrudeur, mais comme nous n'avons pas d'extrudeur ici, nous n'avons pas à le modifier.

La direction du moteur pas à pas dépend de la façon dont nous avons connecté les fils. En cas d'erreur, nous pouvons soit inverser les fils, soit les modifier ici dans le logiciel en définissant les variables INVERT_X_DIR sur TRUE.

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR falseCode language: Arduino (arduino)

Nous devrions faire quelques changements supplémentaires pour que ce firmware Marlin fonctionne. Comme Marlin est principalement un micrologiciel pour les imprimantes de style cartésien classique, le mode SCARA qu'il propose comporte quelques petits bogues qui n'étaient pas encore résolus au moment où je réalisais ce projet. Voici les modifications que j'ai apportées pour que cela fonctionne.

Dans scara.cpp, ligne 75 j'ai remplacé MORGAN_SCARA par MP_SCARA. Dans motion.cpp, j'ai dû commenter les lignes 1716 et 1717, dans cofiguration.h commenter VALIDATE_HOMING_ENDSTOPS, et dans configuration_adv.h décommenter QUICK_HOME.

En fait, même avec ces changements, la prise d'origine ne fonctionnait toujours pas à 100% correctement, mais je vais expliquer la solution de contournement que j'ai utilisée pour le faire fonctionner.

Néanmoins, nous pouvons maintenant cliquer sur le bouton Upload situé en bas à gauche de l'éditeur et le firmware Marlin sera installé sur la carte Arduino. Vous téléchargez ce firmware Marlin particulier avec toutes les modifications que j'ai apportées pour travailler avec ce robot SCARA ci-dessous ou bien sûr, vous pouvez télécharger le firmware Marlin original sur Github.com et apporter vous-même toutes les modifications comme je l'ai expliqué.

Logiciel de contrôle – Rapetier-host

Très bien, donc une fois que nous avons installé le micrologiciel Marlin, nous avons maintenant besoin d'un programme informatique pour contrôler le robot et lui envoyer des codes G. Il existe de nombreuses options, mais j'ai choisi d'utiliser Rapetier-host qui est un logiciel d'impression 3D populaire. Nous pouvons télécharger et utiliser ce logiciel gratuitement. Une fois que nous l'avons installé, nous pouvons aller dans Config > Paramètres de l'imprimante et ajuster plusieurs choses ici.

Nous devons sélectionner le port COM auquel notre Arduino est connecté et sélectionner le débit en bauds que nous avons défini dans le firmware Marlin. Dans l'onglet Forme de l'imprimante, nous devons définir les valeurs maximales X et Y et la zone de l'imprimante.

Une fois ces paramètres appliqués, nous pouvons cliquer sur le bouton Connecter et le logiciel devrait se connecter à notre robot SCARA. Ensuite, nous pouvons aller dans le robinet de contrôle manuel et à partir de là, essayer de déplacer l'imprimante.

Notez que lorsque vous appuyez sur les flèches X ou Y, le robot peut se comporter bizarrement car il implémente immédiatement la cinématique inverse et déplacera probablement les deux bras même s'il n'appuie que sur une seule flèche.

Néanmoins, pour faire fonctionner le robot, nous devons d'abord le mettre à la maison. Avant de cliquer sur le bouton d'accueil, nous devons rapprocher manuellement les joints des interrupteurs de fin de course.

Lorsque nous cliquons sur le bouton Accueil, le robot devrait commencer à se déplacer vers les interrupteurs de fin de course. En fait, le deuxième bras commencera à se déplacer vers son interrupteur de fin de course tandis que le premier bras devrait se déplacer en face. Une fois que le deuxième bras ou l'axe Y atteindra son interrupteur de fin de course, le premier bras ou l'axe X commencera également à se déplacer vers son interrupteur de fin de course. Une fois l'interrupteur de fin de course X atteint, le robot ira vers l'interrupteur de fin de course Z.

Ainsi, une fois la prise d'origine terminée, nous devrions pouvoir commencer à graver ou déplacer manuellement le robot dans sa zone de travail. Cependant, si nous essayons de faire quelque chose tout de suite, pour une raison quelconque, le robot se comportera mal et fera des mouvements étranges. Pour éviter ce comportement étrange, après le homing, il suffit de déconnecter le robot du logiciel puis de le reconnecter .

Maintenant, nous pouvons déplacer ou graver manuellement et le robot fonctionnera correctement. Il s'agit probablement d'un bogue dans le micrologiciel Marlin, et il est là parce que le mode SCARA de ce micrologiciel n'est pas bien pris en charge car il n'y a pas beaucoup d'intérêt.

Néanmoins, si nous envoyons la commande G-code G00 X0 Y0, le robot devrait aller à sa position zéro, celle que nous avons définie dans le fichier Marlin Configuration.h.

Ensuite, nous pouvons activer le laser en envoyant la commande M106 S10. La valeur derrière S peut être de 0 à 255 et c'est en fait le contrôle PWM de la puissance laser de 0 à 100 %. Donc, nous utilisons ici une valeur de S10 pour qu'il ne brûle rien mais qu'il soit visible afin que nous puissions voir la position zéro et également ajuster la mise au point du laser.

La mise au point peut être ajustée manuellement en tournant la lentille laser en bas et en même temps, cela dépend de la distance entre elle et la pièce à travailler. Il est recommandé de définir une distance d'environ 5 cm et d'ajuster la mise au point jusqu'à ce que vous obteniez le plus petit point possible.

Gravure au laser avec le robot SCARA 

Afin de calibrer la machine, il est bon de commencer par graver une simple forme carrée afin de voir si cela fonctionne correctement.

Lors de mon premier essai, la forme carrée n'était pas dans la bonne position et la bonne orientation et c'est parce que j'ai défini une mauvaise valeur pour la variable MANUAL_X_HOME_POS. Une fois que je l'ai corrigé, la forme carrée est sortie proche de ce qu'elle devrait être.

Alors, je charge un G-code de mon logo, et configure le robot pour le graver.

Pour être honnête, regarder ce robot SCARA travailler comme graveur laser est tellement cool, mais veuillez noter que nous DEVONS utiliser des lunettes de sécurité laser qui protégera nos yeux de la lumière ultraviolette du laser, car c'est très dangereux. De plus, nous devrions utiliser un masque respiratoire de sécurité et travaillez dans un espace ouvert ou une pièce bien ventilée, car les fumées produites lors de la gravure au laser sont également dangereuses pour notre santé.

Néanmoins, la gravure du logo ressortait bien, mais j'ai remarqué qu'elle n'était pas totalement carrée.

Alors, je me suis remis à graver la forme carrée simple afin de découvrir ce qui causait le problème. Je me suis rendu compte que le problème est avec les dimensions pour les longueurs des bras. Comme le robot n'est pas si rigide, lorsque les bras sont étendus, le poids des bras eux-mêmes fait pencher le robot un peu en avant. Cela entraîne un léger décalage de la dimension ou de la position réelle des bras.

Après avoir fait des dizaines de tests, j'ai fini par ajuster les valeurs des longueurs de 228 à 228,15 mm pour le premier bras, et de 136,5 à 136,2 mm pour le deuxième bras. Cela m'a donné le résultat le plus précis et maintenant la forme carrée était correcte. Cependant, selon l'emplacement de l'impression, que le bras soit complètement étendu ou non, la précision peut encore varier.

Génération de code G pour la gravure laser

Enfin, laissez-moi vous montrer comment j'ai préparé les dessins et généré des codes G pour les graver au laser. J'ai utilisé Inkscape à cette fin, un logiciel de graphisme vectoriel open-source.

Ici, nous devons d'abord définir la taille de la page à la taille de notre zone de travail. À titre d'exemple, je vais vous montrer comment j'ai préparé le logo Arduino pour la gravure au laser.

J'ai téléchargé une image du logo Arduino et importé dans Inkscape. En utilisant la fonction Trace Bitmap, nous devons d'abord convertir l'image dans un format vectoriel. Nous ne pouvons générer des G-codes qu'à partir de formes vectorielles et pour cela j'ai utilisé un plugin appelé Inkscape-Lasertools. Nous pouvons télécharger ce plugin depuis Github.com et nous pouvons l'installer en copiant les fichiers du fichier zip et en les collant dans le répertoire des extensions d'Inkscape.

Ainsi, une fois le plugin installé, nous pouvons aller dans Extensions> Lasertools pour l'ouvrir et l'utiliser pour générer un G-code. Il existe plusieurs options à définir et à ajuster avec ce plugin. Comme nous avons connecté notre laser à la broche D9 qui est utilisée pour contrôler un ventilateur, nous pouvons activer le laser en envoyant la commande M106.

Nous pouvons choisir si le code G ne contiendra que les contours de la forme ou le remplissage sur les boucles fermées également. Nous pouvons définir la vitesse de déplacement du laser, la vitesse de remplissage du laser et la vitesse périmétrique.

Lors du choix d'un remplissage, si nous voulons réduire l'intensité du laser dans la zone de remplissage, nous pouvons ajouter une valeur PWM à la commande M106 pour régler l'intensité du laser, par exemple, M106 S128 pour une puissance laser de 50 %. Nous pourrions obtenir un effet similaire si nous laissions la puissance laser à 100 % mais augmentions la vitesse de déplacement dans la zone de remplissage. Donc, ce sont en fait des paramètres avec lesquels nous devrions jouer pour voir ce qui fonctionne le mieux pour nous.

Dans le robinet Préférences, nous pouvons sélectionner "Supprimer les petits chemins de remplissage", et dans l'onglet Boîte englobante, nous pouvons sélectionner "Générer un code G pour l'aperçu de la boîte englobante". Cette fonctionnalité est très utile car elle génère un aperçu du code G de la zone où le dessin aura lieu, et ainsi nous pouvons positionner précisément notre pièce à usiner.

Ok, donc une fois que nous avons généré le G-code, nous pouvons le charger dans le programme Repetier-Host. Comme il ne s'agit pas d'impression 3D, mais simplement de mouvements de voyage, nous devons cocher la case "Afficher les mouvements de voyage" pour prévisualiser notre code G.

Nous pouvons enfin cliquer sur le bouton "Imprimer" et notre robot SCARA gravera au laser la pièce à usiner. Je l'ai déjà dit, regarder la gravure au laser de ce robot SCARA est si satisfaisant et nous pouvons graver au laser tant de choses avec.

Une bonne caractéristique est qu'il a un axe Z réglable, ce qui signifie que nous pouvons graver au laser des objets plus grands, comme par exemple cette boîte en bois pour mes embouts Forstner. J'ai gravé mon logo sur le devant, et un texte "Forstner bits" au dos de la boîte.

Voici un exemple de gravure de la même forme vectorielle, une silhouette de batman dans ce cas, avec juste des contours et avec un remplissage sur des boucles fermées.

Bien sûr, lors de la gravure avec remplissage, le temps nécessaire pour terminer le travail est beaucoup plus long, mais l'aspect final est également bien meilleur.

Enfin, laissez-moi vous montrer comment j'ai gravé cet immense dessin d'une surface de 600x450mm avec ce robot SCARA.

J'ai placé le robot au-dessus de la pièce à usiner afin qu'il puisse atteindre l'avant 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 l'un à l'autre.

Dans le micrologiciel Marlin, j'ai défini la position zéro dans le coin inférieur gauche de la pièce, à 300 mm du robot dans la direction X et à 150 mm dans la direction Y. Nous devons faire attention aux signes lors de la définition de ces valeurs. En fonction de cela, j'ai également modifié les variables MANUAL_X et Y_HOME_POS.

Après avoir téléchargé le firmware avec ces nouvelles valeurs, j'ai mis le robot en référence comme expliqué précédemment et j'ai envoyé le laser en position zéro. Ensuite, j'ai activé le laser afin de pouvoir ajuster davantage l'orientation du prix du travail selon les besoins.

En envoyant des commandes G01, qui font des lignes droites, je pouvais vérifier et ajuster la pièce à travailler pour qu'elle soit correctement positionnée.

Maintenant, en ce qui concerne la préparation du G-code pour cette gravure, j'ai fait un modèle avec cette configuration de la pièce et du robot dans Inscape. De là, je peux voir où le robot peut atteindre avec le laser et en fonction de cela modifier le dessin.

Pour le dessin, j'ai téléchargé une image et l'ai convertie en image vectorielle à l'aide de l'outil Trace Bitmap.

Ensuite, j'ai redimensionné et positionné l'image comme je le souhaitais, et à l'aide de l'outil Effacer, j'ai supprimé les zones où se trouve le robot et la zone hors de portée du robot.

Ensuite, j'ai généré le G-code et laissé la machine faire son travail. Il a fallu 4 heures pour graver au laser ce dessin.

Une fois terminé, j'ai voulu remplir la zone vide où se trouvait le robot. Pour cela, j'ai repositionné le robot et la pièce à usiner, ainsi que modifié les paramètres Marlin afin que la nouvelle zone de travail du robot soit cet espace vide sur la pièce à usiner.

Overall, this method requires some work for setting it up, but still it works great. I really like how this engraving turned out.

Wrap up

To wrap up, although there were some problems with the firmware, I managed to find workarounds to them get this SCARA robot working as laser engraver. If we take a closer look to the engraving, we can see that it’s far from perfect.

The robot is not that rigid and has some backlash, and therefore we cannot get precise and smooth movements. However, the things we learned in this tutorial can be implemented in any SCARA robot so you can definitely get better results.

J'espère que vous avez apprécié ce tutoriel et appris quelque chose de nouveau. N'hésitez pas à poser des questions dans la section des commentaires ci-dessous et à consulter ma collection de projets Arduino.


Processus de fabrication

  1. horloge IV9 Numitron DIY la plus simple avec Arduino
  2. Obstacles pour éviter le robot avec servomoteur
  3. Contrôler un robot Roomba avec Arduino et un appareil Android
  4. Voltmètre DIY avec Arduino et un écran Nokia 5110
  5. MobBob :Robot Arduino DIY contrôlé par smartphone Android
  6. Roue de mesure simple bricolage avec encodeur rotatif
  7. Moniteur de qualité de l'air DIY avec capteur Sharp GP2Y1010AU0F
  8. Jeu de Pong Arduino 1D DIY avec bande LED WS2812
  9. Bras de robot Arduino DIY – Contrôlé par des gestes de la main