0

我有个问题:

通过 leJos,我想控制连接到端口 2 的 ev3 颜色传感器。

但实际上,当我查看 EV3ColorSensor 类时,我找不到任何可以测量颜色传感器连接端口 2 的反射光强度的方法。

或者我无法从方法的名称中理解是否有这样一种方法可以做我想做的事情。

你能帮我解决这个问题吗?

谢谢你。

4

2 回答 2

1

目前无法测试此代码,但可能只需要进行少量调整:

import java.util.Arrays;

import lejos.hardware.sensor.EV3ColorSensor;
import lejos.hardware.port.Port;
import lejos.hardware.port.SensorPort;
import lejos.robotics.SampleProvider;

public class ColorSensorTest {

    // Modes and samples are explained in LeJOS wiki:
    // http://sourceforge.net/p/lejos/wiki/Sensor%20Framework/
    private static Port colorSensorPort = SensorPort.S2;
    private static EV3ColorSensor colorSensor;
    private static SampleProvider sampleProvider;
    private static int sampleSize;

    private static float[] getSample() {
        // Initializes the array for holding samples
        float[] sample = new float[sampleSize];

        // Gets the sample an returns it
        sampleProvider.fetchSample(sample, 0);
        return sample;
    }

    public static void main(String[] args) {
        // Initializes the sensor & sensor mode
        colorSensor = new EV3ColorSensor(colorSensorPort);
        sampleProvider = colorSensor.getRedMode();
        sampleSize = sampleProvider.sampleSize();

        // Takes some samples and prints them
        for (int i = 0; i < 4; i++) {
            float[] sample = getSample();
            System.out.println("N=" + i + " Sample=" + Arrays.toString(sample));
        }
    }

}
于 2014-11-14T00:52:03.453 回答
1

需要使用下面的setFloodLight设置红色 LED。它可以正常工作。

sampleProvider = colorSensor.getRedMode();
colorSensor.setFloodlight(Color.RED);
于 2015-05-08T03:26:34.310 回答