MECCANICA e DINTORNI
http://meccanicaedintorni.morpel.it/phpbb/

ELS (Electronic Lead Screw) - progetto con ARDUINO
http://meccanicaedintorni.morpel.it/phpbb/viewtopic.php?f=16&t=15729
Pagina 28 di 95

Autore:  McMax [ lun mar 26, 2018 19:37 ]
Oggetto del messaggio:  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

Autore:  AF116 [ mar mar 27, 2018 15:44 ]
Oggetto del messaggio:  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.?

Autore:  McMax [ mer mar 28, 2018 06:27 ]
Oggetto del messaggio:  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.....

Autore:  AF116 [ mer mar 28, 2018 14:25 ]
Oggetto del messaggio:  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.



Autore:  McMax [ ven mar 30, 2018 20:32 ]
Oggetto del messaggio:  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 ?

Autore:  AlBi [ ven mar 30, 2018 22:45 ]
Oggetto del messaggio:  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à.

Autore:  McMax [ sab mar 31, 2018 00:17 ]
Oggetto del messaggio:  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...

Autore:  yrag [ sab mar 31, 2018 02:20 ]
Oggetto del messaggio:  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".

Autore:  McMax [ sab mar 31, 2018 08:28 ]
Oggetto del messaggio:  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.

Autore:  AF116 [ sab mar 31, 2018 09:01 ]
Oggetto del messaggio:  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.

Autore:  McMax [ sab mar 31, 2018 14:44 ]
Oggetto del messaggio:  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!

Autore:  yrag [ sab mar 31, 2018 14:48 ]
Oggetto del messaggio:  Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Bravo ! Spidocchiare il codice è sempre una rogna.

Autore:  mecha [ sab mar 31, 2018 16:55 ]
Oggetto del messaggio:  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 :grin:
Mandi
Mecha

Autore:  luk2k [ sab mar 31, 2018 16:58 ]
Oggetto del messaggio:  Re: ELS (Electronic Lead Screw) - progetto con ARDUINO

Non ti dimenticare la versione con encored pull up pezzotto cinese come il mio :risatina:

Autore:  McMax [ sab mar 31, 2018 21:54 ]
Oggetto del messaggio:  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.

Pagina 28 di 95 Tutti gli orari sono UTC +1 ora
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/