Publié le 28 novembre 2013 - par

Un graveur laser à commande numérique à base de Raspberry Pi

cnc_laser_250Daniel Chai a fait quelque chose d’incroyable avec un Raspberry Pi et des pièces récupérées dans deux lecteurs/graveurs de DVD.

Pour le Raspberry Pi, Daniel a écrit son propre système de contrôle en Python qui  interprète le G code et les jpeg mais entraîne également les moteurs pas à pas sur les deux axes simultanément.

Le graveur laser de Daniel Chai

Un coût minime

Le graveur CNC au travail

Le graveur CNC au travail

Les parties les plus coûteuses de ce projet, à savoir les moteurs pas à pas et les diodes laser, ont été récupérés dans deux vieux graveurs de DVD qui avaient été jetés comme déchets électroniques. (Les graveurs de DVD sont de loin préférables aux lecteurs de CD, qui peuvent être très dangereux parce que leur laser est un laser infra-rouge, invisible à l’œil nu. N’allez pas fouiner dans les entrailles d’un graveur de CD si vous tenez à votre vue!). Les autres parties de ces graveurs de DVD sont également utilisées pour guider le laser sur un axe et servir de support mobile sur l’autre axe pour l’élément en cours de gravure.

La traduction de l’article de Daniel

J’ai contacté Daniel pour obtenir son accord afin de traduire son article. Il m’a répondu très rapidement que cela ne posait aucun problème :
« Hi François,
Sure! I definitely love to see the project translated to French and have more people get interested in it. Please go ahead and translate it, and fell free to let me know if you have any question. Thanks.
Best,
Daniel« 
Comme il est intéressé par cette traduction, je vous propose de découvrir son projet qui est vraiment très intéressant.

L’article d’origine

L’article d’origine est paru en anglais à cette adresse :
http://funofdiy.blogspot.co.uk/2013/10/a-raspberry-pi-controlled-mini-laser.html
N’hésitez pas à vous rendre sur cette page qui donne tous les détails de la construction. Mais laissons la parole à Daniel pour nous présenter son graveur.

Il semble (mai 2016) que les sources en Python ne soient plus disponibles sur sourceforge. Vous pouvez récupérer une version modifiée des programmes sur https://github.com/iandouglas96/engravR.

Un mini graveur laser à commande numérique à base de Raspberry Pi

Le logo de l'université gravé sur une plaque de plastique. Il a la taille d'une pièce de monnaie

Le logo de l’université gravé sur une plaque de plastique. Il a la taille d’une pièce de monnaie

J’ai récemment construit un mini graveur laser CNC (computer numerical control = à commande numérique)  à l’aide de deux graveurs de DVD de récupération et  moins de 10€ de pièces supplémentaires achetées sur eBay. Le contrôleur de la machine CNC est un Raspberry Pi, l’ordinateur à 35€ de la taille d’une carte de crédit. Le graveur se révèle être assez réussi. Donc, j’ai décidé de le partager avec tout le monde.

Il y a eu beaucoup d’exemples de personnes utilisant un Arduino pour de la commande numérique. Et vous pouvez probablement trouver des tonnes de programmes qui peuvent s’exécuter directement sur Arduino pour traiter le code G. Un des plus célèbres est grbl. Il a aussi cette CNC de Groover dans instructable. Il y a aussi sur le marché un contrôleur CNC comme MACH3  qui peut être commandé par un port série.

Oups! celui-ci a été gravé à l'envers...

Oups! celui-ci a été gravé à l’envers…

J’ai choisi une approche différente en utilisant un Raspberry Pi. La raison pour laquelle j’ai fait ce choix c’est que le Raspberry Pi est beaucoup plus puissant qu’un Arduino, il a un OS complet, les broches GPIO peuvent être contrôlés par Python, un langage plus intuitif et plus simple que C (l’inconvénient de Python est une vitesse inférieure). Je n’ai pas à acheter un autre contrôleur pour ce projet : je peux utiliser un seul Raspberry Pi et lui faire faire beaucoup de choses différentes sans recharger un quelconque firmware. Plus important encore, j’ai un Raspberry Pi mais je n’ai pas d’Arduino pour l’instant!

Plaque gravée avec des mots et des symboles

Plaque gravée avec des mots et des symboles

Il y a également des projets en cours de réalisation avec LinuxCNC sur le Raspberry Pi et une carte externe avec un PIC 32 pour contrôler la CNC. C’est une excellente idée, mais je voulais limiter mes frais pour dépenser un minimum. Pour remplacer cela, j’ai écrit mon propre interpréteur Python pour exécuter le G code ou traiter une image .jpg directement. En fait pour la commande en 2D d’un graveur laser, c’est effectivement très facile à réaliser et ça ne nécessite pas des techniques de programmation de haut niveau.

Je vais continuer à mettre à jour cet article et il devrait couvrir la totalité du projet, y compris le code de python.

L'appareil n'est pas encore terminé. Vous pouvez voir : la machine (en haut au centre), le circuit de commande (en haut à gauche) et le Raspberry Pi (en bas à droite)

L’appareil n’est pas encore terminé. Vous pouvez voir : la machine (en haut au centre), le circuit de commande (en haut à gauche) et le Raspberry Pi (en bas à droite)

Instructions pour la réalisation

Matériel nécessaire

  1. Un Raspberry Pi (avec Raspbian ou autre chose qui puisse piloter le GPIO )
  2. Deux graveurs de DVD .
    Pour pouvoir graver, vous avez besoin d’une diode laser 200mW provenant d’un graveur de DVD. Un lecteur de DVD ou de CD n’en contiennent pas. Un graveur de CD peut convenir en terme de puissance (~ 100mW ) , mais la diode laser d’un graveur de CD est infrarouge, ce qui peut être super dangereux (vous ne pouvez pas voir le faisceau laser!) .
  3. Un boîtier pour diode laser TO-18 de 5.6 mm comme celui-ci
    http://www.ebay.com/itm/251316903193?ssPageName=STRK:MEWNX:IT&
  4. Deux double ponts en H pour piloter les moteurs.
    Un pont en H est un circuit comportant quatre interrupteurs (transistors) qui peut appliquer une tension aux bornes d’une charge (moteur à courant continu ou bobine d’un moteur pas à pas) dans les deux sens. Les moteurs pas à pas de DVD sont des moteurs pas à pas bipolaires 4 fils/2 phases. Ils nécessitent une tension qui s’inverse sur chaque paire de fil. Vous avez besoin de deux ponts H pour chaque moteurs pas à pas . On arrive à un total de quatre ponts H pour les 2 moteurs pas à pas. Certains contrôleurs de moteur pas à pas célèbres comme ULN2003 sont faits pour des moteurs pas à pas à 5 fils. Ils ne peuvent pas être utilisés pour commander les moteurs pas à pas de DVD. Vous pouvez réaliser vos propres ponts H en utilisant 4 transistors NPN et 4 transistors PNP et probablement des convertisseurs TTL. Ou alors, vous pouvez tout simplement les acheter. Il y a beaucoup de circuits intégrés de pont en H disponibles sur le marché, tels que le L298. Ceux que j’utilise sont des L9110S, doubles ponts en H achetés sur Ebay (comme celui-ci). Ils sont peu coûteux (~ 2€), compacts (25,4 mm x 20 mm) et sont assez puissants (~ 800mA). Toutefois, si vous achetez auprès d’un vendeur chinois, ne comptez pas les recevoir avant 3 semaines… En ce qui concerne le pont H, vous devez vous assurer que le courant délivré en continu par le circuit est supérieur à 500 mA. Habituellement, le moteur pas à pas dans un lecteur de DVD est alimenté en 5V et chaque bobine a une résistance de 10 ohm. Donc, le courant fourni à chaque bobine est de 500mA!

  5. Un régulateur LM317, un transistor de puissance NPN (comme le E3055, devrait être capable de gérer au moins 200 mA en permanence), quelques résistances, des condensateurs et un sachet de cavaliers.
    Le LM317 est pour le circuit de commande du laser. Le NPN de puissance sert à  fabriquer un commutateur pour le laser. J’ai des tonnes de ces composants dans mes boîtes de rangement, donc je n’ai pas eu à en acheter. Si vous ne voulez pas monter un circuit de commande de laser vous-mêmes, vous pouvez certainement en trouver pour moins de 5€. Le driver du laser doit être capable de fournir au moins 200 mA sous 2V et disposer d’une entrée activer/désactiver.
  6. Un fer à souder, un tournevis et quelques matériel de base.

Etape N° 1 : Démontage des graveurs de DVD

Vous trouverez de nombreux tutoriels en ligne (en images et en vidéo) pour cette première étape. Je vais donc faire court.

Deux graveurs de DVD trouvé à la décharge

Ce sont bien des graveurs

Ce sont bien des graveurs

Dans les graveurs de DVD vous devez récupérer :

  1. Le moteur pas à pas avec la vis de commande et le chariot (partie inférieure droite de l’image ci-dessous)
    cnc_laser_09

    Le moteur pas à pas (à droite) et le chariot à déplacement linéaire. 4 fils ont été soudés au moteur pas à pas pour le relier au circuit de commande

    Le moteur pas à pas (à droite) et le chariot à déplacement linéaire. 4 fils ont été soudés au moteur pas à pas pour le relier au circuit de commande

  2. Les diodes laser (image ci-dessous). Soyez très précautionneux ! Elles sont fragiles et craignent l’électricité statique…

    Les deux diodes récupérées sur un graveur de DVD (infrarouge et rouge 650 nm) à côté d'un connecteur USB pour avoir une idée de la taille

    Les deux diodes récupérées sur un graveur de DVD (infrarouge et rouge 650 nm) à côté d’un connecteur USB pour avoir une idée de la taille

Etape N° 2 : Montage du laser

Vous disposez maintenant de deux diodes laser. Une infrarouge dont nous n’avons pas besoin. L’autre est la diode rouge 650nm (il y a habituellement une lettre «R» quelque part sur son boîtier) et c’est celle que nous allons utiliser. La diode a normalement trois broches formant un triangle. L’une de ces trois broches n’est pas connectée. Vous aurez besoin d’un multimètre pour déterminer quelles broches sont la cathode et l’anode. La tension directe aux bornes de l’anode et la cathode devrait être d’environ 1,4 V et la résistance dans le sens passant de 20 Kohm à 40 Kohm. Si la résistance dans le sens passant est trop élevée, la diode laser a été trop utilisée. Il va falloir en trouver une autre…
Le boîtier de la diode laser

Le boîtier de la diode laser

La diode laser (au milieu à gauche) avant son montage dans son boîtier. En bas à droite la lentille de collimatation.

La diode laser (au milieu à gauche) avant son montage dans son boîtier. En bas à droite la lentille de collimatation.

cnLa mise en place de la diode laser dans la tête du boîtier se fait avec un étau

La mise en place de la diode laser dans la tête du boîtier se fait avec un étau

La diode laser est en place dans la tête du boîtier

La diode laser est en place dans la tête du boîtier

Il faut souder 2 fils sur les broches de la diode. Prévoyez un morceau de thermorétractable ou au moins un isolant.

Il faut souder 2 fils sur les broches de la diode. Prévoyez un morceau de thermorétractable ou au moins un isolant.

Un morceau de thermorétractable assure la tenue de l'ensemble.

Un morceau de thermorétractable assure la tenue de l’ensemble.

Montage du boîtier de la diode laser.

Montage du boîtier de la diode laser.

Et voilà, le boîtier est prêt !

Et voilà, le boîtier est prêt !

Insérez soigneusement la diode laser dans la tête du boîtier. Vous pouvez utiliser le corps de boîtier laser pour appuyer contre la diode et pousser la diode dans la tête de son boîtier. La diode devrait se mettre en place parfaitement dans la tête. Assurez-vous que les broches sont toujours en très bon état, puis soudez deux fils sur les broches anode et cathode et assemblez les différents éléments du boîtier.

Etape N° 3 : Fabrication du pilote de laser et tests du laser

Une diode laser est comme une LED, mais équipée d’une cavité résonnante. La diode laser est un énorme consommateur de courant. Une fois que la diode conduit, elle génère une grande quantité de chaleur, et la chaleur a tendance à réduire l’impédance de la diode. C’est donc un système de rétroaction positive instable. Si vous connectez simplement une pile de 1,5 V sur la diode, vous obtiendrez soit une diode grillée  😥 soit une batterie déchargée immédiatement. C’est pourquoi il faut absolument un driver capable de délivrer un courant constant à la diode.

Il existe de nombreuses façon faire ceci. Une des façons les plus populaires et les moins frustrantes, est d’utiliser un régulateur de courant continu. Le LM317 est un bon choix. En ajoutant une résistance R entre sa broche de réglage et sa sortie, le LM317 peut délivrer un courant constant d’environ  2V / R.

Une bon tutoriel peut être trouvé ici (LM317 Laser Driver).

LM317 components01Dans mon cas, j’ai remplacé les deux résistances de 10 ohm en parallèle par deux résistances 12 ohm / 0,5 Watt. Le courant maximum que j’envoie dans la diode est de 200 mA.
Assurez-vous bien de ne pas inverser la broche d’ajustement et la broche de sortie.
Un dissipateur de chaleur est nécessaire sur le LM317.

Vous avez également besoin d’un commutateur qui sera commandé par le Raspberry Pi. J’ai utilisé un transistor de puissance NPN E3055. Vous pouvez choisir celui que vous voulez, assurez-vous juste que le transistor peut supporter un courant Collecteur/Emetteur permanent supérieur à 300mA. Il faudra également prévoir un dissipateur de chaleur ce transistor.

Schéma du pilote du laser et du commutateur. Le laser fonctionne seulement lorsque le port "Laser Switch" est au niveau logique haut (> 3V). Assurez-vous de ne pas vous tromper dans l'ordre des broches du LM317

Schéma du pilote du laser et du commutateur. Le laser fonctionne seulement lorsque le port « Laser Switch » est au niveau logique haut (> 3V). Assurez-vous de ne pas vous tromper dans l’ordre des broches du LM317

Le pilote du laser avec le LM317 monté sur radiateur

Le pilote du laser avec le LM317 monté sur radiateur

Le pilote du laser (en haut) et le transistor de puissance PNP de type E3055 (en bas)

Le pilote du laser (en haut) et le transistor de puissance PNP de type E3055 (en bas)

Etape N° 4 : Assemblage de la machine

Maintenant, vous avez deux étages linéaires identiques et il est temps de les assembler! Il y a de nombreuses façons de le faire. Pour une machine 2 axes CNC, je pense que la meilleure façon est celle donnée par Groover @ instructable. Dans la configuration de Groover, l’objet à graver est fixé sur l’axe des x de sorte qu’il ne se déplace que dans la direction x. Le laser est fixé à l’axe y de sorte qu’il ne se déplace que dans la direction y. Cette configuration réduit au minimum le poids de chacun des axes.

Le graveur laser de Daniel

Le graveur laser de Daniel

Le circuit de commande et les fils... Un sacré bazar

Le circuit de commande et les fils… Un sacré bazar

Etape N° 5 : Raccordement des ponts en H aux moteurs pas à pas

Elles sont habituellement disposés dans l'ordre suivant: a1, a2, b1, b2. (a1 et a2 sont les deux fils de la bobine a; b1 et b2 sont les deux filsde la bobine b). Vérifiez l'ordre des fils avec un multimètre.

Les quatre broches de connexion sur un moteur pas à pas 4 fils 2 phases. Elles sont habituellement disposés dans l’ordre suivant: a1, a2, b1, b2. (a1 et a2 sont les deux fils de la bobine a; b1 et b2 sont les deux filsde la bobine b). Vérifiez l’ordre des fils avec un multimètre.

Le moteur pas à pas d’un graveur de DVD est un moteur bipolaire 4 fils 2 phases. Il existe deux bobines indépendantes à l’intérieur. Chaque bobine a une résistance de 10 Ohm. Habituellement, les moteurs pas à pas de DVD sont alimentés en 5V. Le courant nominal dans chaque bobine est donc de 500mA! Les broches GPIO du Raspberry Pi délivrent moins de 20 mA. Un Raspberry Pi ne peut donc pas contrôler un moteur pas à pas directement. Des ponts en H sont nécessaires.

Jetez un coup d’œil à ce tutoriel sur les moteur pas à pas bipolaires.

Modèle théorique du moteur bipolaire 4fils/2 phases.

Modèle théorique du moteur bipolaire 4fils/2 phases.

Le rotor du moteur pas à pas bipolaire peut être considérée comme une barre aimantée (en fait il est circulaire). Il est évident sur la figure ci-dessus que si nous envoyons successivement du courant dans les bobines a1, b2, a2 et b1, le rotor va tourner comme nous le souhaitons. Pour ce faire, nous pouvons appliquer une séquence de tension à a1, b2, a2, b1 comme suit :
1 ) haut, bas, bas, bas .Ainsi seules les bobines a1 et a2 sont actives . Puisque a1 a2 ont la même polarité (ou l’inverse en fonction de la façon dont vous le définissez), le rotor est orienté vers a1
2 ) bas, haut, bas, bas. Seules b2 et b1 sont activées. Le rotor pointe vers b2
3 ) bas, bas, haut, bas. Seules a2 et a1 sont activés . Le rotor pointe vers a2
4 ) bas, bas, bas, haut . Le rotor pointe vers b1 .
Recommencer au point 1 ).

