Pages: [1] 2   Go Down
Author Topic: Modifica servi...  (Read 2110 times)
0 Members and 1 Guest are viewing this topic.
Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Un buon inizio: http://www.google.it/search?aq=f&sourceid=chrome&ie=UTF-8&q=modifica+servo
Logged

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 816
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.gioblu.com/index.php?option=com_content&view=article&id=94:come-modificare-un-servomotore&catid=43:azionamenti&Itemid=35
questa è una guida che ho fatto io solo che ruotano di 360 senza fermarsi. in pratica diventano vericelli!
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-wink
Logged

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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à?
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Parma/Salento
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Vedrò di eliminarlo col Dremel...
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21243
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 http://www.gioblu.com/index.php?option=com_content&view=article&id=94:come-modificare-un-servomotore&catid=43:azionamenti&Itemid=35 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
« Last Edit: June 09, 2010, 05:03:25 pm by uwefed » Logged

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 816
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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-grin

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!

« Last Edit: June 09, 2010, 10:34:45 am by Calamaro » Logged

Pages: [1] 2   Go Up
Jump to: