Download presentation
Presentation is loading. Please wait.
1
TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa
2
Job Duties Chassis Design and Fabrication Program Algorithms Head Programmer JeongRiley Chassis Circuit design Assistant programmer Grant
3
Micromouse “Autonomouse” robot that solves a maze in the fastest time possible. International Many different types of mice. Great Fun!!
4
Our Mouse
5
Side Sensors (Distance Sensors) Stepper Motors Rabbit Processor Nice Wheels Cool Chips… a lot of SMD. SUPER SMALL!!
6
Side Sensors Analog signal A/D converter 5 bit accuracy Requires calibration More distance information Smoother tracking
7
Analog to Digital Mux
8
Sensor Placement 4 sensors-total 2 front-facing 2 side-facing
9
Chassis Considerations Placement of components Sensors Motors PC boards Batteries Heat Symmetry Weight
10
Limited Tools Bandsaw was missing teeth Used clamps to bend brackets Dremel was the main tool used Parts mysteriously disappeared
11
Resulting Chassis Buddy-esque shape One piece design Brackets hold sensors Standoffs hold Circuit Boards Furniture slider support
12
Chassis Problems/Solutions Motor axle to long Choose different motors Sensor angles Find a better way to mount sensors
13
Circuit Design (power) 8 AA NiMH batteries 2100 mAh Power 12V DC-DC step up converter MAX1771 Possibly unnecessary 5V linear regulator LM340 Runs hot
14
Circuit design (driver) Driver Board Panasonic 2SK2211 n-MOSFET Runs fairly cool Small size Gate storing too much charge Added resistor to increase response
15
Circuit design Main board 5V regulator Rabbit RCM2000 MAX118 A/D converter SHARP GP2D120 distance sensors
16
PCBoards Design done in CIRCAD Double and single sided Iron-on resist paper Difficult to iron on well Ran out of etchant
17
Programming Tracking Staying in Center Mapping Walls Solving Find Center Fastest Path Speed Run
18
Centering Reading Analog Signals Delays Blind Tracking Front Wall
19
Mapping Setting Values Pointers or no pointers? Wall There? When to check?
20
Finding Center Flood fill Simple void flood(int floodx, int floody, int notbegin) { int x, y;// state position variables for flooding int hd_value;// highest defined value while flooding maze int stopflood; int mox, moy; int decided;// states whether a new direction has been decided int turn;// states which way tpo turn decided = FALSE;// no new direction decided in begining turn = STRAIGHT;// want to go straight first mox = mx; moy = my; // initially floods maze giving all values high for(x=1; x<17; x++) { for(y=1; y<17; y++) maze_map[x][y].value=256; } //gives a starting point to flood from maze_map[floodx][floody].value=0; /********************************************************************/ /**********************---MAIN FLOOD AREA---*************************/ /********************************************************************/ stopflood = FALSE; hd_value = 0; while(1) { /* increment x and the next value to search for after each round until flood is done*/ /* floods until either the whole maze is flooded or until the mouse position is reached*/ for(x=1; x<17; x++) { for(y=1; y<17; y++) { //printf("x: %dy: %d", x, y); /*****Only look at the current cells that have the current highest defined value*****/ if(maze_map[x][y].value == hd_value) { //printf("in the if\n"); if(maze_map[x][y].south==FALSE && maze_map[x][y-1].value>hd_value) maze_map[x][y-1].value=hd_value+1; if(maze_map[x][y].north==FALSE && maze_map[x][y+1].value>hd_value) maze_map[x][y+1].value=hd_value+1; if(maze_map[x][y].east==FALSE && maze_map[x+1][y].value>hd_value) maze_map[x+1][y].value=hd_value+1; if(maze_map[x][y].west==FALSE && maze_map[x-1][y].value>hd_value) maze_map[x-1][y].value=hd_value+1; if(notbegin == TRUE && hd_value >= (maze_map[1][1].value)) return; /************* IMPORTANT PART!! EVERY DEAD END GETS HIGH VALUE SO WON'T GO FOR SURE *************/ } // end if } // end for hd_value++; if(notbegin == FALSE && hd_value >= (maze_map[mox][moy].value+3)) return; } // end while } // end solving
21
Fastest Path Searches of finding Center Floods from Center to Beginning Goes to unsearched Cells
22
Speed Run The Grant Delay Acceleration Faster No mapping, or solving followpath[x] array
23
Tracking Problems Sensors A to D conversion Motor limits Tracking of an “imaginary” wall Jittery Step Counts False Wall Readings
24
Tracking Solutions Play with wires Use 5 bit accuracy Created new type of Delay Limited distance for walls
25
Solving Problems POINTERS!!!!! Arrays Loops…going on and on Stopping at each cell
26
Solving Solutions Make sure the “*” are everywhere…fixed almost everything Only Solve at Junctions
27
Problems Board Fabrication Poor PCBoard design Lack of sufficient etchant Chassis Lack of tools Sensor attachment Battery placement
28
Problems Connectors Motors torque width Programming Time
29
Initial Goals Build a working mouse and win regions Do 45’s Be able to compete on the international level at some point in the future
30
Results Mouse can find the center and take the shortest explored path Too wide for 45’s Too slow to compete internationally Mouse is “ghetto” Sensor connecters may fail
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.