Modifica servi...

Meglio! sono molto più robusti :wink:
Quasi un peccato rovinarli.. comunque se possiedi un trapanino tipo dremel non dovresti avere difficoltà a rimuovere protuberanze o simili.

lo so, li ho scelti anche per quello.
Solo che ora, non posso eliminare il blocco con il taglierino! :slight_smile:

Vedrò di eliminarlo col Dremel...

Ciao 83darking83
sono stato troppo lento nel rispondere Tongue comunque quel che volevo dire io rispondo a delle domande vecchie:
rispondo al reply# 5 e # 7.

nelle istruzioni Gioblu.com is for sale | HugeDomains mettono il potenziometro a metá corsa e lo staccano dal ingranaggi che lo muove. Questo equivale a metere un partitore con 2 resistenze uguali come consigliato in altre fonti.
In questo modo é possibile utilizzare la libreria servo.h e con valori piccoli gira in un verso e con valori grandi gira nel altro verso. Con un valore centrale (dipende dal rapporto delle 2 resistenze oppure dalla posizione del potenziometro) il motore dovrebbe fermarsi.

Se vuoi usare un integrsto tipo L293 devi togliere tutta l'elettronica e pilotare direttamente il motore. Cosí puoi regolare la velocitá con PWM.

Ciao Uwe

il partitore te lo sconsiglio, se vuoi fare una cosa fatta bene metti un trimmerino. Praticamente devi regolare il servo fermo a 90 gradi, in modo che abbia un comportamento simmetrico. Se tu gli mandi servo.write(180) lui andrà in avanti all'infinito viceversa con servo.write(0). La taratura sullo 0 avviene con una determinata alimentazione, variando quello è -probabile- che ti vari la taratura. quindi scrivendo servo.write(90) quello non starebbe fermo. L'elettronica dentro a un servo dipende dal prezzo. Dei servo pilotano il motorino anche in velocità altri no. Per vedere se il tuo servo lo fa basta che lo modifichi e gli dai servo.write(91) e servo.write(180) se la velocità di rotazione cambia allora sei fortunato, altrimenti devi riprogettare tutto da zero :smiley:

edit per taratura sullo 0 intendo la taratura che fai per farlo stare fermo, in pratica 90 gradi diventano lo 0. puoi anche tararlo a 0 sui 179 gradi ma non avrà un comportamento simmetrico!

edit 2 devi riprogettare l'elettronica da 0 se hai un servo che si muove a velocità costante e lo vuoi a velocità variabile.

aggiungo qualche video sul robot che ho costruito grazie ai pezzi di gbm con il servo moddato!

Intanto ringrazio tutti coloro che sono intervenuti! :wink:

Calamaro, sto cercando di realizzare un rover (con due ruote/motori) molto simile al tuo!

Non capisco perchè con i comandi:

servo.write(91);
servo.write(180);

dovrebbe variare la velocità! 91 e 180 non indicano l'angolo della rotazione?

mmm... credo che la velocità di rotazione sia un "dato di targa" del servo, quindi fissa, e data in gradi/secondo.
la modifica non è difficile,
apri il servo,
smonti gli ingranaggi
col dremel, moli i pioli di bloccaggio sulle ruote dentate
da sotto l'ingranaggio più grande rimuovi la guida per il potenziometro (oppure accorci l'albero col dremel)
prima di richiudere il servo, lo connetti ad un driver, dai il comando di "centro" e ruoti il potenziometro a mano fino a che vedi che non gira più
a ques punto blocchi il potenziometro con della colla a caldo e richiudi tutto
fine

@ Calamaro
Se l'elettronica del Servo non é progettata per la regolazione velociá vedo meglio togliere tutta e usare il Servo come motorino con un riduttore di giri e pilotarlo con un ponte H come il L293D
Ciao Uwe

la modifica non è difficile,
apri il servo,
smonti gli ingranaggi
col dremel, moli i pioli di bloccaggio sulle ruote dentate

Fin qui ci siamo:


Ma non ho capito come applicare la parte restante della procedura... :-/

ma non riesci a staccare il potenziometro da sotto l'ingranaggio?
comunque, come diceva wefed se ti serve il controllo della velocità devi tirar via tutta l'elettronica e prolungarti all'esterno i fili del motore (adesso motoriduttore) e pilotare il tutto con un doppio ponte h.
se non ti serve controllare la velocità allora dicci cosa non riesci a fare e noi se possibile ti aiuteremo :slight_smile:

@ uwe
Si si, hai ragione. Poi a quanto vedo ha gli ingranaggi di ferro quindi il servo è abbastanza pro.

@83darking83
Allora se il potenziometro è fisso all'ingranaggio devi cercare di rimuoverlo con metodi molto più fisici tipo un trapano. sennò ti basta sfilarlo e fare un buco nel case del servo. poi metti il potenziometro in modo che esca il "cosino ruotante" dal buco e lo fissi al case con la colla a caldo. Devi stare attendo a non bloccare il coso ruotante :smiley:
poi scrivi uno sketch stupido come quello della guida che ho fatto e ti cerchi lo zero.

ps ci sono dei servi che hanno un chip dentro che regola anche la velocità in funzione dei gradi. Infatti esiste un driver per motori di aerei telecomandati fatto con questo chip che si pilota tramite la libreria servo. L'idea è questa, andare da 90 a 91 o da 90 a 180 nello stesso tempo, quindi aumentando la velocità.

Allora ho estratto il potenziometro, ed ho seguito la guida di calamaro, ma dopo aver trovato questa guida:

http://projectgus.com/2009/07/servo-pulse-width-range-with-arduino/

ho modificato il codice così:

01      Servo myservo;  // instanzia un oggetto servo
02        
03      void setup()
04      {
05        myservo.attach(6, 771, 1798);  // servo collegato al pin 6
06        myservo.write(90);  //Sposto il servo a 90 gradi
07      }
08        
09      void loop()
10      {
11       
12      }

poichè, scrivendo semplicemente:

myservo.attach(6);

il servo non si muove!!

Adesso ho che:
per valori compresi tra 0 e 89 il servo gira in un verso
per valori compresi tra 91 e 120 il servo gira nell'altro verso
per valori >120 il servo non gira

Inoltre per valori "vicini" a 90, come: 88, 89, 91, 92, il servo sembra girare a velocità molto più bassa.

L'unico grosso problema è che il potenziometro è "ipersensibile", nel senso che basta poggiarlo leggermente su un foglio di carta assorbente per farlo ruotare quel poco che basta da far muovere il servo!! (quando è impostato su 90) >:(

EDIT: Rileggendo la guida che ho linkato, mi sono accorto che il valore corretto per tarare il servo deve essere 60, non 90...

E se facessi la modifica delle resistenze?

http://todbot.com/blog/2009/04/11/tiny-servos-as-continuous-rotation-gearmotors/

se l'ampiezza del movimento originale è 120° allora il "centro/fermo" è a 60° dipende dal servo che usi
P.S. con la colla a caldo và bloccato l'albero del potenziometro.
non togliere il potenziometro potrebbe riservirti, al massimo lo sostituisci con un trimmer di valore uguale.

Si l'ho già scritto nell'EDIT...

La soluzione con la colla non credo sia percorribile, poichè il potenziometro è troppo sensibile!
Inoltre, se proprio devo bloccarlo, non conviene sostituirlo con 2 resistenze?

EDIT: Anche l'idea del trimmer non è male, devo vedere se riesco a trovarne uno da 5K[ch937]...

se blocchi l'albero come fai a tararlo una seconda volta se ti si stara?

Via software, cercando il punto intermedio?

Comunque ho optato per il trimmer, che mi sembra la soluzione più logica (e pratica), sempre che riesca a trovarlo.

come trimmer puoi usare un potenziometro qualsiasi!

Si ma il trimmer, grazie alla "vite", è molto più difficile che si sposti dal valore impostato! (al contrario del potenziometro, che ruota con estrem a facilità).

Mi è piaciuta molto questa soluzione:

http://www.robot-italy.com/article_info.php?cArticlePath=1&articles_id=3

si certamente è un'ottima soluzione :smiley: