Skip to content

Contrôler un laser

Contenu de niveau intermédiaire

Ces informations seront utiles pour l'utilisation du laser avec la carte Emotronic (smoothieware). Typiquement sur l'OMM PLUS.

Ce que l'on va faire ici

Nous allons voir comment utiliser un laser avec la carte Emotronic.

Utilisation de la PWM pour Spindle / Laser

La Emotronic est propulsée par le firmware Smoothieware.

Pour obtenir une PWM sur une broche de la carte, on a 2 solutions :

Le module spindle est prévu pour réguler en PID la rotation d'un moteur de broche et donc nécessite un retour de mesure concernant la vitesse de rotation et l'utilisation d'une interruption : ce n'est donc pas la solution pour une PWM "simple" sur une broche.

Le module laser est prévu pour générer une PWM sur une broche pour un laser, avec gestion de la variation de la PWM sur diminution vitesse, etc. On dispose aussi d'un ordre fire nnn qui permet de contrôler manuellement la PWM simple pour le laser.

Les broches PWM disponibles :

Les broches du processeur utilisables pour la PWM sont :

  • 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 (2.5 est la broche par défaut dans le smoothieware)
  • 1.18, 1.20, 1.21, 1.23, 1.24, 1.26,
  • 3.25 et 3.26

Sur la emotronic :

  • 1.18, 1.20 et 1.21 sont utilisés par LEDs On board
  • 1.26 (avec masse à côté) est disponible sur bornier LCD mais pas pratique

Dans le cas de la emotronic, les broches accessibles pour la PWM sont donc :

Donc on a à disposition :

  • 2.0, 2.1, 2.2, 2.3 mais qui sont les STEP de M1, M2, M3 et M4
  • 2.4 et 2.5 qui sont sur MOFSET
  • 1.23, 1.24 qui sont les endstops de Y et Z
  • 3.25 et 3.26 qui sont les EN et DIR de M1

Discussion du choix de la broche à utiliser :

pour une commande directe TTL :

Concrètement, la solution qui semble la plus judicieuse est donc la broche 1.24 qui est le endstop de Z, non utilisé. Le Hic, c'est qu'il y a toute une "circuiterie" autour de la broche sur la emotronic et le niveau obtenu n'est pas celui attendu : on a un niveau perturbé.

Par contre, on obtient bien le niveau du 2.0 (Enable de M1) : donc la soluce serait de passer M1 sur M5 et donc d'avoir la broche 2.0 pour la PWM... Par contre, cette soluce fait perdre 1 étage moteur (on en a 4 à disposition malgré tout...)

La solution la plus élégante semble cependant d'utiliser la sortie 1.26 sur le bornier d'extension du LCD d'autant qu'on ne s'en sert pas... et la broche 1.26 sur ce bornier dispose du GND juste à côté... donc, nickel chrome pour une connexion simple. Et les essais à l'oscillo sur cette broche sont nickels avec une belle onde PWM.

Info

Pour mémoire, le niveau des broches de la carte est un niveau 3.3V donc être sûr que entrée OK pour niveau HAUT dès 3.3V... ce qui à priori ne posera pas de problème car l'entrée de commande du laser est 5V TTL, donc HAUT dès 2V en entrée.

Pour une commande via MOSFET

Si on dispose d'un module qui utilise une entrée PWM en 12V, il est alors nécessaire de passer par un MOSFET pour faire la mise à niveau en tension entre le 3.3V du processeur et 12V de la PWM du module.

Pour cela, la broche naturelle semble la 2.5 qui est une PWM et qui a un MOSFET sur la emotronic. Utiliser en conséquence une alimentation 12V sur le bornier d'alimentation externe. Bien comprendre ici qu'on utilise le MOSFET uniquement pour la commande PWM en tension et pas pour la puissance...

Configuration

La configuration du smoothieware se fait avec le fichier de config :

# Laser module configuration
laser_module_enable                          true             # Whether to activate the laser module at all. All configuration is 
                                                              # ignored if false.
laser_module_pwm_pin                          1.26              # this pin will be PWMed to control the laser. Only P2.0 - P2.5 
                                                              # can be used since laser requires hardware PWM

#laser_module_ttl_pin                         1.30            # This pin turns on when the laser turns on, and off when the laser turns off. 

#laser_module_maximum_power                   1.0             # this is the maximum duty cycle that will be applied to the laser
#laser_module_minimum_power                   0.0             # this duty cycle will be used for travel moves to keep the laser 
                                                              # active without actually burning
#laser_module_pwm_period                      20              # this sets the pwm frequency as the period in microseconds

Utilisation du laser

L'utilisation se fait avec les GCodes suivants :

Les codes G01, G02 et G03 activent la PWM. Le Code G00 ne l'active pas. La valeur voulue se passe en paramètre S0-1 (0%-100%)

G1 X30 S0.2

L'autre possibilité à des fins de tests est de faire :

fire 0-100 # Active PWM de 0 à 100%
fire off # Désactive PWM

Info

Lorsque l'on active le laser avec un G1, l'intensité du laser varie en fonction de la vitesse... en clair l'onde PWM s'installe progressivement ce qui évite un "trop brûlé" aux angles, etc. A l'inverse, l'instruction "fire" entraîne un contrôle ON/OFF de l'onde PWM générée (pas de variation de PWM en fonction de la vitesse)""")