by kacper » Sat Nov 19, 2011 6:57 pm
ok , i tried to do it alone but it is to difficult for me ... ; / i should do it in 2 files but i dont have idea how and i have second problem, I dont know how to set this that program wait for me and dont run a program until when i push the button Escape ... i tried in second part if ( button.Escape.isPressed()) but then program turn off everything and didnt wait. so please help me because my supervisior dont want ot help .. .
import lejos.nxt.Button;
import lejos.nxt.LCD;
import lejos.nxt.Motor;
public class l1
{
public static void main(String[] args)
{
int[] speed = new int[4];
// speed[i]=speed*10;
int[] angle = new int[4];
// angle[i]=4.7*angle;
int[] distance = new int[4];
// distance[i]=35*distance;
for (int i = 0; i < 4; i++)
{
angle[i] = 0;
speed[i] = 0;
distance[i] = 0;
do
{
LCD.drawInt((i + 1), 5, 1);
LCD.drawString("Speed: " + speed[i], 1, 2);
if (Button.RIGHT.isPressed())
{
speed[i] = speed[i] + 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
else if (Button.LEFT.isPressed())
{
speed[i] = speed[i] - 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
while (!(Button.ENTER.isPressed()));
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
LCD.clearDisplay();
do
{
LCD.drawInt((i + 1), 5, 1);
LCD.drawString("Angle: " + angle[i], 1, 2);
if (Button.RIGHT.isPressed())
{
angle[i] = angle[i] + 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
else if (Button.LEFT.isPressed())
{
angle[i] = angle[i] - 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
while (!(Button.ENTER.isPressed()));
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
LCD.clearDisplay();
do
{
LCD.drawInt((i + 1), 5, 1);
LCD.drawString("Distance: " + distance[i], 1, 2);
if (Button.RIGHT.isPressed())
{
distance[i] = distance[i] + 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
else if (Button.LEFT.isPressed())
{
distance[i] = distance[i] - 10;
LCD.refresh();
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
while (!(Button.ENTER.isPressed()));
try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
LCD.clearDisplay();
}
for (int i = 0; i < 4; i++)
{
LCD.drawString("Activity nr " + (i + 1), 3, 3);
if (angle[i] > 0)
{
do
{
Motor.A.forward();
Motor.A.setSpeed(speed[i] * 4);
Motor.C.backward();
Motor.C.setSpeed(speed[i] * 4);
}
while (Motor.A.getTachoCount() < angle[i] * 5);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Motor.A.resetTachoCount();
do
{
Motor.A.forward();
Motor.A.setSpeed(speed[i] * 4);
Motor.C.forward();
Motor.C.setSpeed(speed[i] * 4);
}
while (Motor.A.getTachoCount() < distance[i] * 35);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Motor.A.resetTachoCount();
}
else if (angle[i] == 0)
{
do
{
Motor.A.forward();
Motor.A.setSpeed(speed[i] * 4);
Motor.C.forward();
Motor.C.setSpeed(speed[i] * 4);
}
while (Motor.A.getTachoCount() < distance[i] * 35);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Motor.A.resetTachoCount();
}
else
{
do
{
Motor.A.backward();
Motor.A.setSpeed(speed[i] * 4);
Motor.C.forward();
Motor.C.setSpeed(speed[i] * 4);
}
while (Motor.A.getTachoCount() > angle[i] * 5);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Motor.A.resetTachoCount();
do
{
Motor.A.forward();
Motor.A.setSpeed(speed[i] * 4);
Motor.C.forward();
Motor.C.setSpeed(speed[i] * 4);
}
while (Motor.A.getTachoCount() < distance[i] * 25);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Motor.A.resetTachoCount();
}
}
}
}