Go Down

Topic: Servo modificato (Read 759 times) previous topic - next topic

sciorty

Salve a tutti.
Ieri ho felicemente pensato di modificare uno dei mie due servi HS322 HD seguendo questa guida. Non mi sono accorto però che questa è solo la modifica meccanica e che ne va fatta un altra ai componenti elettronici.
Su altri servi più commerciali ho visto che ingannano il servo in questo modo, ma applicabile sul mio modello ho trovato solo questo esempio, che usa i servi come motori togliendo completamente tutta la scheda !
Ora mi chiedo: se tolgo tutta la scheda rimanendo con due fili, oltre che a usarli come motore, li posso usare per la loro basilare funzione cioè quella di fare da servo ?
Mi spiego meglio.. posso farci un myservo.write(180) sull'anodo che rimane ?
Esperienze o consigli ?

P.s: se l'avessi saputo prima non l'avrei fatto, ma ormai ci sono dentro ;)

ratto93

Se ti restano solo i due fili di alimentazione puoi usarlo solo ed esclusiavamente come motoriduttore... pilotato tramite ponte H
Se corri veloce come un fulmine, ti schianterai come un tuono.

dab77

allora, il servo modificato diventa un motorino dc. se non hai più il potenziometro, non c'è più il feed back di posizione, quindi non puoi più usarlo come servo, a meno di non ripristinare tutto.
ma visto il costo esiguo dei servi, questo te lo tieni modificato, vai in un negozio di modellismo e te ne compri altri.

ciao, Davide.

dab77

bè, devi capire come funziona il Servo prima.
l'angolo è di circa 180 gradi, perchè innanzi tutto nei modelli radiocomandati di più non servirebbe, e cmq il potenziometro ha circa quell'angolo di intervento.
se ipoteticamente tu mettessi un pot multigiro, potresti comandare il motorino con più giri... ma non è semplice.
per ampliare i giri, o compri un servo multigiro, ce ne sono, anche se rari..li usano per i winch delle barche se non erro.
oppure prendi un motore qualsiasi, anche quello di un servo modificato, e ci attacchi in qualche modo un encoder, che legge l' incremento di posizione angolare. se ne trovano anche sui 20 euro circa..

sciorty


Se ti restano solo i due fili di alimentazione puoi usarlo solo ed esclusiavamente come motoriduttore... pilotato tramite ponte H

Per fare il ponte h devo usare la l293d no?
Però vedendo questo schema mi chiedo come mai in questo esempio nei 5v lui mette il voltaggio per il motore. Anche se a me non importa più di tanto perchè il servo a quella tensione lavora, ma non vorrei aver capito male qualcosa..

BrainBooster

Qui trovi un pò di istruzioni in italiano su come modificare i servi
http://www.gioblu.com/tutorials/azionamenti
un servo è composto da un motore dc , degli ingranaggi che ne trasformano le caratterstiche portandlo da veloce e debole a lento ma potente e che ne limitano la corsa a poco più che 180°, più un ponte h che ne permette il pilotaggio in pwm.
A grandi linee
La modifica per la rotazione continua ha 2 scopi:
rimuovere l'impedimento meccanico che blocca la rotazione completa degli ingranaggi.
rimuovere la possibilità che ha l'elettronica interna, tramite la modifica/disconnessione/sostituzione del potenziometro interno, di capire in che posizione è l'ingranaggio.
l'effetto sarà che qualsiasi valore si invierà via pwm verrà interpretato come movimento come nei servi non modificati, ma al raggiungimento dell'angolo impostato dal software, non ci sarà nulla che comunica al servo che la sua corsa è terminata e quindi questo continuerà a ruotare in quella direzione,... quale direzione? per fare stare fermo un servo modificato bisognerebbe dargli il comando per i 90°, e di conseguenza qualsiasi valore superiore a 90 lo farà ruotare in un senso, mentre qualsiasi valore inferiore a 90 lo farà girare nell'altro.
ho detto bisognerebbe non a caso, non tutti i servi sono uguali e anche le resistenze hanno una loro tolleranza, quindi , salvo casi di rara fortuna avere lo stop a 90 è quasi un miracolo, di solito si corregge via software semplicemente inviando valori intorno al 90 e cercando quello che ferma il servo, oppure invece di usare le resistenze fisse , si sostituisce il potenziometro del servo con un microtrimmer di pari valore che ha il vantaggio che può essere regolato per fare in modo che 90 corrisponda allo stop, oppure come potrai leggere nel link che ho postato ci sono altri modi più fantasiosi ;)

sciorty



Il numero magico l'ho trovato ma credo cambi  a seconda della posizione di quel perno che ho tagliato durante la modifica.
Comunque a volte mi va in reset l'arduino durante queste operazioni, può essere causato dal fatto che quel pezzo tagliato non l'ho incollato e quindi si sposta facendo sballare il sistema interno al servo ?

BrainBooster

se hai tenuto il potenziometro orginale del servo, questo deve essere esattamente a metà della sua corsa e poi andrebbe bloccato magari con un puntino di colla a caldo.
Il reset di arduino potrebbe essere causato dall'assorbimento eccessivo di corrente del servo.
Lo stai alimentando da arduino vero?  :smiley-roll:


BrainBooster

Il problema non sono i Volts ma gli Ampere :)
se l'assorbmento oltrepassa il lmite de 40mA è molto probable che ardino si resetti, la maggiorparte delle volte capita proprio con la partenza (a causa dell'inerzia meccanica) del servo, o per qualche piccolo impedimento meccanico che causa lo stallo del motorino ed il conseguente sovraassorbimento.
Dopo che hai tagliato i blocchi meccanici è sempre meglio lisciarli con una bottarella di cartavetro o una limetta, fino a che non senti più nulla di strano sotto il dito quando lo passi dove hai tagliato.
prova ad alimentare il servo a parte .

sciorty



Si ma per 5v intendevo il pin dell'arduino, perchè non mi ha mai dato problemi.
Comunque ora si comporta ancora in modo strano:
Ho messo due bottoni per fare forward e backward
Code: [Select]
if (digitalRead(in)==1){ 
  myservo.write(0);   

if (digitalRead(in1)==1){ 
  myservo.write(180);   
}

ma con il 180 fa circa un giro e poi si ferma, mentre con lo 0 non ho problemi

gbm

#11
Jun 20, 2011, 03:07 am Last Edit: Jun 20, 2011, 03:10 am by gbm Reason: 1
Ciao ti consiglio di effettuare i primi test con l'alimentazione dei servomotori separata da quella di Arduino (aka usa una batteria o usb per arduino e una batteria con massa in comune ad arduino per i servomotori). Questo ti aiuta ad eliminare una rosa di comportamenti folli che arduino e i servi hanno se l'alimentazione è in comune, soprattutto se la batteria che usi ha una corrente di scarica massima al di sotto della corrente di scarica assorbita dai servi in partenza o in stallo.
Se vuoi utilizzare una alimentazione unica segui questo tutorial e utilizza una batteria in grado di sopportare l'assorbimento di due servi in stallo.
(4xAAA x microservi, 6XAAA per servi standard)
http://www.gioblu.com/tutorials/azionamenti/167-eliminare-interferenze-date-dai-servomotori

Il problema di cui parli potrebbe essere dato dalla questione assorbimento o da un wiring non troppo ordinato (lo dico perchè mi capita spesso  :smiley-mr-green:).
RIcontrolla che tutti i collegamenti siano ben connessi!!
Community robotica / programmazione Arduino
www.gioblu.com

Go Up