The Rotary Emotiphone is a vintage rotary phone that tweets mood emoticons. It has a predefined list of 10 emoticons, each assigned to a digit, so that when you are happy / sad / drunk / etc., you pick up the handset and dial a mood. Could've gone for more complex messages using 2-digit code convention, but eventually decided to keep it simple.
The idea was conceived while I was preparing portfolio for my Industrial Design school. I had a rotary phone that used to belong to my late grandmother, which I wanted to mod for a long time. So, as soon as I read the guidelines that said I needed take an outdated product and revive it, make it relevant to our times, I knew this was one great opportunity to do something with that phone. Originally, I wanted to turn it into a full-fledged Twitter client that rings when someone replies on your tweets, but eventually I decided to go for a one-way communication device, with no reply-signaling functionality. Anyway, the idea of taking a full duplex communication device and converting it to half-duplex was cool enough concept to get me started. And hey, I got accepted! perhaps they liked the idea, too :)
Luckily, everything worked just fine almost at first take. The Arduino Wifly library saved me a lot of work and needed just one minor modification to connect to unknown open wireless network; the code, after proof-of-concept stage, had been perfected with invaluable help of Tomer, my old time high-school pal and Arduino fellow hacker, who had turned my spaghetti into a well orchestrated state machine. So, even if not mine, this code is something I'm very happy about and proud of. Another obstacle was the number of colors of LEDs that I had: I wanted to have 10 distinct colors, one behind each number dialed, but I had only 7 different colors. Instead of repeating three colors, I chose to use three bi-color LEDs and to switch between their colors until I find a ratio that produced a color I didn't already have. That took some bitwise logic, but nothing too complicated, at the end of the day.
Having said all that, I hope that from now on everything should be fairly straightforward...
A Rotary Phone
Mine, as mentioned, used to belong to my grandmother.
Vintage shops and markets usually have them, probably e-bay and such, too.
I usually use the RBBB from ModernDevice, but for this project I wanted a board onto which I could stack the WiFly shield - therefore, I used a standard Arduino Uno.
Sparkfun has them: http://www.sparkfun.com/products/9367.
These aren't particularly cheap to buy, but I really wanted it to be wireless. If you want, you can switch it for the Ethernet shield: http://www.ladyada.net/make/eshield/. Only minor code modifications, if any, should be needed, as the Wifly library was meant to be a drop-in replacement for the ethernet library.
MCP23017 I/O Expander
Not necessary if you have 10 different color LEDs or you are willing to compromise on same color - Arduino pins will suffice (exactly). However, I really recommend getting some experience with a port expander; I found them pretty darn useful in so many projects. I got mine from futurelec, but many carry them: http://www.futurlec.com/SFMicrochip/MCP23017.shtml
Perf Board or Strip Board (my preference) for wiring the MCP23017
I got mine at the local electronic supply store; you can find them in may places online, for example: http://www.futurlec.com/ProtoBoards.shtml
7 different color 3mm LEDs + 3 dual-color 3mm LEDs
Web's full of them. I got mine at futurelec, in packs of 100s.
- Appx. 20 x 100 Ohm resistors
Any switch will do, really. Do note, that if your switch doesn't have a round 12mm profile, you will need something else than the 12mm drill bit appearing in the tools section.
Some electric wire - any kind will do. I tried picking a flexible one, to help me squeeze everything in.
4 x AA battery holder
DC power connector that connects to the Arduino - outer diameter should be around 5mm
3mm drill bit for the LEDs
12mm drill bit for the switch
Solder and Soldering Iron
Hot Glue Gun
Making Some Space Inside the Phone
Before starting, disassemble and take out of the phone anything that is not needed for the project. I mean solenoids, bells (I thought of using them for signaling Tweet replies but gave up on the idea), large capacitors, metal brackets, and the rest, if anything else exists in your phone.