30
TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

  • View
    220

  • Download
    1

Embed Size (px)

Citation preview

Page 1: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

TEAM MECHAZAWA

Jeong Bang

Riley Ceria

Grant Higa

Page 2: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Job Duties

Chassis Design and Fabrication

Program Algorithms

Head Programmer

Jeong RileyChassis

Circuit design

Assistant programmer

Grant

Page 3: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Micromouse

“Autonomouse” robot that solves a maze in the fastest time possible.

International

Many different types of mice.

Great Fun!!

Page 4: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Our Mouse

Page 5: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Our Mouse

Side Sensors (Distance Sensors)

Stepper Motors

Rabbit Processor

Nice Wheels

Cool Chips… a lot of SMD.

SUPER SMALL!!

Page 6: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Side Sensors

Analog signalA/D converter5 bit accuracyRequires calibrationMore distance information

Smoother tracking

Page 7: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Analog to Digital Mux

Page 8: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Sensor Placement

4 sensors-total2 front-facing2 side-facing

Page 9: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Chassis Considerations

Placement of componentsSensorsMotorsPC boardsBatteries

HeatSymmetryWeight

Page 10: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Limited Tools

Bandsaw was missing teeth

Used clamps to bend brackets

Dremel was the main tool usedParts mysteriously disappeared

Page 11: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Resulting Chassis

Buddy-esque shape

One piece design

Brackets hold sensors

Standoffs hold Circuit Boards

Furniture slider support

Page 12: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Chassis Problems/Solutions

Motor axle to longChoose different motors

Sensor anglesFind a better way to mount sensors

Page 13: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Circuit Design (power)

8 AA NiMH batteries2100 mAh

Power12V DC-DC step up converter

MAX1771Possibly unnecessary

5V linear regulatorLM340Runs hot

Page 14: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Circuit design (driver)

Driver BoardPanasonic 2SK2211 n-MOSFET

Runs fairly coolSmall size

Gate storing too much chargeAdded resistor to increase response

Page 15: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Circuit design

Main board5V regulatorRabbit RCM2000MAX118 A/D converter

SHARP GP2D120 distance sensors

Page 16: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

PCBoards

Design done in CIRCAD

Double and single sided

Iron-on resist paperDifficult to iron on well

Ran out of etchant

Page 17: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Programming

Tracking Staying in Center Mapping Walls

Solving Find Center Fastest Path Speed Run

Page 18: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Centering

Reading Analog Signals

Delays

Blind Tracking

Front Wall

Page 19: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Mapping

Setting Values

Pointers or no pointers?

Wall There?

When to check?

Page 20: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

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: %d y: %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

} // end for

hd_value++;

if(notbegin == FALSE && hd_value >= (maze_map[mox][moy].value+3)) return;

} // end while

} // end solving

Page 21: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Fastest Path

Searches of finding Center

Floods from Center to Beginning

Goes to unsearched Cells

Page 22: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Speed Run

The Grant Delay

Acceleration

Faster

No mapping, or solving

followpath[x] array

Page 23: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Tracking Problems

Sensors

A to D conversion

Motor limits

Tracking of an “imaginary” wall

Jittery

Step Counts

False Wall Readings

Page 24: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Tracking Solutions

Play with wires

Use 5 bit accuracy

Created new type of Delay

Limited distance for walls

Page 25: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Solving Problems

POINTERS!!!!!

Arrays

Loops…going on and on

Stopping at each cell

Page 26: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Solving Solutions

Make sure the “*” are everywhere…fixed almost everything

Only Solve at Junctions

Page 27: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Problems

Board FabricationPoor PCBoard designLack of sufficient etchant

ChassisLack of toolsSensor attachmentBattery placement

Page 28: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

Problems

Connectors

Motors torquewidth

Programming

Time

Page 29: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

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

Page 30: TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa

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