3 import lejos
.hardware
.ev3
.EV3
;
4 import lejos
.hardware
.ev3
.LocalEV3
;
5 import lejos
.hardware
.lcd
.Font
;
6 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
7 import lejos
.hardware
.port
.MotorPort
;
8 import lejos
.hardware
.sensor
.EV3ColorSensor
;
9 import lejos
.robotics
.subsumption
.Arbitrator
;
10 import lejos
.robotics
.subsumption
.Behavior
;
13 public static Arbitrator arbitrator
;
15 public static void main(String
[] args
) {
16 EV3 brick
= LocalEV3
.get();
18 //BTMemory.getBTMemory(true, null);
19 BTMemory
.getBTMemory(false, "Rover1");
20 LCDPrinter lcdprinter
= new LCDPrinter(brick
.getGraphicsLCD(), Font
.getSmallFont());
21 LCDPrinter
.print("Starting up systems");
24 LCDPrinter
.print("Loading keylistener...");
25 brick
.getKey("Escape").addKeyListener(new ButtonListener());
27 LCDPrinter
.print("Loading motors...");
28 EV3LargeRegulatedMotor rightMotor
= new EV3LargeRegulatedMotor(MotorPort
.D
);
29 EV3LargeRegulatedMotor leftMotor
= new EV3LargeRegulatedMotor(MotorPort
.A
);
30 leftMotor
.setSpeed(200);
31 rightMotor
.setSpeed(200);
32 rightMotor
.setAcceleration(1000);
33 leftMotor
.setAcceleration(1000);
35 // LCDPrinter.print("Loading touch sensors...");
36 // EV3TouchSensor leftTouch = new EV3TouchSensor(brick.getPort("S1"));
37 // EV3TouchSensor rightTouch = new EV3TouchSensor(brick.getPort("S4"));
38 LCDPrinter
.print("Loading color sensor...");
39 EV3ColorSensor colorSensor
= new EV3ColorSensor(brick
.getPort("S2"));
40 ColorSensor colorSensorObject
= new ColorSensor(colorSensor
);
42 // LCDPrinter.print("Loading ultrasone sensor...");
43 // EV3UltrasonicSensor ultraSensor = new EV3UltrasonicSensor(brick.getPort("S3"));
45 LCDPrinter
.print("Initializing behaviours...");
46 Behavior
[] behaviorList
= new Behavior
[] {
47 new WandererBehaviour(colorSensorObject
, leftMotor
, rightMotor
),
48 new StayInFieldBehaviour(colorSensorObject
, leftMotor
, rightMotor
)
52 LCDPrinter
.print("Initializing arbitrator...");
53 Main
.arbitrator
= new Arbitrator(behaviorList
);
54 Main
.arbitrator
.start();
55 LCDPrinter
.print("Takeoff!");
57 // ultraSensor.close();