MECCANICA e DINTORNI

COSTRUIAMO LE NOSTRE CNC DIVERTENDOCI CON L'AIUTO DI TANTI PROFESSIONISTI ESPERTI
Oggi è ven mar 29, 2024 10:17

Tutti gli orari sono UTC +1 ora




Apri un nuovo argomento Questo argomento è bloccato, non puoi modificare o inviare ulteriori messaggi.  [ 1423 messaggi ]  Vai alla pagina Precedente  1 ... 18, 19, 20, 21, 22, 23, 24 ... 95  Prossimo
Autore Messaggio
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: ven nov 25, 2016 11:56 
Non connesso
FINALMENTE USO IL TORNIO
Avatar utente

Iscritto il: gio lug 12, 2012 13:37
Messaggi: 379
Località: Sestri L. (GE)
Per la coppia io ho impiegato uno stepper da 4Nm ma:

- il mio tornio è piccolo e quindi richiede meno sforzi.
- non bisogna esagerare con la profondità delle passate.

Per la movimentazione con motore DC + encoder:

Potrebbe essere interessante applicare una tecnica che si utilizza nel mondo della radiotecnica: il PLL.

Con il metodo Phase lock loop si potrebbe prendere a riferimento la fase prodotta dall'encoder sul mandrino per compararla con quella proveniente dall'encoder sul motore previo passaggio attraverso un divisore programmabile (per impostare il passo). La differenza tra le due fasi produce una tensione in uscita dal comparatore + filtro proporzionale alla differenza tra fase mandrino - fase motore che potrebbe essere utilizzata per impostare la tensione da inviare al motore.
Il problema (per me) sarebbe come limitare il pendolamento senza influire sulla tempestività di regolazione.


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: ven nov 25, 2016 19:48 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
Secondo me con il motore DC il controllo diventa tropo difficile per un arduino. I due encoder li leggi ad interrupt e due interrupt insieme non si possono eseguire. Ci vuole una MCU con interrupt a priorità e che permetta di fare il nesting. oltre a ciò ricordati che il motore in DC va necessariamente demoltiplicato.
Per evitare il funzionamento a scatti secondo me bisogna andare su un brushless DC, che pilotato in SVM consente un controllo di posizione nel pilotaggio, cosa impossibile nel DC classico.
Ovviamente anche nel caso del brushless la MCU deve essere più potente. Io andrei direttamente su un ARM Cortex M. Una NUCLEO di ST con cortex M4 potrebbe andare bene.

_________________
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: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: ven nov 25, 2016 20:11 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
aggiungo che, per come è fatto il controllo ELS, la precisione è dettata esclusivamente dai passi sul mandrino ed è meglio che siano di più rispetto a quelli della vite. Questo perché il controllo NON si può fare in velocità ma si DEVE fare in posizione... ovvero: non puoi regolare semplicemente la velocità di rotazione. Potresti farlo ma solo ammettendo di trovarti già in rotazione a regime, la fase di partenza e quella di arresto sarebbero troppo complesse e, in ogni caso, controllando la sola velocità perderesti il sincronismo angolare che è fondamentale per filettare.
Poi per carità, tutto si può fare, ma bisogna vedere a quale prezzo.

_________________
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: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: sab nov 26, 2016 08:35 
Non connesso
FINALMENTE USO IL TORNIO
Avatar utente

Iscritto il: gio lug 12, 2012 13:37
Messaggi: 379
Località: Sestri L. (GE)
Già, diventerebbe troppo complesso.


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: sab nov 26, 2016 15:01 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: dom gen 25, 2009 17:36
Messaggi: 1503
Località: Tijuana, Mexico
Ciao MC,
Era da tanto che non rifrequentavo MD, e ho trovato il tuo progetto molto interessante,
possiedo già molti pezzi, fra i quali uno splendido encoder da 2500 step in Push Pull...
C'è modo di adattarlo per lavorare con il tuo hardware/software secondo te?
Senza doverlo collegare al mandrino in maniera demoltiplicata intendo.

P.s. ovviamente ho letto che il tuo progetto non supporta encoder ad alto numero di step, ma. non si sa mai...

_________________
Tuco Benedicto Ramirez


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: sab nov 26, 2016 16:18 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
Ciao Maurizio, è un piacere rileggerti.
2500 step sono davvero tanti, servirebbe un micro più potente di arduino. Se sono 2500 step completi questo vuol dire che una volta letti saranno 10000, ovvero 10000 interrupt ad ogni giro del mandrino.
Se proprio vuoi recuperare quell'encoder usando questo progetto credo che non ci sia altra soluzione che demoltiplicarlo.
Alternativamente si può "portare" il software su una piattaforma hardware più potente solo che non è così facile come a dirlo. Ad esempio usando una scheda Nucleo di ST basata su ARM Cortex M la cosa potrebbe anche funzionare, e pure meglio visto che non avresti più grossi limiti nemmeno nei passi stepper con grosso vantaggio anche per la fluidità nel movimento della vite.

