Optik#

giriiş#

Optik sensör, nesneleri algılamak, renkleri belirlemek ve parlaklık ile tonu ölçmek için yansıyan ışığı kullanan, ışık tabanlı bir sensördür.

Sensörün dahili ışığının parlaklığını da yapılandırabilirsiniz. Bu araçlar, renkli nesnelere, aydınlatma koşullarına veya sensör geri bildirimine gerçek zamanlı olarak tepki vermesi gereken programlar için idealdir.

Bu sayfada örnek optik sensör adı olarak optical_1 kullanılmıştır. Gerektiğinde bunu kendi yapılandırdığınız adla değiştirin.

Aşağıda tüm yöntemlerin listesi bulunmaktadır:

İşlemler — Optik Sensörün LED’ini açın veya kapatın.

  • set_light — LED’in açık veya kapalı durumunu ayarlar.

Değiştiriciler — LED parlaklığını ve nesne algılama ayarlarını düzenleyin.

Getter’lar — Nesnenin varlığını, rengini, parlaklığını, tonunu, RGB değerini ve sensör durumunu okur.

  • is_near_object — Algılanan nesnenin Optik Sensöre yakın olup olmadığını döndürür.

  • color — Tespit edilen en yakın renk eşleşmesini döndürür.

  • brightness — Algılanan nesnenin parlaklığını döndürür.

  • hue — Algılanan nesnenin tonunu döndürür.

  • rgb — Optik Sensör tarafından algılanan RGB değerlerini döndürür.

  • installed — Optik Sensörün Beyne bağlı olup olmadığını döndürür.

Geri Çağrı — Bir nesne algılandığında veya kaybolduğunda kod çalıştır.

  • object_detected — Bir nesne algılandığında çağrılacak bir fonksiyonu kaydeder.

  • object_lost — Bir nesne kaybolduğunda çağrılacak bir fonksiyonu kaydeder.

Yapıcılar — Optik Sensörü manuel olarak başlatın ve yapılandırın.

  • Optical — Optik Sensör Oluşturur.

Eylemler#

set_light#

set_light komutu, Optik Sensörün LED’ini açar, kapatır veya belirli bir parlaklık seviyesine ayarlar.

Usage:
optical_1.set_light(state)

Parametreler

Tanım

state

Işık durumunu veya güç yüzdesini 0 ile 100 arasında ayarlamak için kullanılan değer. Durum aşağıdaki seçeneklerden biri olabilir:

  • LedStateType.OFF (%0)
  • LedStateType.ON (%100)
  • integer — 0 ile 100 arasında bir tamsayı olarak verilen parlaklık değeri.
# 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)

Mutatörler#

set_light_power#

set_light_power komutu, Optik Sensörün ışığının parlaklığını ayarlar. LED zaten yanmıyorsa, bu yöntem LED’i de açar.

Usage:
optical_1.set_light_power(value)

Parametreler

Tanım

value

Işık şiddetini yüzde olarak 0 ile 100 arasında ayarlayabilirsiniz.

# 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 , sensörün nesneleri algılayabileceği aralığı belirler. Bu yöntem ayrıca yeni belirlenen eşik değerini de döndürür.

255’e yakın sayılar daha küçük bir aralığı, 0’a yakın sayılar ise daha büyük bir aralığı gösterir.

Usage:
optical_1.object_detect_threshold(value)

Parametreler

Tanım

value

0 ile 255 arasında bir sayı. 0 değeri yalnızca mevcut değeri döndürür.

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)

Getters#

is_near_object#

is_near_object Optik Sensörün bir nesneye yakın olup olmadığını döndürür.

  • True — Sensör bir nesnenin yakınında.

  • False — Sensör bir nesnenin yakınında değil.

Usage:
optical_1.is_near_object()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# 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 aşağıdaki renkler arasından Optik Sensör tarafından algılanan önceden tanımlanmış rengi döndürür:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# 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 Optik Sensör tarafından algılanan parlaklık değerini döndürür.

Daha yüksek bir yüzde, optik sensörün daha fazla ışık algıladığı anlamına gelir. Daha düşük bir yüzde ise optik sensörün daha az ışık algıladığı anlamına gelir.

Usage:
optical_1.brightness(readraw)

Parametreler

Tanım

readraw

İsteğe bağlı. Yüzde yerine ham parlaklık verilerini okumak için bir Boolean değeri:

  • True — Ham verileri döndür.
  • False (varsayılan) — Parlaklığı yüzde olarak döndür.

hue#

hue Optik Sensör tarafından algılanan renk tonunun değerini 0 ile 359,99 derece aralığında ondalık sayı olarak döndürür.

Renk tonu, aşağıda gösterildiği gibi, renk çemberi üzerindeki sayılar kullanılarak rengi tanımlamanın bir yoludur.

Çevresinde derece değerleri ile etiketlenmiş, üstte 0°'den başlayıp 360°'ye kadar 30 derecelik artışlarla renklerin tam spektrumunu gösteren dairesel bir renk çemberi.

Usage:
optical_1.hue()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# 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 Optik Sensör tarafından algılanan kırmızı, yeşil, mavi ve parlaklık değerlerini bir Tuple olarak döndürür.

Usage:
optical_1.rgb(raw)

Parametreler

Tanım

raw

İsteğe bağlı. Ham veya işlenmiş değerleri döndürüp döndürmeyeceğinizi belirlemek için kullanılan bir Boolean değeri:

  • True — Ham değeri döndür.
  • False (varsayılan) — Ham değeri döndürme.
# 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 adet ise Optik Sensörün Beyne bağlı olup olmadığını gösteren bir Boolean değeri döndürür.

  • True — Optik Sensör Beyne bağlıdır.

  • False — Optik Sensör beyne bağlı değil.

Usage:
optical_1.installed()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

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

Geri çağırmak#

object_detected#

object_detected , bir nesne algılandığında çalışacak bir geri çağırma fonksiyonu kaydeder.

Usage:
optical_1.object_detected(callback, arg)

Parametreler

Tanım

callback

Bir nesne algılandığında yürütülecek şekilde önceden tanımlanmış bir fonksiyon.

arg

İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Fonksiyonlar bölümüne bakın.

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 , Optik Sensör algılanan bir nesneyi kaybettiğinde çalışacak bir geri çağırma fonksiyonu kaydeder.

Usage:
optical_1.object_lost(callback, arg)

Parametreler

Tanım

callback

Bir nesne kaybolduğunda yürütülecek şekilde önceden tanımlanmış bir fonksiyon.

arg

İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Fonksiyonlar bölümüne bakın.

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)

İnşaatçılar#

Yapıcılar, VEXcode dışında bir Optik Sensörü yapılandırmak için gerekli olan Optical nesnesini manuel olarak oluşturmak için kullanılır.

Optical#

Optical , bir Optik Sensör oluşturur.

Usage:
Optical(smartport)

Parametre

Tanım

smartport

Optik sensörün bağlı olduğu akıllı port, PORTx şeklinde yazılır; burada x port numarasıdır.

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