Aide Comment utiliser une interface GRBL ?

  • Auteur de la discussion demdandeinfos
  • Date de début
D

demdandeinfos

Apprenti
Bonjour,

Nouveau sur le forum, je souhaiterais me lancer dans ce projet .

Ce n'est pas une CNC mais je dispose de ce matériel que je souhaiterais utiliser pour actionner le moteur qui poussera le piston :
1 Arduino uno
1 Moteur Nema 17
1 Shield CNC GRBL (résolution 200 pas, valeur moteur pour l’instant, pas de cavalier en place)
1 Pilote moteur A4988

L'idée que j’ai est déjà d'arriver à ce que j’actionne le moteur nema avant/arrière via GRBL.

Je compte m'y prendre ainsi (je débute, je me suis fait une procédure en faisant la synthèse de plusieurs tutos web) :
  • Monter l’électronique
  • Vérifier le voltage du pilote moteur
  • Installer le logiciel arduino sur le PC, brancher la carte Arduino via USB, vérifier la reconnaissance du port
  • Tester la carte arduino (actionner la LED de la carte Arduino)
  • Mettre l’alimentation 12V en marche
  • Télécharger GRBL, téléverser dans arduino
C’est là à cette dernière étape GRBL où j’ai un peu de mal à voir. J’ai consulté les tutos ci-dessous, mais cette partie reste floue tout de même pour moi pour l’instant : https://www.usinages.com/threads/g-code-et-grbl-mettre-le-pied-a-letrier-part-ii.97623/

Ok pour téléverser GRBL dans l’IDE Arduino mais après j’ai du mal à voir comment l’utiliser pour actionner le moteur. Y a-t’il que le firmware GRBL qui est aussi une interface graphique X/Y/Z ou il faut le firmware GRBL + installer aussi une interface (Universal G-code Sender ou GRBL Controller), ou encore faut-il éditer un G-Code ? et comment l’utiliser ?

Merci d’avance pour votre aide.
 
J

jpbbricole

Compagnon
Bonjour demandeinfos

Joli projet!
Y a-t’il que le firmware GRBL qui est aussi une interface graphique X/Y/Z
GRBL n'est "qu'un" interpréteur G-code, qui sait les traduire pour envoyer les ordres aux moteurs pas-à-pas (MPAP)
ou il faut le firmware GRBL + installer aussi une interface (Universal G-code Sender ou GRBL Controller)
Oui, indispensable. Une fois le matériel et le firmware installé, il faudra régler quelques paramètres pour que ça corresponde à ton installation, comme combien de pas pour un millimètre (les paramètres sont ici)
Tu pourras déjà tester le fonctionnement de to MPAP avec les boutons de déplacements
1531658595634.png

