Pinguino Project, Hardware y Software libre para todos
Probablemente para muchos de los lectores no será un secreto la existencia de las tecnologías que existen dentro de nuestros dispositivos electrónicos.
Hace ya algunos años, se vio la explosión y crecimiento del proyecto Arduino el cual, ha sido citado aquí, además de la aparición de computadoras Single-Board como la Raspberry Pi, las tarjetas ODroid, las BeagleBoard y algunas otras que desconozco, las cuales, pretenden acercar el desarrollo y diseño de sistemas electrónicos, de una manera relativamente sencilla y de bajo costo a usuarios que no necesariamente tienen que poseer grandes conocimientos previos respecto a la electrónica.
Y entonces, ¿en dónde aparece Pinguino Project?
Pinguino Project nace como una alternativa más a los proyectos existentes, la cual, posee un IDE hecho en Python y Qt, dando un soporte multiplataforma (Windows, OSX, GNU/Linux), que está registrado bajo la licencia pública general GNU GPLv2.
Las tarjetas o PCBs como ustedes gusten llamarles, están diseñadas en KiCAD, un software para diseño electrónico (EDA) desarrollado por el CERN y destacable porque es una suite multiplataforma liberada bajo la licencia GNU GPLv3.
Dicho de esta manera, tanto el software para programarlo, como los diseños esquemáticos de las placas existentes forman parte de como algunos lo llaman
“Patrimonio Tecnológico de la Humanidad” – Juan “Obijuan” Gonzalez.
Y ¿por qué debería importarnos?
El proyecto toma como argumento inicial la ventaja de hacer uso una plataforma como lo es los PICs de Microchip, los cuales, si bien, son naturalmente “privativos”, por las cuestiones de fabricación, tienen la documentación suficiente para desarrollar software para los mismos, después de todo, esa es su utilidad.
Las ventajas de usar Pinguino Project, son las siguientes:
- Los microcontroladores usados tienen una interfaz nativa de USB, es decir, a diferencia de plataformas como Arduino, las cuales requieren de un convertidor de señales USB/Serial incluido en la mayoría de las tarjetas, los usados en Pinguino no requieren de dichos convertidores.
- Las velocidades de reloj son usualmente mayores y variables en las tarjetas Pinguino, habiendo una prudente cantidad de versiones del Bootloader.
- El Entorno de Desarrollo usa, a diferencia del de Arduino, una interfaz entre Python y el “lenguaje” Pinguino, lo cual convierte el código escrito en código nativo en C para luego ser compilado usando SDCC (para 8 bits) o MIPS-elf GCC (para 32 bits y con soporte de C++).
- El proyecto también posee una API para Python, la cual, está temporalmente Obsoleta, pero que, al menos desde linea de comandos en Linux, puede ser suficientemente útil como para cargar programas en HEX directamente hechos en Ensamblador u alguna otra plataforma de programación de PICs, siempre y cuando se respete el espacio de memoria asignado al bootloader.
- Hace uso de las librerías standard de SDCC
- Posee una interfaz de programación gráfica similar a la de Scratch pero orientada al Hardware.
- Su lenguaje es una implementación similar a Arduino, lo cual permite facilidad de lectura sin la necesidad de memorizar configuraciones de registros directamente, pudiendo hacerlo si se requiere.
Queda en cada uno de nosotros
La cuestión, es bastante simple, usualmente el crecimiento o decadencia de un proyecto libre depende de muchas cosas, pero primordialmente, de dos muy sencillas:
- El número de usuarios
- La cantidad de personas que aportan al proyecto
Si bien, puede no ser muy sencillo para muchos como yo :v, el aportar al código del mismo, el hecho de comenzar a usar dichas plataformas, en general, puede impulsar a que se desarrollen más librerías, mejoras al proyecto, nuevos diseños de placas.
El proyecto como tal, al menos a mi parecer es una propuesta bastante buena, lo que necesita es una comunidad que siga creciendo y lo impulse a salir adelante, y entre ellos podrían estar ustedes que leen este artículo.
Instalación de PinguinoIDE
Si bien, el proyecto como tal es multiplataforma, yo tuve problemas debido a que el instalador existente en Linux es para Ubuntu, y posee paquetes .deb (Naturalmente).
Para aquellos usuarios de Windows, Ubuntu y OSX, en la página de descarga vienen los respectivos ejecutables.
Personalmente a mi, me ha resultado mejor desde el código fuente, debido a que no está presente en AUR y soy aún muy estúpido como para saber cómo subirlo (:V). Pero igual funcionó en mi Fedora en su momento.
Instalación en otras distribuciones
Primero tocará instalar las dependencias con su gestor de paquetería favorito, y evidentemente, dependiendo de la distribución:
- PySerial
- PyUSB
- PySVN
- PySide
En Arch pueden hacerlo con un
sudo pacman -S python2-pyserial python2-pyusb python2-pyside
y descargando el paquete de pysvn desde AUR
Después de ello, necesitarán clonar de su repositorio en GitHub los siguientes elementos, lo ideal será mantenerlos en una misma carpeta, yo tengo mi carpeta ~/Tools en donde guardo algunos repos clonados para futuros usos…
git clone https://github.com/PinguinoIDE/pinguino-ide.git
git clone https://github.com/PinguinoIDE/pinguino-libraries.git
git clone https://github.com/PinguinoIDE/pinguino-compilers.git
Lo siguiente será crear las carpetas que requiere el programa:
mkdir -p /home/$USER/Pinguino/v11
sudo mkdir -p /opt/pinguino/
Ahora podemos proceder a poblar las carpetas con los archivos clonados, recordando que es una aplicación hecha en Python no será necesario compilar nada. Por si no es evidente, $SU_PATH_CON_LOS_REPOS será la carpeta en donde clonaron anteriormente las cosas, y la aclaración cabe debido a que en su momento yo también he caido en el copy/paste.
cp ~/$SU_PATH_CON_LOS_REPOS/pinguino-libraries /home/$USER/Pinguino/v11 -r
sudo cp /$SU_PATH_CON_LOS_REPOS/pinguino-libraries /opt/pinguino -r
sudo cp /$SU_PATH_CON_LOS_REPOS/pinguino-compilers/$TU_OS /opt/pinguino -r
Y finalmente, debido a que yo dejo mi carpeta con repos intacta hago un enlace simbólico a /usr/bin para poder ejecutarlo desde cualquier lugar
sudo ln -s /$SU_PATH_CON_LOS_REPOS/pinguino-ide/pinguino.py /usr/bin/pinguinoide
en arch tuve que cambiar la primer linea del código de ese archivo, debido a que la versión de Python por defecto es la 3, y Pinguino IDE trabaja con Python2, de un
#!/usr/bin/python
a
#!/usr/bin/python2
¿Qué sigue?
Si les interesa empaparse con más información al respecto siempre es bueno consultar la página oficial del proyecto en http://pinguino.cc, la cuestión de construcción y fabricación de su propia placa la dejamos a consideración de cada uno, en venta hay en la misma página kits para ensamblarlos o algunas placas ya hechas dependiendo de la existencia, además existen algunos fabricantes como olimex que ya tienen en venta sus prototipos de Pinguino 32bits en este caso
El artículo Pinguino Project, Hardware y Software libre para todos aparece primero en Pinguino Project, Hardware y Software libre para todos.