Mission Control desk

Some parents take the carrot approach to homework enforcement, others the stick.

This is the best carrot I’ve ever seen. Some world-class parenting skills are on display right here. This is the homework desk of Jeff Highsmith’s older son:

And this is what it looks like when he’s finished his homework and is allowed to raise the lid.

The desk came about as the result of a family visit to the Kennedy Space Center. It’s not an exact facsimile of an Apollo Mission control desk (the real ones don’t make whooshy fizzy rocket noises, deep mechanical clankings and exciting beepings, and, as Jeff says, they do more monitoring than controlling), but those of you who have seen the real thing will definitely recognise what this is based on.

Here is a wonderful, wonderful how-to video which walks you around the build and the finished desk. We love the clear panel to display the Pi and the Arduino!

(Eben got to the bit in the video where Jeff’s son issues the command to stir the oxygen tanks and shouted: “NOOOOOOO!”)

The whole thing is run on a Raspberry Pi and Arduino, working together. Jeff says:

The programming of the console, which I posted to GitHub, has the Arduino and the Raspberry Pi working cooperatively. The Arduino uses four I/O expanders (MCP23017) to read the state of switches and buttons. Whenever a switch (be it a momentary push-button switch, a rocker switch, or a toggle switch) changes state (on to off or off to on), the Arduino tells the Raspberry Pi over a serial connection (USB cable). The Raspberry Pi plays a sound or starts a sequence of events, if necessary, and sends any commands for controlling LEDs to the Arduino. The Arduino uses five LED matrix drivers (HT16K33 on a carrier board from Adafruit) to control all of the LEDs. That allows for 640 separate LEDs, which sounds like a lot, until you consider that the numerical displays have eight LEDs per digit and the LED bargraph displays have 24 LEDs per graph (they make three colors by having a red and green LED in each segment so they can make red, yellow, or green). The potentiometers are read by the analog inputs of the Arduino.

The EECOM panel contains four potentiometers that are each mapped to a 12-segment bargraph display. Turning the knobs adjusts the number of segments lit, and I made it so all the segments change color to reflect how urgent a given value is. If the value is adjusted to the safe middle four segments, all segments lit are lit green. If it’s adjusted a bit higher or a bit lower, all lit segments are lit yellow. If the level is adjusted way too high or way too low, lit segments are red.

It even plays real clips from the real Apollo 11 mission, which Jeff was able to source online. You can read much more about the build, what all those wonderful switches and dials do in Jeff’s article for MAKE. Jeff, I hope you’re at the big Maker Faire Bay Area this May. We’re sending our education team, and they’re big fans; they’d like to pick your brains!