Drumminhands Design posted this great DIY tutorial on building your own Raspberry Pi photo booth. This would be perfect for any type of family gathering, wedding, or party.
This post begins with a story. My wife started grad school in the Fall of 2012 at the Cooperstown Graduate Program. We moved to Cooperstown, NY in the summer of 2012. Given the two-year program, it gave me a two-year duration for a photo project. I decided to use the iPhone app PocketBooth to take photo strips of people that we would meet in those two years. Of course this was before the word “selfie” was used all the time. It turned into a fun project. I printed the strips and hung them in our house as the number grew. Then, on the night of graduation, I brought the exhibit to their reception. It went over very well. I then posted the photos online on Flickr.
Overall I was happy with the project. I was constantly surprised at how easy it was to get people to smile and let loose in front of a camera when it’s a photo booth. However, it was very time intensive. I had to take my phone out of my pocket, open the app, take the photo strips, save the strips to my computer, print out the strips, cut the strips, and then hang them on the exhibit. Part of the beauty of the original photo booths is they were automated.
So then I decided to make an automated photo booth for my wife’s graduation reception—a bit of a guerrilla exhibit. It sounded like fun. I had been playing around with the Raspberry Pi for a bit, so this seemed like a great use for the camera module.
So the goal was to make an easy to use photo booth for guests at an event. Then turn the photos into an animated gif and automatically post it online for easy sharing.
I began with a notebook sketch of the idea, algorithm, and construction. See here. Then I researched other photo booths out there for inspiration. Then I started wiring, coding, and testing. Once I had the parts working, then I built the enclosure.
Here is the basic algorithm:
- Set the device on top of a camera tripod and point it at a good location for guests to stand
- Make sure there will be good lighting on the guests
- Power up the device
- Light up all the lights on the front for a bit to show that it’s running, then turn them off
- Await a button press
- Big button press
- Once the button is pressed, blink the first light for a few seconds, telling the guests to get ready
- Show the real time video preview on the screen
- Take four pictures
- Light up the “Pose” light
- Take a photo and save as a .jpg with a timestamp in the filename
- Repeat four times
- Process the images
- Turn off the preview monitor
- Blink the “Uploading” light
- Combine the four jpgs into a new animated gif (consider adding a footer to all the pics)
- Upload to Tumblr (since Tumblr natively handles animated gifs)
- Stop blinking the light
- Light the “Done” light for a few seconds
- Replay the images on the screen a few times for instant gratification of the guests
- Await another button press
- Have another button in the system, and if it is pressed shutdown the Raspberry Pi safely. Light all the LEDs first as a clue to when it’s safe to turn off the system.
- Exit (optional)
- Have a third button in the system, if it is pressed exit the python program but don’t shutdown the Raspberry Pi. I used this a lot when developing the code, but it’s not necessary if you aren’t tweaking the code often.
Featured Adafruit Products!
Raspberry Pi Camera Board: The Raspberry Pi Camera Module is a custom designed add-on for Raspberry Pi. It attaches to Raspberry Pi by way of one of the two small sockets on the board upper surface. This interface uses the dedicated CSI interface, which was designed especially for interfacing to cameras. The CSI bus is capable of extremely high data rates, and it exclusively carries pixel data. Read more.
HDMI 4 Pi – 7″ Display 1280×800 (720p) IPS – HDMI/VGA/PAL/NTSC: Yes, this is an adorable small HDMI television with incredibly high resolution! We tried to get the smallest possible HDMI/VGA display with high-res, high-contrast visibility. The visible display measures only 7″ (17.8cm) diagonal, and the TFT comes in an enclosure with HDMI, VGA and Composite inputs. The display is very easy to use – simply connect the included 12VDC adapter to the 2.1mm center-positive DC jack, then connect a digital video source to one of the ports. Voila, a television display! There’s some little buttons on the front that let you enter a menu system for adjusting brightness, color and contrast. It auto-detects which input you have and switches to that one or you can ‘select’ from the menu which to display. It comes with a basic stand (shown) and there are four ‘mounting thread’ holes in the back in a 75mmx75mm square and you can use M4 screws to attach it to an enclosure. There’s also a “Camera Mount” 1/4-20 hole in the bottom so you can attach it to a camera-ready mount. Read more.
Massive Arcade Button with LED – 100mm Red: OMG WATCH OUT! This 100mm diameter arcade button with a 10mm deep plastic base is so massive and inviting it may collapse upon itself and form a black hole from which not even light can escape! Until it does, however, it ready for all sorts of pressing and pushing. Science has shown no one can resist pressing its shiny surface and saying “beep!”. We’ve seen these on some games of skill in arcades, they’re easy to mount on nearly any kind of enclosure. They’re not waterproof or weatherproof, so best used indoors. Read more.
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!
Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.
Join us every Wednesday night at 8pm ET for Ask an Engineer!
Learn resistor values with Mho’s Resistance or get the best electronics calculator for engineers “Circuit Playground” – Adafruit’s Apps!
No comments yet.
Sorry, the comment form is closed at this time.