Let's Make Robots!

Bot 08M

Wanders about examining things
Bot_08M.bas2.37 KB
LV-MaxSonar-EZ1-Datasheet.pdf405.49 KB
Bot_08M_sane.bas2.58 KB

This is an experiment to see what sort of robot can be made with a cheap picaxe08M. It is also the first time I've actually used my "reusable robot base" as a robot rather than a power supply / test bed. The program (see attachments) is very basic and only uses about 2/3rds of the 08M's memory so there is reasonable room for improvements.

One curious feature of this robot is that it doesn't always do what it is supposed to, sometimes it will go towards an obstacle instead of away from it as though it wants to examine the object. I haven't bothered trying to correct this apparent fault as it makes the robot appear to be curious about things.

To make the most of the picaxe08M's 5 pins I'm using the maxbotix sonars pulsewidth output since pin 3 is input only but doesn't read analog inputs.

I've been a bit slack (or is that creative) with power to the servos. I really should power them straight from the batteries with a couple of diodes in series to drop the voltage down to 6V. Instead they are running off of the 5V supply which has a 0.047F (47000uF) 5.5V super cap on it to absorb the spikes. This seems to work quit well with no servo jitter.

 Click on image for a closer view.

Sunday 28th December 2008

Found the fault in my code, the turn left and turn right subroutines were turning in the opposite direction (thats what happens when you write code late at night). The new sane code (see attachments) is far more predictable but also less interesting as you can see in the second video. I've also made him backup more often to avoid getting stuck so much (as suggested by Frits).




My smallest robot is now joining the list of LMR robots to be produced by DAGU. Although he has been re-designed a bit with some new features and a new name. Mr. General (general purpose) is just that, with the breadboard allowing easy use of any microcontroller.

Mr. General combines the new pan/tilt version of the sensor bracket designed here on LMR with my IR obstacle detectors and IR tracking system.




Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Myke Predko seems to be Mr PIC doesn't he? About half the books on PIC programming are written by him. However, he does seem to get some stick on Amazon for not writing too well.


Still the book gives good in depth explanations of the architecture with can be a big help when learning assembly. Especially so with pic processors as they use harvard architecture (2 seperate memories and busses, one for the instructions and one for data). It also covers MPLAB.
I've seen those cheap servos on eBay . Any comments as to their quality? Are they easy to modify? Do they work well before modification?
These are some of the more powerfull minature servos with 1.6Kg of torque. They have a relatively high current draw so a good power supply is needed if you don't want jitter, thats why I've used a super cap. I've seen these at Hobbycity.com with metal gears. You can also get these with about half the torque and slightly faster. These use a smaller motor and have less current draw.

Great Bot! Nice to see someone squeezing everything out of one of those cute little 08Ms. The pan and tilt setup looks great as well. He looks curious indeed.

how does that sensor work? Is that one of those ultrasonic rangefinders that can ping continuously?

Yes and no. using the analog or pulsewidth outputs it pings continuously but if I use the serial connection then it will ping on command. I will add the datasheet to the attachments.

Nice, just looked a bit on your code to see if I could figure out why it is atracted when it should go away..

What nice code you make, so much order :)

Tell me; Your sensor, is it returning higher values the closer things get?

I'm looking forward to Picaxe releasing their mini-08M-board, would be ideal for projects like this.

The sensor gives a lower value the closer an object gets. I think that the misbehaviour is due to pulsin not having time to read the sensor output. I've got to experiment with this. I tried putting pause commands in but if they interfere with the pulsin reading the pulse then they could make it worse. This is what I hate about the picaxe, woefull documentation.

Ok, now I had the chance to study your video, it is a funny little fella :)

I cannot see any problems / misbehaviour compared to the code..

I think that sometimes the 200 MS is not enough to turn the head.. specially not when the head is stuck.

i think if you make something stick out so that the head is not the thing in absolute front, getting stuck on things.. and / or add a "drive backwards" in the code when something is detected.. you will be fine :)

.. and / or let the guy constantly look L/R so that it is not only seeing stuff when it is too late - the frequency of looking to a side should be high enough compared to the over all speed and the "attention-area", so that it cannot go into stuff.

Last, I think this one might have your interest, could be implemented, read careful: http://letsmakerobots.com/node/1512