NXT rileva ostacolo

Avanza con una velocità proporzionale alla distanza dell’ostacolo che ha di fronte; se la distanza è grande, massima velocità; se la distanza è piccola, minima velocità; se la distanza è inferiore a 10 cm, si ferma, altrimenti riparte.

import lejos.nxt.Button;
import lejos.nxt.Motor;
import lejos.nxt.SensorPort;
import lejos.nxt.UltrasonicSensor;
import lejos.robotics.navigation.DifferentialPilot;
import lejos.util.Delay;

public class Ostacoli {

	public static void main(String[] args) {
		DifferentialPilot dp = new DifferentialPilot(5.5f, 11.5f, Motor.A, Motor.C);
		UltrasonicSensor us = new UltrasonicSensor(SensorPort.S1);

		dp.forward();
		do {
			int d = us.getDistance();
			if (d < 10)
				dp.stop();
			else {
				dp.setTravelSpeed(d);
				dp.forward();
			}
			Delay.msDelay(100);
		} while (!Button.ESCAPE.isDown());
	}

}