Heart Bleat

A small art project controlled by someone's heartbeat.

For a possible installation/exhibition setup the handy PulseSensor is now used to detect someone's heartbeat. This can produce a reasonably accurate estimate of someone's heartbeat just by lightly pressing their finger against the sensor. Earlier prototypes used an AD8232 with an Arduino to estimate the moment of each heartbeat.

The heartbeat data is fed to a raspberry pi which triggers each outward pulse. These pulses flow outward, eventually rippling back in toward the "heart". When they come back, each of them has a chance to drag in a small particle, which will be pushed and pulled by the currents triggered by the user's heartbeat. If these particles are either pulled in to the center or pushed out past the edge of the lights, they trigger a change in the colors used for the heartbeat waves.


A RetroPie system built for a friend's birthday. Wired to support the original SNES controllers for maximum nostalgia, and it doubles as a lamp! A small fan was also configured to kick on any time the Pi started to get a little too warm, but it's almost never needed for most games.

I had originally planned on 3D printing the case since there are some cool retro designs out there, but in the last stage of the project got my hands on a laser cutter which led to a much nicer, personalized, case.

Nao Music

As a team of four, we attempted to teach Nao to play the Glockenspiel over the course of about six weeks. This included visual detection of the instrument and playing sticks, grasp planning to retrieve the sticks, and a simple method for learning the ideal joint configuration to play each note once Nao was ready to play. The visual estimate of the instrument's pose gave a good guess for which note would be played via an IK solution, and audio processing allowed Nao to determine when the correct note was played.

Object Tracking for Interactive Installations

Simple object tracking prototypes in one and two dimensions using a cheap webcam. The tracking data is used to control the state of an LED array (via USB connection to an Arduino which manages the LED driver).