Stepper e Arduino
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
CIAO A TUTTI !
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
Secondo me bisogna restituire la stringa return; non va ben ma return stringa
Secondo me non si pui fare il DEBUG senza provare il codice a mente, sono convinto
Secondo me non si pui fare il DEBUG senza provare il codice a mente, sono convinto
Codice: Seleziona tutto
float tastierino() {
//Premere il tato cancelleto una volta terminato insermento dei valori numerici
char carattere;
char stringa[20];
int i = 0;
do {
carattere = customKeypad.getKey();
if (carattere != NO_KEY) {
stringa[i++] = carattere;
lcd.print(carattere);
}
} while (carattere != '#');
if(i>20){
display("cancella");
display("rin->");
tastierino(); //Ripete inserimento del valore se superati 19 caratteri.
return atof(stringa);
}
stringa[--i] = '\0';
return atof(stringa);
}
CIAO A TUTTI !
- hellfire39
- God
- Messaggi: 3597
- Iscritto il: domenica 16 dicembre 2012, 9:04
- Località: AN
Re: Stepper e Arduino
Ragionamento sbagliato.
Alcune cose balisari devono essere previste a mente. Una di queste è il buffer overrun che può causare comportamenti imprevedibili e (ma non in questo caso ovviamente) sono stati il mezzo per attacchi informatici.
La tua funzione ha ancora un problema, la stringa va da indice 0 a indice 19.
Se controlli (i>20) ovvero consenti che i=20, allora stringa[i++] accederà alla posizione stringa[20], che è già fuori del range.
Il controllo andrebbe fatto *prima* di accedere all'indice.
In generale, rimane comunque un programma mal fatto. La gestione del tastierino non dovrebbe essere bloccante, a meno che tu non consenta che venga fatta solo a motori fermi: è inutile utilizzare la libreria AccelStepper (che utilizza l'accelerazione) per poi interrompere bruscamente il movimento se viene premuto un pulsante!
Alcune cose balisari devono essere previste a mente. Una di queste è il buffer overrun che può causare comportamenti imprevedibili e (ma non in questo caso ovviamente) sono stati il mezzo per attacchi informatici.
La tua funzione ha ancora un problema, la stringa va da indice 0 a indice 19.
Se controlli (i>20) ovvero consenti che i=20, allora stringa[i++] accederà alla posizione stringa[20], che è già fuori del range.
Il controllo andrebbe fatto *prima* di accedere all'indice.
In generale, rimane comunque un programma mal fatto. La gestione del tastierino non dovrebbe essere bloccante, a meno che tu non consenta che venga fatta solo a motori fermi: è inutile utilizzare la libreria AccelStepper (che utilizza l'accelerazione) per poi interrompere bruscamente il movimento se viene premuto un pulsante!
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
OFF TOPIC solo per parlare
Se fossi capace di programmare come un programmatore professionista farei il programmatore, è un hobby con i suoi limiti.
Penso che valutato in un Itis informatico mi darebbero un bel voto, valutando i lavori dei ragazzi, e come hobby sono soddisfatto.
Comunque ti do ragione come do ragione a un professionista, ma se insegnavi a un ITIS come pensi che avresti dovuto valutare?
Se fossi capace di programmare come un programmatore professionista farei il programmatore, è un hobby con i suoi limiti.
Penso che valutato in un Itis informatico mi darebbero un bel voto, valutando i lavori dei ragazzi, e come hobby sono soddisfatto.
Comunque ti do ragione come do ragione a un professionista, ma se insegnavi a un ITIS come pensi che avresti dovuto valutare?
CIAO A TUTTI !
- hellfire39
- God
- Messaggi: 3597
- Iscritto il: domenica 16 dicembre 2012, 9:04
- Località: AN
Re: Stepper e Arduino
Il tuo programma è pessimo, altro che discreto. Il problema è non riuscire a capirlo.
Non c'è un ambito in cui sia corretto. Punto.
Tanto per dire:
1) gestione bloccante di una interfaccia in un sistema che dovrebbe gestire il motore in real-time
2) mancata gestione del buffer overrun
Che poi possa essere accettabile per chi l'ha fatto è un altro discorso.
Quasi ogni volta che gioco con Arduino, faccio programmi di cui mi vergognerei al lavoro. Ma, di solito, li tengo per me. Non li suggerisco ad altri, soprattutto se non li ho provati prima.
P.S. ho un amico che insegna programmazione in una scuola superiore (ed è pure ingegnere!). Ho sentito affermazioni spaventose da lui. Non penso che insegnare sia un metro di valutazione assoluto. Ci sono professori in gamba ed altri pessimi.
Non c'è un ambito in cui sia corretto. Punto.
Tanto per dire:
1) gestione bloccante di una interfaccia in un sistema che dovrebbe gestire il motore in real-time
2) mancata gestione del buffer overrun
Che poi possa essere accettabile per chi l'ha fatto è un altro discorso.
Quasi ogni volta che gioco con Arduino, faccio programmi di cui mi vergognerei al lavoro. Ma, di solito, li tengo per me. Non li suggerisco ad altri, soprattutto se non li ho provati prima.
P.S. ho un amico che insegna programmazione in una scuola superiore (ed è pure ingegnere!). Ho sentito affermazioni spaventose da lui. Non penso che insegnare sia un metro di valutazione assoluto. Ci sono professori in gamba ed altri pessimi.
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
Lo fatto valutare e non mi hanno detto che è pessimo in ambito hobbystico, lo hanno giudicato bene.
Penso che il tuo hobby sia elettronica e programmazione, e usi lo stesso criterio del tuo lavoro, se facessi un hobby che non centra niente con il tuo lavoro capiresti cosa intendo, perché se giochi a calcio in seria A,B,C o D essere bravi ha un significato diverso, ma comunque meglio di molte persone. Pero se l'unica pensiero giusto è il tuo "potrebbe essere anche vero", è sempre vero che è sempre inutile discutere.
Ma a me è capitato che tu dicessi delle inesattezze sugli utensili o altre cose meccaniche, non mi sono mai sognato di fartelo notare o farti critiche, nel senso è una cosa normale per chi non è il suo lavoro.
Penso che il tuo hobby sia elettronica e programmazione, e usi lo stesso criterio del tuo lavoro, se facessi un hobby che non centra niente con il tuo lavoro capiresti cosa intendo, perché se giochi a calcio in seria A,B,C o D essere bravi ha un significato diverso, ma comunque meglio di molte persone. Pero se l'unica pensiero giusto è il tuo "potrebbe essere anche vero", è sempre vero che è sempre inutile discutere.
Ma a me è capitato che tu dicessi delle inesattezze sugli utensili o altre cose meccaniche, non mi sono mai sognato di fartelo notare o farti critiche, nel senso è una cosa normale per chi non è il suo lavoro.
CIAO A TUTTI !
- hellfire39
- God
- Messaggi: 3597
- Iscritto il: domenica 16 dicembre 2012, 9:04
- Località: AN
Re: Stepper e Arduino
Detto questo, quel codice fa schifo oggettivamente. O chi l'ha valutato è incompetente o non è neanche entrato nel merito di quello che dovrebbe fare.
Ripeto: che tu non lo capisca è davvero grave.
Non c'è una valutazione relativa sulla qualità del SW. La qualità è assoluta.
A livello amatoriale può andare accettabile, ma questo non lo rende un codice fatto bene.
Non controllare che si vada fuori dai limiti di un array è un errore grave, sempre.
Utilizzare una libreria che gestisce le rampe di accelerazione ma poi bloccare istantaneamente il movimento perché premi un tasto sul tastierino è un'altra cavolata. Se usi il tuo programmino per te, va bene. Se lo proponi ad altri, no.
Usare funzioni bloccanti è un altro segno di appplicazione amatoriale.
Per altro, in un post in cui si parlava proprio della necessità di accelerare il motore in modo dolce per evitare che stallasse.
Invece proponi un programma che ti fa stallare il motore.
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
Quindi accetto i suggerimenti, ti do pienamente ragione per scrivere meglio un codice e ti ringrazio, poi se ho dei diritti di scelta li uso, quello che voglio fare, quello che voglio postare decido solo io
CIAO A TUTTI !
- hellfire39
- God
- Messaggi: 3597
- Iscritto il: domenica 16 dicembre 2012, 9:04
- Località: AN
Re: Stepper e Arduino
Certo, ma se proponi un programma che non funziona o non fa quello che dovrebbe fare, poi non ti offendere se ti viene fatto notare.
- leomonti
- Senior
- Messaggi: 2211
- Iscritto il: mercoledì 20 dicembre 2006, 19:04
Re: Stepper e Arduino
Siamo in dirittura d'arrivo....
Qualche parola sulla macchina utensile "Frankenstein". Tempo fà, un amico che ha trasformato la BF20 in Cnc, sostituendo anche la testa con un elettromandrino, mi ha regalato quest'ultimo. Su quello che restava di un pantografo Pear, su cui avevo già deciso il downgrade da cnc a manuale, ho innestato la testa e ho montato il visualizzatore Sino.
L'elettronica è divisa in 2 parti e 1/2: scatola di comando che ospita la scheda Arduino Mega, box driver e alimentatori, compreso quello per Arduino (così ho la 220V solo in un box, e scatolina di derivazione per il collegamento dei limit.
Ho scelto motori dual shaft per potere montare una manopola sul terminale dell'albero per i movimenti micrometrici manuali. Farlo sulla vite dell'asse avrebbe comportato, ovviamente, un rapporto inverso e quindi un grosso sforzo per muoverli (soprattutto la Z dove la riduzione è 12/72.
A proposito di movimenti manuali, i driver, a riposo, non ricevono corrente di tenuta. a riposo la scheda Arudino non invia alcun segnale, contrariamente a quanto avverrebbe con un controller cnc.
Ho dovuto accrocchiare uno stop registrabile per la manopola del potenziometro perchè, poco prima del fine corsa, i motori stallano, I microstep sono settati a 1.600, diversamente la velocità minima risulterebbe troppo alta per certe lavorazioni.
Nel prossimo upgrade, sostituirò le etichette autoadesive con incisioni a cnc.
Adesso un po' di foto
Qualche parola sulla macchina utensile "Frankenstein". Tempo fà, un amico che ha trasformato la BF20 in Cnc, sostituendo anche la testa con un elettromandrino, mi ha regalato quest'ultimo. Su quello che restava di un pantografo Pear, su cui avevo già deciso il downgrade da cnc a manuale, ho innestato la testa e ho montato il visualizzatore Sino.
L'elettronica è divisa in 2 parti e 1/2: scatola di comando che ospita la scheda Arduino Mega, box driver e alimentatori, compreso quello per Arduino (così ho la 220V solo in un box, e scatolina di derivazione per il collegamento dei limit.
Ho scelto motori dual shaft per potere montare una manopola sul terminale dell'albero per i movimenti micrometrici manuali. Farlo sulla vite dell'asse avrebbe comportato, ovviamente, un rapporto inverso e quindi un grosso sforzo per muoverli (soprattutto la Z dove la riduzione è 12/72.
A proposito di movimenti manuali, i driver, a riposo, non ricevono corrente di tenuta. a riposo la scheda Arudino non invia alcun segnale, contrariamente a quanto avverrebbe con un controller cnc.
Ho dovuto accrocchiare uno stop registrabile per la manopola del potenziometro perchè, poco prima del fine corsa, i motori stallano, I microstep sono settati a 1.600, diversamente la velocità minima risulterebbe troppo alta per certe lavorazioni.
Nel prossimo upgrade, sostituirò le etichette autoadesive con incisioni a cnc.
Adesso un po' di foto
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
Il cervello è l'organo più sopravvalutato...(W.Allen)
- leomonti
- Senior
- Messaggi: 2211
- Iscritto il: mercoledì 20 dicembre 2006, 19:04
Re: Stepper e Arduino
Altre foto. Nei prossimi giorni monterò i motori sugli assi restanti. Il test generale lo avevo fatto coi motori a vuoto
L'alimentatore è un Meanwell 36V 600W. Al momento non ho previsto fungo d'amergenza. Vedrò in seguito.
L'alimentatore è un Meanwell 36V 600W. Al momento non ho previsto fungo d'amergenza. Vedrò in seguito.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
Il cervello è l'organo più sopravvalutato...(W.Allen)
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
OFFTOPIC
Sistemi del genere li ho visti su fresatrici fine anni 60 inizio 70, una comodità ma la capacità di lavorazione è quella di una fresatrice tradizionale.
Se uno ha motori stepper su tutti i tre assi e driver, forse conviene mettere una scheda di controllo e per uso manuale un tastierino con volantino,
Mi è capitato "poche volte" di usare un grosso montante mobile manuale con tastierino, ti assicuro che è più comodo dei comandi "a leva".
Solo un mio parere da quello che ho visto in officina, o manuale o cnc con possibilita di volantino, le soluzione intermedie sono abbandonate.
Sistemi del genere li ho visti su fresatrici fine anni 60 inizio 70, una comodità ma la capacità di lavorazione è quella di una fresatrice tradizionale.
Se uno ha motori stepper su tutti i tre assi e driver, forse conviene mettere una scheda di controllo e per uso manuale un tastierino con volantino,
Mi è capitato "poche volte" di usare un grosso montante mobile manuale con tastierino, ti assicuro che è più comodo dei comandi "a leva".
Solo un mio parere da quello che ho visto in officina, o manuale o cnc con possibilita di volantino, le soluzione intermedie sono abbandonate.
CIAO A TUTTI !
-
- God
- Messaggi: 5241
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Stepper e Arduino
Aggiungo, pensavo avessi una piccola macchinetta da banco, comprare una fresatrice cnc cinese come la tua costa oltre 8000 euro, per cui è un po un peccato
CIAO A TUTTI !
- leomonti
- Senior
- Messaggi: 2211
- Iscritto il: mercoledì 20 dicembre 2006, 19:04
Re: Stepper e Arduino
Su questa, in particolare, ho scelto, come dicevo, il downgrade dal precedente retrofit con Colibri, per la grande difficolta ad adattare le viti a ricircolo ( spazi esigui).
Al contrario, sto montando un sistema closed-loop su una ZX50 Iso30 da 4 q.li. L’elettronica è già montata e collaudata. Sono fermo perché devo acquistare una capretta, diversamente rischio di tirarmi la tavola e la testa sui piedi. In parallelo, sto rivedendo da zero un precedente retrofit su una Cortini. Mi ci vorranno un paio di vite….
La macchina oggetto del post è un ripiego che dovrò usare per costruire i pezzi per le altre 2. E comunque, questa è una semplice motorizzazione assi, alla stregua di quella ottenuta con motori pendolari, ma con ingombri più contenuti. Poi, ove decidessi per la soluzione che indichi tu, mi basterà sostituire il controller, anche con un semplice sistema GRBL. Al momento le mie esigenze si limitano a questo tipo di movimento.
Il cervello è l'organo più sopravvalutato...(W.Allen)