Skip to main content
Pibooth

The pibooth project attempts to provide a photo booth application out-of-the-box in pure Python for Raspberry Pi.

Requirements

The requirements listed below are the one used for the development of pibooth, but other configuration may work fine. All hardware buttons, lights and printer are optional, the application can be entirely controlled using a standard keyboard.

Hardware

  • 1 Raspberry Pi 2 Model B (or higher)

  • 1 Camera (Pi Camera v2.1 8 MP 1080p or any camera compatible with gPhoto2)

  • 2 push buttons

  • 4 LEDs

  • 4 resistors of 100 Ohm

  • 1 printer

Software

  • Python 3.5.3

  • RPi.GPIO 0.6.3

  • picamera 1.13

  • Pillow 4.0.0

  • pygame 1.9.3

  • gphoto2 1.8.0 ( libgphoto2 2.5.15 )

  • pycups 1.9.73 ( CUPS 2.2.1 )

Install

A brief description on how to set-up a Raspberry Pi to use this software.

  1. Download latest Raspbian image and set-up an SD-card. You can follow these instructions .

  2. Insert the SD-card into the Raspberry Pi and fire it up. Use the raspi-config tool that is shown automatically on the first boot to configure your system (e.g., expand partition, change hostname, password, enable SSH, configure to boot into GUI, etc.).

  3. Reboot and open a terminal. Install the latest firmware version:

    $ sudo rpi-update
  4. Upgrade all installed software:

    $ sudo apt-get update
    $ sudo apt-get upgrade
  5. Optionally install gPhoto2 (required only for external camera):

    $ sudo wget raw.github.com/gonzalo/gphoto2-updater/master/gphoto2-updater.sh
    $ sudo chmod 755 gphoto2-updater.sh
    $ sudo ./gphoto2-updater.sh
  6. Optionally install CUPS to handle printers (more instruction to add a new printer can be found here):

    $ sudo apt-get install cups libcups2-dev
  7. Install pibooth from the pypi repository:

    $ sudo pip3 install pibooth

Run

Start the photo booth application using the command:

$ pibooth

All pictures taken are stored in a subfolder of the one defined in the configuration, named YYYY-mm-dd hh-mm-ss which the time when first picture of the sequence was taken.

Note that if you have both Pi and gPhoto2 cameras connected to the Raspberry Pi, both are used. The preview is taken using the Pi one for a better video rendering and the capture is taken using the gPhoto2 one for better picture rendering.

You can display a basic help on application options by using the command:

$ pibooth --help

Commands

After the graphical interface is started, the following actions are available:

Action

Keyboard key

Physical button

Toggle Full screen

Ctrl + F

-

Choose layout

LEFT or RIGHT

Button 1 or Button 2

Take pictures

P

Button 1

Export Printer/Cloud

Ctrl + E

Button 2

Quit

ESC

-

States and lights management

The application follows the states sequence defined in the diagram below:

State sequence

The states of the LED 1 and LED 2 are modified depending on the actions available for the user. The LED 3 is switched on when the application starts and the LED 4 is switched on during the preview and photo capture.

Final picture rendering

The pibooth application handle the rendering of the final picture using 2 variables defined in the configuration (see Configuration below):

  • [CAMERA][resolution] = (width, height) is the resolution of the captured picture in pixels. As explained in the configuration file, the preview size is directly dependent from this parameter.

  • [PICTURE][orientation] = auto/landscape/portrait is the orientation of the final picture (after concatenation of all captures). If the value is auto, the orientation is automatically chosen depending on the resolution.

Install developing version

If you want to use an unofficial version of the pibooth application, you need to work from a clone of this git repository. Replace the step 7. of the Install procedure above by the following actions:

  • clone from github

    $ git clone https://github.com/werdeil/pibooth.git
  • go in the cloned directory

    $ cd pibooth
  • install pibooth in editable mode

    $ pip3 install -e . --user
  • start the application exactly in the same way as installed from pypi. All modifications performed in the cloned repository are taken into account when the application starts.

Configuration

At the first run, a configuration file is generated in ~/.config/pibooth/pibooth.cfg which permits to configure the behavior of the application. The configuration can be easily edited using the command:

$ pibooth --config

The default configuration can be restored with the command (strongly recommended when upgrading pibooth):

$ pibooth --reset

See the default configuration file for further details.

Printer configuration

Here is the default configuration used in CUPS, this may depend on the printer used:

Options

Value

Media Size

10cm x 15cm

Color Model

CMYK

Media Type

Glossy Photo Paper

Resolution

Automatic

2-Sided Printing

Off

Shrink page …

Shrink (print the whole page)

Circuit diagram

Here is the diagram for hardware connections. Please refer to the configuration to known the default pins used.

Electronic sketch

Credits

Icons from the Noun Project

  • Thumb up by Symbolon

  • Polaroid by icon 54

  • Cat by Внталий Плут

  • Up hand drawn arrow by Kid A

  • Cameraman and Friends Posing For Camera by Gan Khoon Lay

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pibooth-1.0.2-py2.py3-none-any.whl (1.3 MB view details)

Uploaded Python 2Python 3

File details

Details for the file pibooth-1.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pibooth-1.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.5.1 requests-toolbelt/0.8.0 tqdm/4.19.4 CPython/2.7.10

File hashes

Hashes for pibooth-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8da58d8cf4a7f9c3bd9ca67b8addbdaa9f6e802548f0d7b09bdd1b3cd406fbe0
MD5 75003cadacacd98b1bf6e0997878ad21
BLAKE2b-256 8fe55ddb5618cc0fcf9e8f4bdff68885779ef43c0f5424ab045d71dacab755e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page