Using Arduino to create sound & lighting effects for a dinosaur theme park

here is a video I made to showcase the sound and lighting special effects I designed and built for a dinosaur theme park in New Jersey that I work at called Field Station: Dinosaurs. In the Fall, we run a special presentation at night called "Dinosaurs After Dark" where we do the guided tours and other special activities exclusive to these night-time hours. The premise had been that the T-Rex is on the loose and everyone needs to keep a lookout for clues to figure out where it might've gone... like a pile of bones, a dead dinosaur, footprints in a certain direction, etc. As an electronics nerd, I knew I could come up with something that would enhance the experience, so I thought, why not have a motion sensor hidden somewhere, so that when the guests walk through and activate it, the lights flicker and zapping noises play over a hidden speaker, signifying that the T-Rex had just torn through the power system and now everyone must rely on their lanterns and flashlights the rest of the way.

It was lots of fun, every Dinosaurs After Dark event was a success and we ended up selling out towards the end of the run, right up to Halloween. I used an Arduino Nano, which connects to a DFPlayer Mini via two-wire serial connection to play the mp3 of zapping noises, 4 other GPIO pins, 3 with PWM to animate some high-output LED floodlights via transistor array (the fourth would signal an indicator light on a switch box to reset the system after the motion sensor went off) Also, figuring out how to tie in the motion sensor was a fun challenge - I got ahold of some home/building-mounted motion detectors, but these were "low voltage" models, so instead of wiring 120VAC "mains" electric to them, and connecting a light to the "load" wire (motion sensor trips -> load wire becomes "hot" and powers a light to illuminate the area) these sensors run on 12VDC, and as such, the "load" wire goes HIGH at 12 volts when it detects motion. I had to turn 12 volts into 5 volts for the input pin on the Nano, but instead of any regulators or zener diodes, I just used a voltage-divider using two moderately high-value resistors. Since GPIO pins set as input go into a high-impedance state, they don't act as a big load at all when voltage is applied. Having two resistors divide the voltage from 12v to ground, and tapping in between them to get the 5v (it was closer to 4.5v) worked just fine.

I wish the protoboard I soldered the whole thing to didn't end up looking so sloppy and if I had the chance to do it again, I'd certainly design and have a PCB made, since they are so cheap nowadays. But the bottom line is, it works, and it'll be ready to go next Fall!