ഒപ്റ്റിക്കൽ#

ആമുഖം#

വസ്തുക്കളെ കണ്ടെത്തുന്നതിനും, നിറങ്ങൾ തിരിച്ചറിയുന്നതിനും, തെളിച്ചവും നിറവും അളക്കുന്നതിനും പ്രതിഫലിച്ച പ്രകാശം ഉപയോഗിക്കുന്ന ഒരു പ്രകാശ അധിഷ്ഠിത സെൻസറാണ് ഒപ്റ്റിക്കൽ സെൻസർ.

സെൻസറിന്റെ ആന്തരിക പ്രകാശത്തിന്റെ തെളിച്ചം നിങ്ങൾക്ക് ക്രമീകരിക്കാനും കഴിയും. നിറമുള്ള വസ്തുക്കൾ, ലൈറ്റിംഗ് അവസ്ഥകൾ അല്ലെങ്കിൽ സെൻസർ ഫീഡ്‌ബാക്ക് എന്നിവയോട് തത്സമയം പ്രതികരിക്കേണ്ട പ്രോഗ്രാമുകൾക്ക് ഈ ഉപകരണങ്ങൾ അനുയോജ്യമാണ്.

ഈ പേജിൽ ഒപ്റ്റിക്കൽ സെൻസർ നാമത്തിന് ഉദാഹരണമായി optical_1 ഉപയോഗിക്കുന്നു. ആവശ്യാനുസരണം നിങ്ങളുടെ സ്വന്തം കോൺഫിഗർ ചെയ്ത പേര് ഉപയോഗിച്ച് ഇത് മാറ്റിസ്ഥാപിക്കുക.

എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:

പ്രവർത്തനങ്ങൾ — ഒപ്റ്റിക്കൽ സെൻസറിന്റെ LED ഓൺ അല്ലെങ്കിൽ ഓഫ് ചെയ്യുക.

  • set_light — LED-യുടെ ഓൺ അല്ലെങ്കിൽ ഓഫ് അവസ്ഥ സജ്ജമാക്കുന്നു.

മ്യൂട്ടേറ്ററുകൾ — LED തെളിച്ചവും വസ്തു കണ്ടെത്തൽ ക്രമീകരണങ്ങളും ക്രമീകരിക്കുക.

  • set_light_power — LED യുടെ തെളിച്ചം സജ്ജമാക്കുന്നു.

  • object_detect_threshold — വസ്തുക്കൾ കണ്ടെത്തുന്നതിനുള്ള പരിധി സജ്ജമാക്കുന്നു.

ഗെറ്ററുകൾ — ഒബ്‌ജക്റ്റ് സാന്നിധ്യം, നിറം, തെളിച്ചം, നിറം, RGB, സെൻസർ നില എന്നിവ വായിക്കുക.

  • is_near_object — കണ്ടെത്തിയ ഒരു വസ്തു ഒപ്റ്റിക്കൽ സെൻസറിന് സമീപമാണോ എന്ന് നൽകുന്നു.

  • color — കണ്ടെത്തിയ ഏറ്റവും അടുത്ത വർണ്ണ പൊരുത്തം നൽകുന്നു.

  • brightness — കണ്ടെത്തിയ ഒരു വസ്തുവിന്റെ തെളിച്ചം നൽകുന്നു.

  • hue — കണ്ടെത്തിയ ഒരു വസ്തുവിന്റെ നിറം നൽകുന്നു.

  • rgb — ഒപ്റ്റിക്കൽ സെൻസർ കണ്ടെത്തിയ RGB മൂല്യങ്ങൾ നൽകുന്നു.

  • installed — ഒരു ഒപ്റ്റിക്കൽ സെൻസർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നൽകുന്നു.

കോൾബാക്ക് — ഒരു വസ്തു കണ്ടെത്തുമ്പോഴോ നഷ്ടപ്പെടുമ്പോഴോ കോഡ് പ്രവർത്തിപ്പിക്കുക.

  • object_detected — ഒരു വസ്തു കണ്ടെത്തുമ്പോൾ വിളിക്കേണ്ട ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

  • object_lost — ഒരു വസ്തു നഷ്ടപ്പെടുമ്പോൾ വിളിക്കേണ്ട ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

കൺസ്ട്രക്റ്റർമാർ — ഒരു ഒപ്റ്റിക്കൽ സെൻസർ സ്വമേധയാ ആരംഭിക്കുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുക.

  • Optical — ഒരു ഒപ്റ്റിക്കൽ സെൻസർ സൃഷ്ടിക്കുന്നു.

പ്രവർത്തനങ്ങൾ#

set_light#

set_light ഒപ്റ്റിക്കൽ സെൻസറിന്റെ LED ഓൺ, ഓഫ് അല്ലെങ്കിൽ ഒരു സെറ്റ് ബ്രൈറ്റ്‌നെസ് ലെവൽ ആക്കുന്നു.

Usage:
optical_1.set_light(state)

പാരാമീറ്ററുകൾ

വിവരണം

state

0 മുതൽ 100 ​​വരെയുള്ള ശ്രേണിയിൽ പ്രകാശം അല്ലെങ്കിൽ പവറിന്റെ ശതമാനം സജ്ജീകരിക്കേണ്ട അവസ്ഥ. അവസ്ഥ ഇനിപ്പറയുന്നവയിൽ ഏതെങ്കിലും ആകാം:

  • LedStateType.OFF (0 ശതമാനം)
  • LedStateType.ON (100 ശതമാനം)
  • integer — 0 മുതൽ 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)

മ്യൂട്ടേറ്ററുകൾ#

set_light_power#

set_light_power ഒപ്റ്റിക്കൽ സെൻസറിന്റെ ലൈറ്റിന്റെ തെളിച്ചം സജ്ജമാക്കുന്നു. LED ഇതിനകം ഓണല്ലെങ്കിൽ, ഈ രീതി LED ഓണാക്കും.

Usage:
optical_1.set_light_power(value)

പാരാമീറ്ററുകൾ

വിവരണം

value

പ്രകാശത്തെ പൂജ്യത്തിൽ നിന്ന് 100 ആക്കി മാറ്റാനുള്ള പവർ ലെവൽ.

# 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 സെൻസറിന് വസ്തുക്കളെ കണ്ടെത്താൻ കഴിയുന്ന ശ്രേണി സജ്ജമാക്കുന്നു. ഈ രീതി പുതുതായി സജ്ജമാക്കിയ പരിധിയും നൽകുന്നു.

255 ന് അടുത്തുള്ള സംഖ്യകൾ ഒരു ചെറിയ ശ്രേണിയെ സൂചിപ്പിക്കുന്നു, അതേസമയം 0 ന് അടുത്തുള്ള സംഖ്യകൾ ഒരു വലിയ ശ്രേണിയെ സൂചിപ്പിക്കുന്നു.

Usage:
optical_1.object_detect_threshold(value)

പാരാമീറ്ററുകൾ

വിവരണം

value

0 മുതൽ 255 വരെയുള്ള ശ്രേണിയിലുള്ള ഒരു സംഖ്യ. 0 ന്റെ മൂല്യം നിലവിലെ മൂല്യം തിരികെ നൽകും.

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)

ഗെറ്ററുകൾ#

is_near_object#

is_near_object എന്നത് ഒപ്റ്റിക്കൽ സെൻസർ ഒരു വസ്തുവിന് സമീപമാണോ എന്ന് നൽകുന്നു.

  • True — സെൻസർ ഒരു വസ്തുവിനടുത്താണ്.

  • False — സെൻസർ ഒരു വസ്തുവിനടുത്തല്ല.

Usage:
optical_1.is_near_object()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# 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 നൽകുന്നു:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# 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 ഒപ്റ്റിക്കൽ സെൻസർ കണ്ടെത്തിയ തെളിച്ചം തിരികെ നൽകുന്നു.

ഉയർന്ന ശതമാനം എന്നാൽ ഒപ്റ്റിക്കൽ സെൻസർ കൂടുതൽ പ്രകാശം കണ്ടെത്തുന്നു എന്നാണ്. കുറഞ്ഞ ശതമാനം എന്നാൽ ഒപ്റ്റിക്കൽ സെൻസർ കുറഞ്ഞ പ്രകാശം കണ്ടെത്തുന്നു എന്നാണ്.

Usage:
optical_1.brightness(readraw)

പാരാമീറ്ററുകൾ

വിവരണം

readraw

ഓപ്ഷണൽ. ശതമാനത്തിന് പകരം റോ ബ്രൈറ്റ്‌നെസ് ഡാറ്റ വായിക്കാൻ ഒരു ബൂളിയൻ മൂല്യം:

  • True — റോ ഡാറ്റ തിരികെ നൽകുക.
  • False (സ്ഥിരസ്ഥിതി) — ഒരു ശതമാനമായി തെളിച്ചം തിരികെ നൽകുക.

hue#

