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()); } }