Modifica servi...

Ciao a tutti, possiedo un Arduino Mega e recentemente ho acquistato dei servi MG996R.

Dopo alcune prove e ricerche, ho imparato ad usarli utilizzando la libreria Servo.h.

Adesso, vorrei modificarli ed utilizzarli per sostituire i miei attuali motori DC. Quindi mi chiedo se esista la possibilità di far ruotare tali servi di 360, utilizzando la solita libreria, oppure servendosi di segnali PWM.

Chiaramente son ben accetti anche eventuali consigli sulla modifca hardware da effettuare sui servi.

Un buon inizio: modifica servo - Google Search

Grazie, è quello che ho iniziato a fare giorni fa...

questa è una guida che ho fatto io solo che ruotano di 360 senza fermarsi. in pratica diventano vericelli!

Se non ho capito male 83darking83 vorrebbe convertire un servo in modo da farlo diventare una specie di motore senza vincoli che può pilotare in PWM..
Se è così l'unica cosa da fare (secondo me), dopo aver rimosso i limiti (come da esempio di Calamaro), è quella di rimuovere l'elettronica interna e pilotare direttamente il motore. Non è possibile adattare l'elettronica interna per lavorare diversamente dal normale servo (ovvero: raggiungere una posizione in base ad un segnale pwm)

In realtà volevo fare proprio qualcosa di simile a ciò che ha fatto Calamaro, ovvero modificare il servo per farlo ruotare di 360°, mantenendo l'elettronica. (Non devo usare per forza il PWM, anche se dispongo comunque di un PCB per il controllo dei motori, basato su L293D)

Ho visto che alcuni hanno sostituito il trimmer con due resistenze da 2.7 KOHM, quali benefici comporta?

dal momento in cui il servo ruota a 360° (ovvero senza soluzione di continuità) il trimmer (che è usato come encoder assoluto) non ha più ragione di esistere, e quindi penso che impostando il valore come se il trimmer si trovasse esattamente al centro serva per poter controllare la direzione del movimento con dei valori certi (i gradi del servo)...
Ma la mia è solo una supposizione perchè non ho mai modificato un servo :wink:

Praticamente (da quanto ho visto e capito) dovrebbe essere come dici...

Quindi, la mia domanda diventa: sostituendo il potenziometro con delle resistenze di valore equivalente, ho la possibilità far girare il servo a 360°, avendo anche la possibilità di variarne la velocità?

Si alla prima e no alla seconda.
Puoi far girare il servo nei due sensi chiedendogli di andare alle due posizioni estreme (es: 0° e 180° - se il range è questo)
Non puoi modificare la velocità perchè il servo la gestisce in modo del tutto autonomo (ed è per questo che credevo tu volessi pilotare il motore direttamente con il pwm)

Immaginavo....
Per adesso, comunque, la variazione della velocità è secondaria e non indispensabile, al contrario della rotazione continua.

Lo scopo finale è quello di utilizzare il servo come un DC Motor, cercando di essere il meno "invasivo"(/distruttivo) possibile sui componenti del servo stesso.

Intanto avevo dimenticato che gli ingranaggi del servo sono di metallo... :-/

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: