GCODE + Arduino Leonardo + ULN2803

Salve a tutti, ho recuperato 2 motori stepper (TEAC) da un vecchio pc ibm, volevo provare con un arduino leonardo a comandare i motori attraverso un semplice circuito utilizzando un ULN2804, utilizzo tutti gli 8 pin perchè i motori essendo bipolari hanno 4 fili + alimentazione. Ho provato utilizzando le librerie Stepper.h e tutto funziona ok. Ora volevo provare con il pc attraverso la comunicazione seriale USB utilizzando un gcode sender. Ho guardato e scaricato parecchia roba ma ... non riesco a capire : 1) E' possibile con arduino leonardo ? 2) Come e dove definisco i pin ? (a livello software intendo ...). Ho trovato solo un utilizzo con shield (reprap, xygcode_inerpreter etc.), ma non dove si possa in qualche modo definire i pin da utilizzare come ad esempio per la libreria Stepper.h. senza quindi utilizzare una shield! Grazie ...

p.s.: sto provando un sistema di proiezione laser (specchietti attaccati ai motori e piccolo laser), volevo fare ad esempio qualche scritta/animazione utilizzando gcode, per ora ho fatto qualche semplice prova uploadando degli sketch !

Per primo un ULN2804 non é adatto per essere pilotato da un circuito CMOS da 5V. Devi usare un ULN2803. Per secondo un ULN sono 8 transistori darlington che collegano l'uscita a massa ma non a +5V. non so come potrebbe funzionare un motore passo passo bipolare con un ULN. Se i motori hanno 4 fili piú alimentazione allora sono motori unipolari e quelli funzionano con un ULN.

Ciao Uwe

Porta pazienza è l’ULN2803 ,Il motore è un TEAC P.NO.14769070-10 (floppy da 1/4) ed ho inoltre scritto bipolare ma pensavo unipolare, si comunque è unipolare, la cosa strana è che il vecchio pc aveva 2 floppy, 1 motore con 2 fili marrone common e l’altro con un solo filo marrone … mah! Comunque gli stepper girano correttamente alimentati a 12v ( stepper library e accelstepper) non ho problemi col circuito, … rimane il mio problema del gcode.

Ciao,
Andrea

Tutti gli interpreti per G-CODE che ho visto fino adesso servono per pilotare i driver degli stepper tramite direzione e passo. Non sono a conoscenza di un interprete G-CODE che piloti direttamente i motori. Puoi risolvere in vari modi, da quello semplice a quello complesso. - prendere un driver per motori stepper unipolari comandabile con direzione e passo (http://www.elecrow.com/cooperated-designers-c-127/protoneer-c-127_168/cnc-shield-for-arduinogrbl-compatible-p-778.html) (http://www.ebay.it/sch/i.html?_from=R40&_sacat=0&_nkw=Arduino+CNC+Shield&LH_PrefLoc=2&_sop=15) - costruirti un driver per motori stepper unipolari - modificare l'interprete per comandare direttamente i motori stepper. oppure cercare qualcuno che l'abbia già fatto.

Io stavo lavorando ad un mini driver per piccoli stepper (http://forum.arduino.cc/index.php?topic=232246.0) ma ho interrotto il progetto e il codice postato ha molti problemi. :sweat_smile:

PaoloP: Tutti gli interpreti per G-CODE che ho visto fino adesso servono per pilotare i driver degli stepper tramite direzione e passo. Non sono a conoscenza di un interprete G-CODE che piloti direttamente i motori. Puoi risolvere in vari modi, da quello semplice a quello complesso. - prendere un driver per motori stepper unipolari comandabile con direzione e passo (http://www.elecrow.com/cooperated-designers-c-127/protoneer-c-127_168/cnc-shield-for-arduinogrbl-compatible-p-778.html) (http://www.ebay.it/sch/i.html?_from=R40&_sacat=0&_nkw=Arduino+CNC+Shield&LH_PrefLoc=2&_sop=15) - costruirti un driver per motori stepper unipolari - modificare l'interprete per comandare direttamente i motori stepper. oppure cercare qualcuno che l'abbia già fatto.

Io stavo lavorando ad un mini driver per piccoli stepper (http://forum.arduino.cc/index.php?topic=232246.0) ma ho interrotto il progetto e il codice postato ha molti problemi. :sweat_smile:

La prima frase spiega la mia fallita ricerca su internet in merito alla possibilità di comandare direttamente i motori ... Anche tutto il software che si trova è orientato ai plotter x-y e stampanti 3d, presumo che il motivo sia legato alla particolarità del funzionamento di queste macchine che necessitano di driver hw che ad esempio possa muovere due motori simultaneamente, cosa non possibile con il solo arduino (chiedo conferma non essendo esperto in macchine cnc) . Sono alle prime armi con motori stepper (con arduino ho fatto parecchie cose con power led) , e guardando l'esperimento su : http://www.youtube.com/watch?v=TQWjmvKusxU mi era saltato in mente di fare una cosa analoga visto che possedevo tutto il materiale (driver shield a parte). Sono riuscito a "tracciare" anche se non perfettamente, con l'utilizzo della lib. stepper, una linea, un quadrato, una lettera ecc., ma mi pare di aver capito che per interpretare gcode ho bisogno di una scheda. Per quanto riguarda la modifica dell'interprete, ho si fatto programmi anche abbastanza complessi, ma non mi sono mai addentrato nel sistema (registri ,parametri, routine e altro) e la vedo dura, inoltre penso che non sia possibile per le limitazioni che ci sarebbero senza driver. O no? Ciao, Andrea

mikepin00: che ad esempio possa muovere due motori simultaneamente, cosa non possibile con il solo arduino (chiedo conferma non essendo esperto in macchine cnc) .

Prima di tutto con Arduino muovi senza problemi anche più stepper simultaneamente in perfetto sincrono, però se vuoi usare i software GCode già esistenti devi utilizzare stepper bipolari corredati dell'apposito driver, lascia perdere quelli monopolari.

astrobeed:

mikepin00: che ad esempio possa muovere due motori simultaneamente, cosa non possibile con il solo arduino (chiedo conferma non essendo esperto in macchine cnc) .

Prima di tutto con Arduino muovi senza problemi anche più stepper simultaneamente in perfetto sincrono, però se vuoi usare i software GCode già esistenti devi utilizzare stepper bipolari corredati dell'apposito driver, lascia perdere quelli monopolari.

Si , effettivamente parliamo di motori del 1984 mi sembra, era il mio secondo pc, se includo lo spectrum, un IBM 8088, ma visto che mi avanzava un arduino leonardo ed il resto ..., comunque adesso mi è più chiaro il discorso se volessi cimentarmi con una stampante 3d : arduino mega, motori stepper bipolari e scheda driver (già pronta visto il casino coi codici, motori etc.).. Solo una cosa : io parlavo di comandare simultaneamente i motori, con il semplice utilizzo della libreria stepper.h e accelstepper.h ovvero senza driver, direttamente , ma non mi sembra possibile, le istruzioni sono tipo setta la velocità del motore 1, vai avanti di tot. step col motore 1 o motore 2, comunque sempre in modo sequenziale, questo tra l'altro è ben visibile con il piccolo esperimento col laser, si notano con precisione i piccoli movimenti, le oscillazioni la risonanza e la capacità/velocità dei motori stepper , non è possibile infatti tracciare una diagonale di uno step se non agendo sulla velocità del motore che crea un effetto di distorsione per cui la linea sembra diagonale, cosa visibile a basse velocità se si avesse la possibilità di farli partire allo stesso istante ! Non ho idea se agendo direttamente sulle porte di arduino la cosa sia possibile, o come ...! Ciao. Andrea