Arduino Forum

International => Italiano => Generale => Topic started by: vitanio on Sep 09, 2015, 04:49 pm

Title: Problema rotazione servo motore
Post by: vitanio on Sep 09, 2015, 04:49 pm
Salve a tutti Ragazzi, vorrei chiedere la vostra opinione su un problema con un servo motore!
Ho costruito una base (un parallelepipedo con un disco che ruota sulla superficie superiore). Ho la necessità di far ruotare questo disco di 360 gradi, 15 gradi per volta..quindi fermando il disco per determinati secondi ogni 15 gradi). Premetto che mi serve precisione e che ho già provato diverse soluzione che non mi hanno soddisfatto. Infatti ora utilizzo una servo motore a rotazione continua ( i 15 gradi li ricavo giocando sulla velocità di rotazione per determinati secondi ) , ma come sappiamo questi servo a rotazione continua non pilotabili via gradi non sono indicati per fare questi lavori. Infatti il servo non è per nulla preciso (a volte fa 15 gradi, a volte 16 ecc ecc). Ho considerato anche i modori stepper, ma non si trovano motori con step compatibili alle mie necessità. Ho trovato su un motore da 7.5 gradi a step, ma non veniva fornita alcuna shield per farlo comunicare con arduino...e sapendone poco di questo tipo di motori non saprei come gestirlo. Ho anche valutato la possibilità di raggiungere i 360 gradi utilizzando due servo da 180 gradi...però non mi convince come soluzione. Voi cosa mi consigliate di fare? grazie mille :)
Title: Re: Problema rotazione servo motore
Post by: paofanello on Sep 09, 2015, 07:45 pm
I servomotori per quanto ne so non potranno mai darti un'alta precisione. Certo si otterrebbe un risultato migliore con due da 180gradi, ma il collegamento mecanico tra i due non saprei come farlo semplicemente... Io mi metterei a studiare gli stepper :D
Title: Re: Problema rotazione servo motore
Post by: astrobeed on Sep 10, 2015, 08:38 am
I servomotori per quanto ne so non potranno mai darti un'alta precisione.
Affermazione decisamente errata, un servo digitale di fascia medio alta consente un precisione di 0.3° con una risoluzione di 0.1°, un servo digitale di fascia alta (costo > 100 E) consente una precisione di 0.15° e una risoluzione di 0.05°, ovviamente vanno controllati con segnali di pari risoluzione non certo con la classica libreria servo di Arduino che non consente risoluzioni di quel livello.
Esistono anche servo in grado di ruotare per 330°, risoluzione 0.3°, sono totalmente digitali e si comandano tramite porta seriale, sono specifici per applicazioni di robotica.
Va da se che se è realmente necessario ruotare per 360°, probabilmente in modo continuo, la soluzione più semplice, anche dal punto di vista meccanico, è usare uno stepper, p.e. quelli utilizzati sulle stampanti 3D con i relativi driver microstepping, grazie alla grande diffusione il costo complessivo è minore di 40-50 Euro, dipende dalla potenza che deve avere lo stepper, ed è possibile ottenere una risoluzione di circa 0.028° (stepper da 400 passi controllato in microstepping 1:32)
Title: Re: Problema rotazione servo motore
Post by: Etemenanki on Sep 10, 2015, 09:45 am
... ed usare semplicemente uno stepper con una demoltiplica ? ... ;)
Title: Re: Problema rotazione servo motore
Post by: astrobeed on Sep 10, 2015, 10:06 am
... ed usare semplicemente uno stepper con una demoltiplica ? ... ;)
Perché complicarsi la vita con la meccanica quando con uno stepper driver che costa 15 E, in tutti i casi lo deve prendere, hai il microstepping ?
Unico motivo per introdurre una demoltiplica meccanica è se non basta la coppia generata dallo stepper, il microstepping la riduce sensibilimente, però se deve solo far girare un piatto, anche se con sopra una massa di qualche kg, non ci sono problemi con gli stepper utilizzati sulle stampanti 3D.
Semmai si può usare un servo con moltiplica in modo da portare la rotazione fino a 360°, però se gli serve far girare il piatto in modo continuo non va bene lo stesso.
Title: Re: Problema rotazione servo motore
Post by: Etemenanki on Sep 10, 2015, 10:18 am
Perché complicarsi la vita con la meccanica quando con uno stepper driver che costa 15 E, in tutti i casi lo deve prendere, hai il microstepping ?...
No, io pensavo al fatto che ha detto di aver bisogno di molta precisione ... anche con il microstepping a 16 passi ed uno stepper da 7.5 gradi per step, mi pare che al massimo possa farci circa mezzo grado o poco meno ... se gli basta e' ottimo, ma se gli serve una precisione maggiore, deve per forza demoltiplicare ... a quel punto anche una ciofeca fetida come questa cineseria qui http://www.ebay.com/itm/DC-12V-2-Phase-4-Wire-Stepper-Motor-Full-Metal-Reduction-Gear-Box-DC-Motor-/181453237308?hash=item2a3f74ac3c (http://www.ebay.com/itm/DC-12V-2-Phase-4-Wire-Stepper-Motor-Full-Metal-Reduction-Gear-Box-DC-Motor-/181453237308?hash=item2a3f74ac3c) , oppure http://www.ebay.com/itm/5V-Stepper-Motor-28BYJ-48-With-Drive-Test-Module-Board-ULN2003-5-Line4-Phase-New/291175980196?_trksid=p2047675.c100009.m1982&_trkparms=aid%3D777000%26algo%3DABA.MBE%26ao%3D1%26asc%3D33097%26meid%3D012d6d33109f451abfe0e558722be4a9%26pid%3D100009%26rk%3D1%26rkt%3D1%26mehot%3Dpp%26sd%3D221457499246 (http://www.ebay.com/itm/5V-Stepper-Motor-28BYJ-48-With-Drive-Test-Module-Board-ULN2003-5-Line4-Phase-New/291175980196?_trksid=p2047675.c100009.m1982&_trkparms=aid%3D777000%26algo%3DABA.MBE%26ao%3D1%26asc%3D33097%26meid%3D012d6d33109f451abfe0e558722be4a9%26pid%3D100009%26rk%3D1%26rkt%3D1%26mehot%3Dpp%26sd%3D221457499246) , per lo sforzo che deve fare, gli darebbe gia 0.5 gradi o meno in fullstep (aumentabili con il microstepping) ... oppure uno degli altri simili ma con riduttore 100:1 e 0.18 gradi per step in fullstep ...

