Motori Stepped nella stessa posizione Reciproca

Salve, sono nuovo del forum volevo chiedere se era possibile comandare due motori passo-passo in posizione e velocità attraverso Arduino. Essi devono mantenere stessa velocità e stessa posizione reciproca durante il loro percorso. Vi mando uno schema dell’impianto.
I due motori non devono essere collegati tra di loro in quanto devono effettuare un giro completo intorno ad un tubo di 70cm. La distanza tra i motori è 40-60cm. Avevo pensato a dei moduli wireless. E’ possibile effettuare ciò tramite Arduino?
P.s. Sono un neofita per quanto riguarda l’elettronica quindi vi chiedo di essere dettagliati per quanto riguarda le spiegazioni e tutto ciò di cui ho bisogno

Immagine.jpg

Immagine2.jpg

Buongiorno e benvenuto sul forum, essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Si, Arduino puó pilotare 2 driver per motori passo asso in contemoraneamente. Non serve niente di wireless, tanto devi portare l' alimentazione ai motori.

Ciao Uwe

Dato che sono motori passo-passo, e' sufficente che sia il punto di partenza che i passi siano identici, per averli entrambi alla stessa velocita' e nella stessa posizione ... ovviamente, devi prevedere un qualche tipo di azzeramento prima di iniziare il giro (n finecorsa preciso, meccanico o ottico, su entrambi i motori, che ti segnali che entrambi sono al corretto punto di partenza, ad esempio), ed ovviamente alimentazione e velocita' dei passi devono essere adeguati ...

Il problema principale che potresti avere, infatti, e' che a causa di un'alimentazione insufficente o di un'eccessivo sforzo meccanico, uno dei motori "perda" uno o piu passi, sfasandosi rispetto all'altro ... anche questo potrebbe essere rilevato, ma solo se entrambi i motori (presumo tu intenda motori con riduttori ad ingranaggi) montassero un'encoder per leggerci la posizione, e la cosa diventerebbe piu complicata ...

Ma senza un'idea piu precisa del tipo di assemblaggio meccanico che devi realizzare, darti qualche suggerimento che possa risultare utile e' piuttosto difficile ;)

Etemenanki: Dato che sono motori passo-passo, e' sufficente che sia il punto di partenza che i passi siano identici, per averli entrambi alla stessa velocita' e nella stessa posizione ... ovviamente, devi prevedere un qualche tipo di azzeramento prima di iniziare il giro (n finecorsa preciso, meccanico o ottico, su entrambi i motori, che ti segnali che entrambi sono al corretto punto di partenza, ad esempio), ed ovviamente alimentazione e velocita' dei passi devono essere adeguati ...

Il problema principale che potresti avere, infatti, e' che a causa di un'alimentazione insufficente o di un'eccessivo sforzo meccanico, uno dei motori "perda" uno o piu passi, sfasandosi rispetto all'altro ... anche questo potrebbe essere rilevato, ma solo se entrambi i motori (presumo tu intenda motori con riduttori ad ingranaggi) montassero un'encoder per leggerci la posizione, e la cosa diventerebbe piu complicata ...

Ma senza un'idea piu precisa del tipo di assemblaggio meccanico che devi realizzare, darti qualche suggerimento che possa risultare utile e' piuttosto difficile ;)

Si i motori prevedono un riduttore ad ingranaggi in quanto l'accoppiamento è di tipo vite senza fine - pignone. Per l'effettivo accoppiamento tra i due motori devo prevedere encoder di tipo rotativo? Avevo pensato di implementare inoltre degli accelerometri per il loro accoppiamento, ciò è possibile? Vi ringrazio anticipatamente per il vostro aiuto

Cosi ad occhio sembra quasi un flussometro ad ultrasuoni con sonde mobili :P ... comunque ... no, gli encoder, se li metti, non servono per accoppiare i due motori, ma per misurarci lo spostamento dei due gruppi ... pero' se quei gruppi sono mobili senza troppi sforzi, potrebbe bastare un semplice conteggio dei passi, con un paio di finecorsa ad entrambe le estremita' delle rotaie per azzerarli prima del pilotaggio e controllarne l'azzeramento all'arrivo ... anche perche' non mi da l'idea che, sia pure perdessero un passo o due, lo spostamento di qualche decimo di mm fra le due posizioni reciproche potrebbe causare troppi problemi ... o sbaglio ?

