Librería de Servos version 4.2 para Pinguino

Programación
Bueno, increiblemente después de más de un año y medio sin publicar nada (principalmente por temas de salud), por fin he vuelto a trabajar en el proyecto Pinguino, y esta vez para traer cosas que ya iban haciendo falta. La librería para servos que publicaba en mi artículo anterior para las placas de 8 bits de Pinguino ya no es válida por muchas razones, la primera y principal es que el IDE de Pinguino a cambiado mucho y la forma que trabaja el PIC, también. De modo que llevo 3 meses con Regis Blanchot trabajando para adaptarla al nuevo IDE y para asegurarnos de que funciona para el mayor número de versiones de PIC posibles.

Y efectivamente ya la teneis disponible en el repositorio de svn: http://pinguino32.googlecode.com/svn/ide

La release donde ha quedado incluida es la 940. ¡¡Toda vuestra!!

Basicamente el IDE sorporta actualmente los siguientes PICs que cuando seleccionais el hardware desde el IDE podreis ver. Aquí os muestro la ventana de diálogo que aparecerá, para que veais los tipos de PICs que actualmente existen soportados:

PICselection

Pues todos esos también son soportados por la nueva librería de Servos. Todos ellos son de 8 bits. Ahora queda adaptarla para los PICs de 32, que será mi próximo objetivo.

Algunas de las mejoras que incluye esta nueva version del IDE, la x.4, y el nuevo bootloader 4.13 , es que se han rescatado algún pin que al comienzo del proyecto se utilzaba como botón de RUN, es decir, para arrancar nuestro programa. Ahora ese botón no existe y ese pin está disponible como uno más para usarlo como I/O. De modo que ahora un Pinguino con un PIC 18F2550 tiene 19 pines disponibles para el usuario, y la versión 18F4550, ¡nada más y nada menos que 30! Sí, sí, de modo que ¡¡con esta librería de servos podeis controlar 30 servos!! ¿ qué os parece? ¿No se os ocurren varios proyectos con ello así de entrada? A mi si…

Para más información sobre la evolución del proyecto, no os olvideis de su página: http://www.pinguino.cc/

La documentación de la librería, está disponible desde hace tiempo en la wiki de Pinguino.

Tengo en mente también alguna que otra mejora para esta misma librería de 8 bits, pero será en terminos de rendimiento.

También a partir de aquí, y apoyandome en esta librería tengo un proyecto que iré contando poco a poco. Que como todos los que ya están abiertos en mi página de Proyectos, se irá viendo de artículo en artículo. Pero todavía no lo incluyo ni como proyecto en esa página porque está muy verde.

Un saludo para todos los que me seguís, y por favor, contadme vuestras experiencias con la librería de servos y Pinguino. Cualquier cosa que observeis puede ser objeto de mejora, comentadmelo. Gracias por anticipado.

Autor: Sphinx

Robotics enthusiast

7 opiniones en “Librería de Servos version 4.2 para Pinguino”

  1. Hola! Quiero hacerte una pregunta. Tengo entendido q los servos solo pueden ser controlados por pines PWM y el pico 18f2550 tiene solo 2 y el 18f4550 creo q tiene 3… Como es q haces para q los 30 pines puedan usar PWM??? Realmente estoy muy intrigad. Saludos desde argentina!

    Me gusta

    1. Hola Jose,
      La respuesta a tu pregunta está más o menos contestada en esta otra entrada de mi blog: https://linuxdroids.com/2010/07/29/pinguino-rutina-para-controlar-18-servos/
      Lo que hago es generar yo mismo la señal PWM para cada pin que yo desee. Lo que hago es controlar los tiempos de regeneración de los pulsos (que se tienen que producir cada 20 milisegundos) con el TMR1 del PIC. Y los anchos de los pulsos los controlo todos simultaneamente para todos los pines, utilizando tablas, y contando los microsegundos internamente en mi rutina de interrupciones.
      Los dibujos que muestro en la entrada de mi blog mencionada, sobre todo el primero, te pueden dar una idea aproximada de lo que comento. Con esta técnica de simultanear todos los pulsos para todos los pines que se deseen, permite hacer que casi se puedan gestionar un numero muy grande de servos. En la entrada del blog del artículo hablo del 18F2550, pero luego desarrollé la librería de Pinguino para el 18F4550. Y tenía pensado hacerla también para el de 32 bits. Creo que finalmente fue adaptada a los PICs de 32 bits por otros compañeros en el equipo de desarrollo de Pinguino.
      El IDE actual de Pinguino ya lleva integrada mi librería y funciona para todos estos PICs.
      Estoy terminando una placa con el 18F4550 que utiliza esta librería y algo más, para hacer de Pinguino una placa controladora de servos, a la que he llamado #Pinguino4Robots. No te pierdas mis próximas entradas!!!

      Un saludo a todos los aficcionados a la electrónica y la robótica de Argentina desde España!

      Me gusta

      1. Muchimas gracias. Fue realmente muy ingenioso lo q has hecho. Tu web me sirve para aprender… Estoy tratando de investigando y aprendiendo esto de la electrónica ya q descubrí este fascinante mundo y además planeo implementar robótica educativa en el aula. Muchas gracias por responder

        Me gusta

Deja un comentario