Details on how I built my custom wedding photo booth using a Nikon D3100 camera I already had, a Raspberry Pi, the official Raspberry Pi 7 inch touchscreen, a Raspberry Pi camera and some basic shelving pieces from a local hardware store. I was really happy with the result and I got some great pictures from my custom wedding photo booth.
Writing the wedding photo booth software
I already had my Nikon D3100 camera, a spare Raspberry Pi and a spare Raspberry Pi camera and so I started this project experimenting with use of libgphoto2 and the python bindings to take snapshots using the camera and store them on the Raspberry Pi. Although a little slow, I could take pictures reliably and so I decided to purchase one of the official Raspberry Pi 7″ touchscreens (here).
I wrote the photo booth software using python and the pygame library. I used the following code to take pictures:
os.system("gphoto2 --capture-image-and-download --keep --filename 'photos/" + file_name + "'")
os.system("export LD_LIBRARY_PATH=/usr/local/lib; epeg -w " + str(SCREEN_WIDTH) + " -h " + str(SCREEN_HEIGHT) + " 'photos/" + file_name + "' " + TMP_PHOTO_PATH)
Note that here I am using epeg which is a fast jpg resizer to resize any images taken on the camera. I did this to ensure I could keep a good frame rate using pygame. I kept the original large photos on the Raspberry Pi SD card for distribution afterwards.
You can find plenty of tutorials on drawing the Raspberry Pi image stream on the screen using pygame. There is a simple solution on this stack overflow page: https://stackoverflow.com/questions/27805077/display-io-stream-from-raspberry-pi-camera-as-video-in-pygame. I wrote a simple app to add a screensaver (with an image saying “Take a photo!”, a preview screen (using a quick still taken from the Raspberry Pi camera), a flash (make the screen all white before taking the photo using the camera) and a capture screen showing the captured image.
There is a great compiler and installer script here to make the process of installing libgphoto2 really straight forward here on GitHub with usage instructions: https://github.com/gonzalo/gphoto2-updater
If it has all installed correctly, you can plug in your camera using a usb cable and use the following command to detect your camera gphoto2 –auto-detect. It should list your camera model and you can then take a picture using this command: gphoto2 –capture-image-and-download –filename image.jpg.
Building the Booth
I build the booth using furniture board (pine I think) from a local hardware store. I wanted to get an isosceles trapezoid shape and was happy with the result. I started by measuring my camera and the raspberry pi components whilst also trying to leave room for a small extension cable to power everything.
The construction of the booth was fairly basic, I cut holes for the screen and camera lens and I used magnetic clips to keep the back cover on. I also cut a large hole in the back to feed a power cable through and for ventilation to ensure it didn’t all get too hot. I also put a shelf in the middle to support the camera and lens.
Putting it on a stand
I later drilled a 35mm hole and glued a few bits of wood together to allow me to stick the photo booth on top of a standard PA speaker stand. These are fairly cheap and easy to get hold of and it meant I could be sure the photo booth would be stable and adjust the height as required. I also got a video LED light and attached this to the stand on the day for a bit of additional lighting in the photos.
If I did this again, I would probably order a 35mm top hat and screw that into the bottom.