26
Learning to Program with Learning to Program with Robots Robots

Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Embed Size (px)

Citation preview

Page 1: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Learning to Program with Learning to Program with RobotsRobots

Page 2: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Page 3: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning
Page 4: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Choose your robot design from the following list:

Hank

Minerva

Mushi Mushi 7

Trusty

TankBot

Page 5: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

1. Choose a partner to work together as a team.

2. Choose your robot design.

3. Establish team member roles.

4. Inventory Mind Storm tackle box parts placement.

5. Create your robot according to the design plan.

Steps:

Page 6: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Steps:

6. Examine Course Rules

7. Program Mind Storm Robot to run course.

8. Complete test run of course.

9. Finalize Mind Storm Robot programming.

Page 7: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning
Page 8: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning
Page 9: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Peg Connector (J)

Page 10: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Full Bushing

24 tooth gear wheel

Page 11: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

2x8

plat

e with

hol

es

1x4 Plate

2x4 plate w/holes

Page 12: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Gear Motor

2x2 brick

2x8 plate w/holes

24 tooth gear wheel

Page 13: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

RCX Connector

Pegs

1.5 Connection Pegs

1x8 brick

Page 14: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Rims

Full Bushings

16 tooth

gear wheel

Connecting

leads

Caterpillar Belts

Page 15: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

The key to programming your Robot is to determine how to solve the problem followed by writing down the logical steps to accomplish your goal.

Page 16: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

import josx.platform.rcx.*;public class Robot{ ///////////// fields ////////////// private Motor leftMotor =

Motor.A; private Motor rightMotor =

Motor.C; private int powerLevel = 7;

///////////// Constructor //////// /** Constructor take takes no * arguments */ public Robot() {}

/** * Constructor that takes the

left * motor and right motor * @param left the left motor * @param right the right

motor */ public Robot(Motor left, Motor

right) { leftMotor = left; rightMotor = right; }

Page 17: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Method to make the robot go forward for the passed amount of time (in milliseconds)

public void forward(int numMillisecs) throws Exception{ leftMotor.setPower(powerLevel); rightMotor.setPower(powerLevel); leftMotor.forward(); rightMotor.forward(); Thread.sleep(numMillisecs); leftMotor.flt(); rightMotor.flt(); }

Page 18: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Method to make the robot go backward for the passed amount of time (in milli-seconds)

public void backward(int numMillisecs) throws Exception { leftMotor.setPower(powerLevel); rightMotor.setPower(powerLevel); leftMotor.backward(); rightMotor.backward(); Thread.sleep(numMillisecs); leftMotor.flt(); rightMotor.flt(); }

Page 19: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

public void turnRight(int numMillisecs)

throws Exception { leftMotor.setPower(powerLevel); leftMotor.forward(); rightMotor.stop(); Thread.sleep(numMillisecs); leftMotor.flt(); }

Method to turn the robot to the right for the passed number of milliseconds@parm numMillisecs the number of milliseconds to turn

Page 20: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Method to spin the robot right

@param numMills the number of

milliseconds

public void spinRight(int numMills) throws Exception { leftMotor.setPower(powerLevel); leftMotor.forward(); rightMotor.setPower(powerLevel); rightMotor.backward(); Thread.sleep(numMills); rightMotor.flt(); leftMotor.flt(); }

Page 21: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Method to spin the robot left

@param numMills the number of

milliseconds

public void spinLeft(int numMills) throws Exception { rightMotor.setPower(powerLevel); rightMotor.forward(); leftMotor.setPower(powerLevel); leftMotor.backward(); Thread.sleep(numMills); rightMotor.flt(); leftMotor.flt(); }

Page 22: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

public void turnLeft(int numMillisecs) throws Exception { rightMotor.setPower(powerLevel); rightMotor.forward(); leftMotor.stop(); Thread.sleep(numMillisecs); rightMotor.flt(); }

Method to turn the robot to the left for the passed number of milliseconds@ param numMillisecs the number of milliseconds

Page 23: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Method to zig-zag the robot turn left and then right @param numMills the number milliseconds

public void zigZag(int numMills) throws Exception { leftMotor.setPower(powerLevel); rightMotor.setPower(powerLevel); leftMotor.forward(); Thread.sleep(numMills); rightMotor.forward(); Thread.sleep(numMills); leftMotor.flt(); rightMotor.flt(); }

Page 24: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

public static void main(String[] args) { try { Robot robot = new Robot(); robot.forward(3000); robot.spinLeft(3000); TextLCD.print("done"); } catch (Exception ex) { TextLCD.print ("error"); } }

Page 25: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning

Infra-Red receiver must face IR Tower

Page 26: Designed to introduce students to programming, logical thinking, teamwork, and project-based learning