BensExcitingSemesterProject


29 March 2006

Ben's Exciting Semester Project

Now with 82% less beer

Here's my quick summary of what I'd like to do: Get my robot moving around autonomously and interacting with the environment based on visual data. Or, in other words, put a camera and a Blackfin on a little car and have it able to see where it's going. This is intentionally a bit vague, because there are a lot of interesting things you can do with this, at varying levels of difficulty. My design for the robot has a provision for choosing among multiple operating modes, so I'll start with simple tasks and move along from there.

April 8th goals: Primary: Get the robot completely built and running. (Mostly done.) Program a simple task for it that will look cool at the demonstration. Right now I'm thinking that a random walk with some anti-collision code would be fun; basically, drive around a crowded room and don't hit anybody. Extra bonus: stop occasionally and play some kind of ?get out of my way!? audio sample.

Secondary: Better video capture code. As far as I know, you need to use the whole EZ-Kit with a dedicated expansion board to make the camera work. I'd like to simplify that process if I can and just skip the extra hardware. May not be possible for the short deadline; if not, this becomes a later goal.

Later goals: Program a set of more complex driving manoeuvers. Following a moving object is a nice task; I'll start with something simple like a tennis ball, and ideally I'd like the robot to chase my cat around the house, because that is the funniest thing I can think of. Negotiating an obstacle course is another good goal: something like a slalom course with those orange road cones. Maybe even a maze, but I suspect that may be too difficult given the time constraints. Other suggestions welcome! I'd like to have a couple of different things going on at once.

Finally: I'm behind on documentation!

Where I'm at so far: Here are a few photographs of my robot chassis. It's built out of a toy car with a few custom pieces of plastic for mounting the Handyboard. The little circuit board is home-made; it's mostly there to keep the wiring clean and a place to put a couple of pull-up resistors and such.

The drive system is based on what you'd find in a real automobile. The rear wheels are powered by a motor and the front wheels can rotate for steering control. This rules out zero-turn-radius turns but provides a number of fun challenges (parallel parking!) in exchange.

In the next picture the cover is on the chassis:

You'll see a series of wires that would be connected to the Handyboard, except that I couldn't find a Handyboard in my kitchen for this otherwise glamorous photo shoot. Two of the mounting posts for the board are visible near the rear of the car and the other two are hidden from view-- they're behind the bulge next to where the wires are.

There are also a couple of controls on the left edge of the car. They'll be underneath the board when it is attached. The reason for this is that I expect to have the board covered when everything is put together, and it will be hard to access those little push-buttons and such. Here's a close-up:

There are two switches, a push button and a status LED. Here's what they all do. When you power up the robot, it goes, by default, into a stand-by mode. It just sits around doing nothing, but the LED will blink slowly to let you know it's ready. You can select one of four operating modes with the two switches, because I couldn't fit a real selector switch in the space. When you push the button the robot will start running whatever mode you've selected, and the LED will turn on to indicate that the robot is active.

Finally, a bottom view. This shows a cut-out area which is perfect for the Handyboard's battery. The main power switch is just cut off in this picture but you can see the edge of it on the lower right hand side.

I haven't built a mounting for the camera yet; that is the last major piece of hardware yet to be done.