Stereo Vision and Depth Mapping with Two Raspi Camera Modules

The Raspberry Pi has a port for a camera connector, allowing it to capture 1080p video and stream it to a network without having to deal with the craziness of webcams and the improbability of capturing 1080p video over USB. The Raspberry Pi compute module is a little more advanced; it breaks out two camera connectors, theoretically giving the Raspberry Pi stereo vision and depth mapping. [David Barker] put a compute module and two cameras together making this build a reality.

The use of stereo vision for computer vision and robotics research has been around much longer than other methods of depth mapping like a repurposed Kinect, but so far the hardware to do this has been a little hard to come by. You need two cameras, obviously, but the software techniques are well understood in the relevant literature.

[David] connected two cameras to a Pi compute module and implemented three different versions of the software techniques: one in Python and NumPy, running on an 3GHz x86 box, a version in C, running on x86 and the Pi’s ARM core, and another in assembler for the VideoCore on the Pi. Assembly is the way to go here – on the x86 platform, Python could do the parallax computations in 63 seconds, and C could manage it in 56 milliseconds. On the Pi, C took 1 second, and the VideoCore took 90 milliseconds. This translates to a frame rate of about 12FPS on the Pi, more than enough for some very, very interesting robotics work.

There are some better pictures of what this setup can do over on the Raspi blog. We couldn’t find a link to the software that made this possible, so if anyone has a link, drop it in the comments.

Adding GPIOs To The Raspberry Pi With The Camera Interface


The Raspberry Pi Model B+ was just released, and now everyone who picks one of those up has a few more GPIO pins to play around with. For the millions of people with the two-year-old version of the Pi, we’re still stuck with the same old, same old: 17 GPIOs on the big header, and that’s about it as far as toggling pins goes.

The Broadcom SoC on the Pi has far more GPIO pins than are broken out on the large header, and a few of those go to the CSI camera interface. These GPIOs can be broken out with a few flat cables (Portuguese, Google Translatrix), giving you four more GPIOs, and this technique can also be used with the new, expanded Model B+.

The CSI camera connector has two I²C lines that go directly to the camera, controllable in Linux as GPIO0 and GPIO1. There are two more GPIO connectors on the CSI connector controllable as GPIO5 and GPIO21. By carefully slicing and soldering wires to a flat cable, these GPIO lines can be broken out onto a breadboard.

There’s a video below demonstrating these GPIO lines being used to control a few LEDs. Of course, anything that is possible with a normal Raspi GPIO is possible with the CSI connector GPIO lines.

Continue reading “Adding GPIOs To The Raspberry Pi With The Camera Interface”

Making luminol from household chemicals

What to make your own chemiluminescent material? Check out this process that uses common household goods to synthesize luminol. You’ll need some lab equipment, and [NurdRage] mentions some precautions to take as luminol is not itself toxic, but some of the fumes and intermediary chemicals found during the process are.

Start by cutting up some vinyl gloves and boiling them with some rubbing alcohol to extract diethyl hexyl phthalate. After filtering, that gets boiled with water and some drain cleaner. The goal here is to continue the process until you have pure phthalic anhydride. Almost done? Not even getting started. This is a very complicated process, but fascinating to watch. After the break you’ll find the full video, or a five-minute abridged version for those that just want a taste of this experiment.

When we looked at the quantum dot manufacturing process a couple of days ago we asked for more chemistry hacks. This is exactly what we were talking about and are thankful that [Rob] sent in the tip. Keep them coming!

Continue reading “Making luminol from household chemicals”