This project is a part of experiments done while doing an artist in residence at Instructables. You can see the other projects here.
Making a plant sing has been a trick since the Theremin was invented. Here I am going to teach you how to do this with and arduino board, a gameduino shield and a the touch shield from my previous instructable.
A short introduction to capacitance
If two objects are conductive you can measure the capacitance between them (e.g. objects like: metal, water, human bodies and plants). By connecting a capacitance sensor to a plant we can detect if people are touching it and convert the touch into sound. Normally you would do this with a theremin like interface.
With the introduction of the touch frequency principle by Disney Research lab we can now make a really stable solution that can run entirely on the Arduino platform. The Touch works on a similar principle as a normal theremin, but does a frequency sweep instead. By hooking the touch up to the plant we can measure the capacitative interaction and convert it into sound.
The singing plant as an artistic project has been done with multiple people as a member of illutron. I will just credit af few key people who I have worked with: Åsmund Boye Kverneland, Nicolas Padfield, Thomas Jørgensen, Schack Lindemann, Thor Lentz, DZL, Vanessa Carpenter
Step 1: Components and tools
Components needed for the touche shield:
Step 2: Touche shield
We are going to use the same shield that we used for this instructable. For the touche shield and the gameduino to work together we need to do a little hack. Since the touche shield is using pin 9 for frequency generation and the gameduino uses pin 9 for the chip select. For now all you need to know is that you should not connect the wire to the pwm pin nine but let it hang loosely (at least you should be able to disconnect it again when you are done testing).
Step 3: Making the TouchA© shield and the GameDuino play nice together.
Since the touche shield and the Gameduino are both using pin 9, we need to make the GameDuino use pin 4 on the Arduino board and we need to connect the touche shield directly to pin 9 on the Arduino board.
Here are the steps:
For it to work we need to make sure the Gameduino library communicates properly on pin 4 instead of pin nine. I have included a customized library for that.
Step 4: Connect the two shields and 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: Visualizing the code and calibrating it with guino
We are 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: Creating an enclosure
The following steps are optional. It will work just fine without. I choose to use a wooden box from the container store and modify it for my needs. Further I lasercut and acrylic plate to put on top of it.
Step 7: Drill a square hole for the Arduino usb cable
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?
Step 8: Lasercut the acrylic plate
I used a laser cutter to cut the acrylic plate to put on top. You can download the diagram here.
Step 9: Mount two buttons for max and min and mount the connectors.
The buttons for max and min should be connected to analog 1 and analog 2. Since we are using an internal pull-up resistor the other end of the buttons should go to ground. You can leave out this step and use the Guino interface instead for calibrating the plant.
Step 10: Connect the audio jack
I used an stereo audio cable to wire the jack connector to the Gameduino. You can of course use the jack connector directly mounted on the Gameduino shield.