import lejos.nxt.*; import lejos.nxt.addon.*; /** * Test of a remote RCX motor using a remote RCX as a controller. * * Requires a Mindsensors NRLink adapter connected to sensor * port S1 on the NXT, and RCX motors connected to one or * more of the RCX motor ports. * * Press the ENTER button to increase the power, LEFT to cycle through * the motor modes (forward, backward,float,stop) and RIGHT * to cycle through the motors. * * ESCAPE terminates the program. * * @author Lawrie Griffiths * */ public class RCXRemoteMotor { public static void main(String[] args) throws Exception { RCXLink link = new RCXLink(SensorPort.S1); int power = 0; int mode = 1; int motor = 0; RCXMotor[] motors = {link.A, link.B, link.C}; String motorString = "Motor:"; String modeString = "Mode:"; String powerString = "Power:"; while (true) { int key = Button.waitForPress(); if (key == 1) { // ENTER power += 20; if (power > 100) power = 0; } else if (key == 2) { // LEFT mode++; if (mode > 4) mode = 1; } else if (key == 4) { // RIGHT motor++; if (motor > 2) motor = 0; } else if (key == 8) { // ESCAPE System.exit(0); } LCD.drawString(motorString,0,0); LCD.drawInt(motor, 10, 0); LCD.drawString(powerString,0,1); LCD.drawInt(power, 3, 10, 1); LCD.drawString(modeString,0,2); LCD.drawInt(mode, 10, 2); LCD.refresh(); motors[motor].setPower(power); Thread.sleep(100); if (mode == 1) motors[motor].forward(); else if (mode == 2) motors[motor].backward(); else if (mode == 3) motors[motor].flt(); else if (mode == 4) motors[motor].stop(); } } }