Skip to content
/ pibooth Public
forked from pibooth/pibooth

The pibooth project provides a Photo Booth application out-of-the-box for Raspberry Pi

License

Notifications You must be signed in to change notification settings

vdubuk/pibooth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pibooth

The pibooth project attempts to provide a photobooth application out-of-the-box in pure Python for Raspberry Pi. Have a look to the wiki to discover some realizations from GitHub users.

Settings

Requirements

The requirements listed below are the ones 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 keyboard, a mouse or a touchsceen.

Hardware

Software

  • Raspbian Buster with desktop and recommended software
  • Python 3.5.3
  • libgphoto2 2.5.23
  • libcups 2.2.1

Install

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

  1. Download the 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 to configure your system (e.g., expand partition, change hostname, password, enable SSH, configure to boot into GUI, etc.).

    Hint

    Don't forget to enable the camera in raspi-config.

  3. Upgrade all installed software:

    $ sudo apt-get update
    $ sudo apt-get upgrade
    
  4. Optionally install the last stable gPhoto2 version (required only for DSLR camera):

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

    $ sudo apt-get install cups libcups2-dev
    
  6. Optionally install OpenCV to improve images generation efficiency:

    $ sudo apt-get install python3-opencv
    
  7. Install pibooth from the pypi repository:

    $ sudo pip3 install pibooth
    

    Hint

    If you don't have gPhoto2 and/or CUPS installed (steps 5. and/or 6. skipped), use the --no-deps option to avoid installation failures (you may need to install Python dependencies by yourself)

Note

an editable/customizable version of pibooth can be installed by following these instructions . Be aware that the code on the master branch may be unstable.

Run

Start the photobooth application using the command:

$ pibooth

All pictures taken are stored in the folder defined in [GENERAL][directory]. They are named YYYY-mm-dd-hh-mm-ss_pibooth.jpg which is the time when first capture of the sequence was taken. A subfolder raw/YYYY-mm-dd-hh-mm-ss is created to store the single raw captures.

Note

if you have both Pi and DSLR cameras connected to the Raspberry Pi, both are used, this is called the Hybrid mode. The preview is taken using the Pi one for a better video rendering and the capture is taken using the DSLR one for better picture rendering.

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

$ pibooth --help

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.

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
Open/close settings ESC Button 1 + Button 2
Select option UP or DOWN Button 1
Change option value LEFT or RIGHT Button 2

A word about capture effects

Image effects can be applied on the capture using the [PICTURE][effect] variable defined in the configuration.

[PICTURE]

# Effect applied on all captures
captures_effects = film

Instead of one effect name, a list of names can be provided. In this case, the effects are applied sequentially on the captures sequence.

[PICTURE]

# Define a rolling sequence of effects. For each capture the corresponding effect is applied.
captures_effects = ('film', 'cartoon', 'washedout', 'film')

Have a look to the predefined effects available depending on the camera used:

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.

Note

The resolution is an important parameter, it is responsible for the quality of the final picture. Have a look to picamera possible resolutions .

The fonts used on the final picture can be customized using the configuration key [PICTURE][fonts].

[PICTURE]

# Same font applied on footer_text1 and footer_text2
text_fonts = Amatic-Bold

This key can take two name/path/url:

[PICTURE]

# 'arial' font applied on footer_text1, 'Roboto-BoldItalic' font on footer_text2
text_fonts = ('arial', 'Roboto-BoldItalic')

The available fonts can be listed using the following the command:

$ pibooth --fonts

Configuration

At the first run, a configuration file is generated in ~/.config/pibooth/pibooth.cfg which permits to configure the behavior of the application.

A quick configuration GUI menu (see Commands ) gives access to the most common options:

Settings

More options are available by editing the configuration file which is easily done 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)

Note

The print button (see Commands) and print states are automatically deactivated if:

  • pycups is not installed
  • no printer configured in CUPS

Circuit diagram

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

Electronic sketch

Credits

Icons from the Noun Project

  • Polaroid by icon 54
  • Up hand drawn arrow by Kid A
  • Cameraman and Friends Posing For Camera by Gan Khoon Lay

About

The pibooth project provides a Photo Booth application out-of-the-box for Raspberry Pi

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.8%
  • Shell 1.2%