Lモーターとカラーセンサーを使って、MicroPythonで赤色検知器を作った。
動作概要
起動するとカラーセンサーが180°回転し、赤色を検出するとビープが鳴って回転が止まる。
回転が止まった状態でカラーセンサーに緑色を見せるとカラーセンサーは元の位置に戻って待機状態(回転しない状態)になる。待機状態から再度赤色検出モードにするには青色を見せるとカラーセンサーが再度回転を始める。


ソースコード
#!/usr/bin/env pybricks-micropython from pybricks.hubs import EV3Brick from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, InfraredSensor, UltrasonicSensor, GyroSensor) from pybricks.parameters import Port, Stop, Direction, Button, Color from pybricks.tools import wait, StopWatch, DataLog from pybricks.robotics import DriveBase from pybricks.media.ev3dev import SoundFile, ImageFile # This program requires LEGO EV3 MicroPython v2.0 or higher. # Click "Open user guide" on the EV3 extension tab for more information. # Create your objects here. ev3 = EV3Brick() # Write your program here. deg = 0 delta = 1 motor_d = Motor(Port.D, Direction.CLOCKWISE) color_s = ColorSensor(Port.S3) while True: while True: if color_s.color() == Color.RED: break motor_d.run_target(15, deg) deg += delta if deg >= 180: delta = -delta elif deg <= 0: delta = -delta ev3.speaker.beep() while True: if color_s.color() == Color.GREEN: break ev3.speaker.beep() deg = 0 delta = 1 motor_d.run_target(90, deg) while True: if color_s.color() == Color.BLUE: break ev3.speaker.beep()