package nl.ru.des;
+import java.util.LinkedList;
+import java.util.Random;
+
import lejos.hardware.Button;
+import lejos.hardware.Sound;
import lejos.hardware.ev3.EV3;
import lejos.hardware.ev3.LocalEV3;
import lejos.hardware.lcd.Font;
import lejos.hardware.sensor.NXTLightSensor;
import lejos.robotics.RegulatedMotor;
import lejos.robotics.SampleProvider;
-import lejos.robotics.subsumption.Arbitrator;
import nl.ru.des.sensors.BTController;
import nl.ru.des.sensors.RemoteSensors;
import nl.ru.des.sensors.SensorCollector;
public class Marster {
public static Arbitrator arb;
+ public static Random random;
@SuppressWarnings("resource")
public static void main(String[] args) {
RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
BTController.startSlave();
- rs.start(BTController.buf);
+ try {
+ rs.start(BTController.buf);
+ } catch (Exception e){
+ System.exit(0);
+ }
} else {
String slave = brick.getName().equalsIgnoreCase("Rover5") ? "Rover6" : "Rover8";
LCDPrinter.print("Starting as as master...");
RegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A);
RegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B);
RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C);
-// leftMotor.setSpeed(Constants.speed);
-// rightMotor.setSpeed(Constants.speed);
-// measMotor.setSpeed(100);
-// rightMotor.setAcceleration(Constants.acceleration);
-// leftMotor.setAcceleration(Constants.acceleration);
-// measMotor.setAcceleration(100);
-
+ leftMotor.setSpeed(Constants.speed);
+ rightMotor.setSpeed(Constants.speed);
+ measMotor.setSpeed(50);
+ rightMotor.setAcceleration(Constants.acceleration);
+ leftMotor.setAcceleration(Constants.acceleration);
+ measMotor.setAcceleration(100);
+
LCDPrinter.print("Loading touch sensors...");
SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
LCDPrinter.print("Loading gyro sensor...");
- SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode();
+ SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4")));
- BTController.startMaster(slave, new SensorCollector(backUltra, leftLight, rightLight, gyro));
+ BTController.startMaster(slave, sc);
LCDPrinter.print("Finished loading");
- Button.waitForAnyPress();
-// Arbitrator a;
-// LinkedList<Mission> missions = Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory);
-// for(Mission m : missions){
-// LCDPrinter.print("Start " + m.name + " mission...");
-// a = new Arbitrator(m.behaviours);
-// a.start();
-// }
+ sc.calibrate();
+ LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
+ random = new Random();
+ LCDPrinter.print("Press any button to start");
+ Button.waitForAnyEvent();
+ for(Mission m : missions){
+ LCDPrinter.print("Start " + m.name + " mission...");
+ arb = new Arbitrator(m.behaviours);
+ sc.reset();
+ Sound.buzz();
+ arb.start();
+ LCDPrinter.print(m.name + " finished!!1one!");
+ }
+ System.exit(0);
}
}
}
\ No newline at end of file