Gesture-like Light Control with Kinect

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.

Kinect Home Automation goes HTML5

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.

Sneak peek

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:

Kinect home automation - Questions and Answers

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.

Home automation and lighting control with Kinect

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.

ASCII art Kinect hacks

Kingrid_ascii1_thumb

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.

cliserver: An Example Libevent-based Socket Server

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.

How to Convert a SheevaPlug from JFFS2 to UBI/UBIFS via USB (and upgrade U-Boot in the process)

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.