Pagina 50 di 51

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: lun dic 01, 2025 22:01
da McMax
Mi vengono in mente varie ragioni ed é bene escluderle tutte:
1- Encoder che perde passi o male impostato. Verifica che la posizione angolare sia precisa: segna un riferimento sul mandrino e fai girare a mano per parecchi giri e controlla che l'index corrisponda in modo preciso.
2 - offset non sufficiente a compensare il gioco della vite. Quanti passi stepper hai messo come offset ?
3 - slittamento accoppiamenti meccanici. Che tipo di accoppiamenti stai usando tra mandrino ed encoder e tra stepper e vite? Devono essere cinghie sincrone o ruote dentate (meglio le prime) e tutte le pulegge/ruote devono avere la chiavetta o comunque un sistema che non permetta lo slittamento delle pulegge sugli alberi
4 - la torretta portautensili é ben bloccata? Controlla che non ruoti.... a volte si muove di pochissimo sotto lo sforzo di taglio e se si sposta l'utensile in filettatura perdi l'index (questa é banale lo so ma meglio verificare :risatina:)

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: gio dic 04, 2025 18:51
da robyt
Ciao a tutti,

ho realizzato una versione modificata dell' ELS 1.82 perché mi interessava poter andare più velocemente nelle fase di ritorno in filettatura.
Poiché la versione 1.9 non funziona e per la 2.0 credo bisognerà attendere ancora un po' ho pensato di prendere dalla 1.9 la funzione "StepperMoveToPosition" e integrarla con qualche modifica nella 1.82.
Per recuperare un po' di memoria ho rimosso tutto ciò che riguardava la scatola Norton che a me non serve e credo anche a molti dei frequentatori del Forum.

La versione che ho realizzato contiene le modifiche fatte da Sbinf74 per l'utilizzo del display i2c e gira su Arduino Nano quindi per l'assegnazione dei pin bisogna fare riferimento alla sua versione.

Le modifiche che ho fatto io sono le seguenti:

- Nel menu filettatura sostituito SEL+RESET con RESET
- Attivata funzione per abilitare/disabilitare il motore stepper
- Rimosse tutte le istruzioni di gestione scatola NORTON per recuperare un po' di memoria
- Sostituita la funzione "StepperMoveToPosition" con quella della versione 1.9 per aumentare la velocità di ritorno in filettatura
- Rimosse alcune variabili non usate e aggiunti beep e delay qua e la
- Aggiunta nel menu impostazioni la possibilità di disabilitare il buzzer o variarne il tono
- Nel menu Principale se premuti RESET ed ESC contemporaneamente vado al menu Impostazioni
- Aggiunta gestione coefficiente correttivo RPM per compensare l'errore di millis() nelle routines di calcolo degli RPM
(quest'ultima modifica non è "scientifica", è puramente estetica, ma consente di ottenere un valore un po' più vicino agli RPM reali)

La sto provando da qualche giorno e sembra funzionare bene.

Se qualcuno la volesse provare può scaricarla qui:
ELS_v1.8_I2C_N.zip

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: ven dic 12, 2025 07:05
da pacio74
McMax ha scritto: lun dic 01, 2025 22:01 Mi vengono in mente varie ragioni ed é bene escluderle tutte:
1- Encoder che perde passi o male impostato. Verifica che la posizione angolare sia precisa: segna un riferimento sul mandrino e fai girare a mano per parecchi giri e controlla che l'index corrisponda in modo preciso.
2 - offset non sufficiente a compensare il gioco della vite. Quanti passi stepper hai messo come offset ?
3 - slittamento accoppiamenti meccanici. Che tipo di accoppiamenti stai usando tra mandrino ed encoder e tra stepper e vite? Devono essere cinghie sincrone o ruote dentate (meglio le prime) e tutte le pulegge/ruote devono avere la chiavetta o comunque un sistema che non permetta lo slittamento delle pulegge sugli alberi
4 - la torretta portautensili é ben bloccata? Controlla che non ruoti.... a volte si muove di pochissimo sotto lo sforzo di taglio e se si sposta l'utensile in filettatura perdi l'index (questa é banale lo so ma meglio verificare :risatina:)
Ho fatto diversi test, il problema e che Arduino non tiene in memoria i passi encoder, nel setting imposto 800 avendo un encoder da 200 ma quando esco dal setting rientrando mi trovo encoder settato a 1000.
Ho sospeso da qualche giorno per impegni , appena ho un'ora libera voglio provare a dargli in pasto una versione con valori EPROM già impostati di default.
E voglio apportare modifiche al rapporto di trasmissione step per vite, ho usato tutte cinghie sincrone GT2 per l'endoder e GT5 per lo stepper, ma voglio ridurre il rapporto stepper vite 1/1 per poter aumentare il passo filetto.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: ven dic 12, 2025 18:23
da meipei
Ciao Robyt, ho provato la tua versione.
Penso che sarebbe meglio aprire un nuovo post a riguardo e lasciare questo per le finalità chiaramente espresse da McMax all'inizio.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: lun dic 15, 2025 16:47
da robyt
Ciao meipei,
prima di pubblicare la mia versione mi sono consultato con McMax che non ha avuto nulla da obiettare.
Se comunque si ritenesse più opportuno spostare il messaggio in un nuovo post non ho nulla in contrario e qualche moderatore potrebbe provvedere.
Dici di aver provato la versione, hai trovato qualche problema ?

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: lun dic 15, 2025 18:50
da meipei
Ciao Robyt,
grazie di aver rimesso mano a questo progetto, rimasto purtroppo orfano di aggiornamenti da un po' di tempo, permettimi un ringraziamento d'obbligo a McMax per aver condiviso il suo lavoro gratuitamente e aver reso disponibile il codice.

Ho provato diverse versioni apparse sul forum, ma sempre a banco, simulando il mandrino con un motorino alimentato a parte e calettato all'encoder, ho il tornio BV25 (con inverter), ma non essendo totalmente convinto dal funzionamento in avanzamento, non l'ho ancora implementato sullo stesso, in attesa di quella versione definitiva che mi avrebbe fatto abbandonare gli ingranaggi, "abbandonare" non del tutto visto che il BV25 ha quel disconnettore della vite madre che la stacca dalla cascata di ingranaggi, per cui in caso di implementazione metterei il motore stepper sul moncone della vite madre alla fine del bancale e facendo convivere i due sistemi.
Non avendo le conoscenze di programmazione per modificare in maniera così profonda il programma di McMax, sono rimasto alla finestra, in attesa di ulteriori aggiornamenti.

Grazie al tuo lavoro di modifica, con questa versione vengono risolti diversi aspetti che, a almeno io, attendevo da tempo: la rimozione dei riferimenti alla scatola Norton che semplicemente non ho, l'attuazione dell'enable del driver che spegnesse il motore quando non si è in menu operativi, nonché la pagina di impostazioni rimossa dal menu principale, tanto una volta settato il sistema non serve più entrarci.

Veniamo al dubbio, non mi ha mai soddisfatto nel menù avanzamento la funzione di "fotografare" il numero di giri e poi dato lo start se si ferma il motore, il carro continua imperterrito nella sua corsa con disappunto dell'utensile, o se durante la passata si cambia il numero di giri il passo resta quello iniziale, si deve stoppare e far ripartire, nonché se si da lo start a motore fermo essendo i giri a zero resta tutto fermo.

Comprendo che le risorse di Arduino non permettono, alle normali velocità di esecuzione di una passata, di star dietro al segnale generato dall'encoder, a tal proposito si potrebbero adottare delle soluzioni hardware tipo: prelevare il segnale generato da un sensore hall sulla puleggia dell'encoder con quattro magnetini e switchare il segnale tra encoder e sensore hall con delle porte logiche, oppure mettere un paio di divisori x 10 (7490) in cascata e ottenere una divisione x100, con un encoder da 400 passi ottenere 4 impulsi a giro ed eseguire il medesimo switch, sono consapevole che ciò renderebbe la realizzazione non proprio adatta a tutti, ma questa è la mia idea, ovviamente le relative modifiche al software sono oltre la mia portata.
Altra modifica che avevo invano cercato di implementare è un potenziometro (letto e rimappato) con cui, in avanzamento, regolare il passo in anticipo ancor prima di dare lo start e che restava tale anche uscendo e rientrando dalla funzione.

Avevo fatto delle insignificanti modifiche in passato e ho fatto anche alla tua versione, usando un joystick singolo mi sono accorto che comunque lo si ruota uno degli assi lavora al contrario, e a meno di tagliare piste sul cs e ricollegarlo diversamente, non se ne esce, cosi per le funzioni di incremento/decremento dei valori in Y, che aumenta inclinando verso il basso il joystick, ho sostituito con :
#define YUPDN 1023
if ((YUPDN - (analogRead(ANALOG_Y)) <= LOW_TOL) ovvero con in suo complemento a 1023 in modo da ribaltare il funzionamento in Y del joystick.

Saluti.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: gio dic 18, 2025 17:28
da robyt
Non capisco cosa intendi in riferimento al fatto che uno degli assi lavora al contrario; a me, e credo anche a tutti coloro che stanno usando questo sistema, il joystick, pur con i limiti di precisione di un aggeggio che è poco più di un giocattolo, funziona correttamente. Sicuro di aver collegato correttamente il tutto e che non ci siano interferenze ?

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: gio dic 18, 2025 18:58
da meipei
Non è questione di interferenze, ma di come sono collegati i due potenziometri del joystick, trovo comodo che spostando verso l'alto la levetta in menu scorre verso il basso, cioè da l'impressione che le frecce laterali (che sono fisse) scorrano verso la voce superiore.
Al contrario nella variazione dei valor,i ho invertito il verso per aumentare se premuta verso l'alto e viceversa.
Se per te o altri, funziona gia bene, ignora ciò che ho scritto, sarà il mio joystick che è difettoso.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: dom dic 21, 2025 16:26
da lollo54
Ciao Robyt, ero anch'io tra i numerosi in attesa dell'aggiornamento della versione 1.9 che ha quel bug irrisolto e pertanto mi sono incuriosito alla tua versione che così modificate calza più con le mie esisgenze. Inoltre McMax è da tempo impegnato alla realizzazione del suo nuovo progetto che attendiamo con grande interesse e che si presenta come una evoluzione più moderna e performante dell'attuale e che dovrebbe comunque mantenere quella semplicità realizzativa che tanto è piaciutà a moltissimi tanto che lo ha fatto diventare il progetto ELS più seguito del web. Ho quindi deciso di sostituire la tua versione alla versione V1.82 che avevo precedentemente installata. Ho solo modificato i pin come segue in quanto già precedentemente cablati:
// Pin assignement
#define ANALOG_X A0 //ingresso analogico joystick asse X
#define ANALOG_Y A1 //ingresso analogico joystick asse Y
#define STEP 9 //uscita segnale "STEP" per motore stepper
#define DIR 8 //uscita segnale "DIR" per motore stepper
#define ENCA 2 //ingresso ancoder A - INTERRUPT 0
#define ENCB 3 //ingresso ancoder B - INTERRUPT 1
#define ENABLE 7 //uscita segnale "ENABLE" per motore stepper
#define ESC 4 //bottone ESC -
#define SEL 5 //bottone SELECT -
#define RESET 6 //bottone RESET -
#define SEL2 10 //pulsante sotto JoyStick K o supplementare
#define BEEP 12 //Buzzer pin 12
// END pin assignment
Ho provato tutte le funzioni presenti e tutto funziona correttamente. Trovo la velocità di ritorno in filettatura molto funzionale e comoda così come aver messo il conteggio delle passate di filettatura (non ricordo però se già presenti nella versione 1.9). Anche l'avanzamento vincolato funziona senza problemi in entrambi le direzioni e con una precisione nell'ordine del centesimo di mm. Apprezzo anche il beep che mancava nella mia versione e che trovo comodo perchè aiuta comunque a comprendere l'avvenuto comando effettuato tramite i pulsanti. Trovo simpatico e un pò più macchinoso e meno immediato l'utilizzo delle impostazioni con relativa attesa nei tempi di esecuzione.
Terrò certamente installata questa tua versione che come anticipato mi piace in quanto più adatta alle mie esisgenze e della quale ti faccio i miei complimenti e ti ringrazio e per averla resa disponibile.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: gio apr 23, 2026 19:46
da caurro
Buongiorno a tutti.
Ho un tornio Optimum 2304V su cui vorrei provare a installare un E.L.S. adoperando il software elaborato da sbinf74. Ho acquistato, per ora, solo il necessario per fare la scatola di comando e tra qualche giorno arriveranno i pezzi.
Per il motore avrei intenzione di usare uno del tipo “chiuso” così non dovrei inserire nel tornio l'encoder, con lo sbattimento di trovare una sua collocazione e, forse, un minore rumore.
Per fare ciò ho cercato nel ns.forum qualche indicazione in merito ma ho trovato solo il post di McMax in risposta a Tarzan
da tarzan » ven gen 22, 2021 08:48
Avrebbe senso motorizzare con un sistema di stepper "closed loop" ? Il kit non costa tanto di più della versione Open... sarebbe più affidabile e meno rumoroso. "
Risposta di McMax Nulla in contrario a patto che sia il driver a controllare l'encoder montato sul motore stepper. A mio avviso questa cosa ha senso se si monta un motore di bassa potenza che potrebbe perdere passi. in questo modo il driver si incaricherebbe di controllare che il motore abbia effettivamente eseguito i passi dati. Io personalmente mi preoccuperei di più di dimensionare i motore correttamente: in questo modo i passi non si perdono ed evitiamo di inserire nel loop di controllo una variabile in più. Ricordandosi sempre che ciò che non c'è non può generare errori e non può rompersi..... come dicono gli americani: "less is more"

Ora guardando gli schemi di collegamento, sia di sbinf74 sia di McMax, l'encoder è collegato ad Arduino, quindi come mi devo regolare per collegare direttamente l'encoder del motore allo Stepper? Avrei pensato di usare lo schema, che allego, preso da Stepperonline e da me modificato, potrebbe andare bene?
Inoltre, i cavi che escono (o entrano?) – vedi ALM/P BRR, COM-, dal drive vengono lasciati morti?
Grazie a chiunque mi faccia la cortesia di aiutarmi.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: sab apr 25, 2026 06:29
da gigathegiant
"Per il motore avrei intenzione di usare uno del tipo “chiuso” così non dovrei inserire nel tornio l'encoder, con lo sbattimento di trovare una sua collocazione e, forse, un minore rumore."
Sbaglierò ma secondo me un encoder per leggere la posizione del mandrino del tornio ti servirà sempre e comunque.
Altrimenti arduino non ha alcuna informazione sulla posizione del mandrino e non può comandare lo stepper che muove la vite madre ed il carro.
Come scritto da Max lo stepper per la vite madre se vuoi prenderlo con l'encoder è una cosa in più che lascia il tempo che trova.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: sab apr 25, 2026 09:05
da caurro
Grazie gigathegiant, mi sei stato molto utile a chiarire un po' di cose.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: gio mag 21, 2026 20:32
da McMax
Confermo, l'eventuale encoder attaccato allo stepper non può sostituire quello sul mandrino. Il sistema ELS sincronizza la rotazione della vite con quella del mandrino, senza encoder mandrino non si può fare un ELS. Nel sistema stepper closed loop in pratica c'è un encoder accoppiato al motore stepper e gestito dal driver stepper (arduino non lo vede nemmeno) che garantisce che il motore esegua tutti i passi che gli sono stati comandati senza paura di perdere passi in caso di coppia richiesta troppo elevata.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: lun lug 13, 2026 13:26
da Mav55
Ciao a tutti, seguo con interesse in quanto anche io avrei intenzione di adattare l'elettronica ELS al mio tornio.

Re: ELS (Electronic Lead Screw) - 2.0

Inviato: mer lug 29, 2026 18:26
da brunart
ma l'ELS1.8 supporta il secondo asse o è un'altra versione?