颜色传感器 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";
}
所以,基本上我想做的是:
我让我的 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";
}