Automatyperwriter: Arduino-controlled typewriter is both input and output device

Jonathan Guberman from the Site 3 coLaboratory in Toronto made the "Automatypewriter," an Arduino-controlled typewriter that acts as both input and output device. He's rigged it to play Zork!

Each key is attached by fishing line to a solenoid, an electromechanical device that pulls down when electric current is passed through it. The solenoids sit behind and underneath the typewriter in a multi-layer structure. The solenoids are connected to a MOSFET, which allows the lower-power parts of the circuit to control the high-power solenoids.

The MOSFETs are connected in sets of eight to shift registers (integrated circuits that can, amongst other things, expand the number of outputs on a microcontroller). The shift registers are connected to an Arduino, which is connected to a computer via USB. When the computer sends a character to the Arduino, the Arduino chooses which solenoid to fire and sends that information to the shift registers.

The Automatypewriter is a typewriter that can type by itself: (via Make)