3 import lejos
.hardware
.Audio
;
4 import lejos
.hardware
.ev3
.EV3
;
5 import lejos
.hardware
.ev3
.LocalEV3
;
6 import lejos
.hardware
.lcd
.Font
;
7 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
8 import lejos
.hardware
.port
.MotorPort
;
9 import lejos
.hardware
.sensor
.EV3TouchSensor
;
10 import lejos
.hardware
.sensor
.EV3UltrasonicSensor
;
11 import lejos
.hardware
.sensor
.NXTLightSensor
;
12 import lejos
.robotics
.subsumption
.Arbitrator
;
13 import lejos
.robotics
.subsumption
.Behavior
;
14 import lejos
.utility
.Delay
;
18 public static void main(String
[] args
) {
19 EV3 brick
= LocalEV3
.get();
20 LCDPrinter lcdprinter
= new LCDPrinter(brick
.getGraphicsLCD(), Font
.getSmallFont());
21 LCDPrinter
.print("Starting up systems");
24 LCDPrinter
.print("Loading audio...");
25 Audio audio
= brick
.getAudio();
26 WavPlayer wavplayer
= new WavPlayer(audio
);
28 WavPlayer
.playWav("boot.wav");
30 LCDPrinter
.print("Loading keylistener...");
31 brick
.getKey("Escape").addKeyListener(new ButtonListener());
33 LCDPrinter
.print("Loading motors...");
34 EV3LargeRegulatedMotor rightMotor
= new EV3LargeRegulatedMotor(MotorPort
.D
);
35 EV3LargeRegulatedMotor leftMotor
= new EV3LargeRegulatedMotor(MotorPort
.A
);
36 rightMotor
.setSpeed(300);
37 leftMotor
.setSpeed(300);
38 rightMotor
.setAcceleration(1000);
39 leftMotor
.setAcceleration(1000);
41 LCDPrinter
.print("Loading touch sensors...");
42 EV3TouchSensor leftTouch
= new EV3TouchSensor(brick
.getPort("S1"));
43 EV3TouchSensor rightTouch
= new EV3TouchSensor(brick
.getPort("S4"));
44 LCDPrinter
.print("Loading light sensor...");
45 NXTLightSensor lightSensor
= new NXTLightSensor(brick
.getPort("S2"));
46 LCDPrinter
.print("Loading ultrasone sensor...");
47 EV3UltrasonicSensor ultraSensor
= new EV3UltrasonicSensor(brick
.getPort("S3"));
49 WavPlayer
.playWav("bootsystem.wav");
51 LCDPrinter
.print("Initializing behaviours...");
52 Behavior
[] behaviorList
= new Behavior
[] {
53 new WandererBehaviour(leftMotor
, rightMotor
),
54 new AvoidHighObjectBehaviour(leftMotor
, rightMotor
, ultraSensor
),
55 new AvoidLowObjectBehaviour(leftMotor
, rightMotor
, leftTouch
, rightTouch
),
56 new StayInFieldBehaviour(lightSensor
, leftMotor
, rightMotor
),
59 WavPlayer
.playWav("calibrate.wav");
61 LCDPrinter
.print("Initializing arbitrator...");
62 Arbitrator arb
= new Arbitrator(behaviorList
);
64 WavPlayer
.playWav("takeoff.wav");
66 LCDPrinter
.print("Takeoff!");