Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
divisore digitale, una comodità in più
#51
Grazie umbez per il chiarimento :-)

Mi capita di interpretare male risposte che sono solo concise. Mio limite. Acuito dalla comunicazione solo scritta (nessuna espressione ne intonazione). Non me ne vogliate.

Tornando all'oggetto del contendere.

Mi sembra di poter dire che lo sketch migliorato introduce una parte delle richieste di cui ho letto nei vari messaggi, mantenendo le caratteristiche tipiche di un divisore (titolo della discussione).

Non conclama di trasformarsi in un quarto asse con tutti i problemi connessi.

Penso che dopo i primi utilizzi, gli autori abbiano riscontrato gli stessi problemi evidenziati da Carlino. Probabilmente si sono resi conto che esistevano librerie gia' sviluppate che permettono una migliore gestione dei motori stepper. Non hanno fatto altro che includere un buon codice nella loro idea iniziale.

Penso anche che non siano le accelerazioni o le decelerazioni i fattori discriminanti per far girare meglio lo stepper. Le velocita' del divisore sono infime. Molto probabile una migliore gestione delle tempistiche tra i segnali direzione e step.

In particolare il segnale direzione dovrebbe sempre essere impostato prima che venga inviato il primo segnale di step. Il tempo minimo che deve intercorrere tra i due segnali e' dichiarato dal costruttore del chip e se non rispettato puo' generare strani movimenti del motore. Probabilmente la libreria AccelStepper tiene in considerazione anche questo dettaglio.

Ovviamente affermo tutto questo solo in teoria perche' non ho ne' il driver ne' lo stepper di Carlino con cui poter fare le prove :-)

Riporto sotto le traduzioni (Google) di una parte delle istruzioni inserite nello sketch stesso.

Ciao :-)

Mauro

**********************************************************************************************************************************************

Questo schizzo migliora l'originale in questi modi:

il movimento è attuato con accelerazione e decelerazione;
la precisione del movimento è migliorata calcolando i movimenti con l'uso di variabili float prima di convertirle in passi, in modo da evitare errori di arrotondamento cumulativi;
è inclusa un'opzione per la rotazione continua con impostazioni di velocità variabili;
è inclusa un'opzione per i movimenti ad arco (rotazione tra/entro un angolo fisso).



La prima volta che si utilizza il programma, le impostazioni necessarie per il motore passo-passo e la tavola rotante non sono definite.

L'opzione 9 (Impostazioni) ti consente di inserire le impostazioni iniziali per il tuo sistema o di modificare le impostazioni come necessario. Tutte le impostazioni immesse verranno archiviate in una memoria permanente, quindi non è necessario reinserirle ad ogni accensione. È possibile modificare le impostazioni iniziali in qualsiasi momento utilizzando nuovamente l'opzione Impostazioni.

I valori memorizzati da questa opzione sono i seguenti:

1. Il numero totale di passi completi in una rotazione completa del motore passo-passo (in genere 200, ma sono possibili altri valori)

