This photo booth has better features that make the pictures stand out and is not simply for shooting pictures. In this project, pictures are taken and afterward transformed into lovely GIF visuals using a Camera module controlled by a Raspberry Pi. The best feature is that it will effortlessly and instantly submit the converted GIF photos to your Tumblr account.
Hardware Required
- Raspberry Pi
- Raspberry Pi Camera module
- 5V power adapter including USB A to Micro B cable
- SD card with 8GB or more memory
- 7-inch monitor (HD or SD is your preference)
- HDMI or RCA video cable (depends on the monitor you use) to connect from Pi to your screen
- Power adapter for your monitor
- USB / Wireless keyboard and mouse
- Arcade button with in build 5V LED
- GPIO cables
- Tripod Mount
Please be aware that the Raspberry Pi 3’s TRRS audio adaptor conceals the composite video.
Optional Parts:
The components on the list can be employed to give your photo booth a polished appearance. But how you use it is entirely up to you.
- WiFi adapter in case you need to establish wireless internet connection
- TTL cable to troubleshoot or make changes without disturbing the setup.
- Pi Cobbler
- USB power panel mount
- Ethernet panel mount
- USB port panel mount
Algorithm Of Photo Booth:
- Start the device
- To signal that the device is starting, turn on all of the front LEDs. Then, after a short while, turn them all off.
- Await Arcade button press from the guests.
- The “Get ready” light will begin to flicker once the button is hit, signalling to the guests to prepare.
- On the monitor, show a real-time video preview.
- Ask the visitor to strike a pose for the camera by briefly blinking the “Pose” LED.
- Take a picture and save it in the.jpg format with a time stamp in the filename.
- Repeat four times
- Process each image that was taken.
- The uploading light will now blink to show that the photo has been submitted to Tumblr.
- Animate all four images into a single GIF.
- To Tumblr, post the converted GIF image.
- The “Uploading” light should stop flashing, and the “Done” light should stay on for a short while.
- Guests can view the results of their picture session by playing the GIF images on the screen a few times.
- Wait for another Arcade button to be pressed.
- Once finished, turn off the Raspberry Pi.
Circuit Design:
Here is a concept for a photo booth that demonstrates how to connect an optional TTL cable and an LED-integrated arcade button. Similar LED connections should be made to the Pi’s GPIOs (Omitted in the design).
Setting Up The Photo Booth:
I made the choice to put all the required components together inside a wooden box. This will offer my project a wonderful authentic photo booth look. I attached the Pi to a glass panel, linked the other pieces, and put everything together within the wooden box.
Make sure the setup is stable by mounting everything on a tripod. For this, a PA speaker mount is another option that delivers a high level of stability. Additionally, put it in a convenient location for guests to pose for pictures. Create a comfortable lighting environment for the visitors.
Setting Up The Raspberry Pi:
- If you are just getting started with your Pi, first of all you need to install Noobs on the SD card
- Now you need to configure your Pi to display video preview in the monitor
- For that you need to edit a config file
sudo nano /boot/config.txt Comment out the below line # hdmi_force_hotplug=1 |
In order to get decent-looking video on your screen, you may also need to make further changes to this configuration file’s settings. Here are the modifications I made to my configuration file.
start_x=1 gpu_mem=128 framebuffer_width=800 framebuffer_height=480 sdtv_aspect=3 disable_camera_led=1 |
- Here is a nice tutorial on booting your Pi directly into a GUI desktop . Disable the screen saver by editing the GUI session autostart
sudo nano ~/.config/lxsession/LXDE-pi/autostart |
- And add the following in the autostart file :
@xset s 0 0 @xset s noblank @xset s noexpose @xset dpms 0 0 0 |
Taking Photos:
Front View Of Photo Booth
- When the Raspberry Pi is off, connect the camera to it. Start it up now, and then set it up initially by follow these instructions. I have employed PiCamera as a means of camera control. PiCamera can be installed from this Here
Creating Animated Gif Images:
This project uses GraphicsMagick to convert the images captured to animated Gif. Follow these installation instructions to get it installed in your Raspberry Pi. But the following should work fine as well
sudo apt-get install graphicsmagick |
- After a successful installation, place some photos in your directory and use the following code to check GraphicsMagick’s functionality.
gm convert -delay 100 *.jpg joined.gif |
Uploading To Tumblr:
Pytumblr and the Tumblr API are the two apps you need to upload the captured photos from Pi to internet. To get Pytumblr follow these steps
- First install PIP somewhere on your Pi.
- Open the terminal and navigate to PIP folder you downloaded and moved to Pi, now run the below code:
sudo python get-pip.py |
- Download Pytumblr and copy the files to your Pi. Now unzip the obtained file into your Pi
wget “https://github.com/tumblr/pytumblr/archive/master.zip” |
- Navigate to Pytumblr master folder and run the below command to install it
sudo python setup.py install |
Final Code:
The complete code is available on GitHub. A few variables have to be changed based on the information from your device. Change anything you want and save it wherever you choose. I’ve put the code in a folder with the name
/home/pi/photobooth/ |
Now we need to get the code running on your Raspberry Pi once at the start up. Here is a nice tutorial that could guide you to do it.
sudo nano /etc/xdg/autostart/myscript.desktop |
And now save something like the following:
[Desktop Entry] Type=Application Comment=Start my script NoDisplay=false Exec=sudo python /home/pi/photobooth/drumminhands_photobooth.py NotShowIn=GNOME;KDE;XFCE; Name[en_US]= drumminhands_photobooth.py |
The DIY Photo Booth Building Tutorial is now complete. We MATHA ELECTRONICS will be back soon with more informative blogs