At short notice I decided to go to a sci-fi LARP and the organiser asked if I could sort out some 'spooky noises'. I got a bit overenthusiastic and came up with Spookytron 1.0.
This is an Arduino Uno clone, a generic prototyping shield, one of
Adafruit's Wave shields, an opto-isolated relay board and little 1W amp stuffed in a biscuit tin.
This connects over CAT5 cable to four old PC speakers with generic HC-SR501 PIR sensors often sold for DIY projects stuffed in the front.
If a person approaches one of the speakers, sound starts playing on one of the others.
If a person approaches the playing speaker it stops and holds off playing on any of them for thirty seconds.
If it hasn't played for a while it just plays something every now and again.
The SD card is loaded up with spooky sounds. One of the knobs selects between several groups of sounds, one sets the time between random play and the last is the volume.
I took it along to the LARP this weekend and despite it being pretty much thrown together it worked perfectly. We strung about 250m of cable round the site and it played spooky noises overnight through a thunderstorm.
The only things that didn't go quite right were that we put it an area the players didn't approach much so it mostly went off randomly and it wasn't quite loud enough.
The former isn't something easy to deal with and frankly that's what 'random play' is for. The latter will be dealt with before it gets wheeled out again.
I'd also like to improve how it reads the SD card as I'm currently hardcoding the filenames in the Arduino source. Ideally I'd want it to read directories and build the list itself. I was in a hurry when I was writing the code and I wanted it to 'just work'.
If I get really enthusiastic I'll expand it to use eight speakers but I'd need to replace the Uno with a Mega to get the extra lines in/out.