Funktionstest von Licht- und Farbsensor
Helligkeit messen mit Lichtsensor
Im nachfolgenden Programm LinieFolgen.java
wird der Roboter von zwei Motoren angetrieben, gestartet mit gleicher Geschwindigkeit. Der Lichtsensor misst wiederholend die Helligkeit und unterscheidet beim Messergebnis drei Intervalle. Durch Veränderung der Motorgeschwindigkeit in Abhängigkeit der Messung fährt dreht sich der Roboter minimal nach links, rechts oder fährt ein kleines Stück geradeaus.
import lejos.nxt.Motor;
import lejos.nxt.NXTRegulatedMotor;
import lejos.nxt.LightSensor;
import lejos.nxt.SensorPort;
public class LinieFolgen
{
public static LightSensor ls = new LightSensor(SensorPort.S3);
public static NXTRegulatedMotor reMo = Motor.A;
public static NXTRegulatedMotor liMo = Motor.B;
public static void main (String args[])
{
reMo.setSpeed(800);
liMo.setSpeed(800);
reMo.forward();
liMo.forward();
while(true)
{
int val = ls.readValue();
if(val < 30)
{
reMo.setSpeed(800);
liMo.setSpeed(200);
}
else
{
if(val > 50)
{
reMo.setSpeed(200);
liMo.setSpeed(800);
}
else
{
reMo.setSpeed(800);
liMo.setSpeed(800);
}
}
}
}
}
Farbsensor: Farbig leuchten und Farben messen
Das nachfolgende Programm FarbTest.java
misst wiederholend mit dem Farbsensor die ColorID
sowie die RGB-Farbwerte. Diese werden fortlaufend aktualisiert auf dem Display des Bricks angezeigt. Das Flutlicht wird in der Farbe der erfassten ColorID
eingefärbt.
import lejos.nxt.ColorSensor;
import lejos.nxt.SensorPort;
import lejos.nxt.LCD;
import lejos.robotics.Color;
public class FarbTest
{
public static void main (String args[])
{
ColorSensor cs = new ColorSensor(SensorPort.S1);
while(true)
{
int val = cs.getColorID();
Color c = cs.getColor();
LCD.clear();
LCD.drawInt(val, 0, 0);
LCD.drawInt(c.getRed(), 0, 1);
LCD.drawInt(c.getGreen(),0, 2);
LCD.drawInt(c.getBlue(), 0, 3);
cs.setFloodlight(cs.getColorID());
}
}
}