Optinis#
Įvadas#
Optinis jutiklis yra šviesos pagrindu veikiantis jutiklis, kuris naudoja atspindėtą šviesą objektams aptikti, spalvoms identifikuoti ir ryškumui bei atspalviui matuoti.
Taip pat galite konfigūruoti jutiklio vidinės šviesos ryškumą. Šie įrankiai idealiai tinka programoms, kurios turi reaguoti į spalvotus objektus, apšvietimo sąlygas ar jutiklio grįžtamąjį ryšį realiuoju laiku.
Šiame puslapyje kaip optinio jutiklio pavadinimo pavyzdys naudojamas optical_1 Jei reikia, pakeiskite jį savo sukonfigūruotu pavadinimu.
Žemiau pateikiamas visų metodų sąrašas:
Veiksmai – įjungti arba išjungti optinio jutiklio šviesos diodą.
set_light— Nustato šviesos diodo įjungimo arba išjungimo būseną.
Mutatoriai – reguliuojamas LED ryškumas ir objektų aptikimo nustatymai.
set_light_power— Nustato šviesos diodo ryškumą.object_detect_threshold— Nustato objektų aptikimo slenkstį.
Geteris – nuskaito objekto buvimą, spalvą, ryškumą, atspalvį, RGB ir jutiklio būseną.
is_near_object– Grąžina, ar aptiktas objektas yra šalia optinio jutiklio.color— Grąžina artimiausią aptiktą spalvos atitikmenį.brightness— Grąžina aptikto objekto ryškumą.hue– Grąžina aptikto objekto atspalvį.rgb— Grąžina optinio jutiklio aptiktas RGB vertes.installed— Grąžina, ar prie smegenų prijungtas optinis jutiklis.
Atgalinis iškvietimas – vykdyti kodą, kai objektas aptinkamas arba prarandamas.
object_detected— Registruoja funkciją, kuri bus iškviesta aptikus objektą.object_lost— Registruoja funkciją, kuri bus iškviesta, kai objektas bus prarastas.
Konstruktoriai – rankiniu būdu inicijuokite ir konfigūruokite optinį jutiklį.
Optical– Sukuria optinį jutiklį.
Veiksmai#
set_light#
set_light įjungia, išjungia optinio jutiklio šviesos diodą arba nustato nustatytą ryškumo lygį.
Usage:
optical_1.set_light(state)
Parametrai |
Aprašymas |
|---|---|
|
Būsena, skirta nustatyti šviesą arba galios procentą diapazone nuo 0 iki 100. Būsena gali būti bet kuri iš šių:
|
# Turn the LED on and off forever
while True:
optical_1.set_light(LedStateType.ON)
wait(0.5, SECONDS)
optical_1.set_light(LedStateType.OFF)
wait(0.5, SECONDS)
# Turn the LED on and off forever
while True:
optical_1.set_light(100)
wait(0.5, SECONDS)
optical_1.set_light(0)
wait(0.5, SECONDS)
Mutatoriai#
set_light_power#
set_light_power nustato optinio jutiklio šviesos ryškumą. Jei šviesos diodas dar neįjungtas, šis metodas jį taip pat įjungs.
Usage:
optical_1.set_light_power(value)
Parametrai |
Aprašymas |
|---|---|
|
Galios lygis, skirtas nustatyti šviesą nuo 0 iki 100 procentais. |
# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)
object_detect_threshold#
object_detect_threshold nustato diapazoną, kuriame jutiklis gali aptikti objektus. Šis metodas taip pat grąžina naujai nustatytą slenkstį.
Skaičiai, artimesni 255, rodo mažesnį diapazoną, o skaičiai, artimesni 0, rodo didesnį diapazoną.
Usage:
optical_1.object_detect_threshold(value)
Parametrai |
Aprašymas |
|---|---|
|
Skaičius diapazone nuo 0 iki 255. Reikšmė 0 grąžins tik dabartinę reikšmę. |
def detected():
# The Brain will print that an object was detected on
# the Brain's screen.
brain.screen.print("object detected")
brain.screen.next_row()
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
# Detect an object closer to the sensor.
brain.screen.print("Detected closer")
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0
def detected():
global stage
if stage == 0:
brain.screen.print("Get closer...")
brain.screen.next_row()
stage = 1
optical_1.object_detect_threshold(254)
optical_1.object_detected(detected_closer)
def detected_closer():
global stage
if stage == 1:
brain.screen.print("Too close!")
brain.screen.next_row()
stage = 2
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)
Getteriai#
is_near_object#
is_near_object grąžina, ar optinis jutiklis yra šalia objekto.
True— Jutiklis yra šalia objekto.False— Jutiklis nėra arti objekto.
Usage:
optical_1.is_near_object()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Stop driving when Optical Sensor is
# near an object
while True:
if optical_1.is_near_object():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
color#
color grąžina iš anksto nustatytą spalvą, kurią optinis jutiklis aptiko iš toliau pateiktų spalvų:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Stop the robot if the Optical Sensor
# detects red
while True:
if optical_1.color() == Color.RED:
drivetrain.stop()
else:
drivetrain.turn(RIGHT)
brightness#
brightness grąžina optinio jutiklio aptiktą ryškumą.
Didesnis procentas reiškia, kad optinis jutiklis aptinka daugiau šviesos. Mažesnis procentas reiškia, kad optinis jutiklis aptinka mažiau šviesos.
Usage:
optical_1.brightness(readraw)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Loginė reikšmė, skirta neapdorotiems ryškumo duomenims, o ne procentams nuskaityti:
|
hue#
hue grąžina optinio jutiklio aptiktą atspalvio reikšmę kaip slankiojo skaičiaus reikšmę diapazone nuo 0 iki 359,99 laipsnių.
Atspalvis yra būdas apibūdinti spalvą skaičiais aplink spalvų ratą, kaip parodyta žemiau.

