I've put together a new video showing how a zone-based control system can do "gesture-like" things, such as raising and lowering one's hand to control the brightness of a light.
It's taken me longer than I expected, but I finally have a new video ready, complete with music this time. This video covers my latest work with the Kinect: an HTML5(ish) web interface and low-level protocol for configuring and using the Kinect with a home automation system. I also demonstrate my own home automation software. I'm sure you'll all enjoy this video.
I've been hard at work writing code, so I haven't been as responsive to inquiries as I would like. To try to make up for that, here's a very work-in-progress preview of what's coming next:
This is a followup post to my previous post and video demonstrating how I used a Kinect sensor in my home automation system. That video has generated a pleasantly surprising amount of interest and a lot of questions. I invited a friend over to help demonstrate some of the answers. Though this isn't the big revelation people may be hoping for, I hope this new post and video answer many of the questions that have been asked.
Update: be sure to read my followup blog post where I answer common questions about this hack.
Update 2: I've written a web interface to make it easy to set up a Kinect in a home automation system.
Update 3: The Kinect automation system is available for purchase by tech-savvy early adopters on the Nitrogen Logic web site.
As I mentioned in my original ASCII art Kinect hacks post, I have been integrating the Xbox Kinect camera into my home automation system. That integration has finally reached the point where it's ready to demonstrate.
I've added color and dual views to kinradar. Here are two videos of an experimental version with sweeping updates (in the sweep branch on github):
Update: a video for kinradar has been added below.
It seems all the cool kids are coming up with and sharing their Kinect hacks these days. I decided I could join the fray by incorporating the Kinect into my home automation system, but first I'd need to understand the best way to process the depth data.
A little less than a month ago I was learning how to use libevent for a project of mine, but didn't find very many examples for my particular use case. I decided to remedy the situation and polished and released my first libevent-based demo, called cliserver, on github, under a permissive 2-clause BSD license. It accepts as many simultaneous connections as the system can handle and presents a very simple command-line interface to connecting clients. The code in this example was then used as a starting point for upgrading my home automation project's network interface layer.
At the end of my previous never-seen-by-human-eyes blog post on converting a SheevaPlug to UBIFS, I mentioned that I would follow up with some recommended packages to install on your SheevaPlug. Here's a brief list:
Update: as of October 2016, some or all of the plugcomputer.org links are broken. Use a search engine or web.archive.org to find the original content.
Although there are existing tutorials for upgrading a SheevaPlug to UBIFS, they require running a non-MTD/non-flash installation of Linux on the SheevaPlug, and none of them fully explain loading an UBI image from a USB flash drive. I also wanted to upgrade from Ubuntu 9.04 (jaunty) to Debian Squeeze. I had to work around a few problems along the way, including bugs in Ubuntu's mtd-utils. I didn't want to forget how I did all this, so here is exactly how I upgraded U-Boot, configured U-Boot's mtdparts, and converted my SheevaPlugs (yes, that's more than one SheevaPlug) to UBIFS, step by step. I'm using PuTTY on Ubuntu 10.10 to access the SheevaPlug's USB-serial port, but other methods (like cu and screen) and distributions will work just as well.