ELS (Electronic Lead Screw) - progetto con ARDUINO
Moderatore: Junior Admin
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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
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à
“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à
- 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
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.?
Angi, sei sicuro che non si pianti Arduino a causa di spike sull'alimentazione tipo avvio/arresto motore tornio ecc.?
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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.....
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à
“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à
- 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
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.
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.
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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 ?
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à
“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à
- 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
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.
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.
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
no albi lo fa anche a me che uso un display diverso....
E' un problema del firmware. Credo del compilatore...
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à
“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à
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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".
A detta del mio fornitore, i compatibili non sempre lo sono al 100 % e me li sconsigliava per applicazioni "importanti".
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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à
“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à
- 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
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.
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.
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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!
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à
“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à
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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
Grande.. era proprio quello che serviva per affinare l'utilizzo pratico del ELS.
Ti ringrazio in anticipo
Mandi
Mecha
Ti ringrazio in anticipo
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
Non ti dimenticare la versione con encored pull up pezzotto cinese come il mio 
Non esistono domande stupide ma solo risposte inutili
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
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.
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à
“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à