ELS (Electronic Lead Screw) - progetto con ARDUINO

Moderatore: Junior Admin

Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

questa cosa la devo provare al tornio.... al momento ho il controller scollegato per le modifiche.
Grazie comunque per la segnalazione, lo controllerò appena finisco col debug
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
Avatar utente
AF116
FINALMENTE USO IL TORNIO
Messaggi: 379
Iscritto il: gio lug 12, 2012 13:37
Località: Sestri L. (GE)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da AF116 »

Il mio funziona correttamente e non si pianta.

Angi, sei sicuro che non si pianti Arduino a causa di spike sull'alimentazione tipo avvio/arresto motore tornio ecc.?
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

Il problema in uscita dalla funzione "filettatura a misura" esiste sicuramente... prova ad uscire senza fare nemmeno una passata e vedi cosa succede.
Ho individuato il problema ma non ho capito come risolverlo: in pratica si incasina il contenuto del buffer che uso per visualizzare le stringhe sul display.... in realtà non si pianta l'esecuzione ma semplicemente vengono visualizzati caratteri incomprensibili e non è più possibile continuare l'esecuzione.....
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
Avatar utente
AF116
FINALMENTE USO IL TORNIO
Messaggi: 379
Iscritto il: gio lug 12, 2012 13:37
Località: Sestri L. (GE)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da AF116 »

Ancora non sono riuscito a stanare il baco.
Ho fatto un filmato con mandrino in rotazione, non cambia nulla anche con mandrino fermo.
Dove sbaglio?
Nel filmato non ho impostato la corsa, ma anche impostando la corsa esce senza problemi.


Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

il fatto che a te non capiti mi da da pensare....
Sto sclerando da una settimana dietro a sto baco: ho trovato il modo di risolverlo ma purtroppo, risolvendolo, se ne crea un'altro altrettanto inspiegabile.

Il problema principale credo sia dovuto al fatto che per memorizzare le stringhe (ovvero i messaggi che compaiono sul display LCD) nella memoria flash, si utilizza una particolare libreria che va a indirizzare la memoria flash e porta in RAM le stringhe al momento del bisogno.
in tutti i casi i bachi si verificano quando utilizzo l'istruzione di spostamento della stringa da flash a RAM..... ho trovato una marea di letteratura a riguardo ma nessuna soluzione efficace al problema.
Il fatto che non ti si presenti mi da da pensare perché potrebbe dipendere dalla versione del compilatore..... cosa molto probabile considerando che in genere questi problemi sono causati da errori di compilazione presumibilmente legati all'ottimizzazione del codice che il compilatore effettua.

Mi dici per favore con che versione di ARDUINO IDE hai compilato il codice ?
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
Avatar utente
AlBi
TORNITORE E FRESATORE
Messaggi: 1726
Iscritto il: mer ott 07, 2015 09:11
Località: Lastra a Signa (Firenze)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da AlBi »

Potrebbe essere un problema hw, prova a cambiare il dispaly con uno di un'altra marca, anche a me sono capitati problemi strani tipo il tuo. Anche se i controllori lcd, dovrebbero essere tutti uguali a volte da uno all' altro ci sono leggere differenze di timing che creano problemi di compatibilità.
Alberto Bianchi
Le mie 'rumente', Tornio: Mi-Bo; Fresatrici: Fervi T044, Rumag REV1S, CST L1; Tavola rotante: Vertex HV8; Divisori: BS-0 & Yantai FNL100B; Trapano: Caber BO6; Forno a muffola; Segatrice Axel 4"x6"; Affila-bulini Parpas AU.
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

no albi lo fa anche a me che uso un display diverso....
E' un problema del firmware. Credo del compilatore...
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da yrag »

Domanda : l'arduino che crea problemi è originale o compatibile ?
A detta del mio fornitore, i compatibili non sempre lo sono al 100 % e me li sconsigliava per applicazioni "importanti".
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

L' arduino di angi79 non lo so, ma il mio si è originalissimo acquistato direttamente dal loro shop.... e il problema lo presenta comunque quindi non credo sia un problema di compatibilità dell'hardware.
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
Avatar utente
AF116
FINALMENTE USO IL TORNIO
Messaggi: 379
Iscritto il: gio lug 12, 2012 13:37
Località: Sestri L. (GE)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da AF116 »

Cerco di riassumere le varie fasi che mi hanno coinvolto nella programmazione di questo utilissimo strumento.

Premesso che mi trovo bene con Visual Studio ed il plugin Visual Micro, inizialmente ho programmato l'Arduino UNO con questo IDE. Lo stesso IDE mi evidenziava in rosso tutte le istruzioni della libreria che nomina McMax. Tuttavia procedendo alla compilazione non generava errori ed ho quindi caricato il firmware sulla scheda. In seguito mi sono accorto che c'erano dei problemi con l'avanzamento libero e, memore degli errori segnalati da Visual Micro, ho provato a compilarlo e caricarlo direttamente dall'IDE di Arduino, anche se Visual Micro utilizza lo stesso compilatore e quindi non sarebbe dovuto cambiare nulla. Il risultato è che adesso è OK. Purtroppo non ricordo che versione di IDE - Arduino avevo ai tempi della realizzazione dell'ELS, adesso utilizzo la 1.8.3.0 che ho installato il 31/05/2017, quindi era sicuramente una versione precedente.

In merito alla scheda, ho montato una compatibile ma, una recente esperienza con un Arduino Due compatibile + GLCD + touch screen da 400X320 pixel, mi ha portato via un bel po di tempo a causa di un pin sulla scheda che aveva i contatti "nascosti" e non riuscivo quindi ad inizializzare il display. Questo mi fa pensare che vengano testati a caso.
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

TROVATO!!
era colpa mia.. le maledette stringhe mi hanno tradito ancora.
In pratica uso un buffer per la stringa che carico dalla flash in modo da poterla visualizzare sul display. Ho dichiarato il buffer da 20 caratteri considerando che la massima lunghezza della stringa è di 20 caratteri (LCD 20 colonne..), dimenticandomi come spesso capita che le stringhe hanno sempre un carattere in più di fine stringa. Quando la stringa che veniva visualizzata sul display era da 20 caratteri (massimo consentito) il buffer non riusciva a memorizzare il fine stringa rendendo instabile tutto il codice. Addirittura, cambiando alcune cose,mi ero accorto che l'utilizzo del buffer andava a cambiare il valore di altre variabili a caso!!!

Ora è a posto.
Sto sistemando anche la lettura della velocità mandrino e sto aggiungendo la possibilità di aggiustare la posizione del carro direttamente nella filettatura a misura in modo da non doverlo fare prima.
Appena termino aggiorno la documentazione e posto la nuova versione firmware 1.5!
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da yrag »

Bravo ! Spidocchiare il codice è sempre una rogna.
mecha
TRA NON MOLTO PASSO AL TORNIO
Messaggi: 177
Iscritto il: lun nov 12, 2012 00:17
Località: udine

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da mecha »

Grande.. era proprio quello che serviva per affinare l'utilizzo pratico del ELS.
Ti ringrazio in anticipo :grin:
Mandi
Mecha
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da luk2k »

Non ti dimenticare la versione con encored pull up pezzotto cinese come il mio :risatina:
Non esistono domande stupide ma solo risposte inutili
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9016
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Messaggio da McMax »

Ho aggiornato il tutto, trovate le nuove versioni 1.5 del firmware (con e senza encoder pull-up) da scaricare nel primo messaggio del topic.
Le modifiche:
1 - Sistemato bug sulla lettura stringhe che causava crash casuali in uscita da alcune funzioni
2 - Sistemate funzioni di lettura della velocità di rotazione del mandrino che riportavano errori all’aumentare della velocità. Le funzioni: “velocità mandrino” e “avanzamento” riportano ora valori di velocità corretti.
3 - Aggiunta la possibilità di aggiustare la posizione del carro muovendolo con il joystick prima di effettuare una filettatura a misura. Nella versione precedente era necessario entrare nella suddetta funzione con il carro già correttamente posizionato. Ora viene data la possibilità di regolare la posizione direttamente nella stessa funzione.

Ho provato e pare vada tutto. Per favore fate dei test e ditemi se riscontrate problemi.
Al prossimo giro aggiungerò una funzione per tarare gli avanzamenti e sistemerò meglio la funzione di avanzamento vincolato in cent/giro in modo da avere quest'ultimo sincronizzato con la rotazione: ora viene presa la velocità mandrino ma solo ad avanzamento fermo quindi senza carico di tornitura.... ovviamente una volta che la passata è in corso la velocità di rotazione del mandrino diminuisce ma l'avanzamento non ne tiene conto.

Se avete altri suggerimenti di miglioramento chiedete pure.
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
Bloccato

Torna a “Elettronica ed elettrotecnica”