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.

Simple LED Project to Spice Up Your Halloween Party

[Paul’s] project is a great example of how you can take a simple project and turn it into something more interesting. He built himself a jack-o-lantern with an Internet controlled RGB LED embedded inside.

[Paul] first wired up an RGB LED to a Raspberry Pi. He was sure to wire up each color using a 100ohm resistor to prevent the LED from burning out. The web interface was written in Python. The interface is pretty simple. It consists of three text fields. The user enters a value between 0 and 255 for each of the three LED colors. The program then lights up the LED accordingly.

[Paul] realized he would need a diffuser for the LED in order to really see the blended colors properly. Instead of using a common solution like a ping-pong ball, he opted to get festive and use a plastic jack-o-lantern. [Paul] removed the original incandescent bulb from the lantern and mounted the LED inside instead. The inside of the pumpkin is painted white, so it easily diffuses the light. The result is a jack-o-lantern that glows different colors as defined by his party guests. Be sure to check out the demonstration video below.

THP Semifinalist: Farmbot

The FarmBot team has been pretty busy with their CNC Farming and Gathering machine. The idea is to automate the farming process with precise deployment of tools: plows, seed injection, watering, sensors, etc. An Arduino with an added RAMPS handles the movement, and a Raspi provides internet connectivity. Their prototype has already experienced four major iterations: the first revision addressed bigger issues such as frame/track stability and simplification of parts. Now they’re locking down the specifics on internet-of-things integration and coding for advanced movement functions.

The most recent upgrade provides a significant improvement by overhauling the implementation of the tools. Originally, the team envisioned a single, multi-function tool head design that carried everything around all the time. Problem is, the tool that’s in-use probably works best if it’s lower than the others, and piling them all onto one piece spells trouble. The solution? a universal tool mounting system, of course. You can see them testing their design in a video after the break.

If the FarmBot progress isn’t impressive enough—and admittedly we’d have called project lead [Rory Aronson] crazy for attempting to pull this off…but he did it—the FarmBot crew started and successfully funded an entire sub-project through Kickstarter. OpenFarm is an open-source database set to become the go-to wiki for all things farming and gardening. It’s the result of [Rory] encountering an overwhelming amount of generic, poorly written advice on plant growing, so he just crowdsourced a solution. You know, no sweat.

SpaceWrencherThe project featured in this post is a semifinalist in The Hackaday Prize.

Continue reading “THP Semifinalist: Farmbot”

LEDs Turn This Paper Map into a Tram Tracker

Public transit can be a wonderful thing. It can also be annoying if the trains are running behind schedule. These days, many public transit systems are connected to the Internet. This means you can check if your train will be on time at any moment using a computer or smart phone. [Christoph] wanted to take this concept one step further for the Devlol hackerspace is Linz, Austria, so he built himself an electronic tracking system (Google translate).

[Christoph] started with a printed paper map of the train system. This was placed inside what began as an ordinary picture frame. Then, [Christoph] strung together a series of BulletPixel2 LEDs in parallel. The BulletPixel2 LEDs are 8mm tri-color LEDs that also contain a small controller chip. This allows them to be controlled serially using just one wire. It’s similar to having an RGB LED strip, minus the actual strip. [Christoph] used 50 LEDs when all was said and done. The LEDs were mounted into the photo frame along the three main train lines; red, green, and blue. The color of the LED obviously corresponds to the color of the train line.

The train location data is pulled from the Internet using a Raspberry Pi. The information must be pulled constantly in order to keep the map accurate and up to date. The Raspberry Pi then communicates with an Arduino Uno, which is used to actually control the string of LEDs. The electronics can all be hidden behind the photo frame, out of sight. The final product is a slick “radar” for the local train system.

Raspberry Pi Gets VGA, Dual Screen Support

The Broadcom SOC in the Raspberry Pi is actually surprisingly powerful, it turns out. It’s actually capable of driving a VGA monitor through the GPIO pins using a handful of resistors.

[Gert van Loo], Raspberry Pi chip architect, wizard, and creator of a number of interesting expansion boards showed off a VGA adapter for the new B+ model at the recent Raspberry Pi Jam in Cambridge this week. Apparently, there is a parallel interface on the SoC that can be used to drive VGA with hardware using a resistor ladder DAC. That’s native VGA at 1080p at 60 fps in addition to HDMI for the Raspberry Pi. Only the new Model B+ has enough pins to do this, but it’s an intriguing little board.

The prospect of having two displays for a Raspberry Pi is very interesting, and the remaining four GPIOs available mean a touch screen could be added to one display, effectively making a gigantic Nintendo DS. Of course there are more practical problems a dual display Raspi solves, like driving a projector for the current crop of DSP/resin 3D printers, while still allowing for a usable interface during a print.

The VGA expansion board, “is likely to have issues with EMC,” which means this probably won’t be a product. Getting a PCB made and soldering SMD resistors isn’t that hard, though, and we’ll post an update when the board files are released.

Thanks [Uhrheber] for sending this one in.

Raspberry Pi Backup Scripts

Raspberry Pi

[Matthew’s] recent blog post does a good job explaining the basics of the Raspberry Pi’s file system. The Linux operating system installed on a Pi is generally installed on two different partitions on an SD card. The first partition is a small FAT partition. All of the files on this partition are used for the initial booting of the Pi. This partition also includes the kernel images. The second partition is the root file system and is generally formatted as ext4. This partition contains the rest of the operating system, user files, installed programs, etc.

With that in mind you can deduce that in order to backup your Pi, all you really need to do is backup all of these files. [Matt] has written some scripts to make this a piece of cake (or pie). The first script will simply copy all of the files into a gzipped archive. You can save this to an external SD card, USB drive, or network share.

The second script is perhaps more interesting. This script requires that you have one free USB port and a USB SD card reader. The script will automatically format the extra SD card to contain the two critical partitions. It will then copy the “boot” files to the new boot partition and the root file system files to the new SD card’s root partition. When all is said and done, you will end up with an SD card that is an exact copy of your current running file system.

This can be very handy if you have multiple Pi’s that you want to run the same software, such as in a Pi cluster. Another good example is if you have spent a lot of time tweaking your Pi installation and you want to make a copy for a friend. Of course there are many ways to skin this cat, but it’s always fun to see something custom-built by a creative hacker.

Raspi Ambilight Integrated in a 19″ Rack Packs Lots of Peripherals

raspi ambilight

Ambilight systems create light effects around your monitor that correspond to the video content you’re playing. [Sébastien] just build his (French translated to English, original here) and embedded all the elements in a 19 inch rack he bought from Farnell.

As most ambilight systems we’ve covered over the years the HDMI signal is first split in two, one being sent to his monitor while the other is converted into a S-Video signal. The latter is then captured with a STK1160 stick connected to a Raspberry Pi. A python script using the OpenCV library is in charge of extracting the frames pixels and figuring out what colors should be sent to the SPI connected LPD8806 LEDs. A nice web interface also allows to drive the LEDs from any platform connected to his local network. Finally, a standard HD44780 LCD and an infrared receiver are connected to the raspberry, allowing [Sébastien] to control and monitor his platform. Funny thing: he also had to use two relays to power cycle his HDMI splitter and converter as they often crash. You can check out a demonstration video from a previous revision after the break.

Continue reading “Raspi Ambilight Integrated in a 19″ Rack Packs Lots of Peripherals”