CNC6040 : Différence entre versions

De Defko Ak Ñiëp Fablab
Aller à : Navigation, rechercher
(Fichier de configuration)
Ligne 130 : Ligne 130 :
 
=== Fichier de configuration ===
 
=== Fichier de configuration ===
  
 +
 
 # Config ASIMOV 20130930 révise 20140307 dakar
 
 # Config ASIMOV 20130930 révise 20140307 dakar
 
  # révise 20160410 dakar, LaurentM
 
  # révise 20160410 dakar, LaurentM
 
 
  # Robot module configurations : general handling of movement G-codes and slicing into moves
 
  # 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_feed_rate                            1000            # Default rate ( mm/minute ) for G1/G2/G3 moves
 
  default_seek_rate                            5000            # Default rate ( mm/minute ) for G0 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_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 ).
+
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
 
  # Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
 
  alpha_steps_per_mm                          320.30            # Steps per mm for alpha stepper
 
  alpha_steps_per_mm                          320.30            # Steps per mm for alpha stepper
 
  beta_steps_per_mm                            320.30            # Steps per mm for beta 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
 
  gamma_steps_per_mm                          320.30            # Steps per mm for gamma stepper
 
+
 
  # Planner module configuration : Look-ahead and acceleration configuration
 
  # 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.
 
  planner_queue_size                          32              # Size of the planning queue, must be a power of 2. 128 seems to be the maximum.
Ligne 149 : Ligne 149 :
 
  acceleration_ticks_per_second                1000            # Number of times per second the speed is updated
 
  acceleration_ticks_per_second                1000            # Number of times per second the speed is updated
 
  junction_deviation                          0.05             
 
  junction_deviation                          0.05             
 
+
 
  # Stepper module configuration
 
  # Stepper module configuration
 
  microseconds_per_step_pulse                  1                # Duration of step pulses to stepper drivers, in microseconds
 
  microseconds_per_step_pulse                  1                # Duration of step pulses to stepper drivers, in microseconds
 
  minimum_steps_per_minute                    1200            # Never step slower than this
 
  minimum_steps_per_minute                    1200            # Never step slower than this
 
  base_stepping_frequency                      100000          # Base frequency for stepping, higher gives smoother movement  
 
  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 )  
 
  # 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_step_pin                              2.0              # Pin for alpha stepper step signal
Ligne 162 : Ligne 162 :
 
  alpha_max_rate                              5000.0          # mm/min
 
  alpha_max_rate                              5000.0          # mm/min
 
  x_axis_max_speed                            5000            # mm/min
 
  x_axis_max_speed                            5000            # mm/min
 
+
 
  beta_step_pin                                2.1              # Pin for beta stepper step signal
 
  beta_step_pin                                2.1              # Pin for beta stepper step signal
 
  beta_dir_pin                                0.11            # Pin for beta stepper direction
 
  beta_dir_pin                                0.11            # Pin for beta stepper direction
Ligne 169 : Ligne 169 :
 
  beta_max_rate                                5000.0          # mm/min
 
  beta_max_rate                                5000.0          # mm/min
 
  y_axis_max_speed                            5000            # mm/min  
 
  y_axis_max_speed                            5000            # mm/min  
 
+
 
  gamma_step_pin                              2.2              # Pin for gamma stepper step signal
 
  gamma_step_pin                              2.2              # Pin for gamma stepper step signal
 
  gamma_dir_pin                                0.20          # Pin for gamma stepper direction
 
  gamma_dir_pin                                0.20          # Pin for gamma stepper direction
Ligne 176 : Ligne 176 :
 
  gamma_max_rate                              700.0            # mm/min
 
  gamma_max_rate                              700.0            # mm/min
 
  z_axis_max_speed                            700              # (50) bak 100 |def 300 | mm/min
 
  z_axis_max_speed                            700              # (50) bak 100 |def 300 | mm/min
 
+
 
  # Serial communications configuration ( baud rate default to 9600 if undefined )  
 
  # Serial communications configuration ( baud rate default to 9600 if undefined )  
 
  uart0.baud_rate                              115200          # Baud rate for the default serial port
 
  uart0.baud_rate                              115200          # Baud rate for the default serial port
 
+
 
+
 
  # Laser module configuration
 
  # Laser module configuration
 
  laser_module_enable                          false            # Whether to activate the laser module at all. All configuration is ignored if false.
 
  laser_module_enable                          false            # Whether to activate the laser module at all. All configuration is ignored if false.
 
+
 
  # Switch module for fan control
 
  # Switch module for fan control
 
  switch.fan.enable                            true            #
 
  switch.fan.enable                            true            #
Ligne 189 : Ligne 188 :
 
  switch.fan.input_off_command                M107            #
 
  switch.fan.input_off_command                M107            #
 
  switch.fan.output_pin                        2.6            #
 
  switch.fan.output_pin                        2.6            #
 
+
 
  # Switch module for spindle control
 
  # Switch module for spindle control
 
  switch.spindle.enable                        false            #
 
  switch.spindle.enable                        false            #
 
+
 
  # Endstops
 
  # Endstops
  alpha_min_endstop                            1.28^!           #
+
  alpha_min_endstop                            1.28^!         #
  alpha_max_endstop                            nc             #
+
  alpha_max_endstop                            nc             #
  beta_min_endstop                            1.28^!             #
+
  beta_min_endstop                            1.28^!         #
  beta_max_endstop                            nc             #
+
  beta_max_endstop                            nc             #
  gamma_min_endstop                            1.28^!             #
+
  gamma_min_endstop                            1.28^!         #
  gamma_max_endstop                            nc             #
+
  gamma_max_endstop                            nc             #
 
+
 
  # Panel
 
  # Panel
 
  panel.enable                                false            #
 
  panel.enable                                false            #
Ligne 208 : Ligne 207 :
 
  panel.encoder_a_pin                          0.15!            #
 
  panel.encoder_a_pin                          0.15!            #
 
  panel.encoder_b_pin                          0.17!            #
 
  panel.encoder_b_pin                          0.17!            #
 
+
 
  # Only needed on a smoothieboard
 
  # Only needed on a smoothieboard
 
  currentcontrol_module_enable                true            #
 
  currentcontrol_module_enable                true            #

Version du 11 avril 2016 à 00:59


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. Le carré obtenu avait en réalité un côté de 109mm de long.

Une règle de trois permet de trouver la bonne valeur : Le réglage initial était de 71,22. Les moteurs avançaient donc de 71,22 x 500 pas pour obtenir 109mm. Pour faire 1mm, il faut dont réaliser 71,22 x 500 / 109, soit 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 adapter 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 executable 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 prendre en compte les commentaires 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 étaient 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             #