Published on MacDevCenter (
 See this if you're having trouble printing code examples

Digital Photography Hack: A Hands-Free Shooting Rig

by Romain Guy

I love wandering around big cities with my digital camera. I'm amazed at how many interesting things I discover on foot. Incidentally, it's also a great way to capture candids. But neither of my two digital cameras is as well-suited for street shooing as I would like.

The first one, a Canon Digital Rebel XT, is somewhat fragile and valuable, so I keep it safe in a bag until I need it. This means it takes too much time to fire up to capture a decisive moment. My other option is a Canon PowerShot A70. Despite the fact that the A70 is more compact and portable, it's not responsive enough for quick action street shots.

I finally found the solution to my problem. The rig I came up with uses Mac OS X, and depending on the accessories you already have, will cost you from zero to a few dollars. Mac OS X is perfectly suited for this project, as it offers powerful standard tools, such as AppleScript. These tools have helped me think about new ways to record images, not to mention that the Mac platform is easy to work with. In fact, it only took me about an hour to design this system. Before describing how I built it, let's take a look at the final result.

figure 1

This rig allows you to take photographs by saying "Take shot" into the microphone of a Bluetooth headset. The picture itself is taken by an iSight fixed on my shoulder. As voice recognition is not always perfect, especially in a noisy environment like a city, you'll hear "Picture taken" in the headset if everything went fine. Both the headset and the iSight are connected to a 12" PowerBook tucked into the backpack.

figure 2

figure 3

figure 4

figure 5
Digital Photography Pocket Guide

Related Reading

Digital Photography Pocket Guide
By Derrick Story

The Setup

If you're reading this article, chances are good that you already have some of the devices on hand. If not, you can find cheap Bluetooth headsets and webcams on the Web. For instance, my headset is a Logitech Mobile Freedom that you can buy for $40. You can also use a regular headset if your laptop does not provide Bluetooth connectivity, but you'll have to deal with extra wires.

If you are using an iSight, you also have the option to use the built-in microphone with a regular pair of headphones for the audio feedback. I recommend choosing a backpack with a pocket for cell phones, which you can use to fix your iSight. Every iSight comes with a different stand, and the one for laptops and LCD screens fits just fine in the cell phone pocket.

Setting up the hardware is the easiest part. Make sure both the headset and the iSight are plugged into the PowerBook. When you close the lid, the PowerBook goes into sleep mode. You can easily work around this issue with a USB mouse. After the laptop is in sleep mode, just press any button on the mouse. In my case, I keep the mouse in my pocket, just in case the laptop goes to sleep again.

In order to take pictures, you'll have to use the Speech Commands tool bundled with Mac OS X. The first step is to enable it in the Speech preferences panel. In the first tab, entitled Speech Recognition, turn Speakable Items on and select the appropriate sound input device. By default, Speech Commands are activated by pressing a key. We obviously need another solution. Check the "Listen continuously with keyword" option and select "Keyword is Optional before commands."

figure 6

The next step is to create our own speech command. Mac OS X makes it very easy. Create a new AppleScript in the folder ~/Library/Speech/Speakable Items. The name of the script defines the command you'll have to speak to activate it. In my case, I created the following AppleScript, with the name "Take Shot:"

tell application "EvoCam"
  capture now
end tell

delay 1

tell application "Finder"
  set theDate to current date
  set counter to time of theDate
  set the name of file "photo.jpg" to "photo" & counter & ".jpg"
end tell

say "Picture taken"

As you can see, I'm using EvoCam, a nice piece of shareware that Derrick Story introduced me to in his blog entry "Want to do more with an iSight than Chat?" You have 15 days for the trial version, or you can simply buy a license for $25. I set it so that pictures taken from the webcam are saved under the name "photo.jpg" on my desktop. There are many other applications out there that let you capture pictures from your webcam, and any of them will do fine, as long as you can interact with it from your AppleScript.

The rest of the script is pretty straightforward. I introduced a delay after the capture to be sure EvoCam has the time to write the file before AppleScript attempts to rename it. Without it, the script might fail with slower computers. Finally, I provide audio feedback with the internal command "say."

You can now pack your gear and hit the streets. If you notice people staring at you with wild eyes, just ignore them. Or better yet, take their picture!

Digital Photography Hacks

Related Reading

Digital Photography Hacks
100 Industrial-Strength Tips & Tools
By Derrick Story

Going Further

As you can see, Mac OS X makes it very easy to create an innovative way to capture candids. Yet, this rig suffers from three major shortcomings. First the image is low resolution, because you're using a webcam. The iSight fares better than many others, but its image quality is far from what a pocket digital camera can produce. The second problem is the lack of video feedback. Mounting the webcam on your shoulder makes it difficult to aim correctly. Maybe a better way to go is to mount the iSight on a pair of glasses. Finally, the PowerBook heats up very quickly and it might crash while in the backpack.

Each of these issues can be solved quite easily. Instead of a webcam, you can use a real digital camera, if the manufacturer provides remote control software. Both my Digital Rebel XT and A70 ship with very nice remote control software. Just attach your camera on your tripod, and fix it onto your backpack. Some bags even provide special attachments for tripods on the side.

figure 7

Using a digital camera is even a better idea than you might think, for some have a video output plug. Eyetop sells video glasses at a tolerable price; for $400 you can purchase a pair of Eyetop Classic ( glasses. A tiny video screen is mounted on those glasses in front of one of your eyes. Since you can plug the glasses into any video source, be it a digital camera or your PowerBook, you can have video feedback from the shooting device. If you plug the Eyetop into the VGA output of the PowerBook, you can even use a webcam.

The most difficult problem to solve is cooling the PowerBook. As it depends on which model you are using, and into which kind of bag you put it in, I cannot offer you a universal answer. That said, you can try any of many solutions including heat pipes, USB fans, or bags of ice. Whichever solution you choose, it's certain you'll have to add holes in your backpack to help the air flow.

So it looks like we also have an alternative method for moblogging. Instead of using your cell phone as a digital camera, use it as a Bluetooth modem. Connect the phone to Mac OS X, log onto the internet, and hack the script to make it upload each picture taken to an FTP server. Combined with a digital camera, you can now take high-quality pictures on the go and show them live on your web site.

Romain Guy is a French student currently working as an intern with the Swing Team at Sun Microsystems. He has seven years of experience in Java development, as an open source and freelance developer.

Return to the Mac DevCenter

Copyright © 2009 O'Reilly Media, Inc.