2. Il numero di micro-passi per passo completo (come impostato sull'hardware del driver del motore passo-passo)

3. Il rapporto di trasmissione della tavola rotante

5. Impostazione del gioco:  On (usare la compensazione del gioco); Off (non compensare il gioco)

6. Compensazione gioco: il numero totale di micro-passi di gioco nel sistema (vedi CORREZIONE GIOCO di seguito).
Nota: se la compensazione del gioco è disattivata, non verrà richiesto un valore di compensazione del gioco

7. Impostazione dell'avvio del segnale acustico - Attivato o Disattivato; questo è per un segnale acustico hardware opzionale (vedi commenti sotto). Se viene utilizzato un segnale acustico e questo è attivato, il controller emetterà un segnale acustico all'inizio di una mossa.

8. Impostazione dell'arresto del segnale acustico - Attivato o Disattivato; questo è per un segnale acustico hardware opzionale (vedi commenti sotto). Se viene utilizzato un segnale acustico e questo è attivato, il controller emetterà un segnale acustico al completamento di una mossa o per avvisare della necessità di inserimento da tastiera.

9. Impostazione della velocità massima per il motore passo-passo. Questo sarà diverso per ogni motore passo-passo e tavola rotante combinazione. Vedere VELOCITÀ MASSIMA e ACCELERAZIONE di seguito.

10. Accelerazione: la velocità con cui il motore accelera alla velocità massima e decelera fino all'arresto. Vedere VELOCITÀ MASSIMA e ACCELERAZIONE di seguito.

10. Velocità massima percentuale: questa impostazione consente al motore passo-passo di funzionare a una certa percentuale del massimo velocità massima. La percentuale può essere inferiore al 100% o superiore al 100%. Viene utilizzato per selezionare rapidamente diverse velocità del motore durante la rotazione continua.

11. Modalità di arresto: il metodo per interrompere la rotazione continua. Questo è spiegato più dettagliatamente in Continuo Modalità di seguito.
Cita messaggio
#52
OK, ho capito che fa nel nuovo firmware, anche se c'è un problema che lui ha identificato, ovvero che quando il motore sta girando, il tastierino introduce un lag in lettura (il tastierino è in polling quindi ogni ciclo di clock legge se qualcosa è cambiato).

Comunque prima di tutto bisogna settare i valori di accelerazione e velocità massima. Vi incollo la traduzione : 
VELOCITÀ MASSIMA e ACCELERAZIONE:

Se si utilizza questo programma per la prima volta, o sono state apportate modifiche hardware o modifiche nel valore di micro-stepping , è necessario impostare prima la velocità massima e l'accelerazione massima del motore. Il modo più semplice per determinare rapidamente buoni valori di velocità e accelerazione consiste nell'usare la modalità continua, che ha un'opzione per impostare questi valori.   
La velocità massima del motore deve essere impostata su un valore "conservativo" che impedisca lo stallo o perdita di passi. Il il valore massimo possibile trovato sperimentalmente è 4000 (passi/sec), ma l'impostazione effettiva sarà molto minore.
Allo stesso modo, bisogna impostare l'accelerazione su un valore che non farà "perdere la posizione" al sistema.
Dal momento che questo programma non riceve feedback sulla posizione fisica effettiva della tavola rotante, si presume che la tavola si muova di un passo per ogni segnale di passo dato; se per qualsiasi motivo la tavola non avanza quando viene dato un segnale di passo, allora la tavola rotante e il programma non saranno sincronizzati e i movimenti della tavola rotante non saranno più accurati.

Micro-stepping  massima velocità  Acceleration
-------------------   -------------------      ------------
1                               850                  200
2                             2500                 1000 


L'unico modo per determinare i valori migliori per velocità e accelerazione è per tentativi ed errori. Si inizia con valori bassi che funzionano bene, quindi aumentare i valori finché il motore non inizia a bloccarsi, esitare o perdere passi. Quindi impostare il valori per l'uso effettivo pari al 10% o 20% inferiori ai valori di stallo per consentire un margine di sicurezza. 
Visto che l'inerzia della massa è un fattore importante in queste impostazioni, le prove dovrebbero essere eseguite con la tavola rotante con un tipico pezzo da lavorare in modo da tenere conto del "carico di lavoro" della tavola. 
nb. Secondo la documentazione di AccelStepper: "La velocità che può essere supportata in modo affidabile è di circa 4000 passi al secondo a una frequenza di clock di 16 MHz su Arduino come Uno ecc."

Poi c'è la correzione del backslash che suggerisce di usare la funzione ARC per andare avanti e indietro e misurare quanti step perde, ma se c'è necessità lo vediamo in un prossimo post.
Ora la domanda è, chi monta il nuovo firmware e fa le prove per vedere se funziona? (io no finchè sono invischiato con l'ELS)
Cita messaggio
#53
Ciao,

provo a fare un paio di conti veloci. Correzioni benvenute :-)

Dai messaggi sparsi lungo la discussione (riportati sotto) si evince che Carlino ha impostato il driver per 400 passi a giro (opzione 2/a = 1/2 step);

La riduzione della tavola e' 1/90. Ogni step del motore corrisponde a 0,01 gradi di rotazione della tavola [(360/90)/400];

Considerando i valori conservativi suggeriti dalla traduzione di umbez abbiamo:
2500 impulsi al secondo massimi / 400 passi per un giro completo dell'albero motore = 6.25 giri al secondo dell'albero dello stepper;
6.25 giri al secondo * 60 secondi in un minuto = 375 giri minuto dell'albero dello stepper;
375 giri minuto dell'albero dello stepper / 90 (riduzione della tavola) = 4.16 giri minuto della tavola.

Se si usa l'opzione passo intero del motore stepper, i giri della tavola raddoppiano a 8,32 al minuto (con solo 0,02 gradi di risoluzione).

Non so se queste velocita' e/o risoluzioni (teoriche) siano sufficienti agli utilizzatori. Questo possono dirlo solo loro.

Di sicuro c'e' un miglioramento rispetto al primo sketch, dove il delay di 200 millisecondi portava a un massimo di 1 / 0,2 = 5 impulsi al secondo inviati al driver che pilota il motore (ora ne inviamo un massimo di 2500)

Nel primo sketch si impiegava 1 minuto per ruotare la tavola di 270 gradi.

Ciao :-)

Mauro


************************ messaggi ****************************************

Carlino: Non mi sembra di aver messo valori eccessivi , solo il ritardo l'ho messo sui 200 millisecondi perchè ho una riduzione di 1 /90 e per fare 90 ° ci impiega parecchi secondi.

Leomonti: In ogni caso, con una riduzione 1/90, userei il passo intero 200 step/giro (1.8°/step).
Se non sbaglio i conti, ad ogni step, a passo intero, ti sposti di 0.02°

Carlino: Grazie era solo una questione di sigle : ENA - l'ho già ponticellato con DIR - e PUL - ma il 5 V di Arduino l'ho mandato solo al display. Per quanto riguarda i settaggi del driver in tabella c'è un 2/A e un 2/B quello che indichi tu è il 2/B , io invece ho fatto il 2/A : è sbagliato ?
Cita messaggio
#54
Mah, la prima cosa utile che mi viene in mente, rispetto al movimento in continuo sganciato dagli altri assi, è un'asola lungo un arco.
Se ci penso bene, mi viene in mente qualcosa d'altro Angel
Cita messaggio
#55
Anche una fresatura tonda su un angolo è una operazione abbastanza frequente, nelle macchine manuali.

Oggi niente officina , sono in Toscana e ci rimarrò per una settimana, seguirò le vostre indicazioni ma non potrò sperimentarle subito.
Cita messaggio
#56
CARLINO ma alla fine com'è andata a finire? io l'els l'ho fatto tu?
Cita messaggio
#57
L'elettronica è fatta , sto sistemandola in un contenitore abbastanza grande dal momento che i componenti scaldano (il dissipatore del driver sarà sicuramente esterno ): se necessario metterò una ventolina ma vorrei evitarlo in considerazione dell'ambiente di lavoro. Completata la sistemazione dell'elettronica mi dedicherò alla connessione meccanica del motore al divisore , ho preferito prima dedicarmi a questa parte del progetto che per me risultava essere la parte più difficile , senza i tuoi consigli ero ancora in alto mare.
Cita messaggio
#58
se riesci metti una ventolina, ottimo!
comunque l'els vale eh e tanto
Cita messaggio
#59
ho sbirciato un po´meglio il progetto, ARC mode e´interessante pero´ non si puo´settare l velocita´!
bello poter fare archi ma con una velocita´fissa e´un po´problematico, velocita´e acc ci sono in movimento continuo che non e´utile quanto gli archi
Cita messaggio
#60
Ecco il contenitore , c'è ancora da sistemare il cavo del motore e relativo spinotto , ma è subordinato alla sistemazione meccanica del motore stepper. Ho sistemato all'esterno il dissipatore del driver perchè scalda molto , se salirà lo stesso la temperatura interna sistemerò una ventolina.

   
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 5 Ospite(i)