In our house, we've been struggling with a way to effectively get our Easy Cheese onto our crackers. You would be surprised at how many things can go wrong when getting a this cheese-like goo from the pressurized can. So we were pleased when my son's middle school class assigned a student-choice science project. We knew our Lego NXT would be able to solve our problems.
My son first built the device, with absolutely no input from me. (You can tell this is the case, because it is asymmetric, and the colors aren't matched.)
Of note particularly is the two-eyed ultrasonic proximity sensor at the bottom of the device. It took a lot of trial and error to get the placement and angle of that just right. Also note the dual servo motors. My son's original design used just one, which wasn't powerful enough to bend the nozzle and eject the cheese.
My son then wrote the software for the Cheese Pleaser in the standard graphical language of the NXT. We were ready to go. Our first try was a bit of a disaster: the machine got twitchy and kept spitting out cheese. Upon reflection, maybe that wasn't a disaster. But it did need to be fixed. So I made my one small contribution to the project: a feedback loop in the software that helped regulate the cheese output. We now got a solid, one second burst of cheesy goodness, as you can see:
We would consider open sourcing this project, but we feel the commercial potential is too great.