Certo poi ovviamente tutto dipende dalla reale precisione di cui ha bisogno ;)
Title: Re: Problema rotazione servo motore
Post by: astrobeed on Sep 10, 2015, 10:46 am
No, io pensavo al fatto che ha detto di aver bisogno di molta precisione ... anche con il microstepping a 16 passi ed uno stepper da 7.5 gradi per step, mi pare che al massimo possa farci circa mezzo grado o poco meno
Io ho parlato di uno stepper per stampanti 3D, ormai li trovi da tutte le parti e costano poco, sono da 200 step per giro, meglio ancora quelli da 400 step per giro, ovvero 1.8° oppure 0.9°, sulle 3D col microstepping si ottiene una precisione reale migliore di 0.1 mm su un movimento di 200 mm, la risoluzione è di gran lunga superiore.
Title: Re: Problema rotazione servo motore
Post by: vitanio on Sep 10, 2015, 11:16 am
Perché complicarsi la vita con la meccanica quando con uno stepper driver che costa 15 E, in tutti i casi lo deve prendere, hai il microstepping ?
Perdonami l'ignoranza, ma con il microstepping si elimina la limitazione di 1.8 gradi per step? ( cioè posso realmente stoppare il motore ogni 15 gradi esatti? )
intanto grazie mille a tutti per le risposte :)
Title: Re: Problema rotazione servo motore
Post by: Etemenanki on Sep 10, 2015, 11:29 am
Con i microstep puoi fare lo step "full", oppure 1/2, 1/4, 1/8, 1/16 (per i driver che comprendono il sedicesimo di step), quindi i gradi finali degli step dipendono dai gradi originali del motore divisi per questi parametri ...

EDIT: mi sono sempre chiesto perche' i costruttori di stepper motor fossero tutti cosi imbecilli ... dato che gli step li si puo fare virtualmente di qualsiasi larghezza (si trovano da 18, 15, 7.5, 1.8, 0.9, ... ecc), per quale ca...volo di motivo nessuno di loro abbia mai fatto la cosa piu ovvia e logica costruendo uno stepper da un grado preciso per step, non ci arrivero' mai a capirlo :P :P :P
Title: Re: Problema rotazione servo motore
Post by: vitanio on Sep 10, 2015, 11:43 am
Perfetto..quindi con un microstep che supporta l'1/16, sarei in difetto di 0.037 gradi ogni 15 (in totale perderei quasi un grado). Potrebbe andare bene! sapreste consigliarmene qualcuno con queste specifiche? magari lo testo e vi faccio sapere...grazie mille per l'aiuto :)
Title: Re: Problema rotazione servo motore
Post by: astrobeed on Sep 10, 2015, 12:01 pm
cioè posso realmente stoppare il motore ogni 15 gradi esatti? )
intanto grazie mille a tutti per le risposte :)
Specifica cosa intendi per 15° esatti, ovvero l'errore massimo ammesso come scarto in più o meno.
In base al dato che fornirai è possibile indicarti sia lo stepper che il driver da utilizzare.
Title: Re: Problema rotazione servo motore
Post by: paofanello on Sep 10, 2015, 01:42 pm
Affermazione decisamente errata, un servo digitale di fascia medio alta consente un precisione di 0.3° con una risoluzione di 0.1°
Ti ringrazio per la correzione! Non conoscevo questi tipi di servomotori!
Title: Re: Problema rotazione servo motore
Post by: vitanio on Sep 10, 2015, 07:26 pm
Specifica cosa intendi per 15° esatti, ovvero l'errore massimo ammesso come scarto in più o meno.
In base al dato che fornirai è possibile indicarti sia lo stepper che il driver da utilizzare.

L'errore massimo ammesso è di 0.04° circa... così da lasciare dopo i 24 spostamenti l'errore sotto l'1 grado. La soluzione con il driver da 1/16 per step dovrebbe andare bene..appena ho qualche minuto libero faccio qualche ricerca su siti ecommerce! :)