Usage:
optical_1.hue()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Check the hue of a detected object
# to determine if it is pink
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
if 290 < optical_1.hue() < 350:
brain.screen.print("Pink!")
wait(0.1,SECONDS)
else:
brain.screen.print("Not pink.")
wait(0.1,SECONDS)
rgb#
rgb grąžina raudonos, žalios, mėlynos ir ryškumo reikšmes, kurias optinis jutiklis aptiko kaip rinkinį.
Usage:
optical_1.rgb(raw)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Loginė reikšmė, skirta nustatyti, ar grąžinamos neapdorotos, ar apdorotos reikšmės:
|
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print(optical_1.rgb())
wait(0.1, SECONDS)
installed#
installed grąžina loginę reikšmę, nurodančią, ar optinis jutiklis yra prijungtas prie smegenų.
True— Optinis jutiklis prijungtas prie smegenų.False— Optinis jutiklis neprijungtas prie smegenų.
Usage:
optical_1.installed()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Atgalinis skambutis#
object_detected#
object_detected registruoja atgalinio iškvietimo funkciją, kai aptinkamas objektas.
Usage:
optical_1.object_detected(callback, arg)
Parametrai |
Aprašymas |
|---|---|
|
Funkcija, kuri anksčiau buvo apibrėžta vykdyti aptikus objektą. |
|
Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijos su parametrais. |
def detected():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object detected")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)
object_lost#
object_lost registruoja atgalinio iškvietimo funkciją, kai optinis jutiklis praranda aptiktą objektą.
Usage:
optical_1.object_lost(callback, arg)
Parametrai |
Aprašymas |
|---|---|
|
Funkcija funkcija, kuri anksčiau buvo apibrėžta vykdyti, kai objektas prarandamas. |
|
Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijos su parametrais. |
def lost():
drivetrain.stop()
brain.screen.set_cursor(1, 1)
brain.screen.print("object lost")
wait(0.5,SECONDS)
brain.screen.clear_screen()
# Display a message when the Optical
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)
Konstruktoriai#
Konstruktoriai naudojami rankiniu būdu sukurti Optical objektus, kurie yra būtini optinio jutiklio konfigūravimui už VEXcode ribų.
Optical#
Optical sukuria optinį jutiklį.
Usage:
Optical(smartport)
Parametras |
Aprašymas |
|---|---|
|
Išmanusis prievadas, prie kurio prijungtas optinis jutiklis, užrašomas kaip PORTx, kur x yra prievado numeris. |
# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)
# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())