Developer Aspirations

YAPB - Yet Another Programming Blog

Thursday

06

May 2010

CoasterBot Finished!

by Colin Miller

A while ago I entered the Make: Robot Build contest. The contest was to build a robot using CDs/DVDs as the primary building material. The robot needed to be able to navigate around obstacles. The design also had to be flexible enough to allow additional additional sensor-systems to be added on top of the obstacle avoidance system. The deadline was May 7th (Later moved to May 10th). I submitted my entry last night.

[caption id="" align="aligncenter" width="500" caption="This is the final product that I submitted in the end. It's a very basic bot using only 'bump' sensors."]Finished CoasterBot[/caption]

Gimpy the CoasterBot is made from 2 CDs connected via hex spacers with 2 modified servos driving 2 wheels. The front is held up by an old dice case that's used sort of like a ski. There are two front 'bump' sensors that detect when the robot has run into something so that it can back up and change direction to get around the obstacle. The sensors are two switches that have strips of CDs connected to form larger antenna-like arms.

The motors are powered by 4 AA (eneloop) batteries. The robot is is controlled via an Arduino Duemilanove sporting a Proto Shield. The arudino controls the motors via an L293DNE motor controller. The microcontroller is powered by a 9V battery separate from the motor power source. It runs a fairly basic program that detects when an obstacle has been hit and causes the bot to back up, turn a little bit, and continue forward (only to bump into something else later or fall backwards and flail a bit). There are also a few pictures.

[caption id="" align="aligncenter" width="333" caption="This was my rough attempt at creating a schematic for the electronics systems of the CoasterBot"]Electric Schematic[/caption]

This was a very interesting project for me. I had been interested in robotics since I played with a lego mindstorm kit in college as part of an advanced Java programming class. Having custom hardware to program for seemed like a very natural extension to software development. However, I never took any classes in electrical engineering so my electronics abilities were minimal at best. Learning how to wire up the physical components and construct a robot from parts and not a kit was the real challenge for me.

Part of my path to success was through reading the Make: Electronics book. It also helped that I stuck a large sticky note of Ohm's law on the side of my desktop computer at work (at least I think it helped). I learned a lot of new things in an area that I did not have a very large knowledge base to begin with. I find this quite a different experience than learning a new programming language, framework, or other aspect of software development that I'm already fairly familiar with. In this robot building exercise, I was still able to relate with my field of software development since I had to program the thing, but I was also able to dive into a new realm of electronics and physical computing that I hadn't experienced before. I think that the most rewarding aspect of any project like this is knowing that your expanse of knowledge is growing to cover a wider field than you held previously.

For entering the contest, assuming that the judges mark my entry as valid, I shall receive a Maker's Notebook. I own one of these already and used it for part of this project, but it's a nice little notebook and I'll enjoy having a second one. I found that having a prize just for entering was a fairly important aspect to this contest. While I don't really need another Maker's Notebook (mine only has 6 of 150 pages filled), knowing that I would get one for completing the project gave me a motivation and drive to finish under a deadline and complete my work. Also the contest provided me with a direction, a goal, and a timeline to complete. Hopefully I'll see some more contests by Make or maybe some other sites that will give me ideas or spur me on to create other relatively useless but ultimately interesting things.

So that's my robot. It's not very smart and if I had a lot more money to pour into it I could add a bunch of other sensors (and maybe a front wheel) and make it more aware of its surroundings so that it doesn't have to run into things. Even still I'm pretty proud of my accomplishment, even if he does fall backwards when hitting the lip of a carpet.

comments powered by Disqus