diff --git a/Exercise6.nxd b/Exercise6.nxd deleted file mode 100644 index a1726817fe48459a3db325e4c8b283e07ecff760..0000000000000000000000000000000000000000 Binary files a/Exercise6.nxd and /dev/null differ diff --git a/Exercise6.nxj b/Exercise6.nxj deleted file mode 100644 index f85e3d79e25d546c87eaab8f85292506ad416577..0000000000000000000000000000000000000000 Binary files a/Exercise6.nxj and /dev/null differ diff --git a/SoundCtrCar.nxd b/SoundCtrCar.nxd deleted file mode 100644 index 0f9c6f2db1d8bd299c1e70b9e7c397eed3cf0728..0000000000000000000000000000000000000000 Binary files a/SoundCtrCar.nxd and /dev/null differ diff --git a/SoundCtrCar.nxj b/SoundCtrCar.nxj deleted file mode 100644 index b825811c45132e15693ad2f38f4397f65cb83fd8..0000000000000000000000000000000000000000 Binary files a/SoundCtrCar.nxj and /dev/null differ diff --git a/VID_20160229_134747.mp4 b/VID_20160229_134747.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..9d65789ffc87112de4286b41cb9f49675f0dffec Binary files /dev/null and b/VID_20160229_134747.mp4 differ diff --git a/bin/Exercise6.class b/bin/Exercise6.class index cdc678ce84ec30b5b39cd215e102313e9b2df542..61b122920d279d0ee2ded40c43b3a2e5118861e9 100644 Binary files a/bin/Exercise6.class and b/bin/Exercise6.class differ diff --git a/bin/SoundCtrCar$1.class b/bin/SoundCtrCar$1.class index 8db5f57b90a79d0ba10153a97eaabfe4bf140101..412e584bc235ced10e85fa6d3d2943f47ceefada 100644 Binary files a/bin/SoundCtrCar$1.class and b/bin/SoundCtrCar$1.class differ diff --git a/bin/SoundCtrCar.class b/bin/SoundCtrCar.class index 8fbdca7594f44fe22cd25bb3e530d7bda14a2698..2a3e201c00986a27a3791fda6a5c3df1af7ae541 100644 Binary files a/bin/SoundCtrCar.class and b/bin/SoundCtrCar.class differ diff --git a/src/Exercise6.java b/src/Exercise6.java index bd8eeb1394a3e08e9c47182d0c8749b982f9a94f..68929324e7da1c4f05dbc3544d0184da8316ebaf 100644 --- a/src/Exercise6.java +++ b/src/Exercise6.java @@ -57,13 +57,13 @@ public class Exercise6 //party finder LCD.drawString("right "+soundLevelRight,0,2); dl1.writeSample(soundLevelLeft); - dl1.writeSample(soundLevelRight); + dl2.writeSample(soundLevelRight); //Car.forward(0, 100); Car.stop(); } - dl1.close(); dl2.close(); + dl1.close(); Car.stop(); LCD.clear(); LCD.drawString("Program stopped", 0, 0); diff --git a/src/SoundCtrCar.java b/src/SoundCtrCar.java index 3082145e4302f8a9e580fa085e00db29e8f20f98..cd0d641af93db22f05cfbf2e20e591ea5726eab9 100644 --- a/src/SoundCtrCar.java +++ b/src/SoundCtrCar.java @@ -6,64 +6,29 @@ import lejos.nxt.*; * @author Ole Caprani * @version 23.08.07 */ -public class SoundCtrCar +public class SoundCtrCar { + private static int soundDiff = 50; + private static int turnPower = 20; private static int soundThreshold = 90; private static boolean stopped = false; - private static SoundSensor sound = new SoundSensor(SensorPort.S1); - private static DataLogger dl; - - private static void waitForLoudSound() throws Exception - { - int soundLevel; - - Thread.sleep(500); - do - { - soundLevel = sound.readValue(); - LCD.drawInt(soundLevel,4,10,0); - - - }while (!stopped && soundLevel<soundThreshold); - } + private static int bias = 40; + private static int power = 80; + private static SoundSensor left = new SoundSensor(SensorPort.S1); + private static SoundSensor right = new SoundSensor(SensorPort.S2); - private static void waitForClap() throws Exception - { - int soundLevel; - boolean clapDetected = false; - do - { - soundLevel = sound.readValue(); - dl.writeSample(soundLevel); - if(soundLevel < 50){ - Thread.sleep(25); - soundLevel = sound.readValue(); - dl.writeSample(soundLevel); - if(soundLevel > 85){ - Thread.sleep(250); - soundLevel = sound.readValue(); - dl.writeSample(soundLevel); - if(soundLevel < 50){ - clapDetected = true; - - } - } - }else{ - Thread.sleep(25); - } - - LCD.drawInt(soundLevel,3,7,0); - } - while ( !clapDetected && !stopped); - } + + private static ADSensorPort sp1 = SensorPort.S1; + private static ADSensorPort sp2 = SensorPort.S2; + public static void main(String [] args) throws Exception - { - LCD.drawString("dB level: ",0,0); - LCD.refresh(); - - dl = new DataLogger("Sample.txt"); + { + //sp1.setTypeAndMode(0, 0); + //sp2.setTypeAndMode(0, 0); + + Button.ESCAPE.addButtonListener( new ButtonListener(){ public void buttonPressed(Button b) { @@ -83,24 +48,34 @@ public class SoundCtrCar while (!stopped) - { - waitForClap(); - LCD.drawString("Forward ",0,1); - Car.forward(100, 100); - - waitForClap(); - LCD.drawString("Right ",0,1); - Car.forward(100, 0); - - waitForClap(); - LCD.drawString("Left ",0,1); - Car.forward(0, 100); + { + Car.forward(power, power); + + Thread.sleep(250); + + int leftVal = 1023-sp1.readRawValue(); + int rightVal = 1023-sp2.readRawValue(); + + LCD.drawString("left: "+leftVal,0,0); + LCD.drawString("right: "+rightVal,0,1); + LCD.refresh(); + + + + if(rightVal > leftVal-bias +soundDiff){ + Car.forward(power, -power); //turn right + } + else if(leftVal-bias > soundDiff+rightVal){ + Car.forward(-power, power); //turn left + }else{ + + Car.forward(power, power); + Thread.sleep(100);} + + Thread.sleep(100); - waitForClap(); - LCD.drawString("Stop ",0,1); - Car.stop(); + } - dl.close(); Car.stop(); LCD.clear(); LCD.drawString("Program stopped", 0, 0);