Ramrod IV Micromouse 396. The Team  Andrew Igarashi – Programming  Kevin Li – Hardware  Amy Maruyama – Hardware  Stephen Nakamura – Hardware  Quang.

Slides:



Advertisements
Similar presentations
Proposal Presentation EE 396 – Micromouse Spring 2008 Saturday, February 9, 2008 Donald Kim Lab - POST 214.
Advertisements

Ramrod IV Micromouse 396. The Team  Andrew Igarashi – Programming  Kevin Li – Hardware  Amy Maruyama – Hardware  Stephen Nakamura – Hardware  Quang.
A fully autonomous robot designed to navigate and solve a maze.
The Pied Pipers Alyssa Visitacion Ken Shum Joanne Flores.
Design Presentation The Prodigy. Introduction Group Members: Dale Balsis Tyson Seto-Mook Calvin Umeda Keoni Wasano.
Design Presentation Fast D.A.D.I.. Team Members D - ale Balsis A - aron Tsutsumi D - ennis How I - kaika Ramos.
Ramrod III Micro mouse. The Team  Andrew Igarashi – software  Kevin Li – hardware  Stephen Nakamura – hardware  Quang Ngu – software.
EE 296-Micromouse Spring 2008 Team: CheeHeePono! Members: Mitchell La Puente Travis Suemori Travis Suemori William Chang William Chang Ashley Tomita Ashley.
Ramrod III Micro mouse. The Team  Andrew Igarashi – Hardware  Kevin Li – Programming  Stephen Nakamura – Hardware  Quang Ngu - Programming.
Ramrod III Micro mouse. The Team  Andrew Igarashi – Hardware  Kevin Li – Programming  Stephen Nakamura – Hardware  Quang Ngu - Programming.
Micromouse Team:. Team Members Kanoa Jou (Leader) Ryan Sato (Organizer) KiWoon Ahn (Organizer) Brett Ikei (Recorder)
EE396 Project Micromouse Team: Ocha. Team Members Kanoa Jou (Programmer) Ryan Sato (Hardware) KiWoon Ahn (Recorder) Alan Do (Programmer)
‘Iole o Mãnoa Mouse of Mãnoa. Team Members Jeff Fines Designer, Fabricator, Programmer & Thomas Matsushima Designer, Fabricator, Programmer.
Curry Mouse EE 296 Project Proposal Presentation February 11, 2006.
‘Iole o Mãnoa Mouse of Mãnoa. Team Members Jeff Fines Designer, Fabricator, Programmer & Thomas Matsushima Designer, Fabricator, Programmer.
Micromouse 296 Final Presentation Fall 2008 Group: Rabbitwagon.
Amaze Me Final Presentation May 4, Introduction of Team Amaze Me Team Members –John Miyajima –Brandon Gibu –Justin Ogata –Ah Ram Kim.
Preliminary Design Review
1 Final Presentation Team Amaze Me May 8, Content Members Overview of Project Goals Structure of Design Design Decisions Problems & Improvements.
KTD Micromouse Overview Team Goals Approach Outstanding Problems Future Solutions Final Status.
The Pied Pipers Joanne Flores Ken Shum Alyssa Visitacion.
TEAM MECHAZAWA Jeong Bang Riley Ceria Grant Higa.
TAKE YOUR JACKET OFF! Proposal Presentation  Members:  Jayson Nakakura: Chassis Design and Fabrication  Kellie Murakami: Circuitry Design and Fabrication.
M & M EE 296 Final Presentation Spring 2004 Presentation Overview Team Member Introduction Project Overview Overall Design Description Final Project.
Capstone CDR Fall 2005 Team Doki Doki: Paintball Gun IR Sensing and Tracking Team Members: Matt Freeman James Kirby Juan Rivera.
1 Team Amaze Me (Micromouse 296/396) Brandon Gibu Chad Higa John Miyajima Justin Ogata (February 9, 2008) Fig. 1.1: Amaze Me 1.0Fig. 1.3: *Herbie the Mousebot*
Final Presentation for x96 Projects 9:00 AM – 11:30 AM Thursday, 3 May 2007 Donald Kim Lab, POST 214 Team Raiton Denki No Jutsu Project Micromouse.
Micromouse Spring 2006 K A L The Pied Pipers. The Pied Pipers: Joanne – Programming Ken – Hardware Alyssa – Hardware Introduction of Team and Roles.
Fast D.A.D.I. Team Members Dale Balsis Aaron Tsutsumi Dennis How Ikaika Ramos.
Ramrod IV Micromouse 396. The Team  Andrew Igarashi – Programming  Kevin Li – Hardware  Amy Maruyama – Hardware  Stephen Nakamura – Hardware  Quang.
Micromouse Team:. Team Members Kanoa Jou Ryan Sato KiWoon Ahn Brett Ikei.
Team Asphalt Kellen King Ikaika Ramos Brad Centeno.
Preliminary Design Review EE 296: Micro Mouse Spring 2007.
CheezStix! EE 396 Micromouse Spring 2007 Preliminary Design Review.
Team P.A.C.K men EE 296 Project. Chris Mcleod Hardware Specialist.
EE 296 Team Da Kine James Cuaresma – Software Wesley Mina - Hardware Regi Morales - Hardware Henry Do - Software.
Ramrod IV. The Team  Andrew Igarashi – Programming  Kevin Li – Hardware  Amy Maruyama – Hardware  Stephen Nakamura – Hardware  Quang Ngu – Programming.
CheezStix! EE 396 Micromouse Spring 2007 Final Presentation.
Curry Mouse EE296 Final Presentation Wednesday, May 10, 2006.
KTD Micromouse OverviewApproach Potential problems Personal Expectations Team Goals.
Micromouse 296 By Lemmings. Introductions  Vicky- coordinator, software oriented  Bryce-morale booster, software oriented  Ruffer-time keeper, hardware.
Tracking Rover Team Rubber Ducky Alex Chi Joshua Rubin Alexander Starick Ryan Ramos.
EE 296 TEAM “DA KINE” MICROMOUSE PROJECT PROPOSAL Team members: Software Group - Henry, James Roles : tracking, mapping, guidance, interface Hardware Group.
Final Presentation EE 296 – Micromouse Spring 2007 Friday, May 4, 2007 POST 214.
Curry Mouse EE296 Design Review Presentation Saturday, March 11, 2006.
DC Motor Control  mouse EE 496 Advisor: Dr. Tep Dobry.
Micromouse Meeting #3 Lecture #2 Power Motors Encoders.
Microprocessors Tutorial 2: Arduino Robotics
EDGE AVOIDER ROBOT USING I-BOT mini V3. EDGE AVOIDER USING I-BOT mini V3 Edge Avoider Robot is built using the IR based Line Detecting Module. The modules.
ENGG1100 Lecture 6: Introduction To Engineering Design (Digital Logic) Part 1 Kin Hong Wong ENGG1100. Ch6-Digital Logic (Part1) 25/2/14 1.
Microcontroller Hands-on Workshop #3 Ahmad Manshad New Mexico State University Institute of Electrical and Electronics Engineers November 7, 2009.
Micromouse Jeff Bouchard Qian Wang Karla Ananias.
Analog to Digital Converters (ADC) Ben Lester, Mike Steele, Quinn Morrison.
10/10/ Controlling YOUR ROBOT. 10/10/2015 Basic Stamp  Basic Stamp Input - output pins Interpreter Chip Power supply: 5 Volts voltage Memory: EEPROM.
Team 4 Shane Sunada – Project Leader Malcolm Menor – Project Manager Nathan Umeda – Technical Supervisor Joseph Longhi – Documentation Final Presentation.
Default_Routine(); - PWM Mapping /******************************************************************** * FUNCTION NAME: Default_Routine * PURPOSE: Performs.
‘Iole o Mãnoa Mouse of Mãnoa. Team Members Jeff Fines Designer, Fabricator, Programmer & Thomas Matsushima Designer, Fabricator, Programmer.
Motor Control For the Sieg Defense Platform by Michael Dougherty Gary Look Gene Ma Reviewed by Ngochan Nguyen, Duy Le, Valdis Riekstins.
ENGG1100 Introduction to Engineering Design Digital Logic (Part 1) Prof. Kin Hong Wong Department of Computer Science and Engineering.
Final Presentation Micromouse Spring 08 8” Comb.
Preliminary Design Review (PDR) Team Amaze Me. EE 296 Project (MicroMouse) Members –Brandon Gibu –Ah Ram Kim –John-Kalani Miyajima –Justin Ogata Website.
Team: CHEE WHOOO Spring 08. The Team Mitchell La Puente-Project Leader Josh Miyamoto-Software Richard Ordonez-Hardware.
MICROCONTROLLER INTERFACING WITH STEPPER MOTOR MADE BY: Pruthvirajsinh Jadeja ( ) COLLEGE:DIET BRANCH:EC.
ECE 445 Group 20 4/23/2012 Kevin Dluzen Jonathan Hall Diyang Qiu.
1 Lab 4: D/A Converter Lab 4: D/A Converter This is a simple resistive network for a D/A converter Port 1, Port 0 are digital inputs ==> 00 (minimum),
Micromouse 296 Team: Rabbitwagon Fall O8. The Team Richard Ordonez- Project Leader Bob Barfield- Software Manager Lance Lavarias- Mechanical Architect.
GreenJacket IMDL Summer 2002 Final Report Matthew Chernosky August 6, 2002.
ECE Computer Engineering Design Project
Controlling YOUR ROBOT
Using FPro SoC with customized hardware cores
Presentation transcript:

Ramrod IV Micromouse 396

The Team  Andrew Igarashi – Programming  Kevin Li – Hardware  Amy Maruyama – Hardware  Stephen Nakamura – Hardware  Quang Ngu – Programming

Project Overview  To design a fully autonomous robot, a “mouse”, that can move through a maze, know where in the maze it is, and find the center

System SoftwareHardware Decide Direction Read WallsMoveSensorsMotor

Hardware Module MotorSensors Rabbit ADC Converter Motor Driver Chips Move

New Changes to Hardware  New Circuit Board  5V Switching Regulator  3 Additional Programmable LEDs

RCM2000 Ports

PORT A 6/8 used for motors  Ports A0 and A5 are used for clock signal for motors.  Ports A1 and A4 chooses full step or half step control.  Ports A2 and A3 control the direction of the motors (either clockwise or counter- clockwise).

Outputs to ADC  Ports E0 and E2 selects sensor to read > Left Sensor 1 0 -> Middle Sensor 0 1 -> Right Sensor  Port D0 must be low (logic 0) to read sensor’s analog output.

Inputs from ADC  Ports E1, E3, E5, E7 represent the upper four bits of the conversion value.  Ports D1, D3, D5, D7 represent the lower four bits of the conversion value. E1E3E5E7D1D3D5D = = 37 = = 37

Debugging Tool 7 Segment Display  Allows us to determine what the mouse sees and remembers.  Many ports used to implement A6 A7 B6 B7 D2 E4 E6

Software Modules Move Main() Read SensorsMapSolve

Main()  Define a lot of Macros and Global Variables  Initialize Ports A2,A3, A1,and A4 for motors  while(1) { Costate { move(); check_sensors(); map(); solve()} }

Macros  //Macros  #define RIGHT_FAST 4 //motor speeds  #define RIGHT_SLOW 10 //motor speeds  #define RIGHT_TRACK 6 //motor speeds  #define LEFT_FAST 2 //motor speeds  #define LEFT_SLOW 5 //motor speeds  #define LEFT_TRACK 3 //motor speeds  #define RIGHT 0 //read right sensor/track right  #define LEFT 1 //read left sensor/track left  #define MIDDLE 2 //read middle sensor/track  still got more to add….

Motor Macros  #define PORTA0ON BitWrPortI(PADR, &PADRShadow, 1, 0) //Clock for Right Motor  #define PORTA1ON BitWrPortI(PADR, &PADRShadow, 1, 1) //Half Step for Left Motor  #define PORTA2ON BitWrPortI(PADR, &PADRShadow, 1, 2) //Right Motor Backwards  #define PORTA3ON BitWrPortI(PADR, &PADRShadow, 1, 3) //Left Motor Forwards  #define PORTA0OFF BitWrPortI(PADR, &PADRShadow, 0, 0) //Clock for right Motor  #define PORTA1OFF BitWrPortI(PADR, &PADRShadow, 0, 1) //Full Step for Left Motor  #define PORTA2OFF BitWrPortI(PADR, &PADRShadow, 0, 2) //Right Motor Forwards  #define PORTA3OFF BitWrPortI(PADR, &PADRShadow, 0, 3) //Left Motor Backwards

More Motor Macros  #define PORTA4ON BitWrPortI(PADR, &PADRShadow, 1, 4) //Half Step for Right Motor  #define PORTA5ON BitWrPortI(PADR, &PADRShadow, 1, 5) //Clock for Left Motor  #define PORTA6ON BitWrPortI(PADR, &PADRShadow, 1, 6) //7-segment  #define PORTA7ON BitWrPortI(PADR, &PADRShadow, 1, 7) //7-segment  #define PORTA4OFF BitWrPortI(PADR, &PADRShadow, 0, 4) //Full Step for Right Motor  #define PORTA5OFF BitWrPortI(PADR, &PADRShadow, 0, 5) //Clock for Left Motor  #define PORTA6OFF BitWrPortI(PADR, &PADRShadow, 0, 6) //7-segment  #define PORTA7OFF BitWrPortI(PADR, &PADRShadow, 0, 7) //7-segment

Analog to Digital Converter Macros  // Output Macro for Sensor Select on ADC  #define PORTE0ON BitWrPortI(PEDR, &PEDRShadow, 1, 0)  #define PORTE2ON BitWrPortI(PEDR, &PEDRShadow, 1, 2)  #define PORTE0OFF BitWrPortI(PEDR, &PEDRShadow, 0, 0)  #define PORTE2OFF BitWrPortI(PEDR, &PEDRShadow, 0, 2)  // Output Macro for Sensor RD Input low to access data  #define PORTD0ON BitWrPortI(PDDR, &PDDRShadow, 1, 0)  #define PORTD0OFF BitWrPortI(PDDR, &PDDRShadow, 0, 0)

Analog to Digital Converter Macros  //Sensor Definitions  #define PORTE1ON BitRdPortI(PEDR,1) // MSB  #define PORTE3ON BitRdPortI(PEDR,3) // D6  #define PORTE5ON BitRdPortI(PEDR,5) // D5  #define PORTE7ON BitRdPortI(PEDR,7) // D4  #define PORTD1ON BitRdPortI(PDDR,1) // D3  #define PORTD3ON BitRdPortI(PDDR,3) // D2  #define PORTD5ON BitRdPortI(PDDR,5) // D1  #define PORTD7ON BitRdPortI(PDDR,7) // LSB

Global Variables  int left_sen;//sensor values  int middle_sen;//sensor values  int right_sen;//sensor values  int motor; //pick which motor to pulse  int pulse_delay; //delay for motor pulsing  int track_pick; //Pick direction to track  int sen_pick; //Pick which sensor to use  int i;//Counter/index for loops  and more to come...

Initialization (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5)(2,5) (2,4) (2,3) (2,2) (2,1) (2,0) (3,5) (3,4) (3,3) (3,2) (3,1) (3,0) (4,5) (4,4) (4,3) (4,2) (4,1) (4,0) (5,5) (5,4) (5,3) (5,2) (5,1) (5,0) C (X,Y) C = Shortest number of steps away from center (X,Y) = Coordinate of the Cell R F L What is 1 step? -moving 1 cell forward -90 degree turn left/right (without moving after turn) -180 degrees (without moving after turn) B

The Mapping System Orientation: W N S E Wall Orientation: L F B R

How do we store walls? (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5)(2,5) (2,4) (2,3) (2,2) (2,1) (2,0) (3,5) (3,4) (3,3) (3,2) (3,1) (3,0) (4,5) (4,4) (4,3) (4,2) (4,1) (4,0) (5,5) (5,4) (5,3) (5,2) (5,1) (5,0) Front Mouse

(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5)(2,5) (2,4) (2,3) (2,2) (2,1) (2,0) (3,5) (3,4) (3,3) (3,2) (3,1) (3,0) (4,5) (4,4) (4,3) (4,2) (4,1) (4,0) (5,5) (5,4) (5,3) (5,2) (5,1) (5,0) Cont. Wall[0][1][R] = NoWall Wall[0][1][L] = Wall Wall[0][0][F] = NoWall

(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5)(2,5) (2,4) (2,3) (2,2) (2,1) (2,0) (3,5) (3,4) (3,3) (3,2) (3,1) (3,0) (4,5) (4,4) (4,3) (4,2) (4,1) (4,0) (5,5) (5,4) (5,3) (5,2) (5,1) (5,0) Cont. Wall[1][1][F] = NoWall Wall[1][1][B] = Wall Wall[0][1][R] = NoWall Wall[0][1][L] = Wall

Move(); track_straight()turn_left()turn_right()180_right() move() Solve telling move where we want to go find_walls telling move where we can go Tell solve where we are going Did we move 1 cell? When can I move 1 cell?

track_Straight()  void track_straight(void) {  if ((right_sen > 70)) {  //printf("Going into right track loop\n");  for (i = 0;i < 50; i++)  forward(RIGHT);  }  else if ((left_sen > 80)) {  //printf("Going into left track loop\n");  for (i = 0;i < 50; i++)  forward(LEFT);  }  else {  //printf("Going into sraight loop\n");  for (i = 0;i < 50; i++)  forward(MIDDLE);  }

forward()  void forward(int motor) {  if (motor == MIDDLE) {  costate  {  PORTA0ON;  waitfor(DelayMs(RIGHT_FAST));  PORTA0OFF;  waitfor(DelayMs(RIGHT_FAST));  }  costate  {  PORTA5ON;  waitfor(DelayMs(LEFT_FAST));  PORTA5OFF;  waitfor(DelayMs(LEFT_FAST));  }  else if (motor == LEFT) {  //printf("In left loop");  costate  {  PORTA5ON;  waitfor(DelayMs(LEFT_TRACK));  PORTA5OFF;  waitfor(DelayMs(LEFT_TRACK));  }  costate  {  PORTA0ON;  waitfor(DelayMs(RIGHT_FAST));  PORTA0OFF;  waitfor(DelayMs(RIGHT_FAST));  } 

Check_Sensors  Check_sensor();  costate  {  read_sensor(RIGHT);  waitfor (DelayMs(50));  //printf("right_sen = %d\t",right_sen);  read_sensor(LEFT);  waitfor (DelayMs(50));  //printf("left_sen = %d\t",left_sen);  read_sensor(MIDDLE);  waitfor (DelayMs(50));  //printf("middle_sen/left_sen = %d\n",middle_sen);  }

Read_sensor  void read_sensor(int sen_pick) //initialzes a conversion for 1 sensor  {  int distance1; //variable for 4MSBs  int distance2; //variable for 4LSBs  int total; //representing distance without splitting in two creates  //invalid results  if (sen_pick == LEFT) {  PORTE0ON; PORTE2ON;  }  else if (sen_pick == RIGHT) {  PORTE0ON; PORTE2OFF;  }  else if (sen_pick == MIDDLE) {  PORTE0OFF; PORTE2ON;  }   costate {  PORTD0OFF;  waitfor(DelayMs(50)); //wait for conversion  distance1 = PORTE1ON*128 + PORTE3ON*64 + PORTE5ON*32 + PORTE7ON*16;  distance2 = PORTD1ON*8 + PORTD3ON*4 + PORTD5ON*2 +PORTD7ON;  total = distance1 + distance2;  if (sen_pick == LEFT) {  left_sen = total;  //printf("left_sen = %d\t",left_sen); }  else if (sen_pick == RIGHT) {  right_sen = total;  //printf("middle_sen = %d\n",middle_sen); }  else if (sen_pick == MIDDLE) {  middle_sen = total;  //printf("right_sen = %d\n",right_sen); }  PORTD0ON; } } 

Map find_walls()position() Did we move 1 cell yet? Sensors Move Tell solve where we are Tell solve where the walls are What moves are possible? Move Did we move 1 cell yet? This module also stores the walls with respect to position in an array Wall[x][y][side] = 0 or 1

Solve remember()filter()go_home() solving() Store moves we made go_center() Walls we found Moves we want to make Array of moves

Schedule

Questions ?