0 മുതൽ 359.99 ഡിഗ്രി വരെയുള്ള ശ്രേണിയിൽ ഫ്ലോട്ടായി ഒപ്റ്റിക്കൽ സെൻസർ കണ്ടെത്തിയ ഹ്യൂവിന്റെ മൂല്യം hue നൽകുന്നു.

താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ, ഒരു വർണ്ണചക്രത്തിന് ചുറ്റുമുള്ള അക്കങ്ങൾ ഉപയോഗിച്ച് നിറത്തെ വിവരിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ് ഹ്യൂ.

മുകളിൽ 0° മുതൽ 360° വരെ 30-ഡിഗ്രി വർദ്ധനവിൽ വർദ്ധിക്കുന്ന, ചുറ്റളവിന് ചുറ്റും ഡിഗ്രി മൂല്യങ്ങൾ ലേബൽ ചെയ്ത നിറങ്ങളുടെ പൂർണ്ണ സ്പെക്ട്രം പ്രദർശിപ്പിക്കുന്ന ഒരു വൃത്താകൃതിയിലുള്ള വർണ്ണ ചക്രം.

Usage:
optical_1.hue()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# 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 എന്നത് ഒപ്റ്റിക്കൽ സെൻസർ ഒരു ട്യൂപ്പിൾ ആയി കണ്ടെത്തിയ ചുവപ്പ്, പച്ച, നീല, തെളിച്ച മൂല്യങ്ങൾ തിരികെ നൽകുന്നു.

Usage:
optical_1.rgb(raw)

പാരാമീറ്ററുകൾ

വിവരണം

raw

ഓപ്ഷണൽ. നിങ്ങൾ അസംസ്കൃത മൂല്യങ്ങളോ പ്രോസസ്സ് ചെയ്ത മൂല്യങ്ങളോ നൽകുന്നുണ്ടോ എന്ന് നിർണ്ണയിക്കുന്നതിനുള്ള ഒരു ബൂളിയൻ മൂല്യം:

  • True — അസംസ്കൃത മൂല്യം നൽകുക.
  • False (സ്ഥിരസ്ഥിതി) — അസംസ്കൃത മൂല്യം നൽകരുത്.
# 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 ഒപ്റ്റിക്കൽ സെൻസർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ തിരികെ നൽകുന്നു.

  • True — ഒപ്റ്റിക്കൽ സെൻസർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

  • False — ഒപ്റ്റിക്കൽ സെൻസർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടില്ല.

Usage:
optical_1.installed()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
    brain.screen.print("Installed!")

തിരിച്ചുവിളിക്കുക#

object_detected#

ഒരു ഒബ്‌ജക്റ്റ് കണ്ടെത്തുമ്പോൾ object_detected ഒരു കോൾബാക്ക് ഫംഗ്‌ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

Usage:
optical_1.object_detected(callback, arg)

പാരാമീറ്ററുകൾ

വിവരണം

callback

ഒരു വസ്തു കണ്ടെത്തുമ്പോൾ നടപ്പിലാക്കുന്നതിനായി മുമ്പ് നിർവചിച്ചിട്ടുള്ള ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകളുള്ള ഫംഗ്ഷനുകൾ കാണുക.

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 ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

Usage:
optical_1.object_lost(callback, arg)

പാരാമീറ്ററുകൾ

വിവരണം

callback

ഒരു വസ്തു നഷ്ടപ്പെടുമ്പോൾ നടപ്പിലാക്കുന്നതിനായി മുമ്പ് നിർവചിച്ചിട്ടുള്ള ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകളുള്ള ഫംഗ്ഷനുകൾ കാണുക.

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)

കൺസ്ട്രക്‌ടർമാർ#

VEXcode-ന് പുറത്ത് ഒരു ഒപ്റ്റിക്കൽ സെൻസർ കോൺഫിഗർ ചെയ്യുന്നതിന് ആവശ്യമായ Optical ഒബ്‌ജക്റ്റുകൾ സ്വമേധയാ സൃഷ്ടിക്കാൻ കൺസ്ട്രക്‌ടറുകൾ ഉപയോഗിക്കുന്നു.

Optical#

Optical ഒരു ഒപ്റ്റിക്കൽ സെൻസർ സൃഷ്ടിക്കുന്നു.

Usage:
Optical(smartport)

പാരാമീറ്റർ

വിവരണം

smartport

ഒപ്റ്റിക്കൽ സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, PORTx എന്ന് എഴുതിയിരിക്കുന്നു, ഇവിടെ x എന്നത് പോർട്ടിന്റെ നമ്പറാണ്.

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