The micromouse book collects together all the information I found out while learning to build a competitive micromouse.

Finding all this out for yourself can be real hard work even with the power of the mighty Google to hand. So, to save some trouble and give newcomers a head start, I put it all together into some web pages. These were originally published on another site which will probably be gone by the time you get to read this.

All of that information is now gathered here in the form of a single ‘book’. The navigation for that book should appear in one of the side bars.


This Post Has 25 Comments

  1. Anonymous

    relevant information of competition is removed

  2. peteh

    Exactly what do you miss?

  3. Anonymous

    history of the compettion. I used the website as a reference to my report. But the link brings me directly to this page.

  4. peteh

    I have changed the redirection and added in the history page.

    If your link points to

    it will now get redirected straight to the replacement history page.

    Let me know if that works for you.

  5. Anonymous

    Thank you so much. i appreciate the instant response.

  6. Anonymous

    Nesecito controlar un motor de paso con PIC16f84 y el hardware sla7024 ya lo conecté completo y programé el pic revisé bien todo hasta el orden lógico de paso del motor pero no me funciona ; que debo hacer?

  7. ismel

    Has revisado la sla7024, en el datasheet hay una configuracion de hardware, o sea , algunos componentes externos, este driver lo he provado con una FPGA y trabaja OK, enviame el esquema de tu aplicacion a mi correo y te dire mas…….

  8. ismel

    enviame tu esquema a mi correo y te dire si es problema de hardware

  9. tahmin

    what is robate micro mouse?

  10. Patrick

    hello there. I was wondering what was yur method of odometry for the decimus. and also , if i use a 1 axis yaw gyroscope sensor can i use it to tell the degree a mouse rotated?

  11. peteh

    Decimus uses encoders on the motors for odometry. These give about 24 pulses per millimeter of travel. Right now, Decimus does not use a Gyro. However, what you ask is perfectly possible. A Gyro would be used both to control the rate of turn and the angle of a turn.

  12. Patrick

    is odometry extremely important? if so i would be using the simple ir encoder form of odomerty and not have built in encoders. Would this pose a large problem?

  13. Patrick

    i see that u have pretty high resoltion. if i have wheel of 10 cm circumference and if i have ten segemnts meaning each pulse is 1 cm, will it pose a problem?

  14. peteh

    I think you need to find a way to improve the resolution of your mouse. It really wants to be down to one or two millimeters if you can manage it. the technique I described for motion control is not going to work well or possibly at all with low resolution. Instead, I think you need to just turn on the motors only hard enough to prevent slipping. Once you have gone a few cm, turn them on a bit harder. To control speed with low resolution encoders, you may have to measure the amount of time between pulses rather than the number of pulses in a given time.

  15. Patrick

    What would u recommned to improve resolution? Getting Faulhaber motors seem to be a little out of my price since it is my first mouse.

  16. peteh

    It is hard to recommend anything in particular without knowing what you have available or what your skills may be. However, three possibilities come to mind.

    First, you can find an old computer mouse – the kind with an encoder wheel – and use that. Here is a picture of a mouse that does exactly that:

    From UK Micromouse finals 2007

    Second, you can try the Austria Microsystems AS5040 magnetic encoder. This can be used with a magnet attached to the motor shaft or the drivewheel shaft to give quite high resolution. Here is a mouse with one of these:

    From UK Micromouse 2008

    Third, you could print an encoder wheel on some OHP transparency and attach it to the motor shaft and use the same kind of optical encoders as are used in a mouse as described above. I don’t have a picture of that but it can be made to work very well.

  17. Patrick

    WOW! Thanks for the great suggestions! I decided to follow the trackballs mouse method as it is the cheapest i guess. So about 40 pulses for 10 cm, good enough? I think thats pretty good to me already. Cool thing is that, in the old mouse, there is this black strip of black plastic, which has small slits on it, to focus the ir led transmissions to the sensor so as not to miss out any spaces in the encoder wheel. Pretty awsome! I am having one problem now, I am unable to make the micromouse go in a straight line, any ideas why? The voltage to both motors are the same. I also need to ask you do i need to take not if whether the wheels are going foraward ad backward with the encoder? Thanks alot mate

  18. peteh

    If you have taken the emitter/sensor out of the mouse as well, you will find that the sensor has two outputs. These are in quadrature and can be used to find out what the motor direction is. The mouse pictured above does that. You will need to know.

    I would think that, for now, four counts per mm would do you.

    Mice rarely go in a straight line if left to their own devices. That is why you need the control loops in there. The motors may be un-matched and the wheels are unlikely to be the same diameter.

  19. Patrick

    You mean 1cm for 4 pulses right? One other sad thing is that, the mouse i bought, had two sensors per disk. and the sensors had only 2 legs each. Oh well. would it be smart though, to place variable resistors to the motors so as to control the voltage to make it go in a straight line? I checked and voltage to both motors are the same. THanks alot for your help peter

  20. peteh

    If the encoders have two legs, there are two of them and you need to use both. Most folk cut up the mouse PCB and attach leads to it to preserve the geometry.

    Try to get all the encoder resolution you can.

    If you must vary the drive to each motor, do it by adjusting the PWM going to each one rather than variable resistors.

  21. Patrick

    Damn I cut soldered apart the PCb alr. One thing, is
    1.1m/s too slow ? I’m trying to get it faster. I’m currentylu
    using those micrometal gear Motors and running at 9vs .
    Any suggestion on how to increases top speed

  22. peteh

    For a first mouse, the most important thing is getting to the middle. When you can do that reliably, then work on making it faster

  23. Patrick

    Alright, will work on that. but errrrr, how do i accel? do i need some sort of speed profile? if so, how would i generate one?

  24. Patrick

    hi again peter, could you enlighten me on the speed controlling with the code to do things like accel decel and constant speed of a micromouse? I know that pwm is involved but i dont know how to apply the code. Many thanks.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.