Si nous notons l’état haut par un 1 et l’état bas par un 0, la séquence peut être écrite comme suit : 1000,0100,0010,0001

L’avantage de cette configuration est qu’elle est très facile à comprendre et normalement le moteur pas à pas se déplace de façon très précise. Cependant, étant donné que dans chaque étape seulement une paire de bobines est activé, le couple appliqué sur le rotor n’est pas très élevé.

Pour obtenir un couple plus élevé, une méthode plus répandue consiste à appliquer la séquence suivante : 1100,0110,0011,1001 . Et le rotor s’orientera entre a1 et b2, au milieu de b2 et a2, au milieu de a2 et b1, au milieu de b1 et a1. Et le couple appliqué est doublé! C’est ce qu’on appelle mode pas entier ou mode couple élevé ou mode deux phases… et c’est généralement le mode utilisé avec les moteurs pas à pas.

Pour que le couple ne soit pas un problème, nous pouvons utiliser une séquence de 8 étapes : 1000,1100,0100,0110,0010,0011,0001,1001. Le rotor tournera en 8 étapes au lieu de 4 étapes pour une rotation du même angle. Ceci double la résolution. La contre partie est le couple non uniforme appliquée sur le moteur pas à pas . C’est ce qu’on appelle le mode demi-pas .

Habituellement, pour la gravure des DVD, le chariot se déplace d’environ 0,15 mm lorsque le moteur pas à pas avance d’un pas complet, ce qui correspond à une résolution de 170dpi environ. C’est suffisant pour des projets faits maison. Si le mode en 8 étapes est mis en œuvre, la résolution passe à 0.075mm/pas soit 340dpi, comme sur une imprimante ordinaire .

Pour le graveur laser, il n’y a pas vraiment une charge importante sur le moteur pas à pas. J’ai donc choisi le mode demi-pas ou mode en  8 étapes.

Comme précisé ci-dessus, Le Raspberry Pi ne peut pas commander le moteur pas à pas directement en raison de la limitation du courant de sortie. En fait, en dehors de l’alimentation de LEDs de faible puissance, les broches GPIO d’un Raspberry Pi servent généralement comme commutateurs logiques. En mode sortie, elles sont soit à l’état logique haut (3V) ou bas (< 0,7 V). Le pont en H est un «convertisseur» qui traduit ces états logiques haut ou bas en source d’énergie de haute tension ou de basse tension.

Schéma de principe d'un pont en H (Wikipedia)

Schéma de principe d’un pont en H (Wikipedia)

Ci-dessus un schéma de principe de pont en H (il a la forme d’une lettre « H »). Un pont en H a deux modes de travail : (S1 S4 fermés, S2 S3 ouverts) et (S2 S3 fermés, S1 S4 ouverts). Dans le premier mode, le courant circule vers la droite à travers le moteur et dans le second mode, le courant circule vers la gauche à travers le moteur. En réalité, ce pont en H n’est jamais utilisé tel quel. On préfère utiliser des transistors comme interrupteurs. Voir figure ci-dessous :
Schéma simplifié d'un pont en H réalisé avec des transistors NPN et PNP

Schéma simplifié d’un pont en H réalisé avec des transistors NPN et PNP

Lorsque A est au niveau logique bas (0V) et B au niveau logique haut (+ V), alors les transistors 1 et 4 conduisent et 2 et 3 sont bloqués.

Lorsque A est au niveau logique haut (+ V) et B au niveau logique bas (0V), alors les transistors 1 et 4 sont bloqués tandis que 2 et 3 conduisent.

Lorsque A et B sont au niveau logique haut, 2 et 4 conduisent, 1 et 3 sont bloqués, le moteur se bloque.

Lorsque  A et B sont au niveau logique bas, 1 et 3 sont conducteurs, 2 et 4 sont bloqués, le moteur se bloque.

Par conséquent, en fixant A et B à un niveau logique haut ou bas, nous pouvons contrôler la direction du courant à travers une charge. Pour chaque moteur pas à pas 4 fils/2 phases, il y a deux bobines indépendantes que nous devons contrôler. Il faut donc quatre ponts H pour commander les deux moteurs pas à pas.

Il existe un grand nombre de pont en H intégré disponible sur le marché. Dans mon cas, j’ai besoin de 500mA par pont en H et les L9110S suffisent (les L9110S peuvent fournir 800mA sur chaque pont en H). Chaque L9110S contient deux pont en H de sorte que deux composants suffisent. On trouve des modules L9110S pour moins de 2€ sur le marché. C’est très pratique!

Deux ponts en H L9110S. Les cartes mesurent 2,54 cm x 2 cm. Chaque carte commande un moteur pas à pas.

Deux ponts en H L9110S. Les cartes mesurent 2,54 cm x 2 cm. Chaque carte commande un moteur pas à pas.

Lorsque la tension est appliquée, un LED s'allume. (Le truc rond en bas est la bague de Daniel. Il n'a pas de très gros doigts...)

Lorsque la tension est appliquée, un LED s’allume. (Le truc rond en bas est la bague de Daniel. Il n’a pas de très gros doigts…)

Etape N° 6 : Commande de la machine avec le Raspberry Pi

Voici maintenant la partie essentielle. Comme je n’ai pas utilisé de carte de commande de moteur pas à pas externe, je dois intégrer la fonction de commande des moteurs pas à pas dans le logiciel. J’ai choisi Python pour faire le travail.

Les gens disent que le Raspberry Pi n’est pas un dispositif temps réel, car il fait tourner un OS et que Python est très lent. Cependant, dans mon cas, cela n’a causé aucun problème.

