During my early years as a software guy, while still in college, I worked for a division of COSI in Columbus, Ohio. The group I worked with designed and built the interactive exhibits in the COSI museums as well as other museums that wanted specialty projects built.
After struggling with some hardware designs I was fortunate to get paired up with the guy working on a machine designed to show reflex delays. The machine basically lit up lights in non-predictable patterns. When a specific light was lit a timer was started and the visitor was supposed to hit a button. When the button was pressed the timer would stop and show the visitor how long it took them to react. If you tried to predict the light and hit it too soon, a buzzer would notify you of your mistake.
I was curious how it worked since most everything I’d seen up until that time was just using 555 timers, some relays and a few buttons. This project was much the same but housed something more interesting to me. The more complicated projects were all based on the BASIC Stamp II microcontroller from Parallax. The stamp was a tiny board with many I/O pins, built in storage and memory and a processor programmed in BASIC.
For this exhibit, the stamp was doing a lot of work. It was generating tones to play for each light that was lit, pseudo-randomly choosing which light to turn on, and when the key light was lit, start a timer all the while checking to see if a button was pressed. That’s not too shabby for a tiny, single threaded chip. Except it wasn’t working correctly.