fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Sincronizar servos opuestos

10 Respuestas
6 Usuarios
0 Me gustas
12 K Visitas
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 17 años

Tras estudiar el comportamiento de un servo de rotación continua (trucado) me doy cuenta de que el giro hacia un lado es diferente que al otro, es decir, varía ligeramente tanto la zona muerta como la curva de aceleración y por tanto no tiene un movimiento simétrico.

Eso quiere decir que si colocamos 2 servos de forma opuesta, por ejemplo los que están en el mismo eje de tracción, no pueden controlarse de la misma forma y debe ser bastante dificultoso el sincronizar el movimiento de las dos ruedas.

Este "defecto" también lo he detectado con servos sin trucar al hacer dos hombros, teniendo en cuenta que la zona central es de 1,5ms de pulso, si envío 2ms, no sirve envíar 1ms para realizar una acción simétrica con el servo opuesto, no concuerda exactamente.

¿Cómo se soluciona este problema?.

Responder
9 respuestas
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 17 años

Lo hice ayer por la noche porque me podía la impaciencia y me parecía una operación sencilla.

Resultado: Funciona perfectamente, dos servos en espejo en perfecta sincronía enviando el mismo valor de pulso a los dos, ahora imagino que con un solo cable se podrán controlar hasta cuatro a la vez ¿no?

El caso es que hice una pequeña metedura de pata porque en el programa tenía invertido el valor de uno de ellos (por las pruebas anteriores) y pensaba que iba igual, y cambié también la resistencia de posición para ver si así.

Seguía igual, y luego me di cuenta del fallo, y al envíar el mismo valor a los dos ya comprobé que cada uno iba en un sentido diferente por lo que a oponerlos ya van a la par.

Entonces para un servo de rotación continua solo es necesario invertir el motor, aunque para uno normal supongo que hará falta también cambiar la resistencia, no lo sé.

El caso es que ya me estoy planteando también realizar esa operación para los brazos, que también tenía ese mismo problema.

Lo importante es que funciona con una sencilla modificación 😀 😆 😈 😛

Responder
metalpuzzle
Respuestas: 2
(@metalpuzzle)
New Member
Registrado: hace 11 años

Buenas tardes. Mi problema creo que es similar (creo), y no he entendido muy bien la solución.

Tengo dos servos Futaba S3003, a los que he quitado el potenciómetro (y sustituido por unas resistencias) y quitado también la pestaña que hace de tope en la caja reductora. Osea, he trucado los servos para que sean de rotación continua.

El problema es que para un mismo valor (introducido por un potenciómetro externo), los dos servos no me giran con la misma velocidad, ni se paran en el mismo sitio.

He probado a poner las resistencias fuera de los servos y conectar los dos servos a las mismas resistencias (de manera que la desincronización no se debiera a la diferencia de resistencias de uno y otro), pero nada, siguen sin estar sincronizados.

¿Alguna idea?

Muchas gracias.

PD.: Si la solución ya está en este mismo hilo, ¿Me la podríais explicar con más detalle? es que no me ha quedado muy claro lo de la polaridad, etc.

Responder
sphinx
Respuestas: 651
(@sphinx)
Ardero
Registrado: hace 16 años

Hola Metalpuzzle, creo que no es exactamente lo mismo.

Respecto a tu problema:
Los servos de rotación continua que venden como tal, tienen unos trimmers internos para ajustar ese punto central del que hablas.
Mi consejo sería que utilizases también algo parecido a un trimmer en tus servos, en lugar (o acompañando) a esas resistencias que pones. Luego, calibralos enviandoles el pulso de 1500 uS (con el que se deberían de quedar en el centro, parados, vamos), y ajusta el trimmer hasta que consigas que se paren. Hazlo con todos, uno por uno. Ponles a cada uno sus resistencias+trimmer. No tienen por qué ser los mismos valores para todos. Una vez lo tengas regulados, pues eso, se pararán en el pulso central, y giraran en uno sentido y en otro a las mismas velocidades cuando reciban el mismo ancho de pulso todos.

Por otro lado, lo que se planteaba en este hilo, es usar servos que recibiendo el mismo pulso, tuviesen rotaciones contrarias, o en espejo.

Saludos,
Sphinx.

Responder
metalpuzzle
Respuestas: 2
(@metalpuzzle)
New Member
Registrado: hace 11 años

Ok, gracias.

Responder
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 19 años

Llevo años haciendo robots de tracción diferencial y lo normal es que dos servos iguales, ya trucados o trucandolos tú, suelen tener igual velocidad en ambos sentidos.... pero eso es lo que "suele" pasar, en este caso si decides trabajar en los ajustes hardware necesarios para comandar varios motores con un solo cable te puede pasar que un dia se rompa uno y tengas que reemplazarlo volviendo de nuevo a los ajustes... personalmente no me gusta la idea.

Cuando dos motores no van sincronizados y no queremos embarcarnos en montar encoders, yo lo soluciono utilizando dos variables donde almacenar los PWM de ambos motores, al motor que físicamente sea mas rapido le reduces un porcentaje que se puede determinar facilmente en 3 o 4 intentos.

Si la precisión requerida en tu robot no se solventa con este método habria que ir a tablas como dice acicuecalo, muy laborioso pero efectivo.

Ya ves que hay montones de métodos.

saludos.

Responder
Página 2 / 2
Compartir: