This is the first robot I built. It drives itself around trying its best to avoid running into walls and other objects. most of the circuitry has been done for a while now. The base is made out of some scrap oak I had laying around from a previous 4-H shop project. The programming is probably the most fun and challenging part. I've created many subroutines in assembly so when I want to do something all I have to do is call a subroutine. It really isn't any harder than high level languages. currently the routine for avoiding things is primitive and it has flaws. It seems to have no problem when the obstacle is on the left but when something such as a wall is closer on the right it sometimes gets confused and turns toward it. because of this I'm not letting it get very close to things. I also don't like how the program tends to send the robot around in circles when you put it in a rectangular area. it needs to be a little more random
you might notice in the picture that there is a wire wrapped around the SRF05. this was a quick fix to a problem. one of the stranded wires I soldered to the board broke off and I'm not at home now so I couldnt solder it back on. I wraped another wire around what was left and threaded it through the holes in the srf05 so it wouldnt get pulled off. when I get home I think i'll add a add a little hot glue to support it onece its fixed.
Link to code: http://dl.getdropbox.com/u/627148/robot.zip
Fixed the broken wire to the SRF05
added hot glue to support the wires where they attached to the SRF05
I think one of the motors is starting to die. it keeps getting slower and slower. If I remember correctly, the motors are supposed to be run at 3V and i've been using 5V. I'll have to look for some replacement motors sometime soon