_________________
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: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: sab nov 26, 2016 21:35 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: dom gen 25, 2009 17:36
Messaggi: 1503
Località: Tijuana, Mexico
Mc, mi riviene in mente che con con il flip flop si può dividere la frequenza di un determinato ingresso.
L'errore indotto mi sembra minimo su 2500 step/giro.
Arduino ce la farebbe senza troppo aggravio di lavoro a dividere per quattro la frequenza di ingresso?

_________________
Tuco Benedicto Ramirez


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: dom nov 27, 2016 10:09 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
col flip flop non dividi, semplicemente memorizzi un bit. Utilizzati con gli encoder possono identificare il verso di rotazione dello stesso creando di fatto un segnale direzionale come fosse il "DIR" di uno stepper. L'uscita dell'encoder è in quadratura, ovvero i due bit si alternano con una sequenza la cui fase differenziale (cioè la fase di un segnale rispetto all'altro) indica quale'à il verso di rotazione.
Per dividere gli impulsi encoder avresti bisogno di:
- FLIP FLOP per generare il segnale direzionale
- XOR per generare i segnali di step
- DIVISORE DECIMALE (o BINARIO) per demoltiplicare i passi

Con questi blocchi logici potresti ridurre i passi encoder ma in ogni caso non saresti compatibile con il software visto che i due segnali sarebbero diversi da quelli che il software vuole. In pratica ridurresti i segnali encoder a STEP e DIR come fossero quelli usati per un comune motore stepper, ovviamente all'inverso. Il software però è fatto per leggere un encoder direttamente dai segnali in quadratura.
In origine avevo previsto questa logica e la gestione dell'encoder con questi segnali ma mi sono reso conto che in fase di inversione si poteva generare una perdita di passo causata dai ritardi di propagazione delle logiche esterne. Usando il divisore la cosa si complica ulteriormente visto che il divisore non saprebbe da che parte sta girando l'encoder quindi in inversione sfaseresti il passo.

_________________
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: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: dom nov 27, 2016 11:16 
Non connesso
FINALMENTE USO IL TORNIO
Avatar utente

Iscritto il: gio lug 12, 2012 13:37
Messaggi: 379
Località: Sestri L. (GE)
Su ebay si trovano encoder cinesi al prezzo di circa 17€ compreso spedizione. Per provare credo siano un'ottima soluzione poi, se si scasseranno, si provvederà: Encoder


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: dom nov 27, 2016 12:39 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: dom gen 25, 2009 17:36
Messaggi: 1503
Località: Tijuana, Mexico
Perfetto, il mio dubbio era appunto nel momento dell'inversione del senso di rotazione, momento nel quale, prima che il segnale dir in quadratura risegnali correttamente il senso di marcia,
si potrebbero perdere delle manciate di passi. Ho scritto correttamente?
Non mi rimane che demoltiplicare oppure provare con un arduino due...
ovviamente dovrei ricompilare il tuo programma, perché mi risulta che arduino due non sia compatibile, oltre a problemi hardware.
Ho detto qualche castroneria?

La sto facendo lunga perché ho fra le mani un bell'encoder industriale con disco in vetro da un kg di peso, e mi scoccia non utilizzarlo...

_________________
Tuco Benedicto Ramirez


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: dom nov 27, 2016 14:37 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
Nel caso di segnale diretto e non diviso, il passo che si rischia di perdere è uno solo. Il problema è dato dal fatto che lo stesso fronte che darà il passo, sarà quello letto dal flip flop per determinare il senso di rotazione. I due fronti coincidono quindi la probabilità che il passo vengo letto dall'interrupt PRIMA che l'uscita logica del flip flop cambi di stato è molto elevata.
Dividendo i passo con un divisore digitale è anche peggio perchè il divisore, che non può invertire il conteggio sulla base dello stato del flip-flip, continuerà a contare come se l'inversione non fosse mai avvenuta.
Faccio un empio pratico. Ipotizziamo di dividere per 10. Questo significa che il nostro divisore (nel caso specifico decimale) dovrà attendere 10 passi interi prima di cambiare di stato. Ipotizziamo di invertire la rotazione quando questo ne avrà contati 3. Ciò che avviene è facilmente comprensibile: il divisore attenderà 7 passi prima di cambiare di stato quindi il sincronismo angolare è perso.... certo se lo vediamo come singolo evento è trascurabile, ma se immaginiamo una situazione con inversioni multiple possiamo facilmente generare uno sfasamento inaccettabile.

Piuttosto che usare una ARDUINO due, si può valutare una NUCLEO di ST che monta la stessa serie di processori ma con costi decisamente più bassi:
http://it.rs-online.com/web/p/kit-di-sv ... i/8029425/
Per sviluppare si può usare l'ambiente di sviluppo online MBED:
https://www.mbed.com/en/

A mio avviso questa accoppiata è al momento la soluzione più conveniente dal punto di vista costi/benefici.
Se dovessi rifare oggi l'ELS userei questa configurazione, magari con una DISCOVERY F7 usando il suo display grafico:
http://it.farnell.com/stmicroelectronic ... etofThings

Certo costa un può di più ma integra anche display grafico con touch ed una potenza di calcolo di 462 DMIPS (462 milioni di istruzioni al secondo) che non ha eguali tra le altre schede di sviluppo in commercio.

_________________
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: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: dom nov 27, 2016 17:16 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: dom gen 25, 2009 17:36
Messaggi: 1503
Località: Tijuana, Mexico
Ottimo...

_________________
Tuco Benedicto Ramirez


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: lun nov 28, 2016 17:25 
Non connesso
APPRENDISTA E ADDETTO ALLE PULIZIE

Iscritto il: mar mag 14, 2013 07:59
Messaggi: 27
Località: Torino
riecchime...
Hai perfettamente ragione riguardo alle chiamate se i sue encoder scattano esattamente nello stesso momento una verrà eseguita successivamente all'altra, ma stiamo parlando di chiamate che incrementano un counter, (si potrebbero persino usare routine del atmel proprietarie) e siamo parlando di KHz, poi faccio la comparazione nella chiamata principale e setto dir e PWM per il DC motor con un minimo di feedforward e un PI...

l'idea è di far tutto con baracche riciclate che ho nella scatola del recupero a minimo prezzo...
ieri mi son stampato l'ingranaggio passo 1 da 12 denti per il motore dc da interfacciare col tornio, se come coppia (naturalmente demoltiplicato) ce la fa allora ci monto un encoder (da vecchia stamapante) sulla ruota e vedo se lo posso muovere e non perder passi per strada.

Per lo sviluppo preferisco usare un mega che almeno lo so usare e ne ho in giro a prender muffa...

@ AF116 sarebbe fico farlo PLL ma mi sa che diventa un poco complicato come codice


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: lun nov 28, 2016 18:09 
Non connesso
FINALMENTE USO IL TORNIO
Avatar utente

Iscritto il: gio lug 12, 2012 13:37
Messaggi: 379
Località: Sestri L. (GE)
Non sono sicuro che si complichi il codice visto che l'aggancio in fase si dovrebbe fare con componentistica tradizionale esterna all'arduino, ma come giustamente fa notare McMax si otterrebbe solamente un aggancio alla velocità di rotazione del mandrino e non alla posizione angolare. Praticamente servirebbe solamente per avanzamenti sincronizzati alla velocità del mandrino.


Top
 Profilo  
 
 Oggetto del messaggio: Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
MessaggioInviato: mar nov 29, 2016 09:00 
Non connesso
APPRENDISTA E ADDETTO ALLE PULIZIE

Iscritto il: mar mag 14, 2013 07:59
Messaggi: 27
Località: Torino
ah il pll l'avresti fatto in logica esterna non con il codice, allora si così saresti infase ma non potresti gestire la posizione...
ieri non son riuscito ad andare avanti (ho dovuto riparare il tosaerba) stasera me lo studio un pò, stavo pensando un altra cosa visto che il mandrino girerà a velocità pressoche costante perchè invece che usare l'encoder in maniera incrementale, si uniscono 2 fori sul'encoder con questi definire lo zero, quindi gestire la posizione del mandrino in maniera assoluta in gradi (un pò come fanno le centraline sulle auto).così facendo si ridurrebbero di molto gli interrupt dal mandrino, senza perdita di precisione.(interpolo tra un intterupt e l'altro)
Ho ordinato qualche encoder dalla cina col furgone, mentre aspetto cerco un motore abbastanza potente per tirare la vite.


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Questo argomento è bloccato, non puoi modificare o inviare ulteriori messaggi.  [ 1423 messaggi ]  Vai alla pagina Precedente  1 ... 18, 19, 20, 21, 22, 23, 24 ... 95  Prossimo

Tutti gli orari sono UTC +1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 4 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