Christian Duell (@whitelightau), a friend of mine, was part of a Green Nation / sustainable living exhibition. He designed a huge “Grow Wild” sign with letters that grew out of moss. The sign is made out of wood and embodies soil, moss and a watering system to keep its ecosystem alive. The signage itself was lasercutted so the moss is shaped by a nice typography.
Christian asked me to help him pimp up the sign with an interactive element. The idea was to install a backlight, which would illuminate the sign from behind when someone approaches it:
Maxsonar distance sensors come in different versions. We went with the EZ1 (which is the wideangle version), so the whole width of the sign would be covered. Checkout the Sparkfun sensor selection guide for more info.
In regards to RGB LED-strips, you again have different options depending on how long and bright you need the strip to be. To cover the entire frame of our sign and to make it as bright as possible we used the 5m / 60 LEDs per meter version from Adafruit. For smaller projects you might as well for example use a 1m strip / 30 LEDs per meter strip.
You’ll also need 3x N-channel MOSFETs (i.e. one to control each RGB LED channel of the strip), as the strip runs on 12V and Arduino analog outs are only 3.3V).
Ladyada has a great tutorial on how to hook up the RGB LED Strip to the Arduino. I combined her circuit with the EZ1 proximity sensor attached to pin 7 set as digital in. The pulse width measured by pin 7 is proportional to the distance measured by the proximity sensor. According to this blogpost it’s 58uS per cm.
Now that you have the proximity sensor as well as LED strip going, the last thing to do is to map the distance value to the brightness of the LEDs. The distance is measured thousands of times a second, so in order to avoid noise measurements being reflected onto the LEDs, I included a code-snipplet that controls the LED brightness in 10cm distance thresholds, as well as transitions the brightness smoothly between the thresholds.
Find the source code of this project on github: https://github.com/markbil/GrowWild_ProximitySensitiveSign