Having written 3 major programs for the robot:
1. Move about randomly avoiding objects using proximity sensors as well as stall detection. The stall detection is simple in so far as it’s just a detection of a current spike during continuous motion a certain percentage threshold above existing current consumption.
2. Move randomly to a bass beat of music.
3. Follow a light. The logic for this is simply to rotate all wheels in the direction of which of the photoresistors shows the lowest resistance until they are both equal +/- 5%. When this occurs, assume you are looking straight at it, and move forward until they are no longer equal. Then readjust using turning logic and continue. It works surprisingly well!
What would I do differently next time around?
1. Better planning and structural build. The build itself is uneven in places, meaning that the turning circle is not fixed where ideally it should be, and weight distribution is not even. At this point after two full turn circles, it lands about 8cm to the right when the base itself is only about 75×75cm. This is far from acceptable.
2. Fuses in the right places, and larger smoothing capacitors on motors, and voltage input.
3. High wattage diodes on voltage input – one blown power supply later ![]()
4. Larger wheels. The small omnidirectional wheels were the only easily accessible ones that I could find but I’m sure this could be improved on.
5. A lighter robot, perhaps with a smaller battery and less housing.
6. Better structural reinforcement.
I’m happy with my decision to use an x86 board as opposed to pure embedded PICs due to the ease and power of programming, however whether I should have used PIC based development for the sensors and external interrupts is up for debate. More work but more efficient and probably better power consumption. The USB bus uses a good 1200mA@5V.
There are more items on this list, but these are the ones that come immediately to mind. If I had the time, I’d rehouse the entire thing and build a proper body but these days unfortunately I don’t!
Tags: Linux robot, the robot