Early last year I agreed to exchange something hand-made with a couple of friends. One is an English teacher so I decided to implement an idea I'd had in the back of my mind for a while: a small box with a large vocabulary, the "Loquino". Its sole purpose is to display a sequence of random words on a small LCD. The words are included in the sketch (PROGMEM), so with less than 32k available I had to employ some "heroic" coding techniques - Huffman coding - To compress a list of about 1800 real words taken (with permission) from the Grandiloquent Dictionary (http://www.islandnet.com/~egbird/dict/dict.htm). - Markov chaining - To generate random pseudo-words which look like real English words (have the same statistical properties).
I liked the idea of the box being self contained and optionally able to run off batteries, so I spent some time working on using an LDR to put the ATmega to sleep when the enviroment went dark, and wake when it became light again. I found it difficult to get consistent results and didn't really have time to find out how long batteries would last, because the two Loquino's I made, I sent to my friends. :(
My flickr set http://www.flickr.com/photos/funnypolynomial/sets/72157629076673753/ has pictures of the build and videos. The sketch is available from my site http://www.funnypolynomial.com/software/arduino/loquino.html.
This is the main circuit board. The socket is for the ATmega, the LCD mates with the strip along the bottom (and covers the ATmega), top-right is the LDR: Some Time Later by funnypolynomial, on Flickr
And here's a video of it running: http://www.youtube.com/watch?v=9b4OfhSSNDc You'll see the splash screen then: shurocracy (A government based on consensus) orneflass? (? denotes a pseudo-word) psychomancy (Divination by talking to the dead) rindiable? halieutic (Of or about fishing) croodle (Too coo like a dove) antive? meiffect? zizany (A dangerous or toxic weed) rette?
This is my second Ardiuno project (my first was the KENBAK-uino, http://arduino.cc/forum/index.php/topic,73279.0.html). This turned out to be about as complex and with the added insanity of a deadline (we agreed to exchange the items by the end of 2010, and I started late) and the need to create two!