EV3のセンサの使い方

EV3のセンサの使いかたについて簡単に・・・


超音波センサと接触センサ,カラー(光)センサを使って,現在の取得情報を表示します.

//EV3センサ
package main;

import lejos.hardware.Battery;
import lejos.hardware.motor.EV3MediumRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.hardware.port.SensorPort;
import lejos.hardware.sensor.EV3ColorSensor;
import lejos.hardware.sensor.EV3TouchSensor;
import lejos.hardware.sensor.EV3UltrasonicSensor;
import lejos.hardware.sensor.SensorModes;
import lejos.robotics.SampleProvider;

public class Main{
 private SensorModes uss = new EV3UltrasonicSensor(SensorPort.S1); //超音波センサ ポートS1
 private SampleProvider distance = uss.getMode("Distance");   //距離計測モード
 public float[] ussdata = new float[distance.sampleSize()];   //超音波センサ情報格納配列
 private EV3TouchSensor ts = new EV3TouchSensor(SensorPort.S2);  //接触センサ ポートS2
 private SampleProvider touch = ts.getTouchMode();    //タッチ検出モード
 public float[] tsdata = new float[touch.sampleSize()];     //接触センサ情報格納配列
 private EV3ColorSensor cs = new EV3ColorSensor(SensorPort.S3);  //カラー(光)センサ ポートS3
 private SampleProvider ls = cs.getRedMode();     //光センサ計測モード(光センサとして使うように設定)
 public float[] lsdata = new float[cs.sampleSize()];     //カラーセンサ情報格納配列

 public static void main(String[] args){
  while(true){
   distance.fetchSample(ussdata, 0); //ussdata[0]に現在値を追加
   ts.fetchSample(tsdata, 0);  //tsdata[0]に現在値を追加
   ls.fetchSample(lsdata, 0);  //lsdata[0]に現在値を追加
   LCD.drawInt((int)ussdata[0],0,0);
   LCD.drawInt((int)tsdata[0],0,1);
   LCD.drawInt((int)lsdata[0],0,2);
  }
 }
}

コメント