G-Force progress and challenges
I've made some reasonable progress with G-Force (my entry for the 2014 SparkFun AVC) now but am also running into some challenges. Here is a photo of the current state of the vehicle.
The plywood body is coming along nicely and most of the electronics are now contained inside the body, with just the compass and GPS module exposed. In the case of a storm on the day of the contest I can improvise with some cut up ziploc bags to make these weather resistant. If I have the time I may try and come up with a more elegant solution and design some plastic covers in sketchup and have them produced on a 3D printer. Somehow I don't think I'll have the time.
I have experimented with the GPS and compass modules and both are working correctly now, so I can reliably tell which way the vehicle is facing, and somewhat less reliably where it is located (GPS is only accurate to 5-10 meters and I can see this being a major issue already). If I can't rely on GPS then I will have to use "dead reckoning" and program a set routine i.e. "Go forward for n seconds. Turn 90 degrees right. Go forward n seconds ...". It will be back to the LOGO programming I started out with at school. Maybe I need a combination of this and GPS to confirm I am roughly in the correct location. I will have to experiment.
My use of regular AA batteries is not working out, which isn't too much of a surprise. They can't provide enough current to properly power the motors, especially when trying to make the vehicle perform sharp turns. I have now ordered a 7.2v 2200 mAh NiMH battery pack from Pololu and hopefully this will resolve the issue. Another option would have been a Lithium Polymer (Li-po) battery pack. I was tempted to go this route but was concerned about the safety aspects. Li-po batteries can explode a little too easily and I don't want to risk burning my house down.
Finally, I can only test and debug the software with a laptop connected to the Arduino so that I can monitor debug output on the serial monitor. This is fine when the vehicle is stationary but I can't run along after the vehicle holding a laptop, at least not safely! This means that I currently have no idea what the vehicle is doing or why it is not going in the correct direction when I am testing it. The solution to this is to add a data logging shield to the Arduino so that I can write diagnostic data to an SD card for analysis after each test run. I have ordered one of these too.
I should have these new parts in time for more testing this weekend. This project is providing me with some decent challenges, which makes it all the more interesting.