POPCORN: Talking Clock
Popcorn is a tribute to the time-of-day announcement service. Here's a demo;
BACKGROUND:
Starting around 1950, you could dial 'POPCORN' anywhere in Northern California and you'd get an automated time-of-day announcement. In 2007, AT&T stopped offering the service because of decreased usage and because the equipment was no longer serviceable. I always thought it would be fun to do my own version of popcorn using different voice samples, and finally got around to putting it together.
If you're curious what the original popcorn sounded like, here's a sample mp3.
THEORY OF OPERATION:
The microSD card holds the code and voice samples as 16-bit mono wav's. Each number has its own wav (00.wav - 19.wav, 20.wav, 30.wav, etc) and so do the supporting phrases (morn.wav = "Good Morning", pst.wav = "At the tone, Pacific Standard Time Will be", and so on). I tried finding voice samples of Joanne Daniels, but I couldn't find enough to cover all the numbers - so I used my own voice.
One core manages the screen, updating it continuously, and checking to see if the 5-way d-pad has been center-pushed. Pushing center will enter a time update mode to let you change the time and date.
A second core manages the audio announcement. It checks to see if the big red button has been pushed. If so, it asks the RTC for the time and plays the appropriate wav files.
The only hardware I added was a headphone jack that goes out to a computer speaker. Everything else is stock. You can switch out the samples by changing the files on the SD card.
If you've got a Propeller Platform SD and LCD UI, you can try it out by downloading the code + samples. Just copy to a microSD and turn it on. With a Protoboard or demoboard, you'll probably want to change the pin assignments and you'll need to add a DS1307 Real-time clock.
DOWNLOADS
code archive
Code + samples
Here are the schematics for the Propeller Platform SD and LCD UI.





@ Tue, 2010-04-13 13:43
Nice little project
The sample played ok for me, no locking up. As the propeller would not be working very hard this would be a nice little "extra" feature to add to a robot that had a spare cog or two. Maybe add some additional phrases to be spoken when powering up or down. I suspect it could have been done with a single cog if necessary?
Reminds me of the first Z80 computer I built for my AD in electronics, the "Verbal Abuse Box". When you pressed a button it would playback various recordings of the 3 Stooges that were stored as 8 bit wave files on an EPROM (the type that had to be exposed to a UV light for 15min to erase it). It was the only time a student gave the teacher "Verbal Abuse" and got the highest marks in the class.
@ Tue, 2010-04-13 19:23
Thanks!
Yeah, it could all be done in one cog. The only caveat is the ":" (colon) in the display would stop blinking while the voice is playing. I started writing it just as a demo of how to do multitasking.
If I were to re-write it, I would just have one cog running, waiting for the button press and updating the time display. Once the button is pushed, it would start a second cog to play the wav, and the second cog would shut down after it's done.
@ Tue, 2010-04-13 07:06
Sample MP3?
It's from phworld.org. Works fine on my computer. An MP3 shouldn't lock up your PC, though - maybe something else is going on...
@ Tue, 2010-04-13 16:31
beep.wav
I especially like the beep!
@ Tue, 2010-04-13 04:36
Broke
Clicking on your sample link, all I get is a ring tone and it locks up my computer:-(