This breadboard version of a Simon Says game is a great way to try your skills on a new microcontroller platform. The eight-pin chip seen in the center of the board is an LPC810 microcontroller which [Hartmut Wendt] is just getting started with. It’s a rare example of a low-pin count DIP package for an ARM device (Cortext M0). The breadboard friendly footprint makes it easy to work with, but you could pull off the same build with a dev board like one of the STM discovery offerings or the Stellaris Launchpad boards.
Why is this a good way to learn? It involves input, output, and generating waveforms which we’d assume means timers (we didn’t dig through the source code which is available form the page linked above). Each colored button has a matching LED which blinks out the pattern which you must replicate to keep the game going; you know how Simon Says works, right?. At the same time a different pitch is played by the speaker on the right.
Another good exercise would be to take [Hartmut’s] code and port it for a different chip, be it ARM or otherwise.
It’d be great if this used the DMA for waveform generation. The DMA on these dip ARM chips is one of the more useful features the atmegas lack.
LPC8xx has no dma, sadly
That’s too bad, I just ordered one of the mini kits for a small project that would benefit from DMA. I assumed all their m0 parts had DMA controllers.
I am able to decode mpeg layer 2 audio and play it on an LPC8xx using interrupts and a tiny handler to simulate DMA.
DMA for waveform generation? How does that work?
Depends on how you’re making the sound. Assuming you’re using pwm (instead of a DAC), you could set up a pwm to read frequencies from a DMA controlled buffer to reduce CPU usage. IMO code that uses the DMA usually looks cleaner too.
An alternative is the @ShrimpingIt breadboard memory game at http://shrimping.it/blog/memory-kit/ which includes cheap chinese backlit buttons, a little easier to follow for kids anyway.
For a few seconds there I was hoping it was going to play the Imperial March…