Photo Booth

I’ve started making a photo booth camera box for a wedding I’ll be going to soon.   I should have been documenting my progress a little earlier, but it’s better late than never.  The top picture below is the front side that the users will see entering the booth.


The picture below is what the inside of the box looks like from the back.



The box is built around a 12″ monitor with capacitive touchscreen that I wasn’t using.  I knew I wanted to use a Raspberry Pi and the Raspberry Pi camera had just come out when I began working on this project, so I thought it would be a great fit.

The first major hurdle was getting the Raspberry Pi to fully use the monitor.  The monitor part only has a VGA input, so I had to get a converter to translate the Pi’s HDMI video into VGA.  Not too bad.  The trickier part was being able to move the cursor by touching the screen.  I am using Raspbian (because it seems to have the most support) and it comes with the source code for many, many drivers; so many that most aren’t compiled into the kernel for the released build.  My monitor uses a 3M Microtouch hardware with serial I/O and fortunately, Raspbian included the 3M uTouch driver code.  I just had to rebuild the kernel which, after much Googling, wasn’t too difficult.  It just took forever (actually about 11 hours) because I had the Pi create the new image. After telling the Pi to use the USB to serial adapter (connected to the touchscreen serial port) as a mouse, I was in business.  The cursor moves with your finger!

Next, I got a Raspberry Pi Camera and it was pretty straightforward.  I use the basic raspistill function to take still pictures.  I did learn that the timeout option is critical.  I’m not sure why it’s necessary, but your pictures will be very dark if you set the timeout to 0.  The best compromise between picture quality (brightness) and speed was setting the timeout to 300 ms.  I still would like to have a function that could keep the camera from shutting down after each shot, like an indefinite time lapse option.

I then got a 2 x 2″ piece of plywood to start the box.  I cut out holes for the monitor, the camera, and the 16 LEDs around the border.  The LEDs are square, 3 color Piranha LEDs that I got from Adafruit.  I used a mortise chisel tool to cut out the small square holes for the LEDs to fit in.

With the front panel mostly complete, I built the sides of the box, drilled the last holes for the EL wire to poke through, and spray painted the box black.  I cut wires and soldered them directly to the LED leads and installed the LEDs into the front panel.  I used 2 PWM 24-channel drivers (also from Adafruit) to drive all 16 of the 3 color LEDs.  Each color of each LED gets its own 12-bit channel.  I know this is probably overkill, but I’m hoping to make some interesting dancing lights.  Getting these to work was very easy with the Pi’s GPIO pins and it is nice that the breakout boards are “daisy-chain”-able.

At this point, I started working with the EL wire.  I learned a couple things: 1, the EL wire inverters make an annoying hum and I didn’t want this to prevent people from using the booth, so I wrapped them in many layers of paper towels and duct tape (as shown in the second picture).  This worked out well.  2, I had planned to use hot glue to attach the formed EL wire directly to the painted plywood surface.  I’ve found that the glue only hold for about a day.  My new strategy is to glue the wire and then use tape to hold it into place.  I may even leave it and just take the tape off the day of the wedding.  If the glue loosens after that, I won’t care as much.

I added a small board with a pair of 12V relays so that I can turn the EL wire on and off using Pi pins.

I think that’s about it for the hardware.  I’ll describe the software in another post.