I think I've bitten off more than I can chew. Project 1 is a monster!
The Weasley Clock
I'm sure it's being done or been done by a few other nut cases. But here's my interpretation of the theme:
"The Weasel" will be an Arduino equipped with a global positioning system (GPS) receiver and a general packet radio service (GPRS - cellular phone) transceiver. Its function is to transmit its current location to a web server. I'll be the person who's "bugged". Once complete, the Weasel will go everywhere with me and transmit my location to my web server.
"The Weasley Clock" will be mounted on my wall at home and as per the Harry Potter movie will point to my location at any time. The magic will of course be provided by another Arduino equipped with Ethernet and servos to control the clock hands.
This information is not terribly useful if my family is not at home, so I'll publish a Google Map for use by selected folks. There's an interesting privacy issue around publishing your real-time location. Maybe I'll cover that another time.
This idea came about when I got back into cycling to work. It's only a 20km ride each way, but the traffic is treacherous and my wife worries. She would sometimes call me when I was almost home to make sure I was ok. There's that conundrum where you know you're about to walk in the door, but you want to calm your wife too. Do you stop and answer? Do you add 5 minutes to the trip when you're 5 minutes from home? So the Weasley Clock had it's genesis.
An interesting set of questions came to me as I considered this idea. Given that the 20km of my commuter triangle between home, work and uni could be covered by walking, cycling, driving and taking a train all in the same day, could the Weasley Clock work out not only where I am and where I'm going, but what mode of transport I'm taking? Obviously I don't cycle on train tracks, so my location can give away my route and therefore the mode of transport. If my mode of transport can be inferred, can an accurate ETA be estimated based on statistical analysis of my previous trips by the same transport mode? But what if I'm on the road? Surely it shouldn't be too hard to work out from my speed if I'm driving (80km/h average) or cycling (60km/h max.).>
And so with my meagre budget of less than AUD100 per month I forge on. The first purchase was, obviously, the Arduino Duemilanove. The next month I added the EM-406A GPS Receiver. That gave me lots to do. Learning the basics of the Arduino and the tricky world of serial communication in software has kept me busy for three months. I've written my own SoftwareSerial library, a so-far-incomplete GPS library and an also incomplete LCD library for the Serial LCD Display I added last month.
Right now the LCD display shows the UTC time from GPS data and updates every second. It doesn't look like much, but all the classes are set up so a full-blown GPS applications should be easy. I've had to learn a lot about programming and debugging in the Arduino environment but I'm pleased with the progress. I'm going to have to enjoy what I've got because it'll take two month's budget to purchase the GPRS Shield. But that's coming next.
I've got a list of sub-projects I'm building to prove each component of the Weasley Clock. The next step is to get full GPS data on the LCD: Time & Date; Latitude & Longitude; Velocity & Altitude. The Velocity data won't do much until I can un-tether it from the PC, so a battery pack is on the list. I should then be able to package it for its first trip on the bike.
I'm looking forward to the weekend. It's a public holiday long weekend this weekend so I might have to have a big night in there somewhere and see if I can code until the sun comes up. Mad.
That is all.