An outdoors low consumption, self powering musical installation.
This blog post is about the design and creative process around the concept of an art object I'm making, to be displayed at the UK Maker Faire in Newcastle in March.
The intent is to install in an outdoors area, various sensors and various sound sources - mostly amplified piezos as well as a wave shield. These will be guided by an arduino which is powered in turn by various solar panels. The device will capture sunlight during the day (I'm also considering windmill or crank power), and gathers readings through the day and night to play a short "concert" at dawn and dusk.
The readings are light, temperature, sounds, humidity and, I hope, some simple electrode type readings, for which I'm currently experimenting with EMF, which I hope to couple with a second one, so as to have a sort of electrode.
When light reaches a threshold, the device plays a melody based on readings gathered, fires off a recorded sound according to the amount of energy it has stored with which to play it, and plays the piezo melody over the wave background. I would hope speed would slowly increase, and it remains to see if further ongoing readings would influence the performance also.
Background
I first wanted to do something of this type years ago, as the value of printed CDs decreased, and they lost value in my mind as well as monetarily as a way of distributing or experiencing music due to them being ripped almost immediately, and due to the songs then living on various media in large libraries.
How could I separate a musical composition and it's experience from this media environment, I wondered, and I thought it would be interesting to embed recordings inside an object, in such a way as to make the sound a part, not the result, of a full experience. I hope there will still be regular media on this creation, but that this will be a derivative, a copy, not the original.
I imagine one day walking up a hill or to a remote spot, and only then, by knowing the times of dusk and dawn, hearing the sounds of the creation. Or as the composer and maker of the device, I would get to travel to it, and fix it, dry it out or re tune it every so often.
Areas of work
In designing this device, I'm trying to keep to the idea that simple is good and that all parts need not be connected so as to sound or result in a coherent experience. I want the sound to reflect the time of year and type of day, in the sense that in a cold, dark, still day, only a couple of notes might play, whereas on a hot or windy day, there would be a symphony of noise lasting several hours. In the style of the Morning and Evening Raga in Indian Classical music, the musical style is different also according to the time of day, and this should be reflected in the way sensor data is interpreted and played back. For example, in a morning raga, the sound starts very gradually, and builds up in speed and volume only towards the end. An evening raga is much more of a performance than a meditation in this sense.
Sensors
Thermistor for the temperature sensing: test and review the one I have, connect to second life. Temperature should change gradually, not more than 12 degrees in a day I am hoping... so this is rhythm, and will dictate the activities of the avatar that will be connected to it. http://www.maplin.co.uk/Module.aspx?moduleno=2218
http://www.arduino.cc/playground/ComponentLib/Thermistor
A light sensor (or 2?) - test should be working - just got a better resistor and connected a piezo to it. It works. Light readings will be connected to the interrupt, so when it wakes, it will measure all the sensors, write them to eeprom, and then based on the light sensor value and it's change from the previous reading, decides whether to wake up and play.
A battery charge sensor: Very simple to make... the tutorial is online somewhere. Based on this it decides for how long it can play a piece, and wether to play a long sound via the wave shield or just a piezo based generative melody using various smaller, individual wave sounds only towards the end.
thermistor - temperature sensing: Trying with a small bead thermistor, out of 3 bought from maplins. Circuit is almost done.
Plant monitor: Built, working a bit randomly... I plan to show this to Marcus Valentine, get it working properly, measure the resistance on a multimeter (borrow one!), and connect it up to the rest of the device.
EMF detector: Built, and giving very random data. Almost a random seed. Need to add smoothing function. Need to disconnect this from the music emission if Serial.available().
Boards and Power Architecture
Boards and Power Architecture
An Arduino Duemilanove to connect to a Lady Ada wave shield. (I will have spare arduino from Mat, and a Seeeduino). Currently developing the sensors on the seeduino and working on the wave shield on the duemila: will have to put it all together at some point!
Find out how much power this shield draws(lady ada forums).
How much time do I want the musical object to play stuff? Half the day yes half no? And how loud? What to play? Current idea is mornings and evenings. But at night, will it be able to charge from small 3v windmills?!
Find out how much power the whole thing draws and if a second circuit can be built to wake it up.
Solar Setup
A solar panel capable of charging enough for power requirements. I looked on solarbotics as well as on Adafruit, but Farnell and other closer ones to the UK (i.e without a 3 week or so delivery time) are probably better.
How much time do I want the musical object to play stuff? Half the day yes half no? And how loud? What to play? Current idea is mornings and evenings. But at night, will it be able to charge from small 3v windmills?!
Find out how much power the whole thing draws and if a second circuit can be built to wake it up.
Solar Setup
A solar panel capable of charging enough for power requirements. I looked on solarbotics as well as on Adafruit, but Farnell and other closer ones to the UK (i.e without a 3 week or so delivery time) are probably better.
Tom Bugs of nearby BugBrand has also given me about 4 of the more modern smaller solar cells, and some diodes, which I have still to test, so as to do a part of this. They are 2 szgd4026 cells (4v, 20mA) and 2 SZGD5020-A cells, around 2v. All together, they can give 12v, if only for a small about of time.
Maybe just the seeduino on it's own would be an accomplishment. I probably will need to get one of the other ones, and power some of it also maybe from the other solar panels I already have.
A way of reducing the power consumption during the night (having only a small battery powered circuit with a timer chip may be a way.
Pseudocode:
Cast an initial drone based on average temperature.
A way of reducing the power consumption during the night (having only a small battery powered circuit with a timer chip may be a way.
1 solar panel from a garden light set, that charges a 3.2v, 250mAh battery, which I have replaced with my rechargeable coin cell battery from coolcomponents (3.7v, 200mAh) , to see if it can deal with it. Stupid? Maybe, but fun!
I also have a variable one that does 3v easily during the entire day, but is quite big.
And finally, given to me by Tom Bugs. I'm guessing a regular AA 3.2v battery can probably charge itself through the day and take readings during the night. The idea with power is to make sure there is always enough of it.
Wave recordings
I built a lady ada wave shield with Marcus Valentine's Help.
It has been running "pi", and works fine with this first test program.
Convert a lot of sample music and backgrounds to the correct format from my external hard drive load up samples via SD card reader.
Get a feel for what sounds good alongside the piezos.
Make some ambient recordings also.
Arduino Sketch
Needs to incorporate interrupts and put arduino to sleep until light level changes. Depending on value of light level it chooses weather to play a melody. http://www.uchobby.com/index.php/2007/11/24/arduino-interrupts/
http://rubenlaguna.com/wp/2008/10/15/arduino-sleep-mode-waking-up-when-receiving-data-on-the-usart/
Data logging needs to use EEPROM functions for read/write.
Needs to be able to select and play from wave shield. If easy, play also some shorter files in different speeds, perhaps for shorter concerts.
Wave recordings
I built a lady ada wave shield with Marcus Valentine's Help.
It has been running "pi", and works fine with this first test program.
Convert a lot of sample music and backgrounds to the correct format from my external hard drive load up samples via SD card reader.
Get a feel for what sounds good alongside the piezos.
Make some ambient recordings also.
Arduino Sketch
Needs to incorporate interrupts and put arduino to sleep until light level changes. Depending on value of light level it chooses weather to play a melody. http://www.uchobby.com/index.php/2007/11/24/arduino-interrupts/
http://rubenlaguna.com/wp/2008/10/15/arduino-sleep-mode-waking-up-when-receiving-data-on-the-usart/
Data logging needs to use EEPROM functions for read/write.
Needs to be able to select and play from wave shield. If easy, play also some shorter files in different speeds, perhaps for shorter concerts.
Pseudocode:
Cast an initial drone based on average temperature.
If connected to a computer, EMF signals are ignored and replaced perhaps by output from Opensimulator, coming back from Ironpython.
(one that slowly moves between averages of readings taken during the night)
duration = readBatterySensor
play(duration)
Play(duration)
choose a wave file to play, or a structure using various shorter wav files if there is very little charge.
read from eeprom some sensor values
play values in descending order.
play a melody with beat, melody values, according to how many sensor readings made since last time.
Problem: what if it loses all it's charge while making readings?
IronPython/Open Simulator Code
This script takes serial readings from the arduino and then sends them to a virtual avatar running via LibOpenMetaverse in the 3d world Open Simulator which is an open source world similar to second life. At the moment, it will be easy to trigger a serial call in the form of a command, such as "get readings", or to play one of the sound sources directly.
(one that slowly moves between averages of readings taken during the night)
duration = readBatterySensor
play(duration)
Play(duration)
choose a wave file to play, or a structure using various shorter wav files if there is very little charge.
read from eeprom some sensor values
play values in descending order.
play a melody with beat, melody values, according to how many sensor readings made since last time.
Problem: what if it loses all it's charge while making readings?
IronPython/Open Simulator Code
This script takes serial readings from the arduino and then sends them to a virtual avatar running via LibOpenMetaverse in the 3d world Open Simulator which is an open source world similar to second life. At the moment, it will be easy to trigger a serial call in the form of a command, such as "get readings", or to play one of the sound sources directly.
This will allow for some form of online interaction with the device when connected to this code via the serial cable (and therefore without issues of battery capacity or song duration! ). The character's user name is Abies Alba, and mine is Nima Macchi on osgrid.org - please come by and say hi if you use these things!
Casing
Some amplification can be done using the shape and texture of clay, wood or plastic. Shape, size and colour will be important aspects.
A suggestion from Tom Bugs is to build it all inside a tube obtained from a hardware shop. Put the solar panel on top, then speaker at bottom and hang it from somewhere. Also there is someone on youtube who has made a balafon from plant pots by securing it in such a way as to allow it to vibrate. Am trying this with wave shield and a small platform with good effect. Plastic, transparent drum skin might be best for light sensor to poke through, and for piezos.
For the Clay part, which I think will be quite important, it is possible to make a DIY kiln, but I've also asked various people and best plan seems to be to go to the art college in clifton and ask to use theirs.
Casing
Some amplification can be done using the shape and texture of clay, wood or plastic. Shape, size and colour will be important aspects.
A suggestion from Tom Bugs is to build it all inside a tube obtained from a hardware shop. Put the solar panel on top, then speaker at bottom and hang it from somewhere. Also there is someone on youtube who has made a balafon from plant pots by securing it in such a way as to allow it to vibrate. Am trying this with wave shield and a small platform with good effect. Plastic, transparent drum skin might be best for light sensor to poke through, and for piezos.
For the Clay part, which I think will be quite important, it is possible to make a DIY kiln, but I've also asked various people and best plan seems to be to go to the art college in clifton and ask to use theirs.
Comments