SleepyTimer is an Arduino-based sleep monitor which uses a 3-axis IMU to infer nightly sleep patterns. It graphs the results on an LCD and on a thermal-transfer printer.
See the flickr set for photos and videos (and more information).
The SleepyTimer sketch (code) is available here.