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.

1. Sorry about that, B&W photos suck for explaining colour. The corner LEDs are obvious because there are 4 of them. The power and recharge LED (should be red and orange) are interchangable. Select the colour you think most appropriate for the function. I normally use red for power and orange for recharge.

2. I do not understand your problem here. The pictures in the manual clearly show the male and female headers.

3. There should be a 10uF capacitor that can be put in series with the speaker. If you have a 0.1uF capacitor spare then you have probably assembled the board incorrectly.

4. Originally the kit was developed using a picaxe 28X1. The ATmega8A is a recent addition.

5. The m3x6 works fine if you have assembled the robot correctly. Perhaps you got a defective screw?


Originally this kit was designed to work with any processor and as such has no programing cable or processor specific instructions. Unfortunately many of the people who buy this kit do not have enough knowledge to adapt it to their processor. We are now supplying the kit with the ATmega8A with the Arduino bootloader installed to make the kit easier to use.

If you look in the code you will see a tab called "IO_pins.h". This is a list of the Arduino pins with an explanation of which sensor / servo they connect to using the jumper wires.

I have attached the ATmega8A version of the software. The main difference is that is uses digital inputs for the corner sensors. The Original Arduino code used an Arduino Nano which has 2 extra analog inputs.

today i finished the soldering and assembling of this robot.

Nice work. but when i tried to turn it ON, it works for few seconds then the ATMEG 8A will stop responding. what is the problem is this because of batteries?


This robot is designed to run on rechargeable batteries which is why it has the recharging socket. Use NiMh or NiCd batteries only. Normal alkaline batteries are not suitable.

Another posibility is if you have a loose connection. As Mr. General uses the breadboard it's possible you have a bad connection. I find that the ceramic resonator really needs some offcuts from the other components soldered to it's legs so that it can get a better connection in the breadboard.

I got the kit a couple of days ago, my first robot, so pretty excited. I'm up to the point where I think most things are working fine. The only thing that seems to not work is the frontleftnsensor for collision detection. I checked the other 3 corners, and they seem to be working. The IR LED's pulse when away from objects and turn solid when near objects. (I checked with iPhone camera that can see IR).

The only one that has trouble doing this is the frontLeft. When I put my hand near it, it doesn't detect a collision. But if I take a white business card, and put it near it, it does. Is this a sensitivity issue?

What can I check, in regards to the circuit associated with the frontLeft. I have checked R10, R11, R18, & R5. The only thing I know I might have messed up are C2,C4,C6. I stupidly soldered them in the wrong place and it took a lot of heat to desolder them. So I'm worried they might not work well.




To get the best sensitivity from your sensors the IR LED (clear)  and phototransistor (black) should be close together and parallel. Adjusting their position relative to each other can make a big difference to the sensitivity.

Although the phototransistors and LEDs can be easily damaged by soldering I have found that some of the photo transistors can be a bit slow to respond to changes in light. inserting a small time delay between when the IR LEDs are turnd on and when the phototransistor is read can solve this problem. 

The amount of time required will vary depending on the phototransistor but usually between 10uS and 50uS is enough. 

Sorry to keep posting here, but just wanted to ask another question. All 4 collision detection green LED's work, and they turn solid when there's an object detected. The only problem is that the left and right wheel servos don't seem to do anything in response. Since the little green LED's work, is the only other thing to check the code? Or are there other components I could check?



Judging from your video when the robot thinks it has stopped it is still moving forward slowly. You need to adjust the motor stop values so that the robot stops when there is nothing in front of it. Every servo is slightly different so these values need to be adjusted for each robot.

Changes in temperature can also affect these values so your settings for a hot summers day will be different to those of a cold winter morning. A temperatures sensor could be added to help compensate for this.

You were right on the money! Worked like a charm. Adjusted the stop values, and now I believe everything works on the robot. Pretty excited. I took it to work, and everyone was in love with it. I had 3 people ask where I got it, bc they want kits for themselves. Im a student in the physics dept. so there are plenty of people into this kind of stuff. I passed on LMR links and claudia's email. Thanks again!

Now try and give it some personality. I had one set up so that if you didn't play with it (no movement to track) it would get bored and wander about using the corner sensors and eye for collision advoidance. Once it found something that moved it would start tracking again. It would also get bored if it travelled to far in any direction without encountering an object.

All this was done just by having a simple boredom counter that would count the number of program loops. If it found a moving object then the counter was reset every time the robot tracked movement. Other conditions such as avoiding an object might only subtract a small amount from the counter.

Other things the robot can do is play a tune and look around aimlessly if the boredom counter is low. Maybe spin in circles if the counter gets high enough.