package nl.ru.des;
+import java.io.File;
+import java.io.PrintStream;
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.lcd.TextLCD;
+import lejos.hardware.lcd.LCDOutputStream;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.motor.EV3MediumRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.hardware.sensor.NXTLightSensor;
import lejos.robotics.RegulatedMotor;
import lejos.robotics.SampleProvider;
+import lejos.utility.Delay;
import nl.ru.des.sensors.BTController;
import nl.ru.des.sensors.RemoteSensors;
import nl.ru.des.sensors.SensorCollector;
public static Arbitrator arb;
public static Random random;
+ public static void playPacman(){
+ int whole = 2000;
+ Sound.playNote(Sound.PIANO, 494, whole/16);// b4
+ Sound.playNote(Sound.PIANO, 988, whole/16);// b5
+ Sound.playNote(Sound.PIANO, 740, whole/16);// f#5
+ Sound.playNote(Sound.PIANO, 622, whole/16);// eb5
+ Sound.playNote(Sound.PIANO, 988, whole/32);// b5
+ Sound.playNote(Sound.PIANO, 740, whole/16+whole/32);// f#5
+ Sound.playNote(Sound.PIANO, 622, whole/8);// eb5
+
+ Sound.playNote(Sound.PIANO, 523, whole/16);// c5
+ Sound.playNote(Sound.PIANO, 1047, whole/16);// c6
+ Sound.playNote(Sound.PIANO, 784, whole/16);// g5
+ Sound.playNote(Sound.PIANO, 659, whole/16);// e5
+ Sound.playNote(Sound.PIANO, 1047, whole/32);// c6
+ Sound.playNote(Sound.PIANO, 784, whole/16+whole/32);// g5
+ Sound.playNote(Sound.PIANO, 659, whole/8);// e5
+
+ Sound.playNote(Sound.PIANO, 494, whole/16);// b4
+ Sound.playNote(Sound.PIANO, 988, whole/16);// b5
+ Sound.playNote(Sound.PIANO, 740, whole/16);// f#5
+ Sound.playNote(Sound.PIANO, 622, whole/16);// eb5
+ Sound.playNote(Sound.PIANO, 988, whole/32);// b5
+ Sound.playNote(Sound.PIANO, 740, whole/16+whole/32);// f#5
+ Sound.playNote(Sound.PIANO, 622, whole/8);// eb5
+
+ Sound.playNote(Sound.PIANO, 622, whole/32);// eb5
+ Sound.playNote(Sound.PIANO, 659, whole/32);// e5
+ Sound.playNote(Sound.PIANO, 698, whole/16);// f5
+ Sound.playNote(Sound.PIANO, 698, whole/32);// f5
+ Sound.playNote(Sound.PIANO, 740, whole/32);// f#5
+ Sound.playNote(Sound.PIANO, 784, whole/16);// g5
+ Sound.playNote(Sound.PIANO, 784, whole/32);// g5
+ Sound.playNote(Sound.PIANO, 831, whole/32);// ab5
+ Sound.playNote(Sound.PIANO, 880, whole/16);// a5
+ Sound.playNote(Sound.PIANO, 988, whole/8);// b5
+ }
+
@SuppressWarnings("resource")
public static void main(String[] args) {
EV3 brick = LocalEV3.get();
- TextLCD tlcd = brick.getTextLCD(Font.getSmallFont());
- LCDPrinter.startLCDPrinter(tlcd);
- System.setOut(LCDPrinter.getPrefixedPrintstream("out: ", tlcd));
- System.setErr(LCDPrinter.getPrefixedPrintstream("err: ", tlcd));
+ PrintStream lcd = new PrintStream(new LCDOutputStream(brick.getTextLCD(Font.getSmallFont())));
+ System.setOut(lcd);
+ System.setErr(lcd);
- LCDPrinter.print("Loading keylistener...");
+ System.out.println("Loading keylistener...");
brick.getKey("Escape").addKeyListener(new ButtonListener());
-
if(brick.getName().equalsIgnoreCase("Rover6") || brick.getName().equalsIgnoreCase("Rover8")){
- LCDPrinter.print("Starting as a slave...");
- LCDPrinter.print("My name is " + brick.getName());
- LCDPrinter.print("Loading touch sensors...");
+ System.out.println("Starting as a slave...");
+ System.out.println("My name is " + brick.getName());
+ System.out.println("Loading touch sensors...");
SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode();
SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode();
- LCDPrinter.print("Loading ultrasone sensor...");
+ System.out.println("Loading ultrasone sensor...");
SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
- LCDPrinter.print("Loading color sensors...");
+ System.out.println("Loading color sensors...");
SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
}
} else {
String slave = brick.getName().equalsIgnoreCase("Rover5") ? "Rover6" : "Rover8";
- LCDPrinter.print("Starting as as master...");
- LCDPrinter.print("My name is " + brick.getName());
- LCDPrinter.print("Going to connect to: " + slave);
- LCDPrinter.print("Loading motors...");
+ System.out.println("Starting as as master...");
+ System.out.println("My name is " + brick.getName());
+ System.out.println("Going to connect to: " + slave);
+ System.out.println("Loading motors...");
RegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A);
RegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B);
RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C);
measMotor.setSpeed(50);
rightMotor.setAcceleration(Constants.acceleration);
leftMotor.setAcceleration(Constants.acceleration);
- measMotor.setAcceleration(100);
+ measMotor.setAcceleration(50);
- LCDPrinter.print("Loading touch sensors...");
+ System.out.println("Loading touch sensors...");
SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
- LCDPrinter.print("Loading ultrasone sensor...");
+ System.out.println("Loading ultrasone sensor...");
SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
- LCDPrinter.print("Loading gyro sensor...");
+ System.out.println("Loading gyro sensor...");
SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4")));
BTController.startMaster(slave, sc);
- LCDPrinter.print("Finished loading");
+ System.out.println("Finished loading");
sc.calibrate();
LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
random = new Random();
- LCDPrinter.print("Press any button to start");
- Button.waitForAnyEvent();
+ Delay.msDelay(2000);
+ playPacman();
for(Mission m : missions){
- LCDPrinter.print("Start " + m.name + " mission...");
+ System.out.println("Start " + m.name + " mission...");
arb = new Arbitrator(m.behaviours);
sc.reset();
- Sound.buzz();
arb.start();
- LCDPrinter.print(m.name + " finished!!1one!");
+ Sound.buzz();
+ Delay.msDelay(5000);
+ System.out.println(m.name + " finished!!1one!");
}
+ Sound.playSample(new File("rick.wav"), Sound.VOL_MAX);
System.exit(0);
}
}