| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- package boebot;
- import stamp.core.*;
- public class BoeBot{
- MotorAansturing motor;
- Botsingdetectie botsingdetectie;
- FysiekeIndicator fysiekeindicator;
- Aansturing aansturing;
- Lijnvolger lijnvolger;
- Bluetooth bluetooth;
- char route[];
- static int currentCase = 4;
- static int currentStep = 0;
- public BoeBot(){
- motor = new MotorAansturing();
- botsingdetectie = new Botsingdetectie();
- aansturing = new Aansturing(4,4);
- lijnvolger = new Lijnvolger();
- fysiekeindicator = new FysiekeIndicator();
- bluetooth = new Bluetooth();
- motor.setSnelheid(100);
- motor.setRichting(true);
- route = new char[]{'v','v','v','l','l','r','r','v','r','v', ' '};
- for(int i = 0; i < route.length; i++){
- System.out.println(route[i]);
- }
- System.out.println("de huidige stappen:" );
- //variabele om functies in en uit te schakelen.
- boolean afstandsbediening = true;
- boolean obstakelDetectie = false;
- boolean routeplanner = true;
- boolean sparcours = false;
- boolean routeafgerond = true;
- while(true){
- bluetooth.getRoute();
-
- if(obstakelDetectie){
- obstakelDetectie();
- }
- if(afstandsbediening){
- }
- if(routeplanner){
- if(routeafgerond){
- routeafgerond = routeplanner();
- }
- }
- if(sparcours){
- }
- }
- }
- public void obstakelDetectie(){
- if(botsingdetectie.detectEdge()){
- CPU.writePin(CPU.pin1,true);
- motor.noodStop();
- motor.setRichting(false);
- motor.start();
- CPU.delay(2000);
- motor.noodStop();
- motor.turn(180);
- motor.setRichting(true);
- motor.start();
- }else if(botsingdetectie.detectObject() == 1){
- motor.noodStop();
- motor.setRichting(false);
- motor.start();
- CPU.delay(2000);
- motor.noodStop();
- motor.turn(90);
- motor.setRichting(true);
- motor.start();
- }else if(botsingdetectie.detectObject() == 2){
- motor.noodStop();
- motor.setRichting(false);
- motor.start();
- CPU.delay(2000);
- motor.noodStop();
- motor.turn(270);
- motor.setRichting(true);
- motor.start();
- }else if(botsingdetectie.detectObject() == 3){
- motor.noodStop();
- motor.setRichting(false);
- motor.start();
- CPU.delay(2000);
- motor.noodStop();
- motor.turn(180);
- motor.setRichting(true);
- motor.start();
- }
- }
- public boolean routeplanner(){
- if(currentStep == 0){
- verwerkAansturing(route[currentStep]);
- }
- int getalLijnvolger = lijnvolger.readSensor();
- switch(getalLijnvolger){
- case 0:
- if(currentCase != 0){
- motor.setSnelheid(100);
- motor.setRichting(true);
- motor.rijden();
- currentCase = 0;
- }
- break;
- case 1:
- if(currentCase != 1){
- motor.setSnelheidL(10);
- motor.setSnelheidR(100);
- motor.setRichting(true);
- motor.rijden();
- currentCase = 1;
- }
- break;
- case 2:
- if(currentCase != 2){
- motor.setSnelheidL(100);
- motor.setSnelheidR(10);
- motor.setRichting(true);
- motor.rijden();
- currentCase = 2;
- }
- break;
- case 4:
- if(currentCase != 4){
- if(route[currentStep] != ' '){
- verwerkAansturing(route[currentStep]);
- System.out.println(route[currentStep-1]);
- CPU.delay(1000);
- }else{
- motor.noodStop();
- System.out.println("klaar");
- return false;
- }
- currentCase = 4;
- }
- break;
- case 5:
- if(currentCase != 5){
- motor.noodStop();
- System.out.println("Gat!!");
- currentCase = 5;
- return false;
- }
- default:
- // motor.noodStop();
- }
- return true;
- }
- public void verwerkAansturing(char opdracht){
- switch(opdracht){
- case 'v':
- motor.rijden();
- CPU.delay(200);
- break;
- case 'a':
- CPU.delay(1200);
- motor.noodStop();
- CPU.delay(200);
- motor.turn(180);
- break;
- case 'r':
- motor.setSnelheid(100);
- motor.setRichting(true);
- motor.rijden();
- CPU.delay(1200);
- motor.noodStop();
- CPU.delay(200);
- motor.turn(90);
- break;
- case 'l':
- motor.setSnelheid(100);
- motor.setRichting(true);
- motor.rijden();
- CPU.delay(1200);
- motor.noodStop();
- CPU.delay(200);
- motor.turn(270);
- break;
- default:
- motor.noodStop();
- break;
- }
- currentStep++;
- }
- }
|