颜色传感器 LeJos NXT

ColorSensor LeJos NXT

所以,基本上我想做的是:

我让我的 NXT 驾驶跑酷,当他这样做时,他必须在 LCD 上显示一张纸的颜色(他在纸上行驶)。

颜色是红色、绿色和蓝色。

唯一不起作用的是:读取或"seeing"颜色并将它们显示在屏幕上。

我现在得到的代码是:

    ColorSensor cs = new ColorSensor(SensorPort.S1);
    Color color = cs.getColor();

    int groen = color.getGreen();
    int rood = color.getRed();
    int blauw = color.getBlue();

    String text = "";

    if (color.getColor() == groen){
        text = "groen";
    }
    else if (color.getColor() == rood ){
        text = "rood";
    }
    else if (color.getColor() == blauw ){
        text = "blauw";
    }


    LCD.drawString("kleur is: " + text, 0, 0);
    Thread.sleep(6000);

Color 对象的 getter 不 return 任何绿色、蓝色或红色常量值,它们告诉您检测到的颜色是绿色、红色或蓝色,从 0 到 256。

例如,偏黄的颜色应该 return 红色成分较低,蓝色和绿色值较高,它们之间非常相似。

您可以尝试类似的方法:

ColorSensor cs = new ColorSensor(SensorPort.S1);
Color color = cs.getColor();
String text;

if (color.getGreen()>color.getRed() && color.getGreen()>color.getBlue()) {
    text="green";
} else if (color.getBlue()>color.getRed() && color.getBlue()>color.getGreen()) {
    text="blue";
} else {
    text="red";
}