Let's Make Robots!

Mr. General

  • Component category:
Mr._General_4.bas16.45 KB
Tone.zip9.68 KB
Mr__General_ATmega8_Edge_Detect.zip3.23 KB
Mr__General_ATmega8_Object_Detect.zip3.25 KB
Mr_General_Nano.zip3.21 KB
Vendor's Description: 

Video: http://www.youtube.com/watch?v=7Ve318yVUdU

DAGU products support site: https://sites.google.com/site/daguproducts/

This kit has recently been upgraded to include a USB interface, programming cable and the ATmega8A processor with the Arduino bootloader. The Manual has been updated with wiring instructions and diagram as well as USB driver instructions and trouble shooting section.

An improved "Tone" library is included on the CD as well as being available here that allows the Tone command to function on the ATmega8 processors (thanks to Robot Freak and Brett Hagman).

Based on Bot 08M, Mr. General is designed around a breadboard and includes the universal sensor brackets designed here at LMR as well as my IR object tracker in the form of a compound eye.

The Picaxe code was written for the picaxe 28X1 processor. The first Arduino code was written for an Arduino Nano which has 8 analog inputs. The second Arduino code is for an Arduino with only 6 analog inputs. This version uses digital inputs for the corner sensors which gives them slightly less range.

An IR LED and phototransistor is mounted on each corner and can be used for edge detection or object detection depending on how you choose to mount them. When mounted for object detection they can also be used for swarm communication. These sensors have an analog output but can also be used with digital inputs.

Here are some videos using a picaxe 28X1 and here is a video from GuangZhou University using the compound eye and an arduino to solve a maze.

The compound eye allows your robot to track a moving object but can also be used for IR communication between two robots. Other range sensors could also be fitted to the sensor bracket.

2 factory modified, continuous rotation servos allow speed and direction of each wheel to be controlled by a single digital output.

The kit does not include a micro-controller as the breadboard allows a wide variety of processors to be used. A generous 140 piece cable pack allows easy connection between the breadboard and sensors.

2 individual voltage busses allow for up to 3 different voltages plus ground to be used. Ideal for 3.3V devices and op-amps. A basic recharge circuit allows NiMh or NiCd batteries to be charged from a 9V DC source without being removed from the robot.

All spare room on the main PCB is configured as prototype board as show in the picture below. This allows additional sensors and circuitry such as voltage regulators to be easily added.


Of course being designed with parts from LMR it is only fitting that we have the LMR logo on the box.

 Click on the photo for a bigger picture.





More information can be found here: http://letsmakerobots.com/node/24348



Comment viewing options

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

Your crystal needs to be wired up with 2x 18pF or 22pF capacitors to work as a resonator. That is One reason that your robot is not working correctly. You need to connect each capacitor between ground and a crystal pin.

You also have your eye on upside down so that up/down and left/right are reversed. If you want to leave it mounted that way then swap the wires where they connect to the processor so that up and down left and right are all reversed.


Mr. General arrived today. I was a little surprised by the small size of the box, but it's all there! After reading through the material on the CD I had a couple of questions before getting started on the build.

1) It's mentioned that the kit was built,and the code written, with a picaxe 28x1 in mind, but I didn't see wiring instructions for connecting that  processor from the breadboard to the robot. I only found the instructions for the Arduino.  Are the Picaxe processor wiring instructions available?

2) The calibration of the IR eye using heatshrink seems a little risky, and I might be concerned  pieces of heatshrink won't stick well. The option of using a variable resistor is mentioned -I'm assuming I would need one VR for each LED for a total of 4 for the eye, correct?

3) The calibration instructions connect 4 inputs and 1 output from the eye to the processor. Which pins from the 7 on the eye are used for this connection?

4) I've studied the Picaxe code and think I understand it.  Did you happen to experiment with how far way it can actually track motion by decreasing the distance constants? Just curious.

5) Was the recharge jack envisioned to be used with a 9V wall wart power adapter or a 9V battery connected to a matching plug? Do you have a part number for the jack on the board so I can find a match for it?

Sorry for all the questions...




Hi everyone

