Skip to content

Instantly share code, notes, and snippets.

@swatimshah
Created March 29, 2019 06:59
import lejos.nxt.Button;
import lejos.nxt.MotorPort;
import lejos.nxt.NXTRegulatedMotor;
import lejos.nxt.SensorPort;
import lejos.nxt.TouchSensor;
import lejos.nxt.UltrasonicSensor;
import lejos.util.Delay;
public class MovLizard {
public static void main(String[] args) {
// TODO Auto-generated method stub
NXTRegulatedMotor motora = new NXTRegulatedMotor(MotorPort.A);
NXTRegulatedMotor motorb = new NXTRegulatedMotor(MotorPort.B);
TouchSensor sensora = new TouchSensor(SensorPort.S1);
TouchSensor sensorb = new TouchSensor(SensorPort.S2);
UltrasonicSensor sensor3 = new UltrasonicSensor(SensorPort.S3);
initWalk(motora, motorb, sensora, sensorb);
while (!Button.ESCAPE.isPressed()) {
motora.backward();
motorb.backward();
// ------------------------
if (sensor3.getDistance() <= 30) {
synchronize(motora, motorb, sensora, sensorb);
turn(motora, motorb);
initWalk(motora, motorb, sensora, sensorb);
}
}
}
private static void turn(NXTRegulatedMotor motora, NXTRegulatedMotor motorb) {
motorb.setSpeed(360);
motora.setSpeed(0);
motorb.backward();
Delay.msDelay(25000);
}
private static void synchronize(NXTRegulatedMotor motora,
NXTRegulatedMotor motorb, TouchSensor sensora, TouchSensor sensorb) {
motora.setSpeed(180);
motorb.setSpeed(180);
while (!sensora.isPressed() && Button.ESCAPE.isUp()) {
motora.forward();
}
motora.stop();
while (!sensorb.isPressed() && Button.ESCAPE.isUp()) {
motorb.forward();
}
motorb.stop();
}
private static void initWalk(NXTRegulatedMotor motora,
NXTRegulatedMotor motorb, TouchSensor sensora, TouchSensor sensorb) {
synchronize(motora, motorb, sensora, sensorb);
motorb.rotate(540);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment