Ecco qualche foto del mio banco prova supertecnologico per Arduino Mega + Ramps.
Non ve ne frega niente, ma come promesso vi tengo aggiornati
Sto riscrivendo lo sketch per dialogare col mio devCnc Foam e sono arrivato a questo punto:
- gestione di 5 assi indipendenti ed interpolati linearmente. I primi 4 saranno per i due carrelli, ed il quinto per l'asse rotante. Sara' possibile usarli tutti e 5 nello stesso comando, in quanto sono tutti interconnessi nella interpolazione interna.
- invio impulsi stepper tramite interrupt con scrittura a basso livello, per sfruttare al massimo il microprocessore
- gestione dei pin di uscita/ingresso da software. In questo modo non sara' necessario dover ricompilare e ricaricare lo sketch su arduino in caso di modifica ai collegamenti o uso di una scheda diversa da Ramp. Questa e' stata la cosa piu' difficile da ottenere, perche' tutti gli altri esempi trovati (Grbl, Marlin etc) per avere la massima velocita' di accesso ai registri impostano le porte di uscita a livello di codice, e quindi restano fissi. Ho dovuto usare qualche vecchio trucco per scrivere su registri modificabili a runtime. Mi piace l'idea di poter considerare Arduino una scatola nera a cui mandare e da cui ricevere semplicemente comandi, senza dover modificarne il codice interno, ricompilarlo e ricaricarlo. In questo modo bastera' definire i pin in devCnc Foam dal menu Setting, come faccio adesso per Theremino Usb.
Ora mi metto al lavoro per gestire il filo caldo. Ramps dispone gia' di un'uscita PWM max 24 volt x 11A, quella usata per il riscaldamento del piatto, quindi inizio le prove con quella.
Poi la gestione dei fine corsa, che vedro' di fare a livello di firmware ed indipendenti per ogni asse.
Infine l'invio della posizione corrente a devCnc Foam, che faro' in maniera diversa dalla attuale che usa troppa banda sulla porta Usb.
Neanche male, pensavo peggio.