Passare un Gcode ad Arduino

Salve ragazzi,

sto per completare la parte meccanica ed elettronica della mia prima CNC.

Appena la terminero' aprir' un bel topic e mostrero' tutto il lavoro passo passo.

Volevo iniziare a configurare arduino per far leggere i file gcode.

La domanda e':

Devo impostare Ardunio in modo tale da passargli il Gcode e operare di conseguenza oppure il gcode lo faccio interpetrare da qualche software per window e poi con la porta com gli invia solo le informazioni su giri e direzione di ogni motore?
Quale sarebbe la giusta/semplice strada?

Ho trovato una libreria da installare dove c'e' solo una funzione da chiamare in setup e poi lo gestisce tutto il software per windows.

Non ho capito una cosa, come faccio a tarare le coordinate della mia cnc?
Non vedo configurazioni come l'altezza per capire da dove deve iniziare a fresare

tonyhhkx:
Ho trovato una libreria da installare dove c’e’ solo una funzione da chiamare in setup e poi lo gestisce tutto il software per windows.

Ma provare ad usare firmware specifici per stampanti 3D e CNC, p.e. l’ottimo Marlin, troppo complicato ?

astrobeed:
Ma provare ad usare firmware specifici per stampanti 3D e CNC, p.e. l'ottimo Marlin, troppo complicato ?

potresti spiegarmi come funziona e come interfacciarlo?

Io ho trovato un esempio con librerie e software windows.
Questo invece come funziona il procedimento?

tonyhhkx:
potresti spiegarmi come funziona e come interfacciarlo?

Io ho trovato un esempio con librerie e software windows.
Questo invece come funziona il procedimento?

Marlin è un interprete Gcode, può funzionare totalmente in stand alone leggendolo da una SD, si utilizza tramite apposite GUI per pc, p.e. Repetier Host, che provvedono al dialogo con la scheda.
Ovviamente devi studiare molto sia per adattare Marlin al tuo hardware, è totalmente configurabile, che per quanto riguarda la GUI su pc, però un conto è partire da zero e voler fare tutto, molti mesi di lavoro, un conto è partire da una base pronta, sicuramente funzionante, e adattarla.
Se hai già un software che crea il gcode, partendo dal disegno, del pezzo da fresare ti basta caricare il file sulla SD e darlo in pasto a Marlin direttamente.

astrobeed:
Marlin è un interprete Gcode, può funzionare totalmente in stand alone leggendolo da una SD, si utilizza tramite apposite GUI per pc, p.e. Repetier Host, che provvedono al dialogo con la scheda.
Ovviamente devi studiare molto sia per adattare Marlin al tuo hardware, è totalmente configurabile, che per quanto riguarda la GUI su pc, però un conto è partire da zero e voler fare tutto, molti mesi di lavoro, un conto è partire da una base pronta, sicuramente funzionante, e adattarla.
Se hai già un software che crea il gcode, partendo dal disegno, del pezzo da fresare ti basta caricare il file sulla SD e darlo in pasto a Marlin direttamente.

Software per creare gcode ce ne sono molti in giro.
Non capisco pero' come darlo in pasto ad arduino.
Non posso farlo via porta COM? Come si tarano le altezze e le misure? Ho paura che mi stia sfuggendo qualcosa.

Partendo da un esempio trovato, io ho un file gcode, lo do in pasto ad un software come GRLB e da i segnali COM ad Arduino dove e' installata una libreria apposita per grlb.

Cosa cambierebbe con Marlin?

tonyhhkx:
Cosa cambierebbe con Marlin?

La grlb è solo una libreria, Marlin è un software completo, ed usa grlb, per gestire una 3D printer o una CNC. Dalle domande che fai ho l'impressione che hai le idee abbastanza confuse su cosa sia una macchina a controllo numerico e come vanno usate, ti consiglio di iscriverti ad un forum specifico dove puoi trovare tutte le informazioni che ti servono.

astrobeed:
La grlb è solo una libreria, Marlin è un software completo, ed usa grlb, per gestire una 3D printer o una CNC. Dalle domande che fai ho l’impressione che hai le idee abbastanza confuse su cosa sia una macchina a controllo numerico e come vanno usate, ti consiglio di iscriverti ad un forum specifico dove puoi trovare tutte le informazioni che ti servono.

grazie astrobeed.

Parlo di software perche ho scaricato un software che si chiama proprio grlb controller per window e poi delle librerie arduino chiamate semplicemente grlb.

Il concetto della cnc e’: dato un file gcode che contiene tutti le fasi e le cordinate di direzione e step dei motori di ogni asse, questo file viene passato ad un software su window per esempio dove riesce a leggere questo file con tutte le cordinate e manda via porta seriale i comandi al microcontrollore (Arduino) che a sua volte con le sue librerie e il suo sketch manda i comandi di step e dir ai motori.

Il concetto dovrebbe essere piu o meno questo.
Io vogrrei partire da software per window gia compilato e librerie per arduino gia pronte.

Come dici tu dovrei installare le librerie Marlin su arduino e scaricare il software window Repetier Host.
Fatto questo e ovviamente collegando arduino ai driver e poi ai motori e avendo un file gcode da dare in pasto al Repetier Host, dovrei riuscire a far qualcosa giusto?

Ragazzi la mia cnc e' quasi ultimata e ho trovato alcune configurazioni del GRLB:

Grbl 0.8c

'$' to dump current settings

$0 = 40.20 (steps/mm x)
$1 = 40.20 (steps/mm y)
$2 = 320.00 (steps/mm z)
$3 = 30 (microseconds step pulse)
$4 = 500.00 (mm/min default feed rate)
$5 = 500.00 (mm/min default seek rate)
$6 = 28 (step port invert mask. binary = 00011100)
$7 = 255 (step idle delay, msec)
$8 = 25.00 (acceleration in mm/sec^2)
$9 = 0.050 (junction deviation, mm)
$10 = 0.100 (arc, mm/segment)
$11 = 25 (n-arc correction, int)
$12 = 3 (n-decimals, int)
$13 = 0 (report inches, bool)
$14 = 1 (auto start, bool)
$15 = 0 (invert step enable, bool)
$16 = 0 (hard limits, bool)
$17 = 0 (homing cycle, bool)
$18 = (homing dir invert mask, int:00000000)
$19 = 25.000 (homing feed, mm/min)
$20 = 250.000 (homing seek, mm/min)
$21 = 100 (homing debounce, msec)
$22 = 1.000 (homing pull-off, mm)

Non ho capito bene come vado a tarare il tutto.
Per esempio, il primo valore sarebbero gli step del motore? Quindi nel mio caso dovrei mettere 200 anziche' 40/020?

Ragazzi,

sto finendo di configurare i driver su un altro post.

Ho provato un esempio veloce che e’ stato quello di installare una libreria GRLB su arduino e utilizzando un gcode sender da windows gli mando un gcode come ad esempio un cerchio o altro.

Come concetto funziona ma ci sono alcune cose strane tipo che appena parte, si posiziona le assi x,y,z in una posizione iniziale diciamo. Questo movimento e’ cosi rapido che si bloccano i motori.
Non so se e’ dovuto alla regolazione dei driver o perche i motori non supportano quella velocita’?

In oltre quando disegna sembra un trattore! Alcune volte no ma quando va piu lento sembra davvero un trattore!

Pensate dipenda da qualche configurazione necessaria o sempre problema di regolazione driver?
Se muovo le assi manualmente va veloce e senza problemi e senza effetto trattore.

Scusate i messaggi di fila.

Per i primi valori $0,$1,$2 sto facendo questo calcolo:

(step motore * moltiplicatore driver) / mm del passo della vite trapezia.

Quindi (200 * 16) / 2mm = 1600
Va bene 16x? o metto direttamente 32 che e’ il massimo per i miei driver?

Per il $3 dovrebbe essere gli impulsi minimi al microsecondo. Consiglia di mettere tra 5 e 50.
Per i miei driver cosa dovrei mettere?

Credo che le altre configurazioni $5,6,7… posso attendere? Con quelle default non dovrei avere problemi giusto?

Quì trovi una applicazione con GRBL, se scarichi tutti i file nella seconda pagina potrai capire come modificare GRBL per cambiare oltre ai passi/mm che le accelerazioni e gli altri parametri, la versione che stai usando comunque è troppo vecchia, devi usare almeno la 0.9g o l'ultima 0.9i

http://www.cncitalia.net/forum/viewtopic.php?f=25&t=55490