I just get my Mr General and is my first robot look really great, but I dont have clear the position of the LED and IR LED. I know the short leg is the one to go to the (-), however the instructions I have dont show the (-) or (+) on the PCB, so I´m afraid to put in wrong position the LEDs. Could you please give additional info how put the LEDs into the board.

Thank in advance

+ and - are not printed but if you look where these components go you will see that they are printed on the board. Note that the phototransistor looks like a black LED and there is a transistor symbol where it should go. You will also see that the circles are not printed perfectly round, they have a flat spot. When you look at the components they also have a flat side. Line the component up with it's picture printed on the PCB.

Thanks again for the info and advice. I got sick this week  so I haven't been able to start it. Doing better now. I'll start posting my progress on my own project page.



1. not at the moment. You will have to look at the code to see which pin connects to what. I am currently working on new instructions. Here is a photo that might help

2. to be honnest the calibration of the eye is not really necessary. All that will happen is that the robot may appear to be looking slightly to one side of an object it is tracking.

3. Here is diagram that might help. All 7 wires must be connected.

4. changing the constants won't increase the range. If you try to track anything too far away then you end up tracking electronic noise.

5. Any 9V DC wall wart capable of at least 500mA should be fine.It is a standard 2.5mm DC socket.

Part number? each shop has it's own part number system and each country has it's own shops. I'm in China.

i ordered two kits of Mr. General. one for my personal use and the second for the final year project. i currently supervise two projects.

the first one i build my self. there was some problem with the controller. i replace the controller with the other kit and it is working fine now.

for the second kit we don't need the Atmel controller, we 'll use the 16F877A instead. for the programing language we use the flowcode V4, it really looks good for programing. so we 'll rewrite the program in flowchart form. during tracking the program i found some points:

1- there are some constants that looks to be depends on the servo used it self  like servo-stop and pan/tilt position. for Chinese servos, these constants may differ from servo to an other. so you have to modify the program to get perfect control.

2- i m not really familiar with PICAXE, however some commands looks inaccurate like: leftright=leftIRvalue-rightIRvalue/panscale 

it looks butter if written like leftright=(leftIRvalue-rightIRvalue)/panscale (with brackets) also distance=leftIRvalue+rightIRvalue+upIRvalue+downIRvalue/4 should be distance=(leftIRvalue+rightIRvalue+upIRvalue+downIRvalue)/4.....etc

3- in EdgeDetection routine, if edge =0 are repeated 4 times , the value should not be 0 it must be 32,64,16 and 128.

4- during running the robot the object detector is not working only if there is an object in front of the eye. when there is no object in range the robot can not avoid objects!

however, we are planing to correct these issues and rewrite the software in flowcode. when the software is finished i will upload it to the site. away from these points the software look nice and i liked the Boredom subroutine. finally, we hope that we can add more to this robot. The final goal of this project is to make surface cleaning robot with auto navigation.


1. Yes different servos have different ranges.

2. The Picaxe basic is not very good with the math and doesn't use brackets. Your code might look better but it will generate an error message.

3. If you read the code properly you will see that each corner bit is ANDed with 16, 32, 64 and 128. So the result can only be 0 or 1.

4. Your statement does not make much sense. If you configured the sensors for edge detect then of course they cannot work for object detection as the logic must be reversed. In edge detection, nothing in range is a bad thing. In object detection, nothing in range is a good thing.


 2. so you should use multiple line expressions? i usually need a lot of math The Picaxe basic is not good for me...

3. i got it now, i think you are right, in edge detection 0 means edge is detected while for object detection non zero value (16, 32, 64 or 128) means an object is detected. the value is not 0 or 1 it is either 0 or (16, 32, 64 or 128).

4. sorry it was not very clear. i was talking about the preprogrammed controller that comes with the set (Atmega64). i think it is programed as object detection, so i made the sensor in object detection mode. the object detection process is not executed unless the eye detects an object!!


edge = edgesensors and 16 'read rear right sensor if edge =0 then............ In this case edge is the result of the byte "edgesensors" AND 16 which is this in binary "00001000" Because 16 is a single bit, the output can only be a 0 or a 1