Alsooo~
Ich versuche gerade ein Programm zu schreiben, was bewirken soll, dass ein NXT mit zwei Lichtsensoren auf zwei Rädern balanciert.
Bis jetzt funktioniert mein Programm allerdings nur sehr schlecht...
wie kriegt man das besser hin ?
Code:
Ich versuche gerade ein Programm zu schreiben, was bewirken soll, dass ein NXT mit zwei Lichtsensoren auf zwei Rädern balanciert.
Bis jetzt funktioniert mein Programm allerdings nur sehr schlecht...
wie kriegt man das besser hin ?
Code:
Java:
import lejos.nxt.*;
import lejos.nxt.addon.*;
import lejos.robotics.navigation.*;
import lejos.nxt.comm.*;
public class Balance {
public static void main(String[] args) throws Exception {
LightSensor light1 = new LightSensor(SensorPort.S1);
LightSensor light2 = new LightSensor (SensorPort.S2);
int x, y;
Motor.A.setPower(20);
Motor.B.setPower(20);
while (!Button.ESCAPE.isPressed()) {
LCD.drawString(""+light1.readValue(), 0, 1);
LCD.drawString (""+light2.readValue(), 0, 2);
x = light1.readValue();
y = light2.readValue();
if (x < y) {
int z = x-y;
LCD.drawString("Z: "+z, 0,3 );
Motor.A.setPower(z);
Motor.A.backward();
Motor.B.setPower(z);
Motor.B.backward();
x = light1.readValue();
y = light2.readValue();
} else if (x > y) {
int z = y-x;
LCD.drawString("Z: "+z, 0,4 );
Motor.A.setPower(z);
Motor.A.forward();
Motor.B.setPower(z);
Motor.B.forward();
x = light1.readValue();
y = light2.readValue();
}
Thread.sleep(30);
}
}
}