CNC et carte ARDUINO

  • Auteur de la discussion carlos78
  • Date de début
L

LETARTARE

Compagnon
Bonsoir,
je n'ai pas répondu car je ne reçois plus les notifications de "laposte.net" : site en maintenance :mrgreen:

J'ignorais qu'on pouvait vérifier le fonctionnement du firmware Grbl à partir de l"environnement arduino
Vous pouvez utiliser n'importe quel terminal série connecté sur le bon port à la bonne vitesse, avec le terminal d'Arduino-xxx n'oubliez pas de choisir comme terminateur de ligne "NL & CR".
Le site "Civade.com" (ewidance sur usinages.com) est toujours très précieux.

Vous avez du suivre ma procédure de dépannage (car cela m'arrive aussi indépendamment de GrblHoming) et comme
La communication marche avec cet exemple sur la console série de l'environnement arduino.
donc la carte fonctionne avec son pilote Windows.

1- surtout ne mettez dans le répertoire "librarie" qu'une seule version de Grbl (Arduino-xxx gère ce répertoire de façon très particulière :!: ), supprimer les autres,
2- avez-vous bien compiler et téléverser de nouveau la version Grbl ?

Voici les seules observations que je puis faire à distance.

Bien cordialement.
 
C

carlos78

Compagnon
@LETARTARE : merci pour votre assistance.

:smt021 Effectivement j'avais mis plusieurs versions de Grpl dans librairies.
Je viens de retirer toutes les versions sauf la Grpl82Mega2560 et j'ai téléversé de nouveau sur la carte.
C'est mieux mais ça reste boggué, j'obtiens des hieroglyphes sur Grpl Controller :
"¸Êr» 0pêP
> (CTRL-X)
Aucune données depuis le port série après la connexion, en attente de la version Grbl
"

Carlos78
 
L

LETARTARE

Compagnon
Bonjour,
c'est la caractéristique d'une mauvaise vitesse sur le terminal Arduino-xxx :oops:
Essayer de nouveau avec GrblHoming à 57600 bauds.
A demain
 
C

carlos78

Compagnon
@LETARTARE : :supz: Formidable. Avec vous j'ai l'impression qu'il y a toujours une solution.

:-D Effectivement avec une vitesse de 57600 bauds c'est de nouveau operationnel.
:?: Ceci ne m'explique pas pourquoi une version qui tournait à 38400 est passé toute seule à 57600 bauds ? (correction erreur)

J'ai testé la version Grbl 9d (en cours de développement) en reprenant le cablage CLK+ et CW+ communs sur le +5v, CLK- sur pin 24 (axe X) et CW- sur pin27 (axe X).
Grbl 9d est une version 3 axes et le port est configuré à 115200bauds. Sa taille est de 29206 octets. Il y avait donc bien eu une erreur de compilation due probablement à la présence de plusieurs versions de Grbl dans le répertoire arduino/Libraries.
Presque tous les paramètres Grbl sont différents entre les 2 versions Grbl82 et Grbl9d. Attention : L'affectation des pins sur l'arduino est différent.
Difficile pour un néophyte de "voir" les différences entre les 2 versions.

:-D Je découvre que les paramètres Grbl sont intégrés dans l'arduino, et que Grpl Controller n'est qu'un outil d'interface pour dialoguer avec la carte arduino.
:-D J'apprécie du coup le fait de pouvoir tester directement Grpl à partir de l'environnement arduino. C'est très rudimentaire, mais on peut directement voir si ça marche. :supz: ET ça marche

Carlos78
 
L

LETARTARE

Compagnon
Bonjour carlos78,
Ceci ne m'explique pas pourquoi une version qui tournait à 38400 est passée toute seule à 57600 bauds ?
je n'ai aucune version à 38400,

présence de plusieurs versions de Grbl dans le répertoire arduino/Libraries.
en fait Arduino-xxx analyse les répertoire de façon obscure : en scrutant cette analyse de plus près, on constate qu'il conserve la dernière version compilée si les deux librairies comportent des fichiers identiques (ou très semblables !), vous pourriez vous en rendre compte en regardant de plus près le résultat de la compilation (mais il faut un œil averti),

Difficile pour un néophyte de "voir" les différences entre les 2 versions.
c'est pour cela qu'il fallait tout d'abord faire tourner (sans comprendre les détails) un moteur, puis petit à petit les questions arrivent,

les paramètres Grbl sont intégrés dans l'arduino ...
bien sur, j'avais écrit au début pour GrblHoming "interface de dialogue",

tester directement Grpl à partir de l'environnement arduino
c'est à faire immédiatement après le téléversement pour vérifier la communication.

Il reste maintenant à maitriser la configuration de Grbl, puis de vérifier les trois axes simultanément en charge, et surement encore d'autres interrogations...

Bon courage.
 
C

carlos78

Compagnon
@FABRICE C : Oui ça marche. Sur la video on voit que c'est la version Grbl 6b.
@LETARTARE : pour la vitesse de transmission de la version Grbl82, : :maiscebien: c'est bien sur 58400 57600 bauds. Parfois je suis TRES étourdi.

:supz: Arduino est hyper séduisant pour son côté formateur. On peut faire énormement de choses avec cette petite carte.
Je découvre grâce à LETARTARE une autre façon de piloter une CNC. C'est pour moi très instructif, mais en tant qu'hobbyste et pour mon utilisation basique et occasionnelle d'une CNC, je ne pense pas que je vais changer de système. Je resterai pour le moment avec LINUXCNC car il répond totalement à mon besoin.

Mon intérêt pour l'arduino est surtout d'apprendre un peu d'électronique, un peu de programmation, etc ...
Je viens d'ailleurs de recevoir l'arduino de base : la UNO
IMG_3110.JPG
Arduino UNO (Prix : 8.7€)
La même avec un "screwshield" pratique qui permet de se raccorder sur les broches de la UNO avec : des barrettes déportées, des connecteurs 3 points (S,GND,V), ou des borniers à vis.
IMG_3112.JPG
Arduino UNO + screwshield (Prix du screwshield : 4€)
:wink: Je vais maintenant tester Grbl avec la UNO.

Carlos78
 
C

carlos78

Compagnon
@LETARTARE : :Oups ! d'habitude j'édite mes bétises après envoi. Là, vous avez été trop rapide car j'ai pas eu le temps de corriger ... :wink: Et puis on va pas chipoter pour quelques bauds à la transmission !!!

:supz: Essai de Grbl9d sur UNO : :partyman: pas de problème d'installation, ça devient une routine.
Même principe de cablage des entrées des drivers (une fois encore sur des broches différentes).
:prayer: la méthode de téleversement de Grbl via les librairies est une merveille de simplicité pour un non-informaticien.
:wink: Maintenant que je suis rodé Il me faut à peine 1mn pour charger sur une carte arduino l'une des 4 versions de Grbl proposées par LETARTARE dans son zip.


La version Grbl9d pour UNO est une version 3 axes.
La configuration des broches se trouve dans le fichier cpu_map.h (Les fichiers .cpp et .h sont des fichiers texte, ils peuvent être lus avec un éditeur quelconque).
Sa taille compilée est de 29 412 octets sur un maxi de 32 256 octets sur la UNO (C'est bien rempli)
NB : La lecture du fichier Gcode a provoqué quelques comportements anormaux (blocages sur l'axe Y) qui n'existaient pas (me semble-t-il) sur la version Grbl82Mega2560.
Aucune chauffe anormale (une heure d'essais) des drivers et des moteurs (connexions TB6560 50°C/Radiateurs 34°C/Moteurs 32°C/Ambiant 20°C).
Capturer.JPG
Grbl9dPetite video de l'essai :

NB: On voit sur la video que l'affichages des coordonnées X/Y/Z n'est pas en temps réel, idem pour l'affichage du point rouge qui symbolise le déplacement de l'axe de la broche

Carlos 78
 
Dernière édition par un modérateur:
L

LETARTARE

Compagnon
@carlos78
Et puis on va pas chipoter pour quelques bauds à la transmission
Grbl si :mrgreen:

ils peuvent être lus avec un éditeur quelconque
attention au terminateur de ligne pour l'édition, selon que le fichier a été créé sous Mac (RC), sous Linux (LF), sous Win (LF+RC) : RC = code du retour chariot, LF=code saut de ligne.
Exemple si vous éditer un fichier Linux avec "NotePad" (l'éditeur de Win) vous ne verrez qu'une ligne , pas facile à modifier :cry:

comportements anormaux (blocages sur l'axe Y)
pouvez-vous m'envoyez le fichier de commandes Gcode correspondant (en MP si besoin)?

Petite video de l'essai
il me semble qu'en positionnant les radiateurs des circuits de puissance au moins verticalement vous allez diminuer leur température.

Félicitations pour votre persévérance gratifiante.
A bientôt
 
T

thianar

Nouveau
Bonjour à tous.
Il semble intéressant de contrôler ainsi un projet que j'ai en tête, mais j'ai une question; GRBL contrôle du programme a l'accélération décélération contrôle de rampe pour les moteurs?
Merci beaucoup. :partyman:

73 51
 
P

parthlab

Nouveau
Bonjour, tout ceci est vraiment très intéressant.
J'ai de mon coté une carte arduino Uno et un shield moteur adafruit version1.

Après qq test et tenter de modifier les numéros des pins (je n'y arrive pas). Déjà ma 1ere question est de savoir si vos logiciels et Grbl sont compatible avec la carte.
Ensuite dans le fichiers pin_map y'a t'il assez ou trop de définition de pin ? car sur le shield adafruit on peut utiliser ce qui suit :

What pins are not used on the motor shield?

All 6 analog input pins are available. They can also be used as digital pins (pins #14 thru 19)
Digital pin 2, and 13 are not used.
The following pins are in use only if the DC/Stepper noted is in use:
Digital pin 11: DC Motor #1 / Stepper #1 (activation/speed control)
Digital pin 3: DC Motor #2 / Stepper #1 (activation/speed control)
Digital pin 5: DC Motor #3 / Stepper #2 (activation/speed control)
Digital pin 6: DC Motor #4 / Stepper #2 (activation/speed control)
The following pins are in use if any DC/steppers are used
Digital pin 4, 7, 8 and 12 are used to drive the DC/Stepper motors via the 74HC595 serial-to-parallel latch
The following pins are used only if that particular servo is in use:
Digitals pin 9: Servo #1 control
Digital pin 10: Servo #2 control

N'y connaissant pas grand chose sauriez vous de qu'elle façon procéder pour faire bouger les PAP ainsi qu'un servo ?

Je me doute aussi que le servo peut être mis sur // #define Z_STEP_BIT et #define Z_DIRECTION_BIT en definissant par contre le nombre de pas aloué pour celui-ci.

J'espère en tout cas que je pourrais utiliser les outils de LETARTARE car c'est de loin les solutions les plus simples que j'ai trouvé depuis 2 semaines de recherches.

Sincèrement !!
 
A

axe55

Apprenti
Je regardais ce post d'un œil, je vais ouvrir les deux maintenant et faire moi aussi un essai, bravo :smt023
 
L

LETARTARE

Compagnon
Bonjour à tous.
tout d'abord il est quand même courtois de se présenter succinctement, préalablement à des questions.
Plusieurs questionneurs viennent une fois et ne participe plus au forum, j'espère que ce ne sera pas votre cas.

@thianar
contrôle du programme a l'accélération décélération contrôle de rampe pour les moteurs?
Grbl contrôle tout cela, mais consultez le site officiel de Grbl pour avoir confirmation (en lisant le Wiki).

@parthlab
savoir si vos logiciels et Grbl sont compatible avec la carte.
Je crois que les indications fournies sur mon site sont suffisamment claires : oui.
modifier les numéros des pins
Il ne faut surtout pas modifier l'assignation des broches, sous peine de sérieux dysfonctionnements :eek:
De même, ne rien modifier dans Grbl (sauf si vous êtes un expert en programmation et en Grbl), la seule chose possible que vous pouvez modifier : la vitesse de dialogue en testant que cette nouvelle vitesse n'entâche pas la communication.
faire bouger les PAP
avec carlos78 nous avons montré cette possibilité avec la carte TB6560, pour le reste il faut chercher sur le site d'arduino et leur forum en français où il y a de nombreux spécialistes, puis aussi ICI
les solutions les plus simples
justement, j'ai proposé ces solutions sous forme de bibliothèques de telle sorte que le novice n'est pas accès directement au source de Grbl.

Bien cordialement.
 
P

parthlab

Nouveau
Bonjour, milles excuses, c'est vrai je ne me suis pas présenté.. on est un laboratoire de fabrication dans les deux_sèvres et on tente de s'insérer dans la découverte de l’électronique, de la gestion de machine outils et c'est très compliqué.
Notre but actuel est de tester beaucoup de choses, comme la captation de valeur par le biais de sondes (température, lumière ....) ; retranscrire ses valeur sur le web pour pourquoi pas récupérer ses infos via une application mobile. On aimerai découvrir la domotique et avoir une connaissance des machines outils et comprendre leur fonctionnement.
On utilise aussi des machines laser et imprimantes 3d.. ce qui fait beaucoup de recherche passé sur le web. On est souvent pressé par le temps car derrière nous on a des adhérents associatif qui veulent aussi apprendre mais qui n'avance pas aussi vite que nous. Nous avons entant que "gestionnaire de notre asso", une sorte de "devoir " de formation et trouver une solution rapide et efficace à des problèmes nous permettent de garder nos adhérents actif.

Je vous remercie en tout cas de l'aide que vous pouvez apporter. Je ne sais pas si nous pouvons faire pareil (peut-être un jour :roll: )
Avant donc de reposer des questions je vais donc reprendre le temps de chercher et peutêtre reprendre notre problème de zéro.

cordialement
 
C

carlos78

Compagnon
Bonjour,

@PARTHLAB : Mes connaissances ne me permettent pas de vous répondre par rapport au Moteur shield Adafruit. En regardant sur le net, j'ai vu qu'il y avait une librairie à installer (AF-Motor arduino Library). Je doute que ce soit une version de Grbl. Je rejoins l'avis de LETARTARE sur l'affectation des broches: Il vaut mieux ne pas changer celle-ci.
j'ai l'impression après ce court essai avec Arduino/Grbl qu'on devrait pouvoir connecter sur la carte arduino des drivers plus costauds que les TB6560 (même si ces drivers peuvent piloter des PAP avec un courant de 3A, ce qui est correct à mon avis pour une CNC d'hobbyste).

@AXE55 : C'est très instructif de tester l'arduino en CNC !! Ca permet de se faire à faible coût (moins de 10€) sa propre opinion sur les possibilités offertes par cette petite carte avec Grbl. Faites nous part de vos impressions.

Carlos78
 
C

carlos78

Compagnon
thianar a dit:
... GRBL contrôle du programme a l'accélération décélération contrôle de rampe pour les moteurs?
Le site Github donne en bas de page les évolutions entre la version V0.8 et V0.9 de Grbl.
La V0.9 permet d'avoir une accéleration différente sur chaque axe.


Sur ce site je lis que la fréquence physique du nombre de steps dans Grbl V0.9 serait de 30KHz :
---> Dans mon essai les drivers etaient au 1/8ème de pas et j'avais pris l'hypothèse d'une VAB ayant un pas de 5mm. Donc (200/5)*8=320 µsteps/mm.
---> En imaginant une vitesse de déplacement de 2000mm/mn, la fréquence de µsteps est de (320 * 2000)/60 = 10666 Hz.
:?: Je me pose la question s'il faut diviser les 30KHz par 3 dans l'hypothèse ou la CNC à 3 axes ?
Si oui, les 2000mm/mn serait en terme de perfos un maximum de vitesse au 1/8ème de pas.

Carlos78
 
P

parthlab

Nouveau
Bonjour carlos,
Merci pour la réponse. D'après ce que j'en ai vu, la librairie afmotor de chez adafruit peut faire l'affaire, mais elle change toutes les dénomination appellation des moteurs et ce n'est pas tout. Certaines broches sont déjà attribuées pour les moteur. A moins de réécrire une partie du firmware ou de trouver un firmware adapté pour le shield je ne vois pas comment faire. En tout cas merci de partager des infos.
 
L

LETARTARE

Compagnon
Bonjour à tous,
@carlos78
voici des mesures réalisées sur une Mega2560 avec Grbl-0.82 (version 4 axes), sans connexion externe pour pouvoir éliminer les limitations en vitesse des cartes de puissance.

La configuration de Grbl-0.82
où les commandes sont destinées à des moteurs 200 pas/tour pilotés en micro-pas de 1/2 (400 µpas/tour), les axes X, Y, Z utilisent des vis avec un pas de 4 mm (résolution 1 µpas = 0,01 mm), l'axe C utilise une table tournante de réduction 90 (1 tour d'entrée = 4 degrés de la table) et possède une résolution de 1 µpas = 0,01 degré (la table SOBA-150 est visible par les photos préalables à celles qui suivent).

Mesures sur Grbl-0.82 et MEGA2560

Les commandes utilisées sur les images successives :
1- g01 f18000 x10000 -> F = 30 kHz (qui semble un maximum, car après il y a des dysfonctionnements)
2- g01 f18000 x10000 y10000 -> F = 21 kHz
3- g01 f18000 x10000 y10000 z10000 -> F = 17 kHz
4- g01 f18000 x10000 y10000 z10000 c10000 -> F = 15 kHz

Ceci confirme votre raisonnement.
Je n'ai pas encore testé dans ce sens les versions 0.8c et 0.9d.

Bien cordialement.
 
L

LETARTARE

Compagnon
Bonjour,
un autre test sur la version Win de Grbl-0.82 sur MEGA2560, les deux ordres M03 et M05 fonctionnent bien : marche et arrêt sur la broche 6 (si "$12=0").
Si vous modifier la variable en "$12=1", vous avez une sortie en b6 (PWM) à 1 kHz avec un rapport cyclique de 1000/307 pour la valeur par défaut ($13=300):
Grbl82SpindlePwm.jpg
Vitesse de broche par défaut "$13=300" (1000/300)
La commande "S 700" va donner un rapport cyclique de 1000/700 en augmentant la vitesse de la broche.

Bien cordialement.
 
C

carlos78

Compagnon
@LETARTARE : Avec une vitesse de 18000mm/mn, il vaut mieux effectivement faire une simulation sans les moteurs !
Si je comprend bien, la fréquence max de 30KHz du nombre de pas sur Grbl peut être atteinte si on a un seul axe en mouvement et elle descend à 15KHz si on a un mouvement simultané sur 4 axes. Il y a une baisse, mais pas de proportionnalité directe. :-D Tant mieux ... On peut aller plus vite !

Carlos78
 
L

LETARTARE

Compagnon
on peut encore augmenter la vitesse de commande pour utiliser les 4 axes (CH1 = x, CH2 = y):
Grbl82MegaF24000X10000Y10000Z10000C10000.jpg
GCODE : g01 f24000 x10000 y10000 z10000 c10000dans ce cas avec f24000 :oops: on obtient 20 kHz sur chaque axe :-D
 
C

carlos78

Compagnon
Bonjour,

Une nouvelle carte arduino made in USA est annoncée pour cet été : la ARDUINO TRE

Arduino TRE_Description_Materielle.jpg

Si le prix de cette arduino TRE est raisonnable, cette carte va changer la donne en supprimant carrement le PC nécessaire au fonctionnement d'une CNC.
:-D Prévue d'origine pour tourner avec Linux, on peut raisonnablement espérer pour cette carte une version de LinuxCNC façon arduino.

Carlos78
 
L

LETARTARE

Compagnon
Bonjour,
je viens de publier une version Grbl-0.83 qui prend en compte dans le fichier "config.h" le niveau actif voulu par l'utilisateur pour les sorties 6, 36, 37, 35 (voir dessous )
https://github.com/LETARTARE/Mega2560-grbl-0.81/tree/devArduino
je l'ai testé sous Vista Pro pack2 en utilisant des relais actifs niveau 0 pour :

Spindle Enable (br6) avec M3, M4, M5,
Spindle Direction (br36) avec M3, M4,
Coolant Flood (br37) avec M8, M9,
Coolant Mist (br35) avec M7, M9

toutes ces sorties fonctionnent correctement et lors d'une RAZ sont toutes inactives.

@carlos78
Pouvez la tester ?

Si elle fonctionne pour ces commandes je la mettrai avec "Grbl_with_Arduino".

Bien cordialement.
 
L

lamidetlm

Apprenti
Salut moi j'ai une arduino 2560 r3 et une ramp 1.4 et je constate que tous ces Firmware ne fonctionne pas avec ma ramps qui est pourtant bien pratique (je trouve)
L'erreur vient de moi ou la ramps ne fonctionne pas avec "gbrl_with_arduino" ? ( je n'est pas les connectiques nécessaire sous la main pour tester sans ramps)
 
L

LETARTARE

Compagnon
Bonjour à tous,
@lamidetlm
tout d'abord il est quand même courtois de se présenter succinctement, préalablement à des questions.
Plusieurs questionneurs viennent une fois puis ne participe plus au forum, j'espère que ce ne sera pas votre cas.

Je ne connais pas les signaux nécessaires à la commande de "ramp 1.4", à ma connaissance les versions Grbl que je propose ne sont pas destinées à piloter, sans adaptation, ce genre de produit.
Je crois qu'il existe d"autres logiciels qui répondent directement à ce besoin :
ramps 1.4

Bien cordialement.
 
C

carlos78

Compagnon
@LAMIDETLM: l'affectation des PINS RAMPS 1.4 est différente des affectations retenues avec les versions de Grbl essayées. Il faudrait peut être passer par un cablage externe entre l'arduino et la ramps 1.4.
@LETARTARE : :-D La version Grbl0.83 fonctionne très bien !!!

Test de la version Grbl0.83 avec Arduino Mega2560 et 3 drivers TB6560 :
- Televersement dans l'arduino Mega2560 via la librairie récupérée dans le fichier zip qui se trouve sur le Site de Letartare.
Cablage des drivers (pour cet essai) :
- CLK+,CW+ reliés au +5V
- CLK- (STEP) : X=22,Y=24,Z=26
- CW- (DIR) : X=23,Y=25,Z=27
- Aucun cablage EN+ et EN-
- Pas de GND commun
- Vérification du televersement à partir du moniteur de l'environnement arduino.
- Essai à vide (sans usinage) avec 3 moteurs Nema 57BYGH51 en utilisant le logiciel d'envoi de gcode (Grbl-Controller 3.5.1) et avec le même programme de test (durée 32') : Aucun problème de blocage de moteur détecté (ce n'était pas le cas avec la version 0.9d). Aucune chauffe anormale. A priori c'est OK Voir la pièce jointe Panoplie ellipses avec denture orientee vers le foyer.Groupe1.nc.zip Fichier d'essai
- Simulation avec 4 leds des commandes SPINDLE, DIR SPINDLE, FLOOD, COOLANT MIST (anodes des leds au +5v via une résistance), cathodes des leds respectivement aux broches 6,36,37,35) : :-D :-D Toutes les commandes M3, M4, M5, M7, M8, M9 fonctionnent. Les leds concernées s'allument avec M3,M4,M8 et M7 et s'éteignent avec M5 et M9.
IMG_3115.JPG
Essai de Grbl83 (Leds pour M3, M7 et M8 allumées)

Carlos78
 
C

carlos78

Compagnon
La video de l'essai de Gbrl0.83
Carlos78
 
Dernière édition par un modérateur:
L

LETARTARE

Compagnon
Bonjour,
@carlos78
EXCELLENT travail, toujours aussi efficace, merci beaucoup, cela confirme mes assertions.
Comme cette version (délaissée) de Grbl-0.81,2,3 est assez obsolète (j'ai retrouvée la date : Avril 2012); il reste à vérifier beaucoup d'éléments.

Sur le forum Forum Arduino français vous trouverez une discussion à ce sujet, entre autre "infobarquee" a modifié, ce jour, 0.83 pour changer le nom de l'axe C en A.

Mon objectif actuel est la compréhension du code, et de vérifier maintenant les entrées liées aux limites des quatre axes, puis introduire les entrées "Reset", "Feed, hold", "Start ..." qui n'existent pas.
Ensuite contrôler le synchronisme du 4ème axe avec les autres ???

La distance entre la version officielle actuelle "0.8c" (trois axes) et 0.83 est très importante, aussi je ne suis pas sur du résultat.

[glow=red]Merci encore à carlos78 qui réalise les tests, que je ne peux actuellement pas réaliser, et qui montre qu'un travail coopératif est possible sur ce forum.[/glow]


Bien cordialement
 

Sujets similaires

M
Réponses
6
Affichages
1 148
MitchCanon
M
T
Réponses
2
Affichages
25 515
Tristan l'apprenti
T
Haut