Learning to Program with Learning to Program with RobotsRobots
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
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:
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.
Peg Connector (J)
Full Bushing
24 tooth gear wheel
2x8
plat
e with
hol
es
1x4 Plate
2x4 plate w/holes
Gear Motor
2x2 brick
2x8 plate w/holes
24 tooth gear wheel
RCX Connector
Pegs
1.5 Connection Pegs
1x8 brick
Rims
Full Bushings
16 tooth
gear wheel
Connecting
leads
Caterpillar Belts
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.
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; }
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(); }
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(); }
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
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(); }
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(); }
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
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(); }
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"); } }
Infra-Red receiver must face IR Tower