This project is a part of experiments done while doing an artist in residence at Instructables. You can see the other projects here.
Creating emergent patterns that can be converted into sounds fascinates me. So this is my first experiment in building an arduino platform for creating such patterns. This version uses a Gameduino as its sound processor and uses particles that bounces around on a led matrix as the interactive sound generators. You can add more particles by pressing the joystick down for two seconds and the joystick serves as a drawing pen to create elements for the particles to bounce on.
As you can see in the video the code is still a little crude and only the first proof of concept for the platform.
Of similar projects I would recommend you look into: Bloom an iPhone app made by brian Eno and Otomata by earslap.
Step 1: Components needed
The following componets are needed:
The electronics can be done with basic soldering tools. The enclosure was made with a laser cutting some acrylics and a drillpress to make holes in the wooden box
Step 2: Mount the led matrix
Adafruit has made a toturial for how to wire up the led matrix. You can find it here. Please refer to how I wired it up in diagram in step 1. If you are going to wire it up according to the Adafruit toturial (see the picture with the jumper wires), then Red = 5v, Black = Ground, White = Pin3, Orange = pin4, Yellow = pin5.
If you want to use your own custom pins you should change this section in the code:
#define DATA 4
#define WR 5
#define CS 3
Step 3: Connect the joystick
As shown in the diagram Xout is connected to analog 4, You connect to analog 3 and button (sel) is connected to analog 2. A 10k resistor is connected from analog 2 to ground - this functions as a pull down resistor.
Step 4: Upload the code
There are lots of tutorials which already explains how to program an Arduino and they do a much better job than I could. So I will just give you a couple of links:
The 3 things that usually cause trouble:
Below are the simplified steps to uploading the code to your Arduino board:
Step 5: Debug with Guino
I am using Guino to visualize the code. Guino is a new program to visualize data coming from the arduino board and it enables you to calibrate it on the fly.
You can find the the instructable here on how to use it. It is really simple to get up and running and it enables you to control some of the internal values. Download the program from here and run the program (you have already installed the libraries in the previous steps.
Step 6: Make an enclosure
Show All 7 Items
To make the enclosure I did the following steps:
Drilling a square hole:
Drilling a square hole in a wooden box has proven to be a tricky task. I have yet to find the perfect solution for it. My solution in this case was to use a drill press, a tiny drill bit and a larger drill bit.
Start out by marking with a pen the approximate area where the hole should be. Then drill many, many tiny holes inside this area. Since it can be tricky to get the precise placement of the square hole I usually compare it to the arduino board to see what areas I am missing. When you have drilled enough holes for the wood to be porous then use the larger drill bit to remove all the loose bits.
I would love to hear if anybody has a better way to do this?