I'm very interested in your project.... please tell me more about it!
Here's a quick rundown. I had bigger plans but as usual, ran out of time. But what I got working was a big success and it ran automatically all night so that I did not have to 'babysit' it.
Equipment
- Canon Powershot Camera (in my case a G10 - which has a hot shoe for a flash - see below for more about that)
- Canon 270EX II Flash unit
- Raspberry Pi 2 (you could use an original Pi but the faster one is nicer when displaying images)
- PifFace digital I/O expander
- a small portable wireless keyboard/mouse combo unit
- a 14" TV with HDMI input
- a 27" TV with HDMI input
- an HDMI splitter
- Several LED flood lights (available from most hardware stores like Home Depot)
- Tripods (for camera and LED flood lights
- an "Easy" button from Staples
- assorted A/C power supplies for the camera & flash unit, power cords, and cables.
- a curtained off area
- a huge box of costume props
In my setup, the camera was setup to autoboot CHDK but all the control logic resided in the Raspberry Pi.
The Pi ran a Raspian Wheezy image. There was nothing specific about that, it's just what I had. I installed the feh package and used it to display images. I then set it up to build chdkptp from source on the Pi, so I had to download and install the IUP and CD development stuff. In hindsight, I'm not sure this was strictly necessary - reyalp's pre-built version would probably have been enough. But when I started I planned to integrate the photobooth code fairly closely with chdkptp. As I ran out of time, I started just invoking it from the command line (using C's system() call) to tell the camera to shoot and download. So the whole chdkptp gui was not needed - but I did not know that when I started out.
The basic setup was :
- the "Easy" button was modified/converted to be a N.O. dry contact switch that was used to start the photo sequence when pressed
- the button was wired to a digital input on the PiFace board
- the PiFace board also controls a second relay that switches line voltage, turning on & off the flood lights
- the raspberry pi is connected to the camera using a standard USB cable
- the wireless remote connects via a USB dongle to the Pi
- the two monitors are connected to the HDMI output of the Pi via a HDMI "splitter"
- the smaller monitor is turned to face the people in the photobooth
- the larger monitor is positioned outside the photobooth so that everyone can see what it happening.
I suppose I could draw a diagram of this at some point.
I've attached the C code that I used on the Pi. It's not elegant and could have been done in other ways (including Lua under chdkptp). All I'll say is that for me, it was the fastest way to get the code working as I ran out of time. I did all the development work directly on the Pi - another time saver.
Basic functionality is :
- Runs in slideshow mode when system is idle - sending random images from the session to both monitors
- When someone presses the "Easy" button, it starts the shooting sequence
- Shooting sequence consists of a series of "slides" or fixed graphics
- The first slide tells people to press the button while looping through a live image of the current scene
- Once the button is pressed, the screen counts down from 5 using slides with large numbers
- At the start of the countdown, the photo flood lights turn on.
- The camera shoots four times
- the photo flood lights turn off
- The resulting images are assembled on an image strip and displayed.
- The script goes back to step 2 (above)
- If nothing happens for a while, the script goes back to step 1
Notes about Lighting- Lighting can be tricky and was the biggest challenge.
- There are many photobooth web pages online giving lots of advice about lighting. Most of it is not very good.
- I started using really bright LED construction flood lights from Home Depot
- The LED's photolamps don't mind being cycled on/off. That's why I used them instead of cheaper halogen bulbs
- the effect on people of turning the lamps on when the camera was ready to shoot was beneficial
- The LED flood lights were barely adequate at maximum aperture, ISO 800, and 1/30 second shutter speed. This was too slow to freeze motion if someone moves, and ISO800 on my G10 is very noisy.
- I reverted to using my external flash unit in addition to the LED lamps. The flash was mounted above the camera to minimize red-eye. If there had been a ceiling in the venue, I would have tried bouncing the light off that.
- My original concern about the flash unit was battery life as I don't have an AC power supply for it. I had lots of spare batteries but the original set lasted the night.
Notes about the booth : Pay attention early to the background in your booth. I got lucky on this project as the venue we used had portable black curtain room divider that we were able to use to setup a "booth". However, in a few shots, people succeeded in kicking the curtains and separating them, resulting in a visible seam behind them. Quite annoying.
I'm sure there are a few hundred details that I've ommitted here. That's pretty typical in a "one off" project where you just need to get it going and start to run out of time. And you always run out of time, don't you? In any case, these are just some pointers - half the fun of doing this is making up your own system.