Poinçonneuse Autonome Bi-Arduino

Bonjour à tous
Je lance un nouveau sujet : Poinçonneuse autonome.(sans PC)

Donc, une poinçonneuse, soit 2 axes et 1/2.
Les coordonnées des trous en fichier texte sur carte SD, elle même sur un Arduino, communication avec un 2e Arduino qui embarque l'interpréteur Gcode et qui pilote les axes via les drivers. Tout cela, c’est ce que j’ai pu glanner par-ci par-là
Mais il faut d’abord passer du ".txt" au "Gcode".
J’ai par exemple le fichier txt suivant, qui contient les coordonnées des trous à percer.

moveY(60)
moveX(119.0)
moveZ()
moveX(14.0)
moveZ()
moveY(9)
moveX(101.5)
moveZ()
moveX(31.5)
moveZ()
moveX(14.0)
moveZ()
J’ai voulu le convertir en Gcode; j’ai trouvé :
http://www.cnc.yertiz.com/text2.htm
mais c’est pour graver un texte ; pour moi, d’après ce que j’ai vu du Gcode, il me faut rajouter des « G quelque chose » pour les déplacements, mais je ne sais pas comment, et je ne me vois pas le faire manuellement, et,« mon anglais étant toujours très pauvre… » Je cherche seulement à occuper sainement ma retraite.
Merci de votre aide.
PapyDuino

Bonjour,

Voici un article sur les commandes numériques qui pourra peut-être t'aider :
http://fr.wikipedia.org/wiki/Programmation_de_commande_num%C3%A9rique

A+

Alain.

Merci mcAllan
J'ai déjà vu les commandes cnc, mais ce que je recherche, c'est un convertisseur pour insérer les commandes
dans le fichier texte. Mais, cela existe-t-il ?
PapyDuino

pas à ma connaissance.

Par contre, si tu regarde le site wikipédia (voir post de McAllan), à la fin, il y a un exemple.
Les commandes Gxx et Mxx définisent tes vitesses (broche, avance, coupe, etc...)

Après, pour un convertisseur, tu peux utiliser la fonction "remplacer" d'un éditeur de texte : "X" remplace "moveX(", etc...
Il te restera par contre à insérer à la mano toute les commandes de vitesses...

Tu peux aussi convertir ton plan du format DXF (possible sous QCad par exemple) en gcode avec ce soft : http://cnccodegen.sourceforge.net/

et il y a aussi : http://www.dakeng.com/ace.zip

ou un site sur les cnc home-made : http://cnc25.free.fr/

Merci Taddot pour ces infos.
S'agissant de rentrer les Gxx à la mano, c'est impensable, car il s'agit de milliers de trous!
Peut-être donc que le .txt n'est pas le meilleur format intermédiaire, et qu'il va falloir repartir du début?
Amicalement
PapyDuino

Salut papyduino,

Je suis ton topic avec attention pour mon propre projet (une pick & place de cms, un axe de plus c'est tout en faite).
Tu avais rapidement parler de ce projet sur l'autre topic, est un truc m'intrigué déjà, pourquoi 2 arduino ?
J'entends pourquoi ne pas centralisé le système sur un seul arduino ?

Ps: pour ta conversion Txt -> Gcode, je veux bien te faire un script python si tes .txt suivent le style de commande de ton 1er post.

Hello skyvodd
J'ai finalement lancé le topic, car je n'avance plus.
2 arduinos, simplement parce que j'ai vu çà:
Imgur
et je pensais, peur-être à tort, que c'était le passage obligé.
1er Arduino lit le fichier sur une carte SD (encore une)dont on ne sait pas encore le format définitif et l'envoie au =>
2e Arduino qui l'interprète et commande les 2 moteurs d'axe X et Y + l'axe Z en tout ou rien.
Je suppose que le 2e devant embarquer l'interpréteur (Gcode), un seul µproc ne suffit pas.
mais ce n'est QUE parce que j'ai trouvé ce lien que je suis parti sur 2 µ.
Le format de fichier que nous avons est donné dans le 1er topic; ce sont des coordonnées relatives par rapport à un point d'origine 0.
Le format de commande CNC est souvent le Gcode; on ne sait pas faire le lien entre notre fichier, (qui, je le rappelle, contient des milliers de coordonnées, il n'est donc pas envisageable d'intervenir manuellement dans ce fichier) et le fichier de commande proprement dit.
J'ai vu aussi REPRAP, mais c'est du 3D à partir d'un fichier généré par un logiciel de dessin 3D, donc çà ne convient pas.
Ne sachant pas très bien dans quelle direction partir, je suis ouvert à toute idée constructive.

Ps: pour ta conversion Txt -> Gcode, je veux bien te faire un script python si tes .txt >>suivent le style de commande de ton 1er post.
Le bout de .txt du premier post est une petite partie d'un fichier de départ, donc oui, le style est le même!
J'ai aussi vu passer le Python au cours de mes recherches, mais pour moi, c'est du chinois.
Commençant à te connaître, je vais me dépêcher de faire un proto...
A+
Papyduino

En regardant la photo je comprend ce que le dev à voulu faire, manifestement il a utiliser des contrôleurs easydriver de sparkfun (http://www.sparkfun.com/products/9402).
A mon avis il faut d'abord mettre sur la table plusieurs point avant de faire un proto :
Quel type de moteur ?
Quel controleur pour ces moteurs ?
Une ou deux arduino ?
Format Gcode ou perso ?

Perso je verrais bien, moteur nemea 200°/tr, controleur pololu (série), une arduino, format Gcode.

Ps: je peut t'aider pour la programmation (bien que je suis sur l'autre projet tout de suite) mais niveau mécanique je serais totalement inutile :sweat_smile:

Bonjour les matinaux.
Une « Headless CNC » ici avec 2 Arduino aussi, et carte SD, bien sûr, en anglais :

Les moteurs seront des 200 pas par tour : puissance et modèle à déterminer en fonction de la mécanique ; pas de pb de ce côté-là.
Pour les contrôleurs, les polulu série dont tu parles ne sont-ils pas plutôt faits pour des servos ?
Entre Sparkfun et les autres le choix n’est pas fait, en fait, ce choix sera guidé par le type de moteur PàP dispo ou de récup, uni ou bipolaire, et sa puissance.
Il y a des drivers pour uni et bi polaires donc, un choix à faire.

Pour les Easy driver, je vois qu’il faut 5 pins de cde alors que certains se contentent de 2 ?

// output pins
int DIR = 3; // PIN 3 = DIR
int STEP = 2; // PIN 2 = STEP
int MS1 = 13; // PIN 13 = MS
int MS2 = 9; // PIN 9 = MS2
int SLEEP = 12; // PIN 12 = SLP
Peut-être la raison des 2 Arduinos ?

Un ou 2 Arduino, ben, faut ce qu’il faut, si un suffit, on va pas se ruiner non plus.
Se souvenir que le fichier de poinçonnage sera sur carte SD.
Le format de cde : Hé bien ce sera celui qui ira bien entre notre .txt, et la commande, et facile à mettre en oeuvre.
Je ne veux pas te disperser ; il ne faut pas laisser tomber le Player Midi.
Mais, comme je présume que çà ne va pas être tout simple, j’ai lancé le tuto avant de m’attaquer à la mécanique. Pour le proto et les 1ers essais, une mécanique d’imprimante modifiée suffit. On verra après pour la gestion du point 0 et de la perte de pas.
A+
PapyDuino

PapyDuino:
Pour les contrôleurs, les polulu série dont tu parles ne sont-ils pas plutôt faits pour des servos ?
Entre Sparkfun et les autres le choix n’est pas fait, en fait, ce choix sera guidé par le type de moteur PàP dispo ou de récup, uni ou bipolaire, et sa puissance.
Il y a des drivers pour uni et bi polaires donc, un choix à faire.

Je sais pas pourquoi mais j'ai toujours aimer les contrôleurs pololu, il font pour les uni et les bi.
Aprés sparkfun ou pololu, à voir selon le moteur, sa puissance et son type
(PS: ce sont des contrôleurs pololu sur la video)

PapyDuino:
Pour les Easy driver, je vois qu’il faut 5 pins de cde alors que certains se contentent de 2 ?
EasyDriver - Stepper Motor Driver - ROB-12779 - SparkFun Electronics

J'ai jamais utilisez d'easy driver donc je sais pas, mais si c'est un probléme de nombre de pattes, un ou deux PCF8574 à 2€ et hop 8 pattes de plus !

PapyDuino:
Un ou 2 Arduino, ben, faut ce qu’il faut, si un suffit, on va pas se ruiner non plus.
Se souvenir que le fichier de poinçonnage sera sur carte SD.

J'ai regardé la video et j'ai traduit (en trés gros) la 1er arduino fait le controle point (donc une arduino suffit pour 3 driver), la 2nd lit sur la carte SD et envoie par série les commande à la 1er, apparemment il voulait pas modifier le sketch du controleur Gcode il à juste mis une 2eme arduino en plus avec sont sketch.

PapyDuino:
Le format de cde : Hé bien ce sera celui qui ira bien entre notre .txt, et la commande, et facile à mettre en oeuvre.
Je ne veux pas te disperser ; il ne faut pas laisser tomber le Player Midi.
Mais, comme je présume que çà ne va pas être tout simple, j’ai lancé le tuto avant de m’attaquer à la mécanique. Pour le proto et les 1ers essais, une mécanique d’imprimante modifiée suffit. On verra après pour la gestion du point 0 et de la perte de pas.

Pour le point zéro sur mon proto j'ai utilisez un capteur opto à fourche et pour la perte de pas j'ai juste mis une bande optique (récup imprimante).

Re

j'ai traduit (en trés gros) la 1er arduino fait le controle point (donc une arduino suffit pour 3 driver), la >>2nd lit sur la carte SD et envoie par série les commande à la 1er, apparemment il voulait pas modifier >>le sketch du controleur Gcode il à juste mis une 2eme arduino en plus avec sont sketch.
Même avec 2 Arduinos, je suis preuneur!
Pour le point zéro sur mon proto j'ai utilisez un capteur opto à fourche et pour la perte de pas j'ai juste >>mis une bande optique (récup imprimante).
Sur une poinçonneuse sur port // on a 2 capteurs opto, un linéaire, et un rotatif pour augmenter la précision; on ne gère pas la perte de pas sur ce modèle.
Pour simplifier, on se demande s'il ne vaudrait pas mieux faire une RAZ tous les X trous.
Pour le format de fichier, on va essayer de sortir en Gcode au lieu du .txt
J'ai jamais utilisez d'easy driver donc je sais pas, mais si c'est un probléme de nombre de pattes, un ou >>deux PCF8574 à 2€ et hop 8 pattes de plus !
Je compare les drivers, mais l'idée est d'utiliser du matériel existant, car le projet s'adresse plutôt à des gens qui tatent plus la mécanique que l'électronique et la gravure de CI; donc, shields privilégiés pour un début.
A+
Papyduino

Bonjour
J’ai été revoir chez Pololu, et en considérant qu’on a des moteurs bipolaires 200 pas par tour, et que le mode pas entier suffit, ce modèle à 1A/phase à 20$ devrait convenir :

Et 2 fils suffisent pour le commander. Régulateurs 5v et 3v3 intégrés.
Il y a un modèle sans régulateurs à 13$ et limitation de courant sur les 2 modèles.
Chez Sparkfun il y a çà pour 15$ :

750mA/phase, compatible 4, 6 ou 8 fils, mais le schéma ne montre que la connection d’un bipolaire. Apparemment, en pas entiers, on peut aussi se contenter de 2 fils de cde : Step et Dir.
Un seul régulateur LM317 intégré, limitation de courant aussi.
A+
PapyDuino

PapyDuino:
Bonjour
J’ai été revoir chez Pololu, et en considérant qu’on a des moteurs bipolaires 200 pas par tour, et que le mode pas entier suffit, ce modèle à 1A/phase à 20$ devrait convenir :
Pololu - A4983 Stepper Motor Driver Carrier with Voltage Regulators
Et 2 fils suffisent pour le commander. Régulateurs 5v et 3v3 intégrés.

Bon je vais pas changer de camps :smiley: donc je te conseil les pololu AVEC régulateurs (sans régulateur il te faudrait une arduino 3v3 avec tout un bord*l enfin bref passons).
Pour le câblage les pololu sont plutôt pratique, sinon je viens juste d'y penser tu disait un format shield serait plus intéressant ? Alors pourquoi pas une motor shield de adafruit ?
Elle peut contrôler 2 motor bi-pol et ce stack directement sur l'arduino.

Re
J'ai dit shield, je voulais dire Platine toute montée; les shields s'enfichent directement sur Arduino si j'ai bien compris.

Mais il faut utiliser une librairie car il y a un 74-595.et limité à 600mApar phase
Pour ceux qui bricolent un peu, j’ai trouvé çà ; çà ressemble d’avantage à ce qu’on avait sur port //.
http://hades.mech.northwestern.edu/index.php/Unipolar_Stepper_Motor_Driver_Circuit
On est moins limité en puissance.
Donc, déjà sur les drivers, il faut faire le bon choix dès le dédut !
A+
PapyDuino