Le code Python que j’ai écrit offre les fonctions suivantes:

  1. Une classe encapsulée pour les moteur pas à pas bipolaires. Elle gère les informations comme la phase et la position. Elle comprend une fonction .move(direction, steps) qui convertit les commandes de mouvement en séquence GPIO.output () qui fait tourner les moteurs pas à pas.
  2. Un interpréteur de code G : il lit le code G et envoie les commandes correspondantes aux objets moteur pas à pas bipolaires. Pour les commandes G02 et G03 (interpolation circulaire), l’interpréteur effectue l’interpolation et convertit les commandes en une séquence de mouvements rectilignes.

La partie la plus difficile est de contrôler plus d’un moteur pas à pas simultanément. L’idée est en fait très simple et peut être étendue à un certain nombre de moteurs. Nous connaissons la façon de contrôler chaque moteur individuellement. Maintenant supposons que nous avons deux moteurs, MX et MY et nous voulons faire tourner MX de 12 pas et MY de 15 pas simultanément en 6 secondes. Trouvez d’abord le PPCM (plus petit commun multiple) de 12 et 15, qui est de 60 (Si vous ne vous souvenez plus de la méthode, il y a des calculateurs en ligne). Maintenant, divisez 6 secondes par 60 nous obtenons dt=0,1s. Paramétrez 60 boucles. Avant la fin de chaque boucle, on utilise la commande time.sleep(0.1). Donc, il faut 6 secondes pour terminer la boucle. Et nous avançons MX d’un pas toutes les 5 boucles et MY d’un pas toutes les 4 boucles. Après 60 boucles, MX se sera déplacé de 60/5 = 12 pas et MY de 60/4 = 15 pas. Et les deux moteurs MX et MY se sont bien déplacés à vitesse constante.
0000100001 0000100001 0000100001 0000100001 0000100001 0000100001 (60 digits, 12 un)
0001000100 0100010001 0001000100 0100010001 0001000100 0100010001 (60 digits, 15 un)

Pour commander plus de deux moteurs pas à pas, il suffit de trouver le PPCM de tous les pas (ignorer 0).

Vous pouvez télécharger tout le code Python de mon graveur laser à base de Raspberry Pi ici :

Project: raspberrypi-cnc-laser-engraver

Code Uploaded by Date Language
Bipolar_Stepper_Motor_Class.py Xiang Zhai October 25, 2013, 11:34 pm python
Motor_control.py Xiang Zhai October 25, 2013, 11:38 pm python
Gcode_executer.py Xiang Zhai October 25, 2013, 11:39 pm python
spiral.nc Xiang Zhai November 11, 2013, 6:31 pm text
grid.nc Xiang Zhai November 11, 2013, 6:38 pm text

Bipolar_Stepper_Motor_Class.py définit la classe Bipolar_Stepper_Motor. Par défaut , la ligne 5 est commenté et la ligne 7 est active. Ceci correspond à une séquence par demi-pas en 8 étapes. Si le couple maximal est nécessaire, vous pouvez commenter la ligne 7 et décommenter la ligne 5 pour sélectionner une séquence en 4 étapes .

Motor_control.py définit un ensemble de fonctions telles que le calcul du PPCM (appelé LCM en anglais = Least Common Multiplier) et Motor_Step (pour la commande de deux moteurs pas à pas simultanément). Normalement, vous n’avez pas besoin de modifier quoi que ce soit .

Gcode_executer.py
C’est le programme principal. Vous devez modifier la ligne 25 (nom du fichier G code), la ligne 29 (numéros des broches de commande du moteur pas à pas X), la ligne 31 (numéros des broches de commande du moteur pas à pas Y), la ligne 32 (numéro de la broche de commande de l’interrupteur laser), les lignes 35 et 36 (résolution de la machine en mm/pas) et la ligne 38 (vitesse de la gravure). Le script lit et interprète le G code, puis envoie les commandes correspondantes aux fonctions de commande des moteurs.

spiral.nc
Il s’agit d’un G code qui trace une petite spirale. Il peut parfaitement servir à vérifier si la machine peut traiter correctement le G code, en particulier l’interpolation circulaire G02 et G03.

grid.nc
Un code G simple qui trace plusieurs lignes droites pour faire une grille. Ce code est parfait pour tester la machine et tracer un système de coordonnées !

Actuellement, le Gcdoe_executer.py accepte uniquement un nombre limité de commandes G : G90, G20, G21, M05, M03, M02, G01, G02, G03 .
Le code peut reconnaître les commandes G1F (vitesse de gravure), mais il les ignore. La vitesse de gravure est définie à la ligne 38 en mm / sec.

Etape N° 7 : Le graveur en action !

D’après les indications de Groover, j’utilise Inkscape pour produire le code G. Inkscape est un éditeur de graphiques vectoriels open-source et il fonctionne sur divers systèmes d’exploitation (Windows, Linux, Mac), ce qui signifie que vous devriez être en mesure de l’installer sur Raspbian! Je n’ai pas essayé cela. J’utilise simplement mon portable et j’envoie mon dessin au Raspberry Pi.Vous avez besoin d’une extension pour graveur laser afin de convertir le graphique vectoriel en G code. Il existe plusieurs extension de G code. Celle que j’utilise peut être téléchargée ici Inkscape-Laser-Graveur-ExtensionJ’aurais bien ajouté plus d’instructions sur la façon de le faire, mais je suis un peu trop occupé ces jours-ci. En grande partie, j’ai suivi les instructions fournies par Groover dans instructable. Quand j’aurai un peu plus de temps libre, je  reviendrai travailler sur cet article.

Conclusion

