Singing Plant. Make Your Plant Sing With Arduino, Touche and a Gameduino

154,182

354

48

Introduction: Singing Plant. Make Your Plant Sing With Arduino, Touche and a Gameduino

About: IMPORTANT: Please do not message me personally with technical questions. Use the comments in the respective Instructables. I really love sharing and helping people makes much more sense in a shared space where…
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.


Credits:
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:
  • Arduino
  • Homemade touche shield (Instructable can be found here)
  • Gameduino (We are going to use it for sound).
  • Two buttons.
  • A couple of Alligator clips.
  • Two banana connectors.
  • Enclosure (I used a wooden box from http://www.containerstore.com/welcome.htm)

Components needed for the touche shield:
  • Prototyping shield
  • Pin headers
  • Resister: 10k, 1MOmh, 3,3k
  • Capacitor: 100pf, 10nf
  • Diode: 1N4148 diode
  • Coil / inductor: 10mH (cypax.dk  part no: 07.055.0510)

Tools:
  • Basic soldering tools.
  • Wood working tools.
For the enclosure I lasercut an acrylic plate, but you could just as well use a piece of wood and cut it manually.

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 Touché 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:
  • Bend pin nine on the gameduino out. Be aware that it will break if you bend it back and forth.
  • Connect a wire from the bend out pin on the gameduino board to pin four on the Arduino board.
  • Connect another wire from pin nine on the arduino to the pwm pin on the touch shield.
This is not an elegant solution, but it will work :)

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:
  • On windows you have to install the proper drivers (sometimes also on mac).
  • Remember to select the right serial port in the gui.
  • Remember to select the right board in the gui.

Below are the simplified steps to uploading the code to your Arduino board:
  • Download Arduino: www.arduino.cc
  • Connect the Arduino board to the computer via usb.
  • Download the code from here.
  • Move the libraries in the libraries folder into your Arduino libraries folder. If you do not know how to this please refer to this toturial.
  • Upload the code to the 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. 

DIY Audio

Participated in the
DIY Audio

2 People Made This Project!

Recommendations

  • Home and Garden Contest

    Home and Garden Contest
  • Tinkercad to Fusion 360 Challenge

    Tinkercad to Fusion 360 Challenge
  • Science Fair Challenge

    Science Fair Challenge

48 Comments

0
shanellesthilairetheartist
shanellesthilairetheartist

Question 5 months ago on Step 1

I am currently working on this project but do not have a gameduino and I'm having a hard time even finding one available to purchase. Can someone help me the correct one for this project? I really wish there were a link to which one was used for this project. Or is there a possibility to not use the Gameduino at all?

0
johnlerner2018
johnlerner2018

Question 9 months ago

i want to build one right now. WHICH BOARD? THEY NOW MAKE DOZENS????
I WANT TO BUILD IT RIGHT NOW, WHERE DO I BUY THOSE PARTS?

0
frankj86
frankj86

Question 1 year ago

Thank you very much for posting this project, I will try to build myself one of this!
I have a question: with plants does this act only transforming it in capacitive surfaces or is it possible to obtain biofeedback from the plant without touching?
Thank you very much!

0
tommaso_
tommaso_

1 year ago

hi, link not working. could you repost them? thanks

0
Berge01
Berge01

1 year ago on Step 5

Hello !
I'm very interrested by this
I'm afraid some links guino for example are broken. Could you help me ?

0
jliu35
jliu35

Reply 1 year ago

I downloaded the Guino but it is not working. It needs to be updated to fit the newer version of mac os.

0
TyB12
TyB12

6 years ago

I am trying to avoid spending $30+ on a gameduino. I'm a beginner with a RedBoard and created the touche shield on a breadboard, but as far as the gameduino goes, is there any possible way I can avoid using it?

0
rizzo.tonino
rizzo.tonino

Reply 2 years ago

Hey ! I think ou could replace the sound synthesis by some midi message. But it would need to be able to change the code and make your Arduino communicate with a DAW (as Ableton or garageband). There is a very good midi library, you can use hairless bridge to communicate from serial to MIDI.

0
Johan6
Johan6

Reply 4 years ago

I did the same and purchased an audioshield by Velleman. I've got the sketch working, and the Guino showing nice graphs upon touching. But I now have to figure out how to let the arduino communicate properly with the audioshield (it seems the audioshield uses pin 10 for chipselect, so no need to bend any pins). Does anybody have an idea how to translate the original Gameduino code into the audioshield one, for the same results?

0
SarahK215
SarahK215

Reply 3 years ago

did you figure out how to get the code to work with the audio shield?

0
TyB12
TyB12

Reply 3 years ago

I abandoned the project, so no :)

0
SergioH31
SergioH31

Reply 5 years ago

Hi - I'm doing a similar project using an x-osc interface and linking it to Max MSP 5 on my computer which gives flexablitiy with my sound design

0
NicolasHughes
NicolasHughes

Reply 4 years ago

any success? I am looking to do a similar thing. Using touche to interface with Max msp for real time audio.

Im a bit of a (very much a) noob but I am learning quickly any help would be much appreciated. Codes would be amazing.

0
TanyaH65
TanyaH65

Question 2 years ago

Hi, I'm wondering if it is possible to change the sound coming from the plant in this experiment. How is it possible for the plant to play a particular existing music track instead of random frequencies?

0
uhyeonLee
uhyeonLee

Question 3 years ago

I think you are a genius! But I don't understand something.
Why did you use the switch? What is the purpose of the switch?

0
Shivani shiralkar
Shivani shiralkar

Question 4 years ago

Hey,
I have started making this project but being beginner i want to avoid gameduino is there any replacement to this. Please reply soon

0
FilipS50
FilipS50

4 years ago

there is no EasyTransfer.h in the files and i cant compile the Arduino sketch.... ;/

0
gerartoye
gerartoye

5 years ago

would love to buy one from someone who has made a working model nz@globlgypsy.com

0
T0BY
T0BY

5 years ago

I am very impressed!