Moderators: roger, 99jonathan, imaqine
package com.mydomain;
import lejos.nxt.*;
import lejos.robotics.subsumption.*;
//Behavior "Scan"
//Search for objects in vicinity. Stop when something is in sight.
public class Scan implements Behavior {
/**
* @param args
*/
private UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S3);
private boolean suppressed = false;
public void suppress() {
suppressed = true;
}
public boolean takeControl() {
return (true);
}
public void action() {
suppressed = false;
Motor.A.setSpeed(180);
Motor.C.setSpeed(180);
Motor.A.forward();
Motor.C.backward();
while(!suppressed) {
Thread.yield();
LCD.drawInt(sonar.getDistance(),3, 5, 3);
LCD.drawString("Scanning", 6,6);
}
LCD.clear();
Motor.A.stop();
Motor.C.stop();
}
}
package com.mydomain;
import lejos.nxt.*;
import lejos.robotics.subsumption.*;
//Stop behavior
//Just stops when it is 25 centimeters/less away from object
public class Seek implements Behavior{
private UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S3);
private boolean suppressed = false;
public void suppress() {
suppressed = true;
}
public boolean takeControl() {
return (sonar.getDistance() < 25 && sonar.getDistance() > 10);
}
public void alignCenter() {
LCD.clear();
Motor.A.resetTachoCount();
while(sonar.getDistance() <25) {
Motor.A.forward();
Motor.C.backward();
}
int moved = Motor.A.getTachoCount();
Motor.A.resetTachoCount();
LCD.drawInt(moved, 4, 4);
while(-Motor.A.getTachoCount() < moved/2) {
LCD.drawInt(Motor.A.getTachoCount(), 5, 5);
Motor.A.backward();
Motor.C.forward();
}
Motor.A.stop();
Motor.B.stop();
}
public void action() {
suppressed = false;
//alignCenter();
Motor.A.forward();
Motor.C.forward();
while(!suppressed && sonar.getDistance() > 10) {
Thread.yield();
LCD.drawInt(sonar.getDistance(),3, 5, 3);
LCD.drawString("Stopped", 6,6 );
}
LCD.clear();
//Motor.A.stop();
//Motor.C.stop();
}
}
package com.mydomain;
import lejos.nxt.*;
import lejos.robotics.subsumption.*;
public class Halt implements Behavior {
/**
* @param args
*/
private UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S3);
private boolean suppressed = false;
public void suppress() {
suppressed = true;
}
public boolean takeControl() {
return (sonar.getDistance() < 10);
}
public void action() {
suppressed = false;
Motor.C.stop();
Motor.A.stop();
while(!suppressed && sonar.getDistance() < 10) {
Thread.yield();
LCD.drawInt(sonar.getDistance(),3, 5, 3);
LCD.drawString("Scanning", 6,6);
}
LCD.clear();
Motor.A.stop();
Motor.C.stop();
}
}
package com.mydomain;
import lejos.nxt.*;
import lejos.robotics.subsumption.*;
//Behavior "Scan"
//Search for objects in vicinity. Stop when something is in sight.
public class Scan implements Behavior {
/**
* @param args
*/
private UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S3);
private boolean suppressed = false;
public void suppress() {
suppressed = true;
}
public boolean takeControl() {
return (sonar.getDistance() >= 25);
}
public void action() {
suppressed = false;
Motor.A.setSpeed(180);
Motor.C.setSpeed(180);
Motor.A.forward();
Motor.C.backward();
while(!suppressed) {
Thread.yield();
LCD.drawInt(sonar.getDistance(),3, 5, 3);
LCD.drawString("Scanning", 6,6);
}
LCD.clear();
Motor.A.stop();
Motor.C.stop();
}
}
package com.mydomain;
import lejos.nxt.*;
import lejos.robotics.subsumption.*;
//Seek behavior
//Just stops when it is 10 centimeters away or less from object
public class Seek implements Behavior{
private UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S3);
private boolean suppressed = false;
public void suppress() {
suppressed = true;
}
public boolean takeControl() {
return (sonar.getDistance() < 25 && sonar.getDistance() > 10);
}
public void alignCenter() {
LCD.clear();
Motor.A.resetTachoCount();
while(sonar.getDistance() <25) {
Motor.A.forward();
Motor.C.backward();
}
int moved = Motor.A.getTachoCount();
Motor.A.resetTachoCount();
LCD.drawInt(moved, 4, 4);
while(-Motor.A.getTachoCount() < moved/2) {
LCD.drawInt(Motor.A.getTachoCount(), 5, 5);
Motor.A.backward();
Motor.C.forward();
}
Motor.A.stop();
Motor.B.stop();
}
public void action() {
suppressed = false;
//alignCenter();
Motor.A.setSpeed(180);
Motor.C.setSpeed(180);
Motor.A.backward();
Motor.C.backward();
while(!suppressed && takeControl()) {
Thread.yield();
LCD.drawInt(sonar.getDistance(),3, 5, 3);
}
LCD.clear();
Motor.A.stop();
Motor.C.stop();
}
}
Users browsing this forum: No registered users and 2 guests