Posicionamiento de servos con la Skycube y micro-osciladores

8 views
Skip to first unread message

Juan Gonzalez Gomez

unread,
Nov 22, 2010, 4:32:39 AM11/22/10
to skyl...@googlegroups.com
Hola,

  Hace batante tiempo Miguel Angel preguntaba a la lista lo siguiente:

"
  Hola Juan estoy intentando mover con la skycube un servo a una posición y
dejarlo hay, se podría? O solo funciona con la función seno, es decir solo
genera movimientos o puedo mover un servo a una posición."

La verdad, se me olvidó por completo responder :-(

Dentro de micro-osciladores, el módulo servos.c es el encargado de generar la señal PWM para posicionar los servos de manera normal (sin oscilaciones).

Aquí te puedes descargar un ejemplo de cómo usarlo:


http://svn.iearobotics.com/micro_osciladores/trunk/firmware-pic16/test-servos.c

Para compilarlo "manualmente" tienes que poner los comandos:

sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a   -c -o test-servos.o test-servos.c
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a   -c -o servos.o servos.c
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a  libm.lib -o test-servos test-servos.o servos.o

Si lo haces con el CodeBlocks tienes que meter en el proyecto los programas servos.c, test-servos.c y servos.h

Saludos, Obijuan


--
Página personal: http://www.iearobotics.com/juan
Blog: http://www.iearobotics.com/blog/

Miguel Angel

unread,
Nov 24, 2010, 7:16:37 PM11/24/10
to skyl...@googlegroups.com

Ok, juan lo he probado con codeblocks y funciona perfecto, ahora quiero ver si puedo hacer que se defina el tiempo que quiero que tarde en alcanzar la posición que le digo.

 

Por ejemplo servo 2 a la posición 45 en 2 segundos, para que no se tan rápido el movimiento.

--
Has recibido este mensaje porque estás suscrito al grupo "Skylist" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a skyl...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a skylista+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/skylista?hl=es.

Juan Gonzalez Gomez

unread,
Nov 30, 2010, 3:28:00 AM11/30/10
to skyl...@googlegroups.com
Hola Miguel Angel,

El 25 de noviembre de 2010 01:16, Miguel Angel <maberna...@gmail.com> escribió:

Ok, juan lo he probado con codeblocks y funciona perfecto,


Genial!

 

ahora quiero ver si puedo hacer que se defina el tiempo que quiero que tarde en alcanzar la posición que le digo.

 

Por ejemplo servo 2 a la posición 45 en 2 segundos, para que no se tan rápido el movimiento.


Eso no lo tengo implementado. Tienes que subdividir la trayectoria en puntos intermedios. Si el tiempo en alcanzar la posición de 45 quieres que sea T, tienes que dividir la distancia angular (45 - posicion actual) en N puntos intermedios y en cada uno de ellos esperar T/N.   El número N se puede determinar experimentalmente probando para conseguir que el movimiento sea lo suficientemente suave.

Saludos, Juan

 
Reply all
Reply to author
Forward
0 new messages