Micromouse Basics Part 1: Hardware
Micromouse Basics Part 1: Hardware
Micromouse Basics Part 1: Hardware
Part 1: Hardware
Robot Kits
Main components:
Microcontroller board
Motors
Wall sensors
Batteries
Chassis
Microcontrollers
Basic Stamp
Basic Programming Language
Full documentation and examples online
Basic Stamp 2e has more programming space
Microcontrollers
OOPic
Object oriented (VisualBasic)
Full documentation and examples online
Microcontrollers
Handy Board
Perfect for small robots
Easy to develop software
Propulsion
DC Motors
Servos
Stepper Motors
Propulsion
DC Motors
Cheap, small
Need gearbox
Need shaft encoders
H-Bridge
Discrete
SGS Thompson L293D
• Can drive two motors
• 600mA per motor
Propulsion
Servos
Need to modify for continuous rotation
Need shaft encoders
Can be driven without H-Bridge
Come with attachments
Perfect for Basic Stamp
Propulsion
Stepper Motors
Less torque than DC motors for a given size
and weight
Do not need shaft encoders, gearbox
LSI chips can handle logic and power
Allegro UCN5804LB
• 1.25 A
• 35 V
Propulsion
Acceleration / Deceleration
Want to ramp up and ramp down
Sensors
Wall Feelers
IR Sensors
Sensors
Wall Feelers
Simple to make and adjust
Tend to get hung up at wall openings
Sensors
IR Sensors
Proximity
Easiest to implement
Distance
Sensors
IR Sensors
Guide the mouse
Map the walls
Sensors
IR Sensors
Detect navigation errors
Sensors
IR Sensors
Can sense adjacent walls
Sensors
IR Sensors
Pivot turn
Sensors
IR Sensors
Arc turn
Batteries
Basics
Go forward using the wall-following method
Travel a specific number of cells
Make consistent turns
Maze Solving Algorithms
Full Flood-Fill
Cells are assigned distance values indicating
how far they are from the destination
Destination cells are assigned a value of zero
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
Full Flood-Fill
Make a move
Record any walls
Flood the maze
Repeat
Flood-Fill
Make a move
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 5 6 7 6
7 4 3 2 3 4 5
6 5 8 1 2 3 6
7 8 7 0 3 4 7
8 9 6 5 4 5 8
9 10 7 8 9 10 9
10 11 12 13 12 11 10
Flood-Fill
6 5 4 3 4 5 6
5 4 3 2 3 4 5
4 3 2 1 2 3 4
3 2 1 0 1 2 3
4 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6
5 4 3 2 3 4 5
4 3 2 1 2 3 4
3 2 1 0 1 2 3
4 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6
5 4 3 2 3 4 5
4 3 2 1 2 3 4
3 2 1 0 1 2 3
4 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6
5 4 3 2 3 4 5
4 3 2 1 2 3 4
3 2 1 0 1 2 3
4 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6
5 4 3 2 3 4 5
4 3 2 1 2 3 4
5 2 1 0 1 2 3
6 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6 6 5 4 3 4 5 6
5 4 3 2 3 4 5 5 4 3 2 3 4 5
4 3 2 1 2 3 4 4 3 2 1 2 3 4
3 2 1 0 1 2 3 5 2 1 0 1 2 3
4 3 2 1 2 3 4 6 3 2 1 2 3 4
5 4 3 2 3 4 5 5 4 3 2 3 4 5
6 5 4 3 4 5 6 6 5 4 3 4 5 6
Flood-Fill
6 5 4 3 4 5 6
7 4 3 2 3 4 5
6 5 2 1 2 3 4
7 2 1 0 1 2 3
6 3 2 1 2 3 4
5 4 3 2 3 4 5
6 5 4 3 4 5 6
Flood-Fill
Full Flood-Fill
Make a move
Record any walls
Flood the maze
Repeat
Flood-Fill
Modified Flood-Fill
Change distance values as you explore the
maze
Flood-Fill
Flood-Fill
Another wall
Flood-Fill
More updating
Flood-Fill
More updating
Flood-Fill
Done updating
Can now find destination cell
Flood-Fill
Modified Flood-Fill
Move to the open neighboring cell with the
lowest distance value
Record any walls
Update distance values if necessary
Repeat
Flood-Fill
Modified Flood-Fill
Updating distance
values QuickTime™ and a
GIF decompressor
are needed to see this picture.
Contact Information
http://www.micromouseinfo.com
[email protected]