Fusione di MakerBot e CNC

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
Avatar utente
skylord73
Junior
Junior
Messaggi: 172
Iscritto il: lunedì 28 marzo 2011, 15:42
Località: Padova
Contatta:

Fusione di MakerBot e CNC

Messaggio da skylord73 » giovedì 30 giugno 2011, 17:43

Al momento possiedo sia una CNC che una Makerbot, però mi piacerebbe di due macchine farne una, anche perchè la meccanica della makerbot è veramente una tragedia rispetto a qualsiasi CNC.

IDEA:
La testina di stampa (PlasTruder) di Makerbot, sopratutto nella sua ultima versione, sembra funzionare egregiamente con risoluzioni accettabili per lavori obbistici. Io ho la prima versione che salvo qualche blocco saltuario funziona egregiamente. Il costo è abbastanza contenuto ed esiste la documentazione completa sia dell'hardware che del software.

PROBLEMA:
Interfacciare l'elettronica dell'estrusore con l'elettronica tradizionale di una CNC, ovvero con la porta parallela.
Al momento l'estrusore di Makerbot è pilotato da un Arduino che si occupa delle regolazioni di temperatura e del motere che controlla l'avanzamento del filo da fondere che viene a sua volta controllato dalla scheda madre (sempre arduino) che pilota gli assi.
Poichè la scheda madre dialoga con l'estruosre ad alto livello, ovvero inviando comandi seriali (rs485) per regolare la temperatura e la velocità  di estrusione, e tutto il lavoro sporco tipo il pwm per controllare il motore e i controllori PID di temperatura è gestito dall'elettronica dell'estrusore, la soluzione più semplica a mio avviso è la seguente

Realizzare con un PIC un controller ModBus in grado di dialogare con Mac3 per la gestione degli M command che pilotano Avanzamento Filo e le due temperature e di interfacciare tale PIC con l'arduino del controller (via RS485).

Così facendo si potrebbe dare in pasto il codice prodotto da SkeinForge (software che produce il G-code addittivo per la makerbot) direttamente a Mach3 che piloterebbe il movimento degli assi direttamente via parallela come per una normale fresatura, e gli M-command relativi all'estrusore via ModBus

Mi piacerebbe sapere se qualcuno ha già  affrontato e con che esito i seguenti problemi:
  • MACH3: è possibile far si che alcuni comandi M vengano instradati ad un controllore ModBus?
  • Qualcuno ha provato un controller ModBus realizzato con PIC (di cui esistone alcune realizzazioni già  pronte) con MAch3?

Techogogo
Junior
Junior
Messaggi: 113
Iscritto il: sabato 22 gennaio 2011, 15:13
Località: Provincia di Torino

Re: Fusione di MakerBot e CNC

Messaggio da Techogogo » domenica 17 luglio 2011, 11:21

Domanda troppo "high tech" per il presente forum.

ModBus...che ?....si mangia ? :D

Ciao.

Avatar utente
marcosin
Senior
Senior
Messaggi: 840
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da marcosin » lunedì 25 luglio 2011, 20:32

La cosa è fattibile, o meglio se ho ben capito cosa vuoi fare, è fattibile...
Per primo devi scrivere degli script con il VB script editor, che per esempio vanno ad attivare delle uscite, come ad esempio questo

ActivateSignal(OUTPUT3)
code "G4 P4"
While Ismoving()
Wend
DeActivateSignal(OUTPUT3)

Chiamando lo script con il nome M150.m1s e salvandolo sulla cartella del profilo corrente, ogni volta che sul g-code ci sarà  un comando M150 verrà  attivata l'uscita 3 e dopo 4 secondi viene resettata.
Questa uscita può essere successivamente instradata sul modbus come variabile booleana (coil), non sono riuscito al momento a passare delle variabili numeriche ad esempio di tipo intero da una macro in Vb al modbus, forse la strada percorribile è quella di appoggiare il valore su un Dro.

Poi va configurato il modbus per fare in modo che i registri, coil, etc... del tuo dispositivo vengano scambiati con mach3 regolarmente, per fare questo c'è il plugin nativo su mach3 da configurare, ci stò lavorando propio in questi giorni perchè stò realizzando una scheda comandata in modbus con 16 input, 8 output, 4 input analogici e 2 output pwm.

Una volta che il modbus è correttamente configurato puoi creare un programma sul "brain", è una sorta di plc interno che si programma appunto in un linguaggio simile al ladder e ti permette di mettere in relazione tutti gli elementi di mach3 creando una logica programmata che può anche andare a scrivere e leggere le variabili del modbus.

Tieni conto che il polling si aggira sui 25mS, almeno questo è quello che si deduce sui settaggi, ma non ho fatto ancora prove strumentali per appurarlo.

Molte informazioni puoi trovarle direttamente sul sito di mach3 nella sezione download, in questo link http://henriksplace.se/cnc/cnc_mach3_modbus_2.html c'è una breve guida di come usare un device modbus.

Nett
Newbie
Newbie
Messaggi: 25
Iscritto il: domenica 11 ottobre 2009, 12:29
Località: Riccione

Re: Fusione di MakerBot e CNC

Messaggio da Nett » martedì 26 luglio 2011, 12:05

Sto realizzando anche io (anzi, ormai è in stato embrionale avanzato su breadboard :D) una scheda che comunica via Modbus con Mach3, collegamento USB 2.0 (alla fine costa meno della classica RS232).

8 output digitali
2 output "analogici"
8 input digitali
4 input analogici
2 input per encoder in quadratura
1 display a caratteri fino a 4x20
tecnicamente espandibile fino a più di 256 I/O (anche molti di più :D ma poi a cosa servono?)

Se riesco carico un video in questi giorni... I primi test vanno egregiamente, tipo movimento assi tramite encoder, visualizzazione coordinate su display 4x20, variazione Feed rate tramite potenziometro etc...

Va bene per tutti gli input/output che non necessitano di tempi di risposta veloci, ad esempio limit switches o sensori home. Va egregiamente per costruirsi una sorta di pannello di controllo "simil-professionale" o per automatizzare cose come inverter dell'elettromandrino, parti di cambio utensile etc...
E poi ha un costo relativamente basso!

Avatar utente
stefano830_1
Senior
Senior
Messaggi: 855
Iscritto il: lunedì 2 novembre 2009, 12:50
Località: Wolfratshausen (Germania)

Re: Fusione di MakerBot e CNC

Messaggio da stefano830_1 » martedì 26 luglio 2011, 12:09

vai vai posta pure che siamo tutti in attesa con carta penna e basette pronte da stampare :D

Avatar utente
marcosin
Senior
Senior
Messaggi: 840
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da marcosin » martedì 26 luglio 2011, 13:05

@Nett
si il modbus funziona abbastanza bene ma ho notato che devo dividere le funzioni logiche su più file brain.
Forse ho sbagliato qualcosa, ma ieri sera facendo un brain con una decina di righe mi sono ritrovato che le prime due non venivano più eseguite, l'ho diviso in due file e dopo ha funzionato perfettamente, potrei aver preso un granchio, stasera guardo meglio!
Gl impulsi degli encoder li invvi direttamente come booleani oppure incrementi e decrementi un registro del pic che viene letto in modbus?
Credo la seconda visto la lentezza del polling...
Comunque complimentissimi per il lavoro =D>

Nett
Newbie
Newbie
Messaggi: 25
Iscritto il: domenica 11 ottobre 2009, 12:29
Località: Riccione

Re: Fusione di MakerBot e CNC

Messaggio da Nett » martedì 26 luglio 2011, 17:20

Ho notato anche io che se gli fai fare troppe cose o cose troppo onerose (esempio inviare 80 caratteri di fila al display) non le fa tutte. Per l'encoder si, lo faccio vedere a Mach3 come un input register (valore 16bit) in cui memorizzo il numero di impulsi e lo mando a MPGCount nel brain.

Molte cose comunque ho provato a farle non in polling ma in direct access. Appena mi libero dagli ultimi esami (ancora un paio di giorni :( ) faccio vedere qualcosa.

Intanto però condivido un link che mi è stato molto comodo per la base della macchina a stati che gestisce il protocollo modbus(scritto in C per pic18F4550): FieldOfCows.com

Devo ancora capire se posso provare ad aumentare la bit-rate della porta seriale emulata. In realtà  il lavoro più grosso che ho dovuto fare è stato far andare decentemente il collegamento usb tra pc host e device eheh.

Avatar utente
marcosin
Senior
Senior
Messaggi: 840
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da marcosin » domenica 31 luglio 2011, 23:35

Ciao Nett,
volevo chiederti se hai riscontrato dei problemi sulla scrittura degli holding register.
La funzione 06 per la scrittura del singolo registro mi funziona regolarmente, mentre la funzione 16 per la scrittura multipla mi da dei problemi, dalle prove fatte sembra che sia mach3 che sbaglia qualcosa sulla scrittura dei valori, ma non ne sono certo...

Nett
Newbie
Newbie
Messaggi: 25
Iscritto il: domenica 11 ottobre 2009, 12:29
Località: Riccione

Re: Fusione di MakerBot e CNC

Messaggio da Nett » martedì 2 agosto 2011, 15:32

Da me funziona bene, cioè riesco a scrivere tranquillamente fino a circa 20 registri in un comando solo. L'unica cosa è che il pic è un po' a corto di ram (tra usb, buffer ricezione, trasmissione, buffer LCD etc..) e quindi il buffer di ricezione si riempie velocemente (gli ho riservato circa 50 byte) e se questo succede sono un po' guai.

Se scrivi dei valori in due registri contigui (es 8A1F 8A1F) cosa leggi? Io all'inizio mi ero impallato semplicemente perchè facevo scrivere il byte più significativo al posto di quello meno significativo. Infatti quando scrivevo una stringa sull'LCD ("Prova ") mi compariva una cosa strana ("rPvo a") :P

Avatar utente
marcosin
Senior
Senior
Messaggi: 840
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da marcosin » martedì 2 agosto 2011, 20:44

Innanzitutto grazie, ho risolto, la colpa era mia, il modbus di mach3 funziona perfettamente!!!
Per fare più veloce stò scrivendo il firmware con picbasic, ho notato che se ho un array di word e vado a scrivere o leggere sul un solo byte delle stesse non funziona correttamente.
Esempio:
Dato var word[20] 'definizione array
Dato[n].highbyte=x 'trasferisce X sul byte alto della word n dell'array
Dato[n].lowbyte=y 'trasferisce Y sul byte basso della word n dell'array

Per risolvere devo appoggiare la word facente parte dell'array su un registro di passaggio:

Dato var word[20] 'definizione array
Appoggio var word 'definizione word di appoggio
Appoggio=Dato[n] 'trasferisce la word N dell'array sulla word di appoggio
Appoggio.highbyte=x 'trasferisce X sul byte alto della word n dell'array
Appoggio.lowbyte=y 'trasferisce Y sul byte basso della word n dell'array
Dato[n]=Appoggio 'trasferisce la word di appoggio della word N dell'array

Adesso funziona perfettamente.

Per quanto riguarda la memoria del pic, la usb è comoda ma pesante come programma, io credo che la toglierò per andare in rs232, del resto un convertitore esterno costa pochissimo.
Mentre per aumentare gli I/O credo di utilizzare un I/O expander in I2C.

Nett
Newbie
Newbie
Messaggi: 25
Iscritto il: domenica 11 ottobre 2009, 12:29
Località: Riccione

Re: Fusione di MakerBot e CNC

Messaggio da Nett » martedì 2 agosto 2011, 22:55

Infatti con un expander in I2C o SPI con un paio di pin si possono avere decine di I/O digitali, ed è teoricamente scalabile. Ma tanto vale prendere un pic più grande con 80/100 pin allora!
Per il picbasic non saprei dirti, io il firmware l'ho scritto in C (compilatore C18, cos. L'usb è pesantuccio però alla fine usa gli stessi pin di una seriale, e in più ti risparmi il max232 (sia come € per lui e componenti passivi, che come spazio su scheda).

Avatar utente
marcosin
Senior
Senior
Messaggi: 840
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da marcosin » martedì 2 agosto 2011, 23:08

Si, la usb ha anche i suoi vantaggi.
Il C l'ho usato e lo uso ma non lo conosco in modo approfondito, quindi quando ho poco tempo vado di basic, anche se la sua semplicità  si paga in memoria e lentezza rispetto al C!
Pensavo all'expander solo perchè pic con più di 40pin obbligano all'smd, che non è propio alla portata di tutti...

Nett
Newbie
Newbie
Messaggi: 25
Iscritto il: domenica 11 ottobre 2009, 12:29
Località: Riccione

Re: Fusione di MakerBot e CNC

Messaggio da Nett » sabato 1 ottobre 2011, 1:02

Tra esami e altre cose (realizzazione quarto asse :P) finalmente trovato un po' di tempo per fare un video (scandaloso, lo so, ma si sono scaricate le batterie della macchina fotografica stasera...) dimostrativo dell'interfaccia modbus-usb. Nell'esempio muovo un asse con un encoder, vario il feedrate con un potenziometro e visualizzo le coordinate degli assi su un display lcd 4x20.

LINK VIDEO

La parte software lato pic a parte qualche piccola modifica è fatta, risulta quasi più difficile invece interagire con mach3 tra macropump, plugin per modbus, vbscript e brain. Però pian piano. Con una schedina del genere è facile aggiungere un po' di automazione visti gli I/O disponibili (e scarsi nella parallela!).

Splittiamo il topic?

Avatar utente
skylord73
Junior
Junior
Messaggi: 172
Iscritto il: lunedì 28 marzo 2011, 15:42
Località: Padova
Contatta:

Re: Fusione di MakerBot e CNC

Messaggio da skylord73 » martedì 3 gennaio 2012, 18:54

Mi sento un po' in colpa per aver lanciato il sasso e tolta la mano, ma per un po' nessuno si è fatto vivo e mi ero dimenticato del post!

Nel frattempo ho fatto anch'io un po' di ricerche sia in campo Mach3 che in campo PIC e sono arrivato alle vostre stesse conclusioni sulla fattibilità .

Adesso sto mettendo in squadra la CNC che è un po' storta, ma appena è pronta stampo subito una bella basetta per il PIC con il software modbus e lo faccio dialogare con il controller dell'estruder della makerbot in rs485

Ho già  dato un occhio alle API del controller e sono semplici, pertanto dal pic non dovrebbe essere difficile inviare comandi in grado di regolare la temperatura e l'avanzamento del motore dell'estrusore... convertire il tutto in modbus e poi inviarlo a mach3.

Intanto ho fresato una flangia da montare sul mandrino per attaccare la testina di stampa della makerbot, così anche la compatibilità  meccanica è fatta.

Se la cosa funziona come spero, con $200 per la testina di stampa e controller ri trasforma una comune CNC in una stampante 3d con precisione decisamente superiore a quella della makerbot...

Vi aggiorno!

Avatar utente
ToshiroTamigi
Junior
Junior
Messaggi: 104
Iscritto il: martedì 18 gennaio 2011, 2:30
Località: Roma/Augusta

Re: Fusione di MakerBot e CNC

Messaggio da ToshiroTamigi » martedì 3 gennaio 2012, 23:48

Ciao,
lavorando ad una cnc, tempo fa avevo visto qualcosa.
credo che questi possano essere interessanti:
http://www.thingiverse.com/thing:6480
http://reprap.org/wiki/EMCRepRap
da qualche altra parte avevo visto un implementazione modbus, appena la trovo la posto.

Rispondi

Torna a “Elettronica CNC”