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.

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

state

Būsena, skirta nustatyti šviesą arba galios procentą diapazone nuo 0 iki 100. Būsena gali būti bet kuri iš šių:

  • LedStateType.OFF (0 procentų)
  • LedStateType.ON (100 procentų)
  • integer — Ryškumo reikšmė, pateikta kaip sveikasis skaičius nuo 0 iki 100.
# 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

value

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

value

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ų:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

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

readraw

Pasirinktinai. Loginė reikšmė, skirta neapdorotiems ryškumo duomenims, o ne procentams nuskaityti:

  • True — Grąžina neapdorotus duomenis.
  • False (numatytasis) — Grąžina ryškumą procentais.

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.

Apskritas spalvų ratas, rodantis visą atspalvių spektrą, pažymėtą laipsnių reikšmėmis aplink perimetrą, didėjant 30 laipsnių žingsniais nuo 0° viršuje iki 360°.

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

raw

Pasirinktinai. Loginė reikšmė, skirta nustatyti, ar grąžinamos neapdorotos, ar apdorotos reikšmės:

  • True — Grąžina neapdorotą reikšmę.
  • False (numatytasis) — Negrąžina neapdorotos 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

callback

Funkcija, kuri anksčiau buvo apibrėžta vykdyti aptikus objektą.

arg

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

callback

Funkcija funkcija, kuri anksčiau buvo apibrėžta vykdyti, kai objektas prarandamas.

arg

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

smartport

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())