Physical x Wonderfl

Shigeru Kobayashi, who made Gainer and Funnel, has made yet another nifty tool for physical computing:  physical x wonderfl. It combines Gainer, Funnel, Firmata, Arduino, and Wonderfl.

What are Gainer, Funnel, Firmata, Arduino, and Wonderfl?

Gainer is a microcontroller I/O board that allows you to build physical computing applications connected to your personal computer with no microcontroller programming.  It’s already programmed to send the inputs and outputs to Funnel, a desktop serial-to-TCP socket server.  Funnel can also communicate with an Arduino board that’s running Firmata.

Firmata is a program for the Arduino that makes the Arduino function similar to a Gainer board — you don’t have to program it further, you just read the inputs or set the outputs using the Firmata serial protocol.

Wonderfl is a web-based Flash ActionScript compiler that allows users to write code online and share it.

Physical x wonderfl is a series of Flash scripts, written using Wonderfl, that communicates with the Funnel application using the Firmata protocol.  So it doesn’t care what microcontroller is attached to the serial port that Funnel’s listening to, as long as that controller speaks the Firmata protocol.

Why is this so great?

Because if you know ActionScript, you can get input from the physical world into your programs without having to know how to program a microcontroller.  You don’t need Flash either, thanks to Wonderfl.

This isn’t the first toolkit to connect Flash to the physical world without microcontroller programming, but it is pretty simple to do.  Here’s how I did it:

  1. Get an Arduino board (or a Gainer board, I didn’t have one handy).
  2. Upload Firmata to it. Specifically, I went to the File menu, chose Examples –> Firmata –> analogFirmata
  3. Download Funnel and run it. I ran the Arduino Funnel server
  4. Open a Physical x wonderfl program and watch what happens. I used the Arduino/Digital/Blink example.

That’s it!  Now make your own Physical x wonderfl programs.

Nice work, Shigeru!