CNC6040

De Defko Ak Ñiëp Fablab
Aller à : Navigation, rechercher


La CNC 6040 est développé par une entreprise situé à Singapour. elle a un copyright et est donc propriétaire. Avec le le kit d'origine, on est contraint de l'utiliser sur le système d'exploitation Microsoft Windows Xp. Le logiciel Mach3 qui le pilote est sans documentation complète pour pouvoir l'utiliser. Pour ne pas dépendre de ces restrictions, l'équipe de DefkoAkniep a décidé d'utiliser des outils Open Sources. Nous avons donc changé la carte électronique qui contrôle la machine, pour pouvoir utiliser des applications Libres telles que ( UniversalGcodeSender, Prunterface, MakerCam, RoundDecimal etc.) afin de pouvoir usiner librement.

capture MakerCam cliquez pour agrandir

Matériels requis

Vous aurez besoin d'une carte électronique Micro contrôleur... SmoothieBoard Infos Détaillé

capture MakerCam cliquez pour agrandir

Ensuite de 03 (Trois) Micro step Driver Model: M542PBF-G ou juste de la Gamme M542

capture MakerCam cliquez pour agrandir

Procédure de Montage

(en cours de rédaction)


Configuration Smoothieboard

Résumé

Calibrage de la CNC6040 dans le cadre de l'atelier de signalétique, AfroPixel#5, avril 2016

  • nouveaux paramètres "steps_per_mm" : 320,29
  • mise à jour du firmware
  • diminution de l'accélération : de 3000 à 700

Configuration des moteurs pas à pas

Dans le fichier de configuration de la smoothieboard, les paramètres "steps_per_mm" permettent de régler le nombre de pas correpondant à 1mm de déplacement de la fraise. Ils ne correspondaient pas aux caractéristiques mécaniques de la machine :

  • Le paramètre était différent pour les trois axes alors que les technologies sont les mêmes.
  • Les déplacements horizontaux de la fraise étaient réduits d'un facteur 4 par rapport au déplacements voulus. Ce facteur 4 était appliqué lors de la création du fichier : on envoyait un fichier 4 fois plus grand à la machine.
  • Le déplacement en Z était également faussé.

Pour trouver les bonnes valeurs, nous avons usiné un carré qui devait faire 500mm de côté en théorie. On a obtenu un carré qui faisait en réalité 109mm de côté.

Une règle de trois permet de trouver la bonne valeur : Le réglage initial était de 71,22. Les moteurs ont donc avancé de 71,22 x 500 pas pour obtenir 109mm. Pour faire 1mm, il faut dont réaliser 71,22 x 500 / 109 = 326,7 pas par millimètres.

Après un deuxième essai avec cette fois un carré de 100mm, on constate un décalage de 2mm soit 2%. Avec le même calcul, on obtient 320,3 pas par millimètre (326,7 x 100 / 102 = 320,29)

Les mécanismes des trois axes étant identiques, on peut appliquer ce paramètres à chacun :

alpha_steps_per_mm    320.30   # Steps per mm for alpha stepper
beta_steps_per_mm     320.30   # Steps per mm for beta stepper
gamma_steps_per_mm    320.30   # Steps per mm for gamma stepper

Mise à jour du firmware smoothieware

Le 9 avril 2016, la carte a été mise à jour avec la dernière version stable de smoothiware.

Il a fallu mettre à jour également le fichier de configuration mais les modifications sont mineures. Il s'agit d'ajouter un paramètre "max_rate" pour chaque axe, ce qui, dans le cas présent, semble être identique au paramètre "max_speed"

Le paramètre "planner_queue_size" a également été mis à la valeur conseillé : 32 au lieu de 64.

Il s'agit ensuite de formater la carte, placer le nouvelle exécutable firmware.bin ainsi que le nouveau fichier de configuration. Au premier démarrage, firmware.bin se transforme en FIRMWARE.CUR et les nouveaux paramètres semblent bien pris en compte.

Par ailleurs, la nouvelle version semble mieux gérer les commentaires inclus dans le gcode puisqu'il n'est plus nécessaire de mettre en pause puis reprendre à chaque commentaire.

Réglage des vitesses et accélérations

!!! Attention !!! Avec les nouveaux réglages, les vitesses utilisées auparavant doivent être divisées par 4 pour qu'elles soient identiques avec les réglages actuels.

Dans un premier temps, les vitesses maximales ont été testées avec des déplacements simples (avancer, reculer, monter). Au cours du premier usinage cependant, des décalages sont apparus à des vitesses bien inférieures. En cas de changement de directions brusques, c'est en effet l'accélération qui entre en compte plus que la vitesse.

Procédure d'essai

Les essais se déroulent de la manière suivante :

  • on fait un petit trou pour repérer clairement la position initiale
  • on envoie, sans usiner, un fichier avec un grand nombre de déplacement avec des changements de direction brutes.
  • on vérifie ensuite que la fraise ne s'est pas décalé, en retournant à sa position initiale et en la faisant tourner doucement à la main dans le trou. Il ne doit y avoir aucun frottement avec les bords du trou.

Le fichier de test est un carré d'environ 5cm de côté avec des arêtes qui débordent. Il est réalisé avec inkscape et converti en gcode directement avec gcodetools. On réalise des passes de 0,5mm pour 10mm, soit 20 passes, soit 80 changements de direction à 180° et 80 à 90°.

Fichiers pour essais CNC.png

Voici des photos de la technique du petit trou pour repérer le point 0 en X et Y. ! Bien penser à relever la fraise d'au moins 15mm en Z pour définir l'origine !

Trou pour essai CNC.jpg

Résultats

Voici les résultats en temps d'exécution pour les différents réglages :

Essais d'usinage
Vitesse [mm/min] Accélération [mm/s^2] Temps
2500 300 3'07"
3000 300 2'24"
3000 500 2'14"
4000 500 1'43"
5000 700 1'09"

Avec les paramètres les plus rapides, les limites de la machine ne semblent pas atteintes puisque l'on observe toujours pas de décalage. Ces vitesses sont cependant suffisantes pour la plupart des usinages à réaliser.

Les nouveaux paramètres concernant les vitesses sont donc les suivants :

default_feed_rate   1000        # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate   5000        # Default rate ( mm/minute ) for G0 moves
acceleration        700         # Acceleration in mm/second/second.
alpha_max_rate      5000.0      # mm/min
x_axis_max_speed    5000        # mm/min
beta_max_rate       5000.0      # mm/min
y_axis_max_speed    5000        # mm/min
gamma_max_rate      700.0       # mm/min
z_axis_max_speed    700         # mm/min

Fichier de configuration

# Config ASIMOV 20130930 révise 20140307 dakar 
# révise 20160410 dakar, LaurentM
# Robot module configurations : general handling of movement G-codes and slicing into moves
default_feed_rate                            1000             # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate                            5000             # Default rate ( mm/minute ) for G0 moves
mm_per_arc_segment                           0.5              # Arcs are cut into segments ( lines ), this is the length for these segments.  Smaller values mean more resolution, higher values mean faster computation
mm_per_line_segment                          5                # Lines can be cut into segments ( not usefull with cartesian coordinates robots ).

# Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
alpha_steps_per_mm                           320.30            # Steps per mm for alpha stepper
beta_steps_per_mm                            320.30            # Steps per mm for beta stepper
gamma_steps_per_mm                           320.30            # Steps per mm for gamma stepper

# Planner module configuration : Look-ahead and acceleration configuration
planner_queue_size                           32               # Size of the planning queue, must be a power of 2. 128 seems to be the maximum.
acceleration                                 700             # Acceleration in mm/second/second.
acceleration_ticks_per_second                1000             # Number of times per second the speed is updated
junction_deviation                           0.05             

# Stepper module configuration
microseconds_per_step_pulse                  1                # Duration of step pulses to stepper drivers, in microseconds
minimum_steps_per_minute                     1200             # Never step slower than this
base_stepping_frequency                      100000           # Base frequency for stepping, higher gives smoother movement 

# Stepper module pins ( ports, and pin numbers, appending "!" to the number will invert a pin ) 
alpha_step_pin                               2.0              # Pin for alpha stepper step signal
alpha_dir_pin                                0.5!             # Pin for alpha stepper direction
alpha_en_pin                                 0.4              # Pin for alpha enable pin
alpha_current                                1.2              # was: 1.68. X stepper motor current
alpha_max_rate                               5000.0           # mm/min
x_axis_max_speed                             5000             # mm/min

beta_step_pin                                2.1              # Pin for beta stepper step signal
beta_dir_pin                                 0.11             # Pin for beta stepper direction
beta_en_pin                                  0.10             # Pin for beta enable
beta_current                                 1.68             # Y stepper motor current
beta_max_rate                                5000.0           # mm/min
y_axis_max_speed                             5000             # mm/min 

gamma_step_pin                               2.2              # Pin for gamma stepper step signal
gamma_dir_pin                                0.20          # Pin for gamma stepper direction
gamma_en_pin                                 0.19             # Pin for gamma enable
gamma_current                                1.8              # (1.8) bak 2 | def 1.5 | Z stepper motor current
gamma_max_rate                               700.0            # mm/min
z_axis_max_speed                             700              # (50) bak 100 |def 300 | mm/min

# Serial communications configuration ( baud rate default to 9600 if undefined ) 
uart0.baud_rate                              115200           # Baud rate for the default serial port

# Laser module configuration
laser_module_enable                          false            # Whether to activate the laser module at all. All configuration is ignored if false.

# Switch module for fan control
switch.fan.enable                            true            #
switch.fan.input_on_command                  M106            #
switch.fan.input_off_command                 M107            #
switch.fan.output_pin                        2.6             #

# Switch module for spindle control
switch.spindle.enable                        false            #

# Endstops
alpha_min_endstop                            1.28^!          #
alpha_max_endstop                            nc              #
beta_min_endstop                             1.28^!          #
beta_max_endstop                             nc              #
gamma_min_endstop                            1.28^!          #
gamma_max_endstop                            nc              #

# Panel
panel.enable                                 false            #
panel.up_button_pin                          0.1!             #
panel.down_button_pin                        0.0!             #
panel.click_button_pin                       0.18!            #
panel.encoder_a_pin                          0.15!            #
panel.encoder_b_pin                          0.17!            #

# Only needed on a smoothieboard
currentcontrol_module_enable                 true             #