MECCANICA e DINTORNI

COSTRUIAMO LE NOSTRE CNC DIVERTENDOCI CON L'AIUTO DI TANTI PROFESSIONISTI ESPERTI
Oggi è dom giu 23, 2024 19:58

Tutti gli orari sono UTC +1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 436 messaggi ]  Vai alla pagina Precedente  1 ... 23, 24, 25, 26, 27, 28, 29, 30  Prossimo
Autore Messaggio
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: mer dic 16, 2015 10:55 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
Certo che si! Alla grande.
Configurali in "bipolar parallel" ed imposta la massima corrente a 3.5A.... se si inchioda aumenta un po' ma non esagerare perché se lo usi alla massima corrente rischi di sfondare il motore.

Secondo me con quel motore potresti anche farcela.
Utilizza 48VDC di alimentazione però, 24 sono troppo pochi.

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: mer dic 16, 2015 12:18 
Non connesso
SON PASSATO AI TRAPANINI
Avatar utente

Iscritto il: ven set 11, 2015 08:43
Messaggi: 81
Località: Reggio Emilia
Grazie Max, sempre utile e gentile!

_________________
Un nano sopra le spalle di un gigante vede più lontano!


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: mer dic 16, 2015 22:20 
Non connesso
TRA NON MOLTO PASSO AL TORNIO
Avatar utente

Iscritto il: sab giu 06, 2015 21:13
Messaggi: 158
Località: Treviso
Ciao McMax volevo farti i complimenti per questo mega lavoro che stai portando avanti. Ho provato a studiare il tuo programma per cercare di darti un qualche contributo ma.... a parte i pdf l'impresa risulta titanica....

Ho alcuni spunti di riflessione:
-Per comandare il display di solito uso l'I2C per risparmiare ingressi arduino

-Per filettare da quel che ho capito usi i dati precaricati in una eprom. Secondo me era meglio (come Mimoletti diceva) fare dei piccoli calcoli ovvero: in base al filetto da fare calcolo prima la misura di un passo del mandrino, calcolo la misura del passo del carro (mosso dal motore PP) e poi procedo con una semplice somma della misura dei passo mandrino e non appena supera la misura del passo del carro gli do un passo di carro. Si possono poi moltiplicare le misure per 1000 per evitare i float e portare avanti lo scarto (inevitabile ma inferiore della misura del passo motore) di filetto in filetto. Questo è solo il concetto poi è tutto da rifinire.

-Per le funzioni aggiungerei anche la possibilità di usare il carro come uno strozzatore per fare la scanalatura per le chiavette magari sotto controllo dell'operatore per evitare inpuntamenti dell'utensile.

Per ora è tutto ciao, Marco.

_________________
Lostudioso


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: gio dic 17, 2015 00:06 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
grazie Marco.
No, non uso dati precaricati in eeprom.
Calcolo i passi in base al filetto che imposto e li carico in un array che viene poi scandito durante la routine di filittatura. Se cerchi nel topic spiego anche il tutto in modo dettagliato.
I float li uso ma fuori dalla routine veloce quindi non mi danno alcun fastidio.... anzi!

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: sab gen 16, 2016 18:32 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Riprendendo il discorso, sperando che possa essere di aiuto, a chi ha voglia di sviluppare il progetto autonomamente.

Essenzialmente gli impulsi dell'encoder, possono essere letti in due modi, abilitando un'interrupt sul cambio di stato di una dei pin del Micro, oppure abilitando un'interrupt su l'over flow di uno dei timer del Micro.

La prima strada permette la lettura simultanea dei canale A e B, con cui è possibile aumentare la risoluzione dell'encoder X4, leggendo ogni fronte di salita e discesa dei rispettivi canali.
Inoltre con la lettura in tempo reale di ogni singolo impulso, ci permette a fronte di un'inversione decrementare la variabile, utilizzata per il conteggio degli impulsi.
Per contro a meno di non utilizzare per l'encoder risoluzione bassissime, non è possibile mantenere sincronizzata la vite madre durante gli avanzamenti dove si utilizzano elevati reggimi di rotazione.

L'utilizzo del timer invece ci permette di aumentare la risoluzione dell'encoder solo X2, abilitando l'incremento del timer sia sul fronte di salita che sul fronte di discesa di uno dei canali dell'encoder.
Il valore di divisione potrà essere caricato direttamente nel timer, e sarà possibile mantenere il sincronismo anche ad elevati regimi di rotazione, in ogni caso anche quando viene superata la frequenza massima di funzionamento, il programma non smette di funzionare ma continua ugualmente la sua divisione degli impulsi.
Questo ci consente di aumentare la risoluzione dell'encoder.
Di contro non potendo decrementare il timer in tempo reale a fronte di un'inversione si può generare un'errore di sincronismo che in ogni caso non sara mai superiore ad un singolo step del motore passo passo.

Per quanto riguarda la risoluzione ottimale del passo passo, ho riscontrato che non conviene scendere su valori troppo bassi, per non accentuare uno dei difetti dei motori passo passo, il tipico funzionamento a scatti che produce vibrazioni soprattutto ai bassi regimi. Difetto che si accentua negli avanzamenti dove le velocità del passo passo, possono essere anche inferiori di oltre 50 volte.
Pertanto consiglio l'uso del micro step, almeno nel valore di 1/8.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: sab gen 16, 2016 22:18 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
Dimentichi di dire che l'utilizzo del timer non è possibile senza l'ausilio di un flip-flop esterno... a meno di non complicare ulteriormente il codice.
E anche che lo step "perso" non è matematico ma dipende dalle inversioni che si effettuano ed a dove vengono effettuate.

Aggiungo inoltre che la soluzione ad interrupt permette anch'essa di sfruttare elevati regimi di rotazione semplicemente attivando solo gli interrupt che servono (tipo: fronte di salita di un solo canale) al pari della soluzione a timer.

Mi permetto infine di esprimere un'opinione che può essere o meno condivisa: l'utilizzo del timer per la lettura di un encoder in quadratura è una soluzione machiavellica che complica e sbilancia il codice senza apportare alcun beneficio.

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 17, 2016 00:36 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Assolutamente il flip-flop non e indispensabile. Basta aggiungere poche righe di codice. :grin:
Per ogni ciclo di due inversioni l'errore di sincronismo sarà sempre è comunque di un singolo step. Piuttosto che matematicamente direi non prevedibile, ma in ogni caso ai fini pratici ininfluente. Gli strumenti di misura che utilizzo di solito non hanno una precisione assoluta e il valore reale sarà sempre compreso tra due valori, questo non mi impedisce di usarli!
Se ricordo bene nella tua prima versione di SW avevi una filettatura che si accorciava, ad ogni giro, di diversi step, non capisco come un'errore di sincronismo di un singolo step ti sia inaccettabile! :grin: :grin: :grin:

La sostanziale differenza tra utilizzo dell'interruzione su l'over flow del timer e l'interruzione sul cambio di stato di uno degli ingressi sono a mio avviso diverse:

1) Caricando il valore di divisone nel timer avrai un tempo tra un'interruzione e la successiva proporzionale al valore stesso di divisione, tu invece avrai sempre e comunque un'interruzione ad ogni fronte di salita. Quindi la tua routine di interrupt deve essere necessariamente breve, e contenuta (in termini di tempo) tra due fronti di salita, nel mio caso l'unico limite è il tempo impiegato per caricare il timer.

2) Volendo posso scegliere se caricare il valore di divisione nel timer direttamente o caricare valore 255 e leggere ogni singolo fronte di salita e discesa.

3) Utilizzando interruzione sul cambio di stato di uno degli ingressi, quando viene superata la frequenza massima di funzionamento, esso smette di funzionare, nel mio caso utilizzando timer e caricando il valore di divisione direttamente in esso, questo non succede.

4) Il timer di solito hanno dei divisori, che si possono impiegare per diminuire la risoluzione dell'encoder.

5) Utilizzare encoder con risoluzioni maggiori, sul mio tornio con una vite madre di 4mm, ho una riduzione meccanica di 4:1, ed ho il driver impostato ad un'1/8 di step.

L'utilizzo del timer mi ha permesso, di avere sincronizzati anche gli avanzamenti, di implementare la rampa di accelerazione nella fase di ritorno e posso retrocede il carro ad una velocità differente da quella con cui avanza ed infine di utilizzare una risoluzione maggiore (mi infastidiva la tipica rotazione a scatti dei passo passo, sopratutto quando utilizzavo gli avanzamenti più piccoli).

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 17, 2016 10:54 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
Mimoletti, in tutto questo io ancora non ho capito come memorizzi la posizione angolare del mandrino visto che, caricando sempre valori diversi nel timer, non hai un contatore impulsi assoluto. E ancora, anche avendo trovato il modo di farlo, come intercetti la posizione corretta quando devi ripartire con la seconda passata della filettatura ?

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 24, 2016 14:35 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Ciao Max, scusa se ti rispondo solo ora, ma ultimamente sono molto impegnato.

Nella modalità avanzamento abilito il divisore del timer con divisione 16 e carico valore 250. Avrò un'interrupt ogni 4000 impulsi.

Nella modalità filettatura carico nel timer valore 255, avrò un'interrupt ad ogni fronte di salita di uno dei canali, aggiorno il valore di una delle variabile, incrementandola o decrementandola in funzione del senso di rotazione, e solo ed esclusivamente nel caso in cui il valore della variabile sia 4000, riparto con la seconda passata della filettatura.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 24, 2016 15:52 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
Cioè fammi capire...... generi un interrupt ad ogni fronte di salita di uno dei canali; ovvero generi un interrupt ad ogni fronte di salita di ENTRAMBI i canali visto che hai un XOR.
E che differenza c'è quindi tra utilizzare il timer o gli interrupt?
Considerando la risoluzione che hai usato, generi più interrupt tu di me.....

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 24, 2016 22:47 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
La mia routine di interruzione è divisa in due sezioni, la prima memorizza la posizione angolare del mandrino, la seconda si occupa della divisione degli impulsi.

Quando devo memorizzare la posizione angolare del mandrino e sono nella modalità filettatura leggo ogni fronte di salita del segnale a valle della XOR, ed ho un' interruzione ad ogni fronte di salita, quando devo effettuare la divisione degli impulsi invece carico il valore di divisione nel timer, e avrò tra un'interruzione e quella successiva un numero di fronti di salita dipendenti dal numero di divisione.

Ad esempio il valore di divisione per Matteu è di 31, quando l'avanzamento è di 8 centesimi a giro.
Tra un'interruzione e quella successiva avrò 31 fronti di salita.

In conclusione leggo ogni fronte di salita solo quando mi trovo nel menu filettatura e devo memorizzare la posizione angolare del mandrino (volendo in questa fase potrei abilitare il divisore del timer per ridurre a mio piacimento la risoluzione dell'encoder) e non quando devo dividere gli impulsi.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 24, 2016 22:54 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
non ho capito perché alcune cose le scrivi in grassetto come a far notare che TU non le fai ma qualcun altro si.
Nel caso, e giusto per chiarire il concetto per l'ennesima volta, ti rammento che io le "divisioni" le faccio TUTTE fuori dal ciclo......

Ad ogni buon conto, e perdonami la franchezza, più vai avanti a spiegarmi il tuo codice e più non capisco come tu possa esserti complicato la vita fino a questo punto.....

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: dom gen 24, 2016 23:22 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Forse non sono stato abbastanza chiaro....

Utilizzando l'interruzione sul cambio di stato di uno dei pin del micro, indipendentemente da dove esegui la divisione, immaginando che il valore di divisione sia 10, avrai 10 interruzioni, utilizzando il timer ne avrai solo 1.

Ad ogni buon conto, e perdonami la franchezza, più vai avanti a spiegarmi il tuo codice e più non capisco come tu possa esserti complicato la vita fino a questo punto.....


Potrei dire lo stesso del tuo codice......, è una questione di punti di vista.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: lun gen 25, 2016 10:45 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8863
Località: Bussero (MI)
provo ad essere più chiaro perchè evidentemente mi esprimo male e non riesco a farmi comprendere.

Ti chiedo come fai a mantenere il sincornismo angolare quando filetti a "misura"; mi dici che in quel caso, giustamente, imposti il timer a 255 (che, su un timer a 8 bit, equivale a generare un interrupt ad ogni fronte...). Ti faccio notare che in questo modo fai col timer esattamente quello che faresti usando gli ingressi interrupt, e per tutta risposta mi dici che quando il divisore è ad esempio 10 avrai un interrupt ogni 10 impulsi.
Ma a questo punto, non per ripetermi, ancora non ho capito come mantieni il sincronismo angolare....

Se devi mantenere il sincronismo per riprendere la filettatura nello stesso punto non c'è altra via che contare tutti gli impulsi.... certo puoi eseguire il calcolo progressivo a ritroso e con un po' di fantasia forse ci riesci ma da quello che hai detto non è questo ciò che fai.

Che tu nella modalità avanzamento sia sincronizzato è chiaro; che la gestione dell'encoder col timer abbia dei vantaggi sulle alte velocità di rotazione è altrettanto chiaro (che non hanno comunque senso in filettatura....); ma nelle filettature automatizzate, ovvero quelle che generalmente usi quando hai un ELS, che vantaggio c'è ?

Altra cosa che a mio avviso non ha molto senso è sincronizzare in avanzamento: che senso ha ?
L'avanzamento ha un ampio range di tolleranza e di certo avanzare di 22 cent/giro piuttosto che di 20 non fa tutta questa differenza all'atto pratico.... la cosa importante è che l'avanzamento sia costante.

_________________
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à


Top
 Profilo  
 
 Oggetto del messaggio: Re: progetto open source per avanzamenti automatici su ardui
MessaggioInviato: lun gen 25, 2016 16:23 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Premettendo che in ogni caso, il fatto che tu non capisca come si possa fare o che io mi sia spiegato male non significa che non si possa fare.

Cercherò di essere il più chiaro possibile:

Memorizzazione della posizione angolare del mandrino:


Si può fare in due modi (immaginiamo di avere un' encoder con una risoluzione di 1000 impulsi a giro):

1) Abilito il divisore e scelgo divisione 8, carico nel timer valore 125, avrò un'interruzione ad ogni giro. Esce dal pause solo se la prima passata è terminata.

2) Genero un'interruzione ad ogni fronte di salita, aggiorno il contenuto di una delle variabili (Count) e la decremento o la incremento, in funzione della senso di rotazione del mandrino. Avrò 1000 interruzioni ad ogni giro ed esce dal pause solo se due condizioni sono verificate: Che la prima passata sia terminata e che il valore della variabile Count sia esattamente 1000.

Divisione degli impulsi (vale sia per la filettatura che per l'avanzamento)
:

Carico il valore di divisione direttamente nel timer, (immaginando che sia 10) avrò una 1 interruzione ogni 10 impulsi.

Sincronizzare l'avanzamento è di fondamentale importanza, la finitura e quindi la rugosità che ottieni e direttamente legata all'avanzamento a giro e alla velocità di taglio. i giorni scorsi ho realizzato un'albero per uno dei mie motorini, e sono dovuto passare da diametro 35mm a diametro 9mm, e da una velocità di rotazione di 800 giri al minuto ad 1800 giri al minuto, utilizzando una velocità di avanzamento costante e non sincronizzata sarei passato da 8 centesimi a giro a 20 centesimi a giro. Ti posso assicurare che da 8 a 20 centesimi a giro ottieni una finitura completamente diversa.

Altra considerazione, utilizzando il timer se non si ha la necessita di raddoppiare la risoluzione dell'encoder, non è necessario il flip flop, per determinare il senso di rotazione del mandrino.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 436 messaggi ]  Vai alla pagina Precedente  1 ... 23, 24, 25, 26, 27, 28, 29, 30  Prossimo

Tutti gli orari sono UTC +1 ora


Chi c’è in linea

Visitano il forum: Google [Bot] e 15 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBB.it