Comme ici dans UGS.
Tu peux aussi envoyer des ordres via la ligne de commandes de la console.
G90 G0 X10 (Deplacement absolu a la position 10mm de l'axe X)
G91 G0 X10 (Deplacement relatif de 10mm de l'axe X)

Maintenant, il faut voire l'usage que tu utilises ce poussoir?

Cordialement
jpbbricole
 
D

demdandeinfos

Apprenti
Merci pour ce retour.

Quelques petites questions svp sur ce retour :
- est-ce qu'a priori la procédure que je décris semble correcte (je n'ai jamais fait ce type de montage, j'ai peut-être oublié des étapes) ?
- d'accord pour l'interface, je me demande par contre comment fait-on pour lancer UGS, j'ai trouvé pas mal de tuto qui décrivent GRBL controller ou UGS, mais ils ne montrent pas dans le contexte d'une utilisation, du coup je ne vois pas bien comment la lancer ?
- c'est certainement une question de débutant, mais comme je n'aurai qu'un moteur de monté, est-ce que ça fonctionnera aussi ?

Maintenant, il faut voire l'usage que tu utilises ce poussoir?
Quand j'aurai maîtrisé ces premières étapes et réussi à faire bouger le moteur, l'idée ensuite c'est de monter un endstop pour indiquer la fin de la seringue, et pouvoir contrôler la vitesse du piston. Après je ne suis pas à l'aise du tout sur la partie programmation s'il fallait utiliser Arduino ou du G-code, et je ne vois pas encore comment m'y prendre.

Bonne soirée.
 
J

jpbbricole

Compagnon
ils ne montrent pas dans le contexte d'une utilisation, du coup je ne vois pas bien comment la lancer ?
Si c'est la version classic, une fois le fichier dézipé
1531679198158.png

Double cliquer sur le fichier UniversalGcodeSender.jar (Java doit être installé)

Pour la version Platform, une fois le fichier dézipé
1531679554430.png

Double cliquer sur le fichier .\bin\ugsplatform.exe

ils ne montrent pas dans le contexte d'une utilisation, du coup je ne vois pas bien comment la lancer ?
Oui certainement.

Comment vas-tu commander le système? Par bouton poussoir pour "envoyer" une dose?
Pouvoir programmer un nombre de dose(s) en fonction d'un critère ou calcul?

Suivant l'option choisie, il serait préférable de laisser tomber GRBL et de tout gérer sois-même avec un Arduino, tout en conservant le shield pour des raisons pratiques, l'électronique étant toute faite.
Ou garder GRBL et avoir un autre Arduino qui lui envoie du G-code.
Ou garder GRBL et lui envoyer du G-code depuis un PC, via un programme spécifique ou voire même depuis Excel.

Mais une chose et quasiment sûre, tu ne pourra pas tout faire depuis le Uno/GRBL, il n'y a pas d'entrées pour ça.

Cordialement
jpbbricole
 
D

demdandeinfos

Apprenti
Comment vas-tu commander le système? Par bouton poussoir pour "envoyer" une dose?
Pouvoir programmer un nombre de dose(s) en fonction d'un critère ou calcul?

je comprends mais je n'ai pas de connaissance en électronique ni en programmation, je vais devoir faire simple et si je trouve une solution qui fonctionne, même si elle n'est pas optimale, je reste intéressé

pour exemple, avec le système que je décris, j'envisage de dire au MPAP via l'interface GRBL, avance de X mm pour vider la seringue, je compte me débrouiller avec ça, c'est de la bidouille mais ça pourrait me dépanner (?)

pour l'instant dans mon application, je cherche juste à vider la seringue de son contenu en poussant sur le piston (ce système ne sera pas destiné à du dosage, juste pour vider la seringue)

pour ce projet, si je peux pousser la seringue avec le moteur sur une distance donnée ce sera déjà une grande avancée, je peux envisager de faire varier la vitesse et mettre un endstop sauf si ça devient trop technique pour moi

après je suis aussi preneur de conseil ou d'information sur tout autre montage/système qui répondrait au projet mais sachant que je ne pourrai pas programmer Arduino et du C/C++ ni aller trop loin en dehors des montages "classiques"

Bonne soirée.
 
J

jpbbricole

Compagnon
OK, compris.
Avec la config de base, UNO, shield GRBL, UGS, tu pourras parfaitement réaliser ceci, à condition de bien régler GRBL au niveau des pas par millimètres.

Bonne soirée
jpbbricole
 
D

demdandeinfos

Apprenti
une dernière question svp, pour le réglage de la vitesse, de quelle manière pourrai-je procéder avec mon système via GRBL ?

pour info, je vais devoir attendre un peu pour avoir le matériel, et quand j'aurai déjà réussi à faire fonctionner le moteur, je reviendrai sur le post d'ici quelques temps (et peut-être qu'à l'issue de cette mise en route je pourrai aller plus loin).

À bientôt,
Bonne soirée.
 
J

jpbbricole

Compagnon
pour le réglage de la vitesse
En premier, régler, dans GRBL, la vitesse maximum avec les paramètres $110, $111 ou $112, depend de l'axe utilisé.
Avec les commandes en G-code, c'est la commande F qui règle la vitesse en mm/minute.

Cordialement
jpbbricole
 
D

demdandeinfos

Apprenti
Bonjour,

Merci pour les conseils, ils m'ont permis de bien avancer dans la compréhension de la chaîne logiciels.

Je n'ai pas encore le matériel mais j'ai installé l'IDE Arduino et GRBL, a priori ça a fonctionné.

J'ai aussi installé UGS pour voir, j'ai mis cette version :

Product Version: Universal Gcode Platform 2.0 [nightly] / Jul 15, 2018

Java: 1.8.0_171; Java HotSpot(TM) 64-Bit Server VM 25.171-b11

Runtime: Java(TM) SE Runtime Environment 1.8.0_171-b11


La navigation dans les logiciels m'a conduit à ces deux questions :
- devrai-je avoir des modifications à faire dans le config.h du firmware GRBL ?
- j'avais trouvé un tutoriel web sur UGS mais l'interface diffère de celle que j'ai téléchargée, comment puis-je trouver les paramères $110, $111 ou $112 à régler dans la version que j'ai installée ?

Merci, bonne journée.


-----------
pour info, je mets ci-dessous la configuration du matériel que je vais recevoir :

- Carte Arduino(TM) UNO R3
- Carte shield cnc grbl (compatible Arduino UNO, compatible firmware GRBL, Tension d'entrée : 12V-35V, Axes pilotables: X,Y,Z + 1 axe, Entrées de fin de course: 6 slots en 2 pins, Prise pour une connexion I2C et UART (serie), version: 3.00) > http://blog.protoneer.co.nz/arduino-cnc-shield/
- pilote moteur pas à pas stepstick : Puce Allegro A4988, tension d'entrée / puissance: 8-35V (12V conseillé), Tension d'entrée / logique : 3-5.5V, Courant en continu par phase : 1A, Courant maximum par phase : 1.75A (avec dissipateur et ventilation), Résolution en micro-pas (microstepping) : 1, 1/2, 1/4, 1/8, 1/16, Protection : surchauffe, Pas de protection d'inversion des tensions, Taille : 15.2 x 20.3)
- moteur Nema 17 48 mm : Norme du moteur pas à pas: NEMA 17, Dimensions: 42.3x42.3x48mm, Poids: 350g, Diamètre de l'axe: Ø5 x ~24 mm, Nombre de phase: 2, Voltage standard: 2,8 V, Nombre de pas: 200, Pas angulaire: 1,8° (+/-5%), Couple de maintien: 50N.cm soit 70oz.in, Connection: 4 fils molex ou dupont, Résistance/phase: 1,65 Ohm par phase, Inductance/phase: 2,8 mH par phase, Courant/phase: 1,68 A par phase
 
J

jpbbricole

Compagnon
devrai-je avoir des modifications à faire dans le config.h du firmware GRBL ?
A priory non, si ça fonctionne. Tout au plus tu peux changer la vitesse de transmission

#define BAUD_RATE 115200

Si tu veux épater les copains, tu peux personaliser le prompt au lancement

dans report.c
modifies la ligne
printPgmString(PSTR("\r\nGrbl " GRBL_VERSION " ['$' for help]\r\n"));
en
printPgmString(PSTR("\r\nGrbl " GRBL_VERSION " demdandeinfos ['$' for help]\r\n"));

Ca donne ça
1531729668158.png

La classe:wink:
- j'avais trouvé un tutoriel web sur UGS mais l'interface diffère de celle que j'ai téléchargée
C'est parceque tu a installé la version Platform et souvent les tutos sont pour la version classic, Le détail ici.
comment puis-je trouver les paramères $110, $111...
C'est pas dans les fichiers du programme, mais c'est des commandes à envoyer depuis l'interface, en l'occurence UGS
1531730204005.png

Et c'est sauvé en EEPROM de l'Arduino. Pour les lister tous c'est la commande $$. Le détail des commandes c'est ici.

Cordialement
jpbbricole
 
D

demdandeinfos

Apprenti
Bonsoir

c'est une très bonne nouvelle pour moi pour le config.h, ça commançait à m'inquiéter

pour UGS classic, c'est bon, je l'ai ouvert, en effet c'est comma dans le tuto, par contre quand j'essaye d'avoir le "firmware setting" il me dit pas de port connecté (je n'ai pas de carte de branché), pour info je regarde ce tuto (c'est à 12'48)

ok pour faire une modif via "command", je commence à voir le principe du logiciel (merci beaucoup pour toutes les infos)

et si les réglages sont bons, comment fait-on ensuite pour actionner le moteur sur un temps donné ? (on l'a peut-être vu plus haut, mais je ne vois pas)

pour épater les potes je vais encrore attendre un peu :wink:)

Bonne soirée
 
J

jpbbricole

Compagnon
par contre quand j'essaye d'avoir le "firmware setting" il me dit pas de port connecté (je n'ai pas de carte de branché)
Il ne faut pas "confuser" UGS comme les autres interfaces GRBL n'ont pas les paramètres ce ne sont "que" des intermédiaires de GRBL qui, lui, a tout, c'est pourquoi une carte connectée, avec GRBL installé, est obligatoire.
comment fait-on ensuite pour actionner le moteur sur un temps donné
En envoyant du G-code par la ligne de commande ou un fichier en contenant du G-code, tout un apprentissage mais pas très compliqué mais qui permet des trucs pas mal :wink:

Bonne soirée
jpbbricole
.
 
D

demdandeinfos

Apprenti
merci beaucoup jpbbricole pour toutes ces infos, je vais poursuivre les recherches de mon côté

à mon niveau tout est clair pour moi côté montage et procédure pour démarrer, pour la partie logicielle je vois bien mieux et la pratique fera le reste

je reviendrai sur le post quand mes tests seront conluants (ou avant si ça coince :wink: )

encore merci, bonne soirée
 
Dernière édition:
D

demdandeinfos

Apprenti
Bonjour

en discutant de mon projet on m'a aussi parlé de ce montage

vu que je ne m'y connais pas ça paraît attrayant car le montage paraît plus simple (sauf qu'il faut programmer Arduino)

mais je me dis que si je souhaitais complexifier le projet (piloter 2 seringues avec la même carte sur X et Y, mettre des Endstop ...) le shield est mieux

je souhaiterais avoir votre avis

merci

ps : je continue à travailler sur UNO+shield et je reviendrai sur le post avec une proposition de procédure de montage pour avoir votre avis avant conception
 
D

demdandeinfos

Apprenti
Bonjour,

Je reviens un petit peu tardivement sur le post mais j'étais pris ces derniers temps. Au final, j'en conclus que c'est bien trop compliqué pour un novice sans connaissance de se lancer dans du pilotage NEMA.

De ce fait, plutôt que comme je l'ai fait en début de post vous proposer du matériel éventuellement utilisable (ce qui pourrait laisser penser que je maîtrise), je vous soumets de nouveau le projet que je souhaiterais faire : https://www.thingiverse.com/thing:2064368
en vous demandant comment je pourrai m'y prendre simplement, il faut 1 moteur qui tourne pour entraîner le piston (et il faut que ça pousse fort car c'est très épais dans la seringue, un NEMA23 irait je pense), mais je cherche un montage avec quelquechose de simple.

J'ai bien trouvé ce post : https://www.usinages.com/threads/cnc-et-carte-arduino.65163/
mais rien qu'au niveau des branchements électriques je suis pas sûr que ce soit clair pour moi, et on voit bien que dans le post #8, l'internaute a rencontré quelques difficultés.

Si vous connaissiez aussi des solutions clés en main ou vendues toutes faites (petit moteur type NEMA 17/13 (ou autre type/genre de moteur) que l'on peut piloter), ça m'intéresse.

Peut-être que d'autres types de moteurs pourraient aussi fonctionner avec un petit potentiomètre ?

Merci d'avance pour vos conseils.
 
Dernière édition:
J

jpbbricole

Compagnon
Bonjour demdandeinfos
en vous demandant comment je pourrai m'y prendre simplement
Pour faire au plus simple, sans soudures, quasiment "clef en main" c'est une solution
1535726502798.png

Tu en as un peu trop, tu utilises un port, mais tu charges GRBL et ça fonctionne.
et il faut que ça pousse fort car c'est très épais dans la seringue
Vu que tu as une imprimante 3D rien ne t'empêches de faire un réducteur et le Nema17 pourrait suffire.
Comment as-tu l'intention de commander ce système, avec un interface GRBL courant (UGS Candle etc.) ou par un programme de ton crû?
Quel est l'usage de cette seringue, envoyer des doses par salves, en continu... une petite explication pour un curieux!

Cordialement
jpbbricole
 
P

pinou29

Compagnon
Bonsoir.
il faut 1 moteur qui tourne pour entraîner le piston (et il faut que ça pousse fort car c'est très épais dans la seringue, un NEMA23 irait je pense), mais je cherche un montage avec quelquechose de simple.
Pourquoi ne pas partir sur l'idée du moteur qui ferait tourner une tige filetée qui elle pousserait le piston de ta seringue ?
Bernard.
 
D

demdandeinfos

Apprenti
Bonjour,

Ci-dessous les précisions que vous demandez :

Quel est l'usage de cette seringue, envoyer des doses par salves, en continu... une petite explication pour un curieux!
il faut que ça pousse en continu, et pour l'instant pas de endstop nécessaire, je couperai à la main quand la seringue commencera à se vider

Pour faire au plus simple, sans soudures, quasiment "clef en main" c'est une solution
d'accord, c'est ce dont on discute depuis le départ du post, mais je peux encore me débrouiller peut-être pour installer Arduino (si c'est de l'officiel apparemment) et GRBL (les explications de JPBricole étaient très claires)
mais je m'aperçois que je pourrai pas gérer la partie électricité/courant du montage (choix de l'alim en gros (Ampérage, Voltage, puissance, réglage de l'ampérage des contrôleur A4988 (ou autres) ...)) et programmation sans aide poussée au démarrage (par exemple, s'il faut passer par du G-code "à la main" pour lancer le moteur)
d'où mon interrogation de solution "plus simple" ou alors clé en main (liste de matériel, schéma, programmes) ou fourni avec didacticiel
il y a des chances que je me retrouve dans la situation de ce post

Pourquoi ne pas partir sur l'idée du moteur qui ferait tourner une tige filetée qui elle pousserait le piston de ta seringue ?
c'est tout à fait ce que je recherche

Bonne journée
 
Dernière édition:
J

jpbbricole

Compagnon
mais je m'aperçois que je pourrai pas gérer la partie électricité/courant du montage (choix de l'alim en gros
1535817573850.png

Une alimentation comme ça devrait suffire. L’Arduino est alimenté par le câble USB.
(Ampérage, Voltage, puissance, réglage de l'ampérage des contrôleur A4988
En tâtonnent, un peu avec le trimmer
1535817624044.png

Tu devrais t’en sortir.

et programmation sans aide poussée au démarrage
Il n’y a aucune programmation à faire, seulement du G-code via UGS ou Candle. Par exemple, si la seringue a une course de 90 mm et que l’on démarre avec le seringue pleine donc le piston complètement tiré (0mm), l’ordre à envoyer à GRBL est:

Pour pousser le piston au fond, le MPAP étant sur l’axe Z
G90 F100 Z90 (déplacement à la position 90mm vitesse 100 mm/minute Z)

Pour remettre le piston à la position de départ
G90 F100 Z0 (retour à la position 0mm vitesse 100 mm/minute Z)

Voilà, c’est tout, la vitesse optimale (Fnnn) est à tester, surtout pour la poussée. Il faudra aussi, dans GRBL, régler le nombre de pas/mm de ton installation, pour l’axe X $100=200 par ex. On en discutera en temps voulu si nécessaire.

A ta disposition pour d’autres questions.

Cordialement
jpbbricole
 
D

demdandeinfos

Apprenti
Bonsoir,

D'accord, du coup si je commande ces produits :
- https://www.reprap-france.com/produit/364-kit-electronique-ramps-1-4
- https://www.reprap-france.com/produit/1234568266-alimentation-12v-400w
- https://www.reprap-france.com/produit/1234568651-moteur-pas-a-pas-nema-23-100mm

et que je suis pas à pas la procédure que nous décrivons depuis le départ, a priori ça devrait fonctionner ?

En tâtonnent, un peu avec le trimmer
1535817624044-png.png

Tu devrais t’en sortir.

est-ce que je peux avoir juste un peu détail sur "tâtonner" ?
 

Sujets similaires

T
Réponses
28
Affichages
3 042
Tristan l'apprenti
T
F
Réponses
4
Affichages
38 851
francois23
F
R
Réponses
20
Affichages
1 421
Hubert86
H
U
Réponses
85
Affichages
7 223
Hubert86
H
J
Réponses
265
Affichages
14 261
FLCV71
F
R
Réponses
55
Affichages
52 459
jacounet
jacounet
01power
Réponses
3
Affichages
13 826
01power
01power
U
Réponses
9
Affichages
2 358
gomax69
G
D
Réponses
2
Affichages
962
demdandeinfos
D
Haut