laser_100Un bel exemple de réalisation très bien décrite et largement documentée. La réutilisation de graveurs de DVD facilite la réalisation de ce graveur. Par contre si vous vous lancez dans l’aventure ATTENTION le laser est très dangereux, surtout à cette puissance ! Même la réflexion du faisceau reste dangereuse. Les dégâts provoqués à la rétine sont irréversibles. Prenez toutes les précautions pour éviter d’envoyer le faisceau vers les yeux (les vôtres ou ceux de spectateurs). Mieux : portez des lunettes de protection appropriées. Elles doivent être adaptées à la longueur d’onde utilisée. 50€ c’est cher? A quel prix estimez vous vos yeux?
N’utilisez surtout pas de diode provenant d’un graveur de CD ! Le faisceau infrarouge est totalement invisible mais provoque des lésions aussi graves que le faisceau rouge.
 ===== Mise à jour du 7 juin 2017 =====
L’auteur m’informe que les programmes sont disponibles sur  GitHub

Sources


qrcode_framboise314Ce QR Code vous emmène directement sur le site
https://www.framboise314.fr

  1. Pour l’utiliser, vous devez avoir une application capable de lire les QR-Codes sur votre IPhone ou votre smartphone. Si besoin, je vous conseille d’installer : i-nigma disponible sur iPhone, Android et Blackberry.
  2. Scannez le QR-Code de framboise314 avec votre nouvelle application
  3. Profitez des articles de framboise314.fr. Ils sont lisibles sans problème sur votre smartphone.
Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

44 réflexions au sujet de « Un graveur laser à commande numérique à base de Raspberry Pi »

  1. StEx

    Intéressant ! Moi qui justement allait me lancer dans la conception d’un graveur CNC sur arduino… je préfère sur Rpi ! Je vais donc voir ça de plus près.

    Répondre
    1. admin Auteur de l’article

      Bonjour StEx
      Ce n’est que le début de l’article, la suite est en cours de traduction…
      Cordialement
      François
      (29/11/13 la totalité de l’article est maintenant en ligne)

      Répondre
  2. Clemzo

    Excellent idée.
    J’aime beaucoup l’idée de la récup à moindre frais.
    A ce propos afin délargir les capacité de la table, il est aussi possible de récupérer les moteurs + guides d’imprimantes (A4 ou plus) et scanners.

    Répondre
  3. Ping : Un graveur laser à commande numér...

  4. Ping : Un graveur laser à commande numér...

  5. Ping : Un graveur laser à commande numér...

  6. Ping : Graveur laser | Pearltrees

  7. Ping : Réalisations | Pearltrees

  8. daviid

    bonjour ,
    et merci pour ce post super ….
    je suis intéresser pour réalisé ce projet mais suis une bille en électronique
    je viens de recevoir le lm317 en kit grrr …
    1 est ce que vous pouvez me donner un coup de main j’ai un doute sur quelque composants pour le lm317
    2 je voudrais savoir le câblage en ce qui concerne les moteurs en gros quels fils vont ou si c’est pas trop vous demander je sais a pein lire un schéma….

    Répondre
    1. admin Auteur de l’article

      Bonjour Daviid
      si je peux t’aider ce sera avec plaisir quels composants posent problème?
      Pour raccorder les moteurs deux solutions par essai/erreur jusqu’à ce que ça fonctionne ou alors utiliser un appareil de mesure pour repérer les fils (c’est mieux!).
      On trouve des multimètres pour une dizaine d’euros sur ebay.
      Bon courage…
      Cordialement
      François

      Répondre
  9. Kristoff

    EXCELLENT !!! Votre article est simplement EXCELLENT !!! Je me lance dans l’aventure : Rpi, pont en H, une vieille alim de pc, 2 moteurs, 2 caddies de cd sont déjà en mains. Il ne me reste plus qu’a comprendre le fonctionnement du laser ? A se que j’ai compris, il est indépendant du Rpi , NON connecté sur le mini ordi et donc NON commandé par celui ci ??

    le câblage des moteurs et des ponts en H n’a pas l’air bien compliqué, mais une il manque une petite explication sur le branchement des broches GPIO et une petite photo serait formidable.

    Encore bravo pour cette merveille. Complètement débutant, je me lance dans l’aventure juste pour le plaisir de faire cette petite machine et de la voir fonctionner ! 🙂

    Répondre
  10. Bart62540

    Bonjour,

    j’ai lu votre article et je me suis lancé dans la réalisation afin d’intégrés la gravure laser à ma CN.
    Je désir avoir quelque information concernant l’alimentation de la diode.

    En effet, ma diode s’allume parfaitement mais je n’arrive pas à graver.

    Avez vous un idée pourquoi ça ne grave pas?

    cdt
    Christophe

    Répondre
  11. Essaid

    Bravo et bonne continuation.
    Je suis entrain de faire un peu la même chose mais en utilisant des microcontrôleurs de Microchip, j’espère pouvoir le poster pour avoir un feed back.
    La partie traitant l’utilisation de diode Laser va m’être d’une grande utilité Merci

    Répondre
  12. Schmu

    Chouette, un article bien clair sur le laser de récup, ses dangers et son utilisation.

    Déjà utilisateur d’une petite fraiseuse CNC, la partie laser m’intéresse pour essayer de la gravure sur bois 🙂

    Répondre
  13. bart62540

    Bonjour,

    Je me suis lancé dans la fabrication du driver pour faire de la découpe laser avec ma CN.

    J’ai bien ma diode laser qui s’allume mais elle ne « découpe » pas.

    Avez vous une idée de où cela peux venir?

    Merci

    cdt
    Christophe

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Christophe
      Difficile de le dire à distance… Quelques points à vérifier :
      * C’est bien une diode de graveur
      * Sa consommation est correcte
      * Elle est montée derrière une lentille de collimatation
      * La collimatation est bien réglée
      Cordialement
      François

      Répondre
  14. Adrien

    Excellent article, je pense le réaliser prochainement, avec peut être un autre laser en Y permettant de graver à l’intérieur d’une plaque et non pas sur la surface. Peut être le début d’un effet relief ?!

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Justin
      pour les moteurs PAP ok
      mais le laser d’une imprimante n’a pas la « pêche » d’un laser de graveur. C’est souvent un laser infrarouge peu puissant car il ne grave pas mais décharge un tambour photo conducteur. Le laser d ‘un graveur doit vraiment CHAUFFER localement le disque pour changer l’état de la matière utilisée…
      Pour les lunettes celles dont vous joignez l’adresse sont des lunettes anti-UV. Elles ne protègent pas du faisceau laser (d’autant plus s’il est infra rouge !
      Il faut des lunettes vraiment adaptées à la longueur d’onde du laser, donc il faut bien étudier le composant utilisé pour connaitre sa fréquence… Et on tourne plutôt dans les 45 ou 50 €…
      Cordialement
      François

      Répondre
      1. Justin

        OK Merci beaucoup.

        Je pense que plutôt que d’acheter des lunettes qui risques de coûter aussi cher que la CNC. Je vais faire un couvercle pour pouvoir refermer quand le laser fonctionnera et avec un bouton poussoir afin d’empêcher le fonctionnement du laser quand la CNC sera ouverte.

        Justin

        Répondre
        1. François MOCQ Auteur de l’article

          Bonjour Justin
          Il faudra être très prudent lors des essais
          Vous devrez régler la collimatation et pour cela regarder ce qui se passe…
          Même la réflexion du faisceau peut être dangereuse pour les yeux!
          Cordialement
          François

          Répondre
  15. bart62540

    Bonsoir,

    Merci François de votre retour.

    Pour répondre à vos questions
    * C’est bien une diode de graveur:
    Oui, c’est bien une diode de graveur
    * Sa consommation est correcte:
    Pour moi oui, je ferais une nouvelle mesure et pour moi je suis entre 200 et 300 ma
    * Elle est montée derrière une lentille de collimatation:
    j’ai acheté se type de boitier. c’est peu être lui qui est en cause: http://www.amazon.fr/SODIAL-tier-diode-laser-lentille/dp/B00JFTFSB8/ref=sr_1_2?ie=UTF8&qid=1411587873&sr=8-2&keywords=boitier+diode+laser
    * La collimatation est bien réglée:
    J’ai réglé le laser de plusieurs manière (fin ou gros laser). rien de change.

    Y a t il un des points qui expliquer mon souci?

    Cdt

    Christophe.

    Répondre
  16. Ping : Comment graver au laser et son fonctionnement - Blog Usb Centrale

  17. rogger

    bonjour,
    Je me suis lancer dans l’aventure mais étant un débutant j’avance étape par étape pour éviter de me lancer dans un projet que je n’arriverais pas à terminer.
    je suis en train de tester la led. comme je ne voulais pas l’endommager j’ai branché du 5v en 1000ma et j’ai réglé la résistance pour avoir 2V en sortie.
    la led c’est allumé en rouge mais me parait pas tres puissante en revanche elle chauffe énormément.
    Est ce normal ?

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour rogger
      la démarche est très bonne ! c’est bien de commencer… par le commencement
      le 1000 mA (1 ampère) dont vous parlez est le courant maxi que peut sortir l’alimentation. L’alim ne sort que… ce que demande le composant que vous branchez dessus, pas plus. Une LED rouge a une tension qui tourne autour de 1,6v… et elle consomme en général une dizaine de mA.
      Pour calculer la résistance : R = (5v – 1,6v) /0,010A ce qui amène à une résistance d’environ 340 ohm. Une 330 ohm fera l’affaire, ou toute valeur proche.
      Je ne sais pas comment vous avez calculé votre résistance (vous ne précisez ni le calcul ni la valeur de la résistance…) mais 2V c’est beaucoup sur une LED rouge c’est sans doute pour ça qu’elle chauffe ?
      lisez http://www.astuces-pratiques.fr/electronique/led-et-calcul-de-la-resistance-serie
      n’hésitez pas à revenir poser vos questions en cas de besoin
      Cordialement
      François

      Répondre
  18. Draken

    Bonjour,

    Je me suis lancer dans la conception du graveur (bon il me manque plus que la led car j’ai abîmer la seul que j’avais de graveur laser en la sortant se qui es tassez compliquer)
    J’ai reçus tous les composant que je peu monter (manque plus que la led quoi)
    Mais j’ai de gros doute sur l’alimentation à utiliser.
    Est t’il possible d’avoir toutes les tensions que je doit envoyer dans la LED
    ainsi que dans les pont H ?
    Et surtout avec quoi alimenter ? J’ai pas mal de matériel de récupéré (comme des alimentation de fix qui peuve sortir du 3,3 ; 5 et 12V
    Ainsi que des alimes de pc portable.
    Mais si je ne me trompe pas l’un des composant ( https://www.framboise314.fr/wp-content/uploads/2013/11/cnc_laser_06.jpg celuis en haut bleu ) sert à l’alimentation.
    (je n’ai pas le nom…) Es-que je doit utiliser une de ces cartes (et si oui avec les référence) ou autres chose peut sortie une tension assez stable (dans se que j’ai cité ?)
    Les photo étant un peu bordélique il n’y à pas de schéma de tous sa ? (même super simplifier ?)

    Bon j’en demande un peu beaucoup alors je remercie d’avens si vous prenez un peu de temps pour moi 🙂

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Draken
      Comme indiqué en début d’article, c’est une traduction d’un post dont l’original est ici.
      Je ne dispose pas de plus de doc que ce qui est publié ci-dessus… Pour la LED laser, il y a le schéma de son alimentation et un schéma du montage.
      Le « truc bleu » ressemble effectivement à une alim à découpage miniature mais je n’en sais pas plus.
      Par contre une alim de PC récupérée est tout à fait capable de fournir les tensions nécessaires (elle sort du 3.3v, du 5v et du 12v)
      Éventuellement contactez l’auteur pour plus d’infos.
      Cordialement
      François

      Répondre
  19. Matt

    Bonjour à tous,

    Je me suis également lancer dans le projet !

    Pourriez vous me confirmer les 4 pins du raspberry à connecter pour controler les moteur et celle pour le laser?

    D’avance merci !
    Matthieu

    Répondre
  20. Slystone

    Bonjour,

    Et merci pour cette traduction. 🙂
    Est-ce des chariots et moteurs de lecteurs/graveurs CD feront l’affaire ? Je prendrai évidemment la diode laser d’un graveur de DVD ? S’il était possible d’avoir une ou deux explications pour ce qu’on peut ou pas recycler, je suis preneur.

    Répondre
  21. François MOCQ Auteur de l’article

    Olivier m’a signalé des adresses où le 2N3055 est disponible :
    GO TRONIC : http://www.gotronic.fr/art-transistor-mje3055-1507.htm
    Radio Spare : http://fr.rs-online.com/web/p/transistors-bipolaires/3136916/
    Farnell : http://fr.farnell.com/webapp/wcs/stores/servlet/Search?st=E3055&catalogId=15001&categoryId=700000004650&langId=-2&storeId=10160
    AliExpress (pour des achats en lot : 16,00€ environ les 100) : http://www.aliexpress.com/af/e3055T.html?ltype=wholesale&SearchText=e3055T&d=y&origin=n&initiative_id=SB_20150620035829&isViewCP=y&catId=0

    Pour ma part je trouve que payer un MJE3055 6€ (+ 100€ de frais de port) via votre lien EB fait un peu beaucoup extra chéro alors qu’un 2N3055 se négocie pour moins de 1€.

    Petite précision : je suis tombé sur cet article totalement par hasard, ma curiosité naturelle m’ayant conduit à lire le sujet ainsi que les commentaires, d’où ce petit message afin d’aider vos lecteurs passionnés.

    Répondre
  22. DIB

    Bonjour à tous,
    Je me suis également lancé dans le projet !

    J’ai réalisé la partie méca. en rajoutant un ventilateur pour éviter que des fumées encrassent la diode.
    J’ai réuni tous les composants nécessaires mais je suis à la recherche du schéma de câblage ou une photo du montage pour éviter toute erreurs.
    Merci!
    Cordialement
    rd

    Répondre
  23. Ping : Raspberry Pi - Embarqué | Pearltrees

  24. Ping : Gravure laser | Pearltrees

  25. DIY

    Bonjour à tous !

    Tous d’abord super article ! Je vais également me lancer dans le projet.
    Je voulais toutefois signaler que les liens vers les codes python ne sont plus fonctionnels.

    Merci beaucoup !

    Répondre
  26. Made-to-usb

    Waw, j’ai rarement vu un tuto aussi complet, les instructions détaillés, les photos, les liens pour acheter les pièces (Même si malheureusement, les lien Ebay ne sont plus d’actualités)

    J’attend la réception de ma diode laser TO-18 et je démarre ça tout de suite, je laisserai un post quand j’aurai fini tout ça (Ou je viendrai poser une question si je galère ahah)

    Merci pour ce tuto.

    Répondre
  27. rastafioul

    Bonjour,
    Enfin, j’ai le materiel et le temps … depuis le temps!

    Mais, rien n’y fait, un des axes ne veut pas faire son travail, même s’il fretille, il ne se balade pas sur l’axe.
    Connectique verifiée, pôles vérifiés, modification des pin GPIO (le 8 et 10 étaient peut être déjà affectés) par 32 et 36 puis 13 et 15, inversion des 2 moteurs, inversion des L9110S, c’est toujours l’origine des pins 12 16 13 15 qui pose probleme.
    changement des pins en question dans tous les sens dans steppertest.py
    motor=Bipolar_Stepper_Motor(16,12,15,13) -> ne fonctionne pas quelque soit l’ordre (mais le moteur fretille)
    #motor=Bipolar_Stepper_Motor(22,18,24,26) -> fonctionne

    Si quelqu’un a une idée quelqu’elle soit, je suis preneur!

    Merci encore pour ce site!

    Répondre
  28. Benoist

    Bonjour,
    Ce projet m’interesse vraiment beaucoup. Je suis professeur en lycée professionnel et souhaite faire un FabLab avec du matériel que nous allons fabriquer.
    Je me suis acheter une petite graveuse chinoise et me demande s’il est possible avec votre projet de réaliser un graveur mais avec une dimension plus importante, en adaptant les axes bien entendu. Ma question est : Est on limité en dimension par le logiciel que vous utilisez sur le rapsberry?

    Merci d’avance et jolie travail pour le tuto.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      Comme indiqué en début d’article, il s’agit d’une traduction d’un article de Daniel Chai. Je ne connais pas le programme qu’il a utilisé, à priori le code doit pouvoir s’adapter mais il faudra mettre les mains dans le cambouis (dans le code) pour l’adapter à votre graveuse.
      Désolé de ne pouvoir vous en dire plus
      cordialement
      François

      Répondre
  29. bill

    bnsr svp pouvais vous me dir comment peut configurée grbl contrôleur pour une mini cnc a lenteur DVD 3 ax z en stylo avec le mémé moteur pas a pas de seuil des DVD (axe z) se sore super gentil de votre par merci

    Répondre
  30. Jihene

    Bonjour,
    Je souhaite concevoir un circuit imprimé utilisant deux DRV8825 pour contrôler deux moteurs pas à pas simultanément
    Devrais-je utiliser les mêmes pins de la carte raspberry pour les deux pilotes ( DRV8825) pour contrôler les micropas?
    ou dois je réserve 3 pins pour le DRV n°1 et 3 autres pins pour le DRV n°2?
    Et merci.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.