My older son recently started school and needed his own desk for doing homework. I wanted to make something nicer than a simple tabletop with legs, and realized that I could also build in a bit of fun for when the homework is finished. Both my boys and I still had space travel on our minds from our summer trip to Kennedy Space Center. For this desk project, I decided to go with a NASA theme. I researched the Apollo Program as well as NASA’s Mission Control Center, and designed my own console roughly based on those. I say “roughly” because the actual Mission Control does more monitoring than controlling, and isn’t awash in the whiz-bang rocket noises young kids appreciate. I took great liberties and made more of a “space-themed” play console than an accurate simulator. My goal was simply to provide some extra ideas and sound effects for my two sons to play “space” together.
…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….