Mike Powell, Technical Development Manager, PiFace Control and Display, element14 – explores Hollywood effects with the Pi
When Dr Andrew Robinson created PiFace Control and Display, a new add on board for Raspberry Pi he had no idea it would enable the recreation of the iconic Hollywood 'bullet time' effect popularised by The Matrix film. PiFace Control and Display sits neatly on top of the Raspberry Pi to allow users to interact with the credit card sized computer without the need for a monitor, keyboard and mouse; perfect for the ambitious project which required a ring of 48 Raspberry Pis!
PiFace Control and Display is a device that provides users with buttons and a navigation wheel to control applications, and an LCD display to show menus and status information. The supplied libraries and sample code make it easy to program in Python making rapid development of embedded applications a breeze. It's also possible to add the display of status information and interactive menu functionality to an existing Python application in minutes with PiFace Control and Display.
By separating the Raspberry Pi from the traditional monitor, keyboard and mouse combination, PiFace Control and Display can improve mobility, saves valuable space and power and means the credit card sized computer can be used in many different locations. PiFace Control and Display also provides an infra-red receiver to allow applications to be controlled by IR remote controls.
I designed PiFace Control and Display to help people use the power of Raspberry Pi in their own standalone applications. I'd envisioned it being used to build applications like Internet Radios and in prototyping of industrial control,” said Dr Andrew Robinson, creator of PiFace Control and Display.
One of the many demo applications provided for PiFace Control and Display is a camera interface that turned the Raspberry Pi and associated camera into a simple point and shoot camera with options for image processing. It was this application that would form the basis for creating the bullet time effect.
Andrew continued: “We already had started playing with time in the simple camera application, as it had a time-lapse mode. Ever since I'd seen in the film The Matrix and a BBC documentary called Supernatural: The Unseen Powers of Animals I wondered how hard could it be to recreate the amazing effects.”
The effect, called Bullet Time, or Time-slice, consists of taking a number of pictures from multiple cameras at the same time, but playing them back one after another. Because all the frames are taken at exactly the same time from different views but shown in order, it gives the effect of moving around a scene while time is frozen. The project was fairly involved requiring a three metre ring of 48 Raspberry Pi’s, half a kilometre of network cable and a few industrial network switches!
“When we fired it up and got the first images back I was amazed when it worked, The Raspberry Pi had frozen time, recreating a Hollywood effect for a fraction of the cost,” Andrew said. The results are shown in this YouTube video: http://youtu.be/IqoA4HeBCQ4?t=2m19s
In setting up the rig PiFace Control and Display proved essential for debugging by showing what was happening on each Raspberry Pi, and enabling push switches to trigger actions and see status without plugging in a monitor, particularly when network connectivity failed.
Clearly not everyone can build a rig of 48 cameras, but PiFace Control and Display makes it easy to build applications such as a time-lapse camera. That way instead of freezing time with the bullet time effect, it's possible to speed it up with a time-lapse as shown in this blog post.
Further demos of how easy and what can be created with PiFace Control and Display, including an Internet Radio, currency converter, radio and train times guide and even simple games, are available from the PiFace website.
Technical details for the bullet time setup:
• 48 Raspberry Pi Model Bs
• 48 Raspberry Pi Cameras
• 48 PiFace Control and Display
• 48 NOOBS SD cards
• 48 5V PSU
• About half a kilometre of network cable
• 2 x 24 port switches
• 1 wireless router
• Custom laser cut frame
• Python script listening to receive command to take picture (included in snap-camera package) https://github.com/piface/snap-camera
• Python script to collect images over network and assemble frames in order