Ok, so like many nerds, I had to have a Raspberry Pi in my life. It is a great piece of technology begging for an application. It has some worthwhile graphics hardware, as well as some reasonable processing power. It wasn’t long before I figured out what I wanted to do. Make a project based game system with an awesome computer vision component!
First, I started with an AAXA pico projector, which can run for about an hour off of its battery, and has a decent display resolution. It also has an HDMI port, which the Pi can use. Next, I found an external cell phone battery charger that connected to micro USB to power the Pi itself. Finally, I took an old webcam that I had lying around, and voila, I had the hardware for a portable, projector based gaming system. Now I just needed some software to run on it.
Thankfully, I had a couple of options. First of all, I did manage to get OpenCV packages to install on Raspbian. As you can imagine, many of the OpenCV demos did not run blazingly fast on the Pi, but I could see the potential. Because all I really wanted was a proof of concept, I discovered that I could get PyGame’s built in camera module working quickly. So, I put together some frankencode from this guy’s PyGame camera tutorial and a Python pong demo. Of course, I cheated by making the camera just follow the white in my socks, but you get the idea. If I had more time to put into a complicated OpenCV algorithm, I could make it track arbitrary feet. This seems to work at a few frames a second, which, if we were to add some interpolation, could be fast enough to interact with some basic games. Here is the result:
Please forgive the bad video capture. But you can imagine the possibilities. All of the parts were portable and light weight. We could potentially package all of these parts together into a single sleek case (I’m thinking a small, white pyramid, but I guess I’ll leave that to the designers). Kids could bring this around the house and interact with it on floors and walls.