I’ve had a fascination with Morse code ever since I was a kid. Still, I never really got anywhere with it. Most ten-year-olds have more interesting things to do than to tap out messages at five words per minute. And it doesn’t take much knowledge of human nature to guess that the kind of kid who had a fascination with Morse code, likely wouldn’t find someone else to be on the other end of the telegraph key.
Now I’m an adult, a software developer and technologist. Even though the range of interfaces available to us now are so wide-ranging, I’m still fascinated by the fact that a single blinking light can convey complex information.
Conveniently, I’ve also been interested in learning how to use Twitter’s API to programmatically interact with the service. So it was tempting (if not a little awkward) to combine the two projects.
My goals for this small but manageable project are as follows:
- Configure the Twitter API and learn some basics.
- Refamiliarize myself with Arduino sketches by writing a Morse code translator
- Get in the habit of documenting and sharing my project, which includes these blog posts and publishing code on GitHub
One of the panelists at the Dragon*Con 2010 “Creating Your Hackerspace” session said something that has stuck with me to this day.
“Your project is never finished until you’ve blogged about it.”
In that spirit, I intend to (over?)-document here what I’ve learned.
Future posts will likely include:
- What is Morse code?
- Arduino configuration
- Java client and Twitter API
- Serial communications
- Putting it all together
So far I’ve only spent a couple of hours on the entirety of this project. Setting up the infrastructure and retraining myself on how to do some really basic things have been most of my effort.
I know this isn’t the most groundbreaking project — at a glance it’s kind of stupid — but the building blocks can be upgraded to create some useful applications. For example, it’s not a big step to change the Twitter aggregator to grab weather data, and the single LED to an LCD display so as to produce a standalone weather reporter. So my aim is to get components talking and playing nice with each other, so as to allow some branching out in the future.