public SensorHandler() { distanceSensor = new EV3UltrasonicSensor(SensorPort.S1); colorSensor = new EV3ColorSensor(SensorPort.S4); distanceProvider = distanceSensor.getDistanceMode(); colorProvider = colorSensor.getRGBMode(); }
public CheckIfSharpCornerThread( LineBehaviour line, RegulatedMotor leftMotor, RegulatedMotor rightMotor, EV3ColorSensor colorSensor) { this.line = line; this.leftMotor = leftMotor; this.rightMotor = rightMotor; this.colorSensor = colorSensor; SampleProvider light = colorSensor.getMode("Red"); filter = new MedianFilter(light, 2); }
public void test() { EV3ColorSensor sensor = new EV3ColorSensor(SensorPort.S1); // 模式一:ColorID,一个数 // SensorMode mode = sensor.getColorIDMode(); // 模式二:RGB,三个数 // SensorMode mode = sensor.getRGBMode(); // 模式三:环境光,一个数,大则亮,小则暗 // SensorMode mode = sensor.getAmbientMode(); // 模式四:测量,一个数,大则近,0则远 SensorMode mode = sensor.getRedMode(); float[] samples = new float[mode.sampleSize()]; while (!Button.DOWN.isDown()) { mode.fetchSample(samples, 0); int k = 0; for (float v : samples) log.echo("v[" + (k++) + "]=" + v); } sensor.close(); }
public void init() { Button.LEDPattern(2); colorSensor = new EV3ColorSensor(s1); colorSensor.setFloodlight(Color.WHITE); log = new ArrayList<>(); previousLogging = System.currentTimeMillis(); logger.info("Initialized"); Runnable r = new Runnable() { public void run() { while (!stopped) { int detectedColorId = colorSensor.getColorID(); long now = System.currentTimeMillis(); log.add(String.valueOf(now - previousLogging)); previousLogging = now; if (detectedColorId == lastRegisteredColorId) { sleep(); continue; } if (detectedColorId != lastDetectedColorId) { lastDetectedColorId = detectedColorId; readings = 1; sleep(); continue; } readings++; if (detectedColorId < HIGHEST_SIGNAL_COLOR_ID || readings == CONSECUTIVE_READINGS_REQUIREMENT) { lastRegisteredColorId = detectedColorId; if (detectedColorId != BACKGROUND_COLOR_ID) { sendToBlock("SLEEPER", SleeperColor.convertFromLejosColor(detectedColorId)); } } sleep(); } } }; runAsync(r); }
public static void main(String[] args) throws Exception { DifferentialPilot pilot = new DifferentialPilot(56f, 126f, Motor.D, Motor.A); pilot.setTravelSpeed(150); Brick brick = BrickFinder.getDefault(); Port s1 = brick.getPort("S1"); // Port s4 = brick.getPort("S4"); // TextLCD lcd = brick.getTextLCD(); NXTLightSensor lysSensor = new NXTLightSensor(s1); // NXT LYS EV3ColorSensor fargeSensor = new EV3ColorSensor(s4); // EV3 LYS // COLOR----------------------------------------------------------------- SampleProvider fargeSample = fargeSensor.getColorIDMode(); float[] colorVerdi = new float[fargeSample.sampleSize()]; // ---------------------------------------------------------------------- // LYS------------------------------------------------------------------- SampleProvider lysSample = lysSensor; float[] lysVerdi = new float[lysSample.sampleSize()]; // ---------------------------------------------------------------------- Boolean move = true; // Sett til false hvis roboten ikke skal kjøre videre // System.out.println("start lokke"); while (!Button.ESCAPE.isDown()) { // Kjører så lenge vi ikke trykker på exit-knappen // Kjør framover hvis vi ikke allerede gjør det if (!pilot.isMoving() && move) { pilot.forward(); } lysSensor.fetchSample(lysVerdi, 0); // LYS float lys = lysVerdi[0]; fargeSample.fetchSample(colorVerdi, 0); // COLOR // float color = colorVerdi[0]; int color = fargeSensor.getColorID(); // Fungerer dette? lcd.clear(); lcd.drawString("NXT " + lys, 0, 0); lcd.drawString("EV3 " + color, 0, 1); if (color != Color.BLACK) { pilot.rotate(-10); // VENSTRE } else if (lys < 48) { // pilot.arcForward(-150); pilot.rotate(10); } // Elsen under trengs ikke, da forward kjøres på starten uansett else { // pilot.forward(); if (!pilot.isMoving()) { pilot.forward(); } } } // while System.out.println("AVSLUTTET"); } // main