Optik#

Perkenalan#

Sensor optik adalah sensor berbasis cahaya yang menggunakan cahaya pantulan untuk mendeteksi objek, mengidentifikasi warna, dan mengukur kecerahan serta corak warna.

Anda juga dapat mengkonfigurasi kecerahan lampu internal sensor. Alat-alat ini ideal untuk program yang perlu bereaksi terhadap objek berwarna, kondisi pencahayaan, atau umpan balik sensor secara real-time.

Halaman ini menggunakan optical_1 sebagai contoh nama Sensor Optik. Ganti dengan nama yang Anda konfigurasi sendiri sesuai kebutuhan.

Berikut adalah daftar semua metode:

Tindakan — Menghidupkan atau mematikan LED Sensor Optik.

  • set_light — Mengatur status hidup atau mati LED.

Mutator — Sesuaikan kecerahan LED dan pengaturan deteksi objek.

Getter — Membaca keberadaan objek, warna, kecerahan, rona, RGB, dan status sensor.

  • is_near_object — Mengembalikan nilai boolean yang menunjukkan apakah objek yang terdeteksi berada di dekat Sensor Optik.

  • color — Mengembalikan warna yang paling dekat yang terdeteksi.

  • brightness — Mengembalikan kecerahan objek yang terdeteksi.

  • hue — Mengembalikan warna objek yang terdeteksi.

  • rgb — Mengembalikan nilai RGB yang terdeteksi oleh Sensor Optik.

  • installed — Mengembalikan apakah Sensor Optik terhubung ke Otak.

Callback — Menjalankan kode saat suatu objek terdeteksi atau hilang.

  • object_detected — Mendaftarkan fungsi yang akan dipanggil ketika sebuah objek terdeteksi.

  • object_lost — Mendaftarkan fungsi yang akan dipanggil ketika sebuah objek hilang.

Konstruktor — Menginisialisasi dan mengkonfigurasi Sensor Optik secara manual.

  • Optical — Membuat Sensor Optik.

Tindakan#

set_light#

set_light mengatur LED Sensor Optik menjadi menyala, mati, atau tingkat kecerahan tertentu.

Usage:
optical_1.set_light(state)

Parameter

Keterangan

state

Status untuk mengatur lampu atau persentase daya dalam rentang 0 hingga 100. Status dapat berupa salah satu dari berikut ini:

  • LedStateType.OFF (0 persen)
  • LedStateType.ON (100 persen)
  • integer — Nilai kecerahan yang diberikan sebagai bilangan bulat dari 0 hingga 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)

Mutator#

set_light_power#

Perintah set_light_power mengatur kecerahan cahaya Sensor Optik. Jika LED belum menyala, metode ini juga akan menyalakan LED.

Usage:
optical_1.set_light_power(value)

Parameter

Keterangan

value

Tingkat daya untuk mengatur cahaya dari 0 hingga 100 dalam persen.

# 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 mengatur rentang di mana sensor dapat mendeteksi objek. Metode ini juga mengembalikan ambang batas yang baru ditetapkan.

Angka yang mendekati 255 menunjukkan rentang yang lebih kecil, sedangkan angka yang mendekati 0 menunjukkan rentang yang lebih besar.

Usage:
optical_1.object_detect_threshold(value)

Parameter

Keterangan

value

Angka dalam rentang 0 - 255. Nilai 0 hanya akan mengembalikan nilai saat ini.

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)

Pencari#

is_near_object#

is_near_object mengembalikan nilai boolean yang menunjukkan apakah Sensor Optik berada di dekat suatu objek.

  • True — Sensor berada di dekat suatu objek.

  • False — Sensor tidak berada di dekat suatu objek.

Usage:
optical_1.is_near_object()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan warna yang telah ditentukan sebelumnya yang terdeteksi oleh Sensor Optik dari warna-warna di bawah ini:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan tingkat kecerahan yang terdeteksi oleh Sensor Optik.

Persentase yang lebih tinggi berarti Sensor Optik mendeteksi lebih banyak cahaya. Persentase yang lebih rendah berarti Sensor Optik mendeteksi lebih sedikit cahaya.

Usage:
optical_1.brightness(readraw)

Parameter

Keterangan

readraw

Opsional. Nilai Boolean untuk membaca data kecerahan mentah, bukan persentase:

  • True — Mengembalikan data mentah.
  • False (default) — Mengembalikan kecerahan sebagai persentase.

hue#

hue mengembalikan nilai hue yang terdeteksi oleh Sensor Optik sebagai nilai float dalam rentang 0 hingga 359,99 derajat.

Hue adalah cara untuk mendeskripsikan warna menggunakan angka-angka di sekitar roda warna, seperti yang ditunjukkan di bawah ini.

Roda warna melingkar yang menampilkan spektrum warna lengkap yang diberi label dengan nilai derajat di sekelilingnya, meningkat dalam kelipatan 30 derajat dari 0° di atas hingga 360°.

Usage:
optical_1.hue()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan nilai merah, hijau, biru, dan kecerahan yang terdeteksi oleh Sensor Optik sebagai sebuah Tuple.

Usage:
optical_1.rgb(raw)

Parameter

Keterangan

raw

Opsional. Nilai Boolean untuk menentukan apakah Anda mengembalikan nilai mentah atau yang telah diproses:

  • True — Kembalikan nilai mentah.
  • False (default) — Jangan kembalikan nilai mentah.
# 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 mengembalikan nilai Boolean yang menunjukkan apakah Sensor Optik terhubung ke Otak.

  • True — Sensor Optik terhubung ke Otak.

  • False — Sensor Optik tidak terhubung ke Otak.

Usage:
optical_1.installed()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

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

Panggilan balik#

object_detected#

object_detected mendaftarkan fungsi callback untuk saat sebuah objek terdeteksi.

Usage:
optical_1.object_detected(callback, arg)

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya untuk dieksekusi ketika sebuah objek terdeteksi.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Fungsi dengan Parameter untuk informasi selengkapnya.

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 mendaftarkan fungsi callback untuk saat Sensor Optik kehilangan objek yang terdeteksi.

Usage:
optical_1.object_lost(callback, arg)

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya untuk dieksekusi ketika sebuah objek hilang.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Fungsi dengan Parameter untuk informasi selengkapnya.

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)

Konstruktor#

Konstruktor digunakan untuk membuat objek Optical secara manual, yang diperlukan untuk mengkonfigurasi Sensor Optik di luar VEXcode.

Optical#

Optical menciptakan Sensor Optik.

Usage:
Optical(smartport)

Parameter

Keterangan

smartport

Port Pintar tempat Sensor Optik terhubung, ditulis sebagai PORTx di mana x adalah nomor port.

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