something in the way

a tumblog about design + code
Mar 16
views

Pinguino Processing Library

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:

Media_httpfarm4static_jyfhx
Media_httpfarm4static_efefp
Media_httpfarm4static_sacjv
Media_httpfarm4static_bfaey

Media_httpfarm4static_kuuaw