Optisk sensor#
Introduktion#
EXP optiska sensorn detekterar färg, ljusstyrka och närvaro av närliggande objekt med hjälp av en kombination av en RGB-färgsensor och en närhetssensor. Den kan också använda sin inbyggda LED för att belysa objekt för mer exakt detektering.

Den här sidan använder optical_sensor som exempelnamn för den optiska sensorn. Ersätt det med ditt eget konfigurerade namn efter behov.
Nedan följer en lista över tillgängliga metoder:
set_light– Slår på eller av den optiska sensorns lysdiod.set_light_power– Ställer in den optiska sensorns ljusstyrkenivå.is_near_object– Returnerar om den optiska sensorn detekterar ett objekt inom räckhåll.color– Returnerar färgen som detekterats av den optiska sensorn.brightness– Returnerar mängden ljus som reflekteras från objektet.hue– Returnerar nyansen som detekterats av den optiska sensorn.object_detected– Registrerar en funktion som ska anropas när den optiska sensorn detekterar ett objekt.object_lost– Registrerar en funktion som ska anropas när den optiska sensorn förlorar ett objekt.
Konstruktör – Initiera en optisk sensor manuellt.
Optical– Skapar en optisk sensor.
set_light#
set_light slår på eller av den optiska sensorns LED. Detta kan bidra till att öka sensorns noggrannhet vid färgdetektering.
Usage:
optical_sensor.set_light(state)
Parametrar |
Beskrivning |
|---|---|
ange |
Ställer in lysdioden på eller av. |
# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)
set_light_power#
set_light_power ställer in ljusstyrkan på den optiska sensorns LED-lampa. Ljuset kan hjälpa den optiska sensorn att upptäcka objekt och färger tydligare.
Om den optiska sensorns lampa är släckt, tänds lampan om du ställer in ljusstyrkan över 0 %.
Om den optiska sensorns lampa lyser, släcks lampan om du ställer in ljusstyrkan på 0 %.
En högre procentandel gör ljuset starkare. En lägre procentandel gör ljuset svagare.
Usage:
optical_sensor.set_light_power(percent, units)
Parametrar |
Beskrivning |
|---|---|
procent |
Ljusstyrkan som LED-lampan ska ställas in på som ett heltal. |
enheter |
Valfritt. Enheten som representerar ljusstyrkan: |
# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)
är_nära_objektet#
is_near_object returnerar ett booleskt värde som anger om den optiska sensorn detekterar ett objekt inom räckhåll.
True– Den optiska sensorn detekterar ett objekt.False– Den optiska sensorn detekterar inte ett objekt.
Usage:
optical_sensor.is_near_object()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
pass
drivetrain.stop()
färg#
color returnerar en instans av en Color klass, baserat på det detekterade nyansvärdet. Dessa kan jämföras med fördefinierade Color -objekt för att skapa villkorliga satser.
Möjliga färger är:
Color.BLACKColor.WHITEColor.RED- Ett nyansvärde mellan 340° - 20°Color.GREEN- Ett nyansvärde mellan 80° - 140°Color.BLUE- Ett nyansvärde mellan 200° - 240°Color.YELLOW- Ett nyansvärde mellan 40° - 60°Color.ORANGE- Ett nyansvärde mellan 20° - 40°Color.PURPLE- Ett nyansvärde mellan 240° - 280°Color.CYAN- Ett nyansvärde mellan 140° - 200°
Obs! Den optiska sensorn letar efter nyansintervall som matchar den angivna färgen. För att upptäcka specifika nyansintervall, se hue.
Usage:
optical_sensor.color()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
pass
drivetrain.stop()
ljusstyrka#
brightness returnerar mängden ljus som reflekteras från objektet som ett decimaltal (float) som representerar en procentandel.
En högre procentandel innebär att mer ljus reflekteras tillbaka till den optiska sensorn. En lägre procentandel innebär att mindre ljus reflekteras tillbaka.
Usage:
optical_sensor.brightness()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
nyans#
hue returnerar nyansvärdet för den detekterade färgen som ett decimaltal (float) från 0 till 359.
Nyans är ett sätt att beskriva färg med hjälp av siffror runt en färgcirkel.

Usage:
optical_sensor.hue()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Look for the color pink using hue
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
if 300 < optical_sensor.hue() < 359:
brain.screen.print("This is pink!")
else:
brain.screen.print("No pink detected!")
objekt_upptäckt#
object_detected registrerar en funktion som ska anropas när den optiska sensorn detekterar ett nytt objekt.
Usage:
optical_sensor.object_detected(callback, arg)
Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som körs när den optiska sensorn detekterar ett nytt objekt. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
def my_function():
brain.screen.print("Optical Sensor detected an object")
# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)
objekt_förlorat#
object_lost registrerar en funktion som ska anropas när den optiska sensorn förlorar ett detekterat objekt.
Usage:
optical_sensor.object_lost(callback, arg)
Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som körs när den optiska sensorn förlorar ett detekterat objekt. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
def my_function():
brain.screen.print("Optical Sensor lost an object")
# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)
Konstruktör#
Konstruktorer används för att manuellt skapa Optical objekt, vilka är nödvändiga för att konfigurera en optisk sensor utanför VEXcode.
Optical#
Optical skapar en optisk sensor.
Usage:
Optical(smartport)
Parameter |
Beskrivning |
|---|---|
|
Den smarta porten som den optiska sensorn är ansluten till, skriven som |
# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)