martes, 8 de septiembre de 2009

Control de Servos con PC y LabVIEW

Para todos aquellos que queréis controlar vuestros servos de radiocontrol desde un PC, aquí cuento una de las maneras de hacerlo, aprovechando que el pisuerga pasa por Valladolid.



Existen servos de muchos tipos y tamaños.



Siempre se pueden reutilizar en plan cutre y hay multitud de elementos de montaje y acoplamiento para construir cosas interesantes.

Para montar un sistema de control de servos con PC necesitamos:
  • Un PC.
  • Una tarjeta de generación de señales PWM de servos.
  • Un adaptador para comunicar la tarjeta con el PC si es que ésta no viene ya con USB.
  • Servos.
  • Runtime de LabVIEW (o éntorno de desarrollo para modificar los ejemplo o crear vuestros propios programas).
  • Programas de control.




En nuestro caso estoy utilizando un netbook con Windows XP. Vale cualquiera con capacidad para ejecutar el sistema de desarrollo elegido.



La tarjeta de generación de PWM para servos que uso es una SSC32 de lynxmotion. La podéis encontrar en los brazos manipuladores de aficionados. Yo se la he quitado al mío y no sé si se la devolveré. Está muy bien para controlarla desde un PC porque tiene entrada RS232 y generación de trayectorias muy rudimentaria (límites de velocidad) que evita que los movimientos resultantes sean bruscos ( a la máxima velocidad de los servos) como pasa con otras tarjetas. También permite la obtención de las posiciones actuales de los servos, útil para establecer correspondencias en las lecturas de los sensores y las posiciones actuales si los movimientos son lentos. He necesitado un adaptador de rs232 a usb y la comunicación es a 19200 baudios.

Software:

Por claridad lo he hecho en dos partes: el programa principal (control.vi) y una función auxiliar que genera la cadena con la posición y la velocidad de un eje según el protocolo de la SSC32 (eje2ssc32.vi). Descargar aquí.




Panel de control de la aplicación básica. Es umy fácil reconfigurar y ampliar la interfaz de usuario según el número y tipo de servos.



El programa está bastante comentado.



Esta es una función auxiliar para simplificar el código del programa principal.

En el siguiente video se pueden ver la aplicación y algunos tipos de servos en funcionamiento.



Suerte y comentarios.

9 comentarios:

  1. ¡Mola! Ay si hubiéramos tenido esa tarjeta de control de servos hace quince años para un robotito hexápodo ;P

    ResponderEliminar
  2. Muchas gracias por el control. Sencillo, claro y muy útil.

    ResponderEliminar
  3. hi guys. do you know english??? i have a question.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. El programa principal (control.vi), ya no se deja descargar... puedes volver a subirlo
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola,
      Este blog está descontinuado.
      Por favor dirígete al nuevo blog en http://hombremecatronico.es/?p=5 allí encontrarás el archivo que buscas.
      Un saludo.

      Eliminar
  6. no tendras por favor el link del archivo, dice que no existe, gracias

    ResponderEliminar
    Respuestas
    1. Por favor visita nuestro nuevo blog en www.hombremecatronico.es allí podrás encontrar el enlace correcto.
      Un saludo.

      Eliminar