Autor Tema: Ejemplo para un servo Futaba S3003 en PBP...!  (Leído 11901 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Ejemplo para un servo Futaba S3003 en PBP...!
« en: 27 de Julio de 2005, 17:06:00 »
Hola Amigos:

Alguien me puede ayudar con un ejemplo en PBP para hacer girar 360º un servo marca futaba S3003, lo que le he jhecho al servo es solamente cortarle el tope para que gire los 360º, no esta cambiado el potenciometro ni nada, solamente esta cortado el tope, alguien tiene un ejemplo para probarlo...? nunca antes he hecho andar un servo es la primera ves que los voy a utilizar...

Muchas gracias, un abrazo... Sonrisa Gigante

Desconectado gesteva

  • PIC12
  • **
  • Mensajes: 52
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #1 en: 27 de Julio de 2005, 21:27:00 »
Hola LordLafebre, mover uno de estos motores no es tan complicado como parece...  lo que te puedo decir es que ellos necesitan un tren de pulsos donde la transición positiva debe durar entre 1 milisegundo y 2 milisegundos y entre pulso y pulso debe haber una pausa de 20 milisegundos, el ancho del pulso dentro de estos tiempos determinará la posición del eje.

Sabiendo esto, seria lógico pensar que si aplicas un tren de pulsos de 1.5 milisegundos en alto (1) y 20 milisegundos entre pulso y pulso, entonces el eje se irá al centro.  Si sacas la cuenta, esta repetición es de aproximadamente 50 veces por segundo. Sería algo así:

servo:
        high portb.1
        pauseus 1500
        low portb.1
        pause 20
        goto servo

En tu caso que has cortado el pin para que el servo gire completamente, puedes aplicar esto;

inicio:

derecha:
         for I = 1 to 255
         high portb.1
         pauseus 1300
         low portb.1
         pause 20
         next

         pause 1000    " tempo de espera para cambiar el sentido de rotación

izquierda:
         for I = 1 to 255
         high portb.1
         pauseus 1700
         low portb.1
         pause 20
         next

         pause 1000

         goto inicio


Espero haberme explicado---

Saludos! Sonrisa Gigante




Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #2 en: 27 de Julio de 2005, 23:50:00 »
Hola:

gracias gesteva por la ayuda voy a provarlo mañana en la mañana porque aqui ya es un poco tarde, puedo mover un servo con la funcion PULSOUT...?

Desconectado gesteva

  • PIC12
  • **
  • Mensajes: 52
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #3 en: 28 de Julio de 2005, 07:03:00 »
La instrucción Pulsout no funcionaría en mi opinión porque te daría un tren de pulsos con unos (1) y ceros (0) con el mismo período de tiempo, y lo correcto es que entre pulso y pulso tengas siempre una pausa en bajo (0) de 20 milisegundos.

Si no me equivoco, la instrucción PWM funciona igual y por lo tanto tampoco debería servir.

Avísanos cuando realices las pruebas...   Sonrisa Gigante

Gesteva

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #4 en: 28 de Julio de 2005, 12:52:00 »
Hola

Acabo de probar tu ejemplo y funciona pero se mueve solamente hasta la mitad y luego se para y no hace nada.. como lo hago girar 360º...?

Un abrazo.... Sonrisa Gigante

Desconectado gesteva

  • PIC12
  • **
  • Mensajes: 52
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #5 en: 28 de Julio de 2005, 16:29:00 »
Asegurate de que el piñon que está sobre el potenciometro esté libre, normalmente este piñon trae una pequeña pieza que acopla a éste con el potenciometro.

Has la prueba y veras que funciona.

Saludos!

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #6 en: 28 de Julio de 2005, 17:44:00 »
ok lo voy a desarmar por completo a ver que pasa...

un abrazo... Sonrisa Gigante

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #7 en: 28 de Julio de 2005, 21:25:00 »
Hola

Tenias razon gesteva es ese potenciometro que no permitia que gire 360º, ya lo probe y si gira 360º, pero en el ejemplo qeu tu pusiste en el cual gira a la izquiera y a la derecha no me funciona bien, gira solamente a la derecha, pero pruebo como programas independientes y gira bien a ambos lados, pero los dos juntos no... xq?

Un abrazo... Sonrisa Gigante

Desconectado gesteva

  • PIC12
  • **
  • Mensajes: 52
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #8 en: 31 de Julio de 2005, 15:28:00 »
Porque no pones el programa que estas grabando en el pic para verlo... disculpa la demora... Sonrisa Gigante

Gesteva

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #9 en: 31 de Julio de 2005, 15:32:00 »
Hola es el mismo que tu pusiste solo le cambie un poco el tiempo, pero como te decia funciona solamente cuando pongo que gire a la izquierda o solo a la derecha pero cuando pongo todo, gira solo a la derecha:

i   var    byte

inicio:

derecha:
    for I = 1 to 255
        high portb.1
        pauseus 1000
        low portb.1
        pause 10
    next
    pause 1000 " tempo de espera para cambiar el sentido de rotación
izquierda:
    for I = 1 to 255
        high portb.1
        pauseus 1300
        low portb.1
        pause 20
    next
    pause 1000
goto inicio

ese es el codigo...

Un Abrazo... Sonrisa Gigante

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #10 en: 02 de Agosto de 2005, 20:40:00 »
Hola:

Ya solucione en parte el problemas de los servos, puedo hacerlos girar para los dos lados uno solo a la ves con el siguiente codigo en PBP:

inicio:

derecha:
high portb.0
pauseus 1000
low portb.0
pause 10
goto derecha

y hasta alli bien... y ahora pensaba que era correcto hacer lo siguiente para mover los dos servos, hice esto:

TRISB=0

derecha:
for I = 1 to 255
PORTB=%00000011
pauseus 1000
PORTB=%00000000
pause 10
next
goto derecha

Con esto los motores no giran como lo hacian en el ejemplo anterior el movimento es entrecortado y debil.... a que se debe este problema....?

O como puedo hacer que giren los dos motores al mismo iempo...?

Un gran Abrazo... Sonrisa Gigante

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #11 en: 31 de Mayo de 2006, 18:01:00 »
ey brother LORDLAFEBRE  esta es una consulta que me hace un amigo de chile y es que el necesita hacer lo que querías....hacer funcionar dos servos independientemente

¿como lo podria hacer?
trabaja con el pic 16F873

gracias por tu ayuda
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #12 en: 31 de Mayo de 2006, 18:39:35 »
Hola:

mira, te pego un texto de un documento del cual pude hacer un programa para controlar los servos:

Control
Los servos se controlan aplicando una señal PWM por su cable de control. Las señales PWM (Pulse Width Modulation, Modulación por anchura de pulso) son digitales (pueden valer 0 ó 1) y permiten que usando un único pin de un microcontrolador podamos posicionar el servo. Esto es una gran ventaja, porque si por ejemplo, disponemos de un micro con 8 pines de salida, podremos posicionar 8 servos.

Para posicionar el servo hay que aplicar una señal periódica, de 50Hz (20ms de periodo). La anchura del pulso determina la posición del servo. Si la anchura es de 2.3ms, el servo se sitúa en un extremo y si la anchura es de 0.3ms se sitúa en el opuesto. Cualquier otra anchura entre 0.3 y 2.3 sitúa el servo en una posición comprendida entre un extremo y otro. Por ejemplo, si queremos que se sitúe exactamente en el centro, aplicamos una anchura de 1.3ms.

Cuando se deja de enviar la señal, el servo entra en un estado de reposo, y por tanto se podrá mover con la mano. Mientras se le aplique la señal, permanecerá fijado en su posición, haciendo fuerza para permanecer en ella.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #13 en: 01 de Junio de 2006, 19:12:41 »
la cuestion sería como hacer funcionar dos al mismo tiempo o si hay algun circuito integrado que pueda ayudar con esto
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Ejemplo para un servo Futaba S3003 en PBP...!
« Respuesta #14 en: 02 de Junio de 2006, 00:27:38 »
Hola:

Pues controlas con high y low y pause o pauseus, para generer la frecuencia que haria que mueva el servo, por ejemplo:


Código: [Seleccionar]
loop:
     High 0   
     pauseus 2300
     low 0
     pauseus 17700
     goto loop

ese codigo haria que un servo conectado al pin B0 permanezca en el extremo, si quieres moverlo, tendras que variar esos tiempos como te lo menciono en el post anterior.  :mrgreen: