package gyroSample;
import lejos.hardware.lcd.LCD;
import lejos.hardware.port.SensorPort;
import lejos.hardware.sensor.EV3GyroSensor;
import lejos.hardware.sensor.SensorMode;
import lejos.hardware.motor.Motor;
import lejos.robotics.RegulatedMotor;
import lejos.utility.Delay;
public class GyroSample {
static EV3GyroSensor gyroSensor = new EV3GyroSensor(SensorPort.S2);
static RegulatedMotor leftMotor = Motor.B;
static RegulatedMotor rightMotor = Motor.C;
public static void main(String[] args) {
// ジャイロセンサーのモード設定と角度リセット
SensorMode gyro = gyroSensor.getMode(1); …(※1)
float value[] = new float[gyro.sampleSize()];
gyroSensor.reset(); …(※2)
// モーターのスピード設定
leftMotor.setSpeed(100);
rightMotor.setSpeed(100);
// Lcdにジャイロセンサーのモードを表示
LCD.clear();
LCD.drawString(“Mode : ” + gyro.getName(), 1, 0);
LCD.refresh();
// ジャイロセンサーの値を取得
gyro.fetchSample(value, 0); …(※3)
// モーターを回転
leftMotor.backward();
rightMotor.forward();
// ジャイロセンサーの値が360度以上になるまでくり返し
while( value[0] <= 360 ){
// Lcdにジャイロセンサーの値を表示
LCD.drawString(“Value : ” + value[0] , 1, 1);
LCD.refresh();
// ジャイロセンサーの値を取得
gyro.fetchSample(value, 0); …(※3)
}
// モーターを停止
leftMotor.stop();
rightMotor.stop();
Delay.msDelay(5000);
}
} |