Happy Code Farm . Pinguino Processing Library


Douglas Edric Stanley

Pinguino + Processing

Pinguino is an electronic hardware prototyping platform, loosely based on the Arduino architecture, using PIC microcontrollers with integrated USB. The Pinguino Processing Library allows for communication between this low-cost hardware platform, and the popular visual prototyping language for artists and designers, Processing.

Pinguino est une plate-forme de prototypage électronique ; il est plus ou moins basé sur l'architecture du projet Arduino, mais utilise des micro-controlleurs PIC à la place du Atmel. Il profite également de l'intégration USB de ces micro-controlleurs. La librairie « Pinguino Processing Library » facilite la communication de ces circuits avec l'environnement de prototypage artistique, Processing.

Last week, Stéphane Cousot wrote a basic library for communicating between Processing and Pinguino. While you've probably heard of Processing before (since you're reading this blog) you've almost certainly never heard of Pinguino. It's one of the roll-your-own projects that we are developing here at the Aix-en-Provence School of Art in order to fill our own needs. It is loosely based on the Arduino platform, most of all its philosophy, but redesigned around PIC microcontrollers with integrated USB. In other words, it's our in-house Arduino.

The project is in its first year of development and experimentation, and a lot remains to be ameliorated, most of all the editor and the installer. But as in the past we have found that the best way to mature our technologies is to use them in our own work as if they already work (or at least as if they will work), we figured that we would just jump in head first and start developing all the various pieces, even while we're in the middle of building crazy festivals like the next Eniarof. So while Stéphane is here for Eniarof, I decided that it would be best to put him to work on developing a Processing Library to connect up directly with the Pinguino circuits various projects are building for their attractions.

Jean-Pierre developed the original solution using the libusbJava wrapper to libusb. This is not a virtual serial port, but direct communication with the USB bus. Stéphane then took this solution and built the basic library that we will use to further develop the communication protocol between Processing and Pinguino. One of Jean-Pierre's original ideas for his platform was to build a default mode that would allow Processing, Pure Data, Python or one of the many other languages and environments we use, to directly command the Pinguino. There is something similar to this idea in the current Firmata protocol built in to the Processing Core Libraries. But we're still a long way from getting there. For the moment we just have a simple protocol to get pin states, change pin states and send/receive more generic, or non-pin related messages.

Here is a video of Stéphane running his demo:

And some photos:

Pinguino + Processing
Pinguino + Processing
Pinguino + Processing

Screenshot Pinguino Processing Library