5 import lejos
.hardware
.Audio
;
6 import lejos
.hardware
.ev3
.EV3
;
7 import lejos
.hardware
.ev3
.LocalEV3
;
8 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
9 import lejos
.hardware
.port
.MotorPort
;
10 import lejos
.hardware
.sensor
.EV3TouchSensor
;
11 import lejos
.hardware
.sensor
.EV3UltrasonicSensor
;
12 import lejos
.hardware
.sensor
.NXTLightSensor
;
13 import lejos
.robotics
.subsumption
.Arbitrator
;
14 import lejos
.robotics
.subsumption
.Behavior
;
15 import lejos
.utility
.Delay
;
19 public static void main(String
[] args
) {
20 LCDPrinter lcdprinter
= new LCDPrinter();
21 LCDPrinter
.print("Starting up");
23 LCDPrinter
.print("Brick...");
24 EV3 brick
= LocalEV3
.get();
26 LCDPrinter
.print("Audio...");
27 Audio audio
= brick
.getAudio();
28 WavPlayer wavplayer
= new WavPlayer(audio
);
30 WavPlayer
.playWav(new File("bootaudio.wav"));
32 LCDPrinter
.print("Keylistener...");
33 brick
.getKey("Escape").addKeyListener(new ButtonListener());
36 LCDPrinter
.print("Motors...");
37 EV3LargeRegulatedMotor rightMotor
= new EV3LargeRegulatedMotor(MotorPort
.D
);
38 EV3LargeRegulatedMotor leftMotor
= new EV3LargeRegulatedMotor(MotorPort
.A
);
39 rightMotor
.setSpeed(300);
40 leftMotor
.setSpeed(300);
41 rightMotor
.setAcceleration(1000);
42 leftMotor
.setAcceleration(1000);
45 LCDPrinter
.print("Touch...");
46 EV3TouchSensor leftTouch
= new EV3TouchSensor(brick
.getPort("S1"));
47 EV3TouchSensor rightTouch
= new EV3TouchSensor(brick
.getPort("S4"));
48 LCDPrinter
.print("Light...");
49 NXTLightSensor lightSensor
= new NXTLightSensor(brick
.getPort("S2"));
50 LCDPrinter
.print("Ultrasone...");
51 EV3UltrasonicSensor ultraSensor
= new EV3UltrasonicSensor(brick
.getPort("S3"));
53 WavPlayer
.playWav(new File("bootsystem.wav"));
55 //Initialize behaviours
56 LCDPrinter
.print("Behaviours...");
57 Behavior
[] behaviorList
= new Behavior
[] {
58 new WandererBehaviour(leftMotor
, rightMotor
),
59 new AvoidHighObjectBehaviour(leftMotor
, rightMotor
, ultraSensor
),
60 new AvoidLowObjectBehaviour(leftMotor
, rightMotor
, leftTouch
, rightTouch
),
61 new StayInFieldBehaviour(lightSensor
, leftMotor
, rightMotor
),
64 WavPlayer
.playWav(new File("calibrate.wav"));
66 LCDPrinter
.print("Arbitrator...");
67 Arbitrator arb
= new Arbitrator(behaviorList
);
69 WavPlayer
.playWav(new File("takeoff.wav"));
71 LCDPrinter
.print("Takeoff!");