Citazione:
Originalmente inviato da Mach .99 Un po' come octoprint per le stampanti 3D, che gira su raspberry credo accoppiato ad arduino.
Magari proprio quello potrebbe essere un buon punto di partenza.
Credo sia pure opensource, da profano penso che possa quindi essere anche "interpretato" da voi programmatori per le proprie esigenze |
Per le esigenze di cnc laser che mi sono state richieste credo/temo di dover ripartire quasi da zero come architettura del software/firmare, in quanto le frequenze richieste mi costringono a stravolgere le normali funzioni usate per il caso stampa 3D da scheda multithreading (Raspberry) e scheda real time (Arduino). Arduino deve essere alleggerito da tutte le funzioni di parsing GCode, di motion control (gestione traiettorie interpolate ed accelerazioni/decelerazioni) etc ed occuparsi solo di stepper timing, in quanto a 200kHz restano pochi cicli di clock disponibili per ogni singolo step, su tre assi interpolati piu' PWM del laser variabile alla stessa frequenza.
Per qualche motivo che ancora che mi sfugge le schede real time hanno frequenze di clock molto piu' basse, e quindi non possono essere sovraccaricate.
Vediamo infatti che l'arduino piu' veloce disponibile è 84MHz su 32 bit, contro gli 1.2 GHz su 64 bit e 4 processori di un Raspberry Pi 3, potenzialmente quindi oltre 100 volte piu' veloce sui calcoli interi (quelli che si usano di piu' negli stepper controller).
Il motivo per cui i pin di un Raspberry non possono essere usati per la generazione degli impulsi stepper sono la bassa risoluzione temporale, nell'ordine di vari (anche centinaia in certi casi) millisecondi, contro quella di Arduino, inferiore al microsecondo. Un'altissima risoluzione temporale degli impulsi è condizione indispensabile al buon funzionamento dei motori stepper.
Fine papiro :-)