Phys/CSci 135: Assignments
Home Syllabus Assignments Samples

Lab 4. Using the Light and Sonar Sensors

LightLevel (page 27)

import lejos.nxt.*;

public class LightLevel {
    public static void main(String[] args) {
        LightSensor light = new LightSensor(SensorPort.S3);

        while (!Button.ESCAPE.isPressed()) {
            LCD.drawString("Level:" + light.readValue(), 00);
        }
    }
}

Memorizer (page 28)

import lejos.nxt.*;

public class Memorizer {
    public static void main(String[] args) {
        LightSensor light = new LightSensor(SensorPort.S3);

        int highest = /* Place a starting value here */;
        while (Button.ESCAPE.isPressed() == false) {
            int reading = light.readValue();
            LCD.drawString("Level:" + reading, 00);
            if (/* Write a condition here */) {
                highest = reading;
            }
            LCD.drawString("Highest:" + highest, 01);
        }
    }
}

SpeedTest (page 30)

import lejos.nxt.*;

public class SpeedTest {
    public static void main(String[] args) {
        Motor.B.forward();
        Motor.C.forward();
        while (!Button.ESCAPE.isPressed()) {
            LCD.drawString("Left: " + Motor.B.getActualSpeed(), 00);
            LCD.drawString("Right:" + Motor.C.getActualSpeed(), 01);
        }
    }
}

SpeedTest2 (page 31)

import lejos.nxt.*;

public class SpeedTest2 {
    public static void main(String[] args) {
        LightSensor light = new LightSensor(SensorPort.S3);

        Motor.B.forward();
        Motor.C.forward();
        while (!Button.ESCAPE.isPressed()) {
            int level = light.readValue();
            int speed = level;

            Motor.B.setSpeed(speed);
            Motor.C.setSpeed(speed);

            LCD.drawString("Level:" + level, 00);
            LCD.drawString("Speed:" + speed, 01);
        }
    }
}

ViewSonar (page 32)

import lejos.nxt.*;

public class ViewSonar {
    public static void main(String[] args) {
        UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S4);

        while (Button.ESCAPE.isPressed() == false) {
            LCD.drawString("Distance:" + sonar.getDistance(), 00);
        }
    }
}

AvoidDanger1 (page 32)

import lejos.nxt.*;

public class AvoidDanger1 {
    public static void main(String[] args) {
        UltrasonicSensor sonar = new UltrasonicSensor(SensorPort.S4);

        while (Button.ESCAPE.isPressed() == false) {
            if (sonar.getDistance() < 30) {
                Motor.B.stop();
                Motor.C.stop();
            } else {
                Motor.B.backward();
                Motor.C.backward();
            }
        }
    }
}