私は Java と lejos を初めて使用するので、ばかげた質問をしている場合でも、私を責めないでください。
レゴ超音波センサーをモーターで回転させて、nxtの周りの360度の領域をスキャンさせようとしていました。5 度ごとに距離が .txt ファイルに保存されます。
私の問題は、nxjbrowse.bat でファイルをアップロードした後に自分の PC からファイルを読み取ると、そこに保存されるはずの数字 (0 ~ 255) にリンクされた ASCII 文字しか含まれていないことです。
NXT の私のコード:
package Dataloggers;
import java.io.;
import lejos.nxt.;
public class USdistance {
int totalRotation = 360;
int scanDensity = 5;
UltrasonicSensor ultrasonicSensor = new UltrasonicSensor(SensorPort.S3);
File distanceFile = new File("Distances.txt");
FileOutputStream fileStream = null;
public static void main(String[] args) {
@SuppressWarnings("unused")
USdistance usD = new USdistance();
}
public USdistance() {
Motor.A.setAcceleration(2000);
Motor.A.setSpeed(50);
try {
fileStream = new FileOutputStream(distanceFile);
} catch (Exception e) {
LCD.drawString("Can't make a file", 0, 0);
Button.ESCAPE.waitForPress();
System.exit(1);
}
DataOutputStream dataStream = new DataOutputStream(fileStream);
Motor.A.rotate(90);
Motor.A.resetTachoCount();
Motor.A.backward();
do {
if (-(Motor.A.getTachoCount()) % scanDensity == 0 ) {
int distance = ultrasonicSensor.getDistance();
try {
dataStream.writeInt(distance);
fileStream.flush();
} catch (IOException e) {
LCD.drawString("Can't write to the file", 0, 1);
Button.ESCAPE.waitForPress();
System.exit(1);
}
}
} while (-(Motor.A.getTachoCount()) < totalRotation);
Motor.A.stop();
try {
fileStream.close();
} catch (IOException e) {
LCD.drawString("Can't save the file", 0, 1);
Button.ESCAPE.waitForPress();
System.exit(1);
}
Motor.A.rotate(270);
}
}
前もってありがとう ロブ