Feedback di posizione da servo GS9018.

Ciao a tutti, come da titolo volevo sapere se esiste un modo per avere un feedback dal servo motore in questione (che poi è un mini servo) per conoscere in ogni istante qual'è l'angolo a cui si trova.

In pratica vorrei essere informato continuamente sulla sua posizione. Lo scopo è imbastire un controllo di traiettoria (uso il kit 9G Servo Braket) utilizzando un feedback di posizione dai 2 servi. Non so (e non credo) se è possibile ciò ma se qualcuno ha trovato un modo di farlo o sa come farlo vi prego di farmelo sapere. :)

Grazie.

Per avere il feedback della posizione ti serve un encoder o un potenziometro da collega meccanicamente al servo. --> http://it.wikipedia.org/wiki/Trasduttore_di_posizione_angolare --> http://playground.arduino.cc/Main/RotaryEncoders

Se lo piloti te e non è a rotazione continua sai già dov'è posizionato :open_mouth:

PaoloP: Per avere il feedback della posizione ti serve un encoder o un potenziometro da collega meccanicamente al servo. --> http://it.wikipedia.org/wiki/Trasduttore_di_posizione_angolare --> http://playground.arduino.cc/Main/RotaryEncoders

Si infatti avevo trovato entrambi i metodi però volevo sapere se ci fosse il modo di sfruttare quello che già c'è ma in effetti ragionandoci mi sono accorto che non è fattibile a meno di non avere un ulteriore dato a disposizione quindi trasduttore o modifica.

Vediamo un po', ora penserò a cosa fare. Grazie della risposta. :)

Faccina: Se lo piloti te e non è a rotazione continua sai già dov'è posizionato :open_mouth:

Si lo so ma l'idea era di avere un feedback e quindi un controllo in catena chiusa. Devo farci la tesi per ingegneria elettronica specializzazione automazione, quindi un sistema di controllo sarebbe utile.

Inoltre l'idea è quella di fargli inseguire una traiettoria, avendo un feedback potrei la prima volta impostarla io e poi registrarla in modo da riprodurla ogni volta che è richiesta.

hum forse si ci può agganciare al pot dentro il servo…
O no ?

Faccina: hum forse si ci può agganciare al pot dentro il servo... O no ?

Si ma per farlo devo aprire il servo, alla fine mi sa che sarò costretto ad agire così.

Qual micro è grande 22*12*29 mm, ti serve un orologiaio esperto per poterlo aprire e modificare. :sweat_smile:

PaoloP:
Qual micro è grande 221229 mm, ti serve un orologiaio esperto per poterlo aprire e modificare. :sweat_smile:

In effetti da questo proveniva la mia titubanza nel farlo. XD

Ciao, sono nuovo ma mi affascina molto l'idea di realizzare un'auto azione con controllo in anello chiuso e ottimizzazione PID. Da quello che ho capito se usi un servo 180 gradi decidi tu a posizione e quindi aconosci a priori. Il controllo dovresti farlo sulla traiettoria e calcolare l'errore per l'anello. Prova magari a spiegare meglio quello che devi realizzare e magari ci metto del mio. Anche io ing. Ma mecc... Ciao

naxxx: Ciao, sono nuovo ma mi affascina molto l'idea di realizzare un'auto azione con controllo in anello chiuso e ottimizzazione PID. Da quello che ho capito se usi un servo 180 gradi decidi tu a posizione e quindi aconosci a priori. Il controllo dovresti farlo sulla traiettoria e calcolare l'errore per l'anello. Prova magari a spiegare meglio quello che devi realizzare e magari ci metto del mio. Anche io ing. Ma mecc... Ciao

Beh per ora era una richiesta di chi si occupa della mia tesi, venerdì dovrei fare un altro incontro e faremo il punto della situazione. Avere un feedback sull'angolo fa comodo per un'idea di controllo e quindi minimizzazione dell'errore. Chiaramente conosci quello che passi al servo ma devi fidarti che lui faccia esattamente quello che gli hai comandato se non hai un feedback che ti invii informazioni su quello che sta facendo.

In realtà per la prima parte della tesi questo non mi servirebbe, però poi dovrei far seguire delle traiettorie ben precise al laser, in tal caso potrebbe farmi comodo. L'idea però ancora non è stata ben inquadrata quindi appena avrò un itinere più definito ti farò sapere sicuramente, mi fa molto piacere che tu mi proponga il tuo aiuto.

il servo ha già un anello chiuso al suo interno, il sensore di posizione(il potenziometro) viene confrontato con il segnale di pilotaggio in positive pulse modulation e il realtivo segnale di errore che ne risulta pilota effettivamente il motore

http://www.willingtons.com/mymac/servo_driver.htm

icio: il servo ha già un anello chiuso al suo interno, il sensore di posizione(il potenziometro) viene confrontato con il segnale di pilotaggio in positive pulse modulation e il realtivo segnale di errore che ne risulta pilota effettivamente il motore

http://www.willingtons.com/mymac/servo_driver.htm

Si ok, ma se io volessi avere un feedback e quindi un'informazione continua su quello che il servo fa per poterlo controllare esternamente non posso.

naxxx: Ciao, sono nuovo ma mi affascina molto l'idea di realizzare un'auto azione con controllo in anello chiuso e ottimizzazione PID. Da quello che ho capito se usi un servo 180 gradi decidi tu a posizione e quindi aconosci a priori. Il controllo dovresti farlo sulla traiettoria e calcolare l'errore per l'anello. Prova magari a spiegare meglio quello che devi realizzare e magari ci metto del mio. Anche io ing. Ma mecc... Ciao

Eccoti qui il post con il nuovo problema da affrontare, se mi dai una mano te ne sono grato: http://forum.arduino.cc/index.php?topic=179452.0

D4NI3L3: Si ok, ma se io volessi avere un feedback e quindi un'informazione continua su quello che il servo fa per poterlo controllare esternamente non posso.

Hai tre soluzioni possibili, la prima è buttare via quel servo cineseria che stai usando e utilizzare al suo posto un buon servo digitale dotato di protocollo di comunicazione con relativo feedback di varie informazioni, tra le quali la posizione. La seconda è smontare il tuo servo e prelevare il segnale del potenziometro per ottenere il feedback. La terza è usare questa scheda per modificare un normale servo, può anche rimanere all'esterno del servo se hai problemi di dimensioni, dopo di che lo controlli totalmente in digitale e hai il feedback completo di tutti i parametri del servo, è la soluzione più economica e quella che garantisce il maggior numero di parametri di feedback.

astrobeed:

D4NI3L3: Si ok, ma se io volessi avere un feedback e quindi un'informazione continua su quello che il servo fa per poterlo controllare esternamente non posso.

Hai tre soluzioni possibili, la prima è buttare via quel servo cineseria che stai usando e utilizzare al suo posto un buon servo digitale dotato di protocollo di comunicazione con relativo feedback di varie informazioni, tra le quali la posizione. La seconda è smontare il tuo servo e prelevare il segnale del potenziometro per ottenere il feedback. La terza è usare questa scheda per modificare un normale servo, può anche rimanere all'esterno del servo se hai problemi di dimensioni, dopo di che lo controlli totalmente in digitale e hai il feedback completo di tutti i parametri del servo, è la soluzione più economica e quella che garantisce il maggior numero di parametri di feedback.

Interessante la terza soluzione ma come lo collego al servo?

Dovrei collegare il servo a questa schedina e questa schedina ad arduino?

Posso collegarci più servi contemporaneamente (a leggere la descrizione pare di si)? Ma come? In parallelo?

Poi come gestisco la schedina da arduino? Tramite libreria servo? Però non mi pare che la libreria servo contenga funzioni per la lettura di un feedback.

Nel caso di acquisto di altri servi mi servirebbero delle stesse dimensioni, sai mica dove posso trovare in giro servi così? Quelli che trovo sono tutti a 3 pin.

D4NI3L3: Interessante la terza soluzione ma come lo collego al servo?

La scheda sostituisce in toto l'elettronica interna del servo, in pratica non devi fare altro che collegare agli appositi pad i fili del motore e del potenziometro, la scheda è pensata per entrare all'interno dei servo standard, se devi usare servo mini o micro può benissimo rimanere all'esterno, devi solo allungare di qualche cm i vari fili. Ti consiglio di leggere la documentazione presente sul sito del progetto, se cerchi con google esistono delle librerie Arduino per OpenServo.

Dovrei collegare il servo a questa schedina e questa schedina ad arduino?

Il servo lo controlli tramite comandi su bus I2C, quindi niente libreria servo, puoi collegare fino a 32 servo sullo stesso bus.

astrobeed:

D4NI3L3: Interessante la terza soluzione ma come lo collego al servo?

La scheda sostituisce in toto l'elettronica interna del servo, in pratica non devi fare altro che collegare agli appositi pad i fili del motore e del potenziometro, la scheda è pensata per entrare all'interno dei servo standard, se devi usare servo mini o micro può benissimo rimanere all'esterno, devi solo allungare di qualche cm i vari fili. Ti consiglio di leggere la documentazione presente sul sito del progetto, se cerchi con google esistono delle librerie Arduino per OpenServo.

Dovrei collegare il servo a questa schedina e questa schedina ad arduino?

Il servo lo controlli tramite comandi su bus I2C, quindi niente libreria servo, puoi collegare fino a 32 servo sullo stesso bus.

Quindi devo comunque aprire il servo? I servi sono molto piccoli e la cosa potrebbe essere difficoltosa, sai mica dove posso acquistare servi già con un sistema di controllo eventualmente?

Mi sai mica dare qualche spiegazione sul controllo su bus I2C di un servo? Sono totalmente ignorante in merito.

Cioè, so cos'è un bus e in linea teorica posso immaginare cosa può voler dire ma quello che vorrei sapere è se l'interfaccia con questo sistema di controllo viene poi garantita dalle librerie OpenServo per Arduino. Insomma queste librerie sono dotate dei metodi per poter adottare il controllo su bus?

Grazie mille delle risposte che mi stai dando, mi stai aprendo un mondo.

"sai mica dove posso acquistare servi già con un sistema di controllo eventualmente?"

i servo sono già tutti servocontrollati come ti ho già detto

per pilotarli basta inviare un impulso positivo ogni 20 millisec. la durata di questo impulso pilota la posizione del servo: se l'impulso è 1msec il servo ìè tutto a sinistra, se è 1.5millisecondi è al centro, se è 2msec è tutto a destra, l'impulso DEVE essere SEMPRE presente.

http://en.wikipedia.org/wiki/Servo_%28radio_control%29

http://en.wikipedia.org/wiki/Servo_control

icio: i servo sono già tutti servocontrollati come ti ho già detto

A lui serve avere un reale feedback della posizione, il fatto che tu dici al servo di andare alla posizione 45.6° tramite PPM non ti dà la garanzia che il servo ci arriva sul serio, non sai in quanto tempo ci arriva e l'eventuale errore di posizione, tutte variabili legate al carico meccanico e alle condizioni delle batterie.