Etemenanki: Cosi ad occhio sembra quasi un flussometro ad ultrasuoni con sonde mobili :P ... comunque ... no, gli encoder, se li metti, non servono per accoppiare i due motori, ma per misurarci lo spostamento dei due gruppi ... pero' se quei gruppi sono mobili senza troppi sforzi, potrebbe bastare un semplice conteggio dei passi, con un paio di finecorsa ad entrambe le estremità delle rotaie per azzerarli prima del pilotaggio e controllarne l'azzeramento all'arrivo ... anche perché non mi da l'idea che, sia pure perdessero un passo o due, lo spostamento di qualche decimo di mm fra le due posizioni reciproche potrebbe causare troppi problemi ... o sbaglio ?

E' qualcosa di simile, hai visto quasi bene. Comunque diciamo che il massimo offset di scostamento deve restare dell'ordine di 1° che su un diametro di 70 cm si parla di uno scostamento di circa 6 mm. Ovviamente per diametri più piccoli avrò bisogno di un miglior accoppiamento ma in teoria resto sempre dell'ordine del millimetro. Quindi in conclusione cosa mi servirebbe per accoppiare i due motori passo-passo? Devo acquistare anche le schede di controllo dei motori passo-passo? Non ti dispiace darmi una distinta componenti da acquistare cosicché riesco a prevedere una spesa complessiva? Ti ringrazio

Prima di tutto devi vedere se in caso di scostamento accidentale si rovina qualcosa, oppure se in quel caso basta ripetere il ciclo di controllo e non succede nulla ...

Nel primo caso, direi che, oltre ovviamente ai motori con demoltipliche identiche ed alle rotaie di vincolo con cremagliere, anche quelle identiche, sarebbe meglio usare motori che montino un'encoder, anche solo sul riduttore, in modo da potersi accorgere subito dello scostamento e correggerlo ... nel secondo caso bastano dei motori passo-passo con riduttori identici, e due finecorsa per ogni estremita' della rotaia, in modo da controllare che all'inizio del movimento i due gruppi siano allineati, e che lo siano anche alla fine per controllare che non si siano spostati ...

Quanto al tipo di motori e riduttori (e relativi driver ovviamente) non ti so suggerire nulla di preciso, perche' dipende dagli spazi che hai a disposizione, dal tipo di fissaggi sulle rotaie e sulle cremagliere, dal peso che devono muovere e dallo sforzo che devono fare per muovere i sensori sulla superfice del tubo, e cosi via ... tutti dati che io non ho ... e tutte informazioni che ti puo dare in modo piu completo e professionale chi i motori li vende ...

Etemenanki: Prima di tutto devi vedere se in caso di scostamento accidentale si rovina qualcosa, oppure se in quel caso basta ripetere il ciclo di controllo e non succede nulla ...

Nel primo caso, direi che, oltre ovviamente ai motori con demoltipliche identiche ed alle rotaie di vincolo con cremagliere, anche quelle identiche, sarebbe meglio usare motori che montino un'encoder, anche solo sul riduttore, in modo da potersi accorgere subito dello scostamento e correggerlo ... nel secondo caso bastano dei motori passo-passo con riduttori identici, e due finecorsa per ogni estremita' della rotaia, in modo da controllare che all'inizio del movimento i due gruppi siano allineati, e che lo siano anche alla fine per controllare che non si siano spostati ...

Quanto al tipo di motori e riduttori (e relativi driver ovviamente) non ti so suggerire nulla di preciso, perche' dipende dagli spazi che hai a disposizione, dal tipo di fissaggi sulle rotaie e sulle cremagliere, dal peso che devono muovere e dallo sforzo che devono fare per muovere i sensori sulla superfice del tubo, e cosi via ... tutti dati che io non ho ... e tutte informazioni che ti puo dare in modo piu completo e professionale chi i motori li vende ...

Nel primo caso non devo prevedere inoltre dei fine corsa per il corretto allineamento in fase di inizio?

Si, per questo ho detto fine corsa per ogni estremita' della rotaia ... due all'inizio, per fare un'azzeramento prima di iniziare la corsa, e due alla fine, per controllare a fine corsa che siano ancora allineati ... volendo esagerare si potrebbero applicare anche dei finecorsa o forcelle ottiche in mezzo, per controllare anche a meta' corsa che non ci sia stato disallineamento, ma dipende tutto da quanto "critico" e' il sistema, cosa che non so ...

Etemenanki: Si, per questo ho detto fine corsa per ogni estremita' della rotaia ... due all'inizio, per fare un'azzeramento prima di iniziare la corsa, e due alla fine, per controllare a fine corsa che siano ancora allineati ... volendo esagerare si potrebbero applicare anche dei finecorsa o forcelle ottiche in mezzo, per controllare anche a meta' corsa che non ci sia stato disallineamento, ma dipende tutto da quanto "critico" e' il sistema, cosa che non so ...

Ti ringrazio per l'aiuto! avrei bisogno di un'altra informazione. Non potrei connettere i due motori uno ad una driver Master ed uno ad un driver Slave? In questo modo non dovrebbe funzionare?

Potresti usare due driver con gli ingressi di pilotaggio collegati in parallelo ... ed al limite gli enable indipendenti, cosi se mentre fai l'azzeramento uno dei due arriva prima a zero, lo fermi mentre l'altro prosegue fino allo zero, per evitare che forzi a fine corsa ... hai meno flessibilita' di utilizzo (non potresti ad esempio fare correzioni a meta' corsa o spostare i motori in modo indipendente), ma dovrebbe funzionare ...

Invece, non e' mai una buona cosa collegare due motori in parallelo ad un solo driver, non importa se da corrente sufficente, come fanno a volte su alcune stampanti 3D economiche ... meglio non farlo mai ...

penso sia meglio avere i piedini di step separati e gli enable in comune e abilitati insieme, così può fare eventuali correzioni sul singolo motore e l'altro rimane bloccato in quanto viene sempre alimentata una fase

Etemenanki: Potresti usare due driver con gli ingressi di pilotaggio collegati in parallelo ... ed al limite gli enable indipendenti, cosi se mentre fai l'azzeramento uno dei due arriva prima a zero, lo fermi mentre l'altro prosegue fino allo zero, per evitare che forzi a fine corsa ... hai meno flessibilita' di utilizzo (non potresti ad esempio fare correzioni a meta' corsa o spostare i motori in modo indipendente), ma dovrebbe funzionare ...

Invece, non e' mai una buona cosa collegare due motori in parallelo ad un solo driver, non importa se da corrente sufficente, come fanno a volte su alcune stampanti 3D economiche ... meglio non farlo mai ...

Comunque la soluzione più semplice quale risulta?

Ho saputo solo adesso che i motori non sono passo-passo ma sono motori DC classici. Guardando in giro ho visto che per motori di grossa potenza era possibile utilizzare la SparkFun Monster Shield a cui è possibile collegare direttamente due motori DC. La mia applicazione è fattibile con questo modulo? è possibile inoltre settare finecorsa per arrestare il moto dei due motori?

Se sono motori DC con riduttori, allora probabilmente (anzi, quasi sicuramente) montano encoder o resolver. altrimenti non sarebbe possibile mantenerli allineati con precisione (non potendoli pilotare a passi, e dato che i riduttori potrebbero avere resistenze e velocita' diversi, senza un feedback fatto con un encoder o resolver)

Quindi se vuoi usare motori DC, oltre ai driver, ti serve una qualche interfaccia per leggere i due encoder e sincronizzare i movimenti dei due motori fra loro ...

Etemenanki: Se sono motori DC con riduttori, allora probabilmente (anzi, quasi sicuramente) montano encoder o resolver. altrimenti non sarebbe possibile mantenerli allineati con precisione (non potendoli pilotare a passi, e dato che i riduttori potrebbero avere resistenze e velocita' diversi, senza un feedback fatto con un encoder o resolver)

Quindi se vuoi usare motori DC, oltre ai driver, ti serve una qualche interfaccia per leggere i due encoder e sincronizzare i movimenti dei due motori fra loro ...

In che senso qualche interfaccia? Scusami ma non capisco.

Faccio un'esempio banale ... due encoder incrementali, uno per motore, con lo zero sincronizzato con il punto di inizio del movimento, letti da due gruppi di ingressi (o da due integrati specifici fatti per questo scopo), in modo da poter "contare gli impulsi" dei due motori ... in questo modo lo sketch puo "vedere" se uno dei due motori sta andando piu veloce o piu lento dell'altro e regolarne la velocita', in modo dhe i due motori rimangano in movimento sincrono ...

Se la rotazione e' veloce, serviranno probabilmente 4 interrupt, due per encoder ... se invece si usano due encoder con parecchi passi sull'albero "lento" (all'uscita del riduttore), ed il movimento e' abbastanza lento, magari di interrupt ne bastano due ... resta il fatto che il controllo deve essere eseguito in tempo reale e per tutto il tragitto dei motori, e che i relativi driver devono essere pilotati in base alla velocita' che serve sempre dallo sketch, non basta dare gli stessi passi come per dei motori passo-passo ...