Optisks#
Ievads#
Optiskais sensors ir uz gaismu balstīts sensors, kas izmanto atstarotu gaismu, lai noteiktu objektus, identificētu krāsas un mērītu spilgtumu un nokrāsu.
Varat arī konfigurēt sensora iekšējā apgaismojuma spilgtumu. Šie rīki ir ideāli piemēroti programmām, kurām reāllaikā jāreaģē uz krāsainiem objektiem, apgaismojuma apstākļiem vai sensora atsauksmēm.
Šajā lapā kā optiskā sensora nosaukuma piemērs tiek izmantots optical_1 Ja nepieciešams, nomainiet to ar savu konfigurēto nosaukumu.
Zemāk ir visu metožu saraksts:
Darbības — ieslēdziet vai izslēdziet optiskā sensora gaismas diodi.
set_light— Iestata gaismas diodes ieslēgšanas vai izslēgšanas stāvokli.
Mutatori — pielāgojiet LED spilgtumu un objektu noteikšanas iestatījumus.
set_light_power— Iestata gaismas diodes spilgtumu.object_detect_threshold— Iestata objektu noteikšanas slieksni.
Ieguvēji — Nolasa objekta klātbūtni, krāsu, spilgtumu, nokrāsu, RGB un sensora statusu.
is_near_object— Atgriež, vai noteiktais objekts atrodas optiskā sensora tuvumā.color— Atgriež tuvāko noteikto krāsas atbilstību.brightness— Atgriež noteiktā objekta spilgtumu.hue— Atgriež noteiktā objekta nokrāsu.rgb— Atgriež optiskā sensora noteiktās RGB vērtības.installed— Atgriež, vai smadzenēm ir pievienots optiskais sensors.
Atzvanīšana — Palaidiet kodu, kad objekts tiek atklāts vai pazaudēts.
object_detected— Reģistrē funkciju, kas jāizsauc, kad tiek atklāts objekts.object_lost— Reģistrē funkciju, kas jāizsauc, ja objekts tiek pazaudēts.
Konstruktori — manuāla optiskā sensora inicializācija un konfigurēšana.
Optical— Izveido optisko sensoru.
Darbības#
set_light#
set_light ieslēdz, izslēdz optiskā sensora LED vai iestata spilgtuma līmeni.
Usage:
optical_1.set_light(state)
Parametri |
Apraksts |
|---|---|
|
Stāvoklis, kurā iestatīt apgaismojumu vai jaudas procentuālo vērtību diapazonā no 0 līdz 100. Stāvoklis var būt jebkurš no šiem:
|
# 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)
Mutatori#
set_light_power#
set_light_power iestata optiskā sensora gaismas spilgtumu. Ja gaismas diode vēl nav ieslēgta, šī metode to arī ieslēgs.
Usage:
optical_1.set_light_power(value)
Parametri |
Apraksts |
|---|---|
|
Jaudas līmenis, lai iestatītu gaismu no 0 līdz 100 procentos. |
# 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 nosaka diapazonu, kurā sensors var noteikt objektus. Šī metode arī atgriež jaunizveidoto slieksni.
Skaitļi, kas tuvāki 255, norāda mazāku diapazonu, savukārt skaitļi, kas tuvāki 0, norāda lielāku diapazonu.
Usage:
optical_1.object_detect_threshold(value)
Parametri |
Apraksts |
|---|---|
|
Skaitlis diapazonā no 0 līdz 255. Vērtība 0 atgriezīs tikai pašreizējo vērtību. |
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)
Getteri#
is_near_object#
is_near_object atgriež, vai optiskais sensors atrodas objekta tuvumā.
True— Sensors atrodas objekta tuvumā.False— Sensors neatrodas objekta tuvumā.
Usage:
optical_1.is_near_object()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# 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 atgriež iepriekš definēto krāsu, ko noteicis optiskais sensors no tālāk norādītajām krāsām:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# 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 atgriež optiskā sensora noteikto spilgtumu.
Augstāks procentuālais daudzums nozīmē, ka optiskais sensors uztver vairāk gaismas. Zemāks procentuālais daudzums nozīmē, ka optiskais sensors uztver mazāk gaismas.
Usage:
optical_1.brightness(readraw)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Būla vērtība, lai nolasītu neapstrādātus spilgtuma datus procentuālās vērtības vietā:
|
hue#
hue atgriež optiskā sensora noteiktās nokrāsas vērtību kā pludiņskaitli diapazonā no 0 līdz 359,99 grādiem.
Nokrāsa ir veids, kā aprakstīt krāsu, izmantojot skaitļus ap krāsu apli, kā parādīts zemāk.

Usage:
optical_1.hue()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# 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 atgriež sarkanās, zaļās, zilās krāsas un spilgtuma vērtības, ko optiskais sensors noteicis kā kortežu.
Usage:
optical_1.rgb(raw)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Būla vērtība, lai noteiktu, vai atgriežat neapstrādātas vai apstrādātas vērtības:
|
# 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 atgriež Būla vērtību, kas norāda, vai optiskais sensors ir savienots ar smadzenēm.
True— Optiskais sensors ir savienots ar smadzenēm.False— Optiskais sensors nav savienots ar smadzenēm.
Usage:
optical_1.installed()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Atzvans#
object_detected#
object_detected reģistrē atzvanīšanas funkciju, kad tiek atklāts objekts.
Usage:
optical_1.object_detected(callback, arg)
Parametri |
Apraksts |
|---|---|
|
Funkcija, kas iepriekš definēta izpildei, kad tiek atklāts objekts. |
|
Neobligāti. Kortežs, kas satur argumentus, kas jānodod atzvanīšanas funkcijai. Plašāku informāciju skatiet sadaļā Funkcijas ar parametriem. |
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 reģistrē atzvanīšanas funkciju gadījumam, ja optiskais sensors pazaudē noteiktu objektu.
Usage:
optical_1.object_lost(callback, arg)
Parametri |
Apraksts |
|---|---|
|
Funkcija, kas iepriekš definēta izpildei, kad objekts tiek pazaudēts. |
|
Neobligāti. Kortežs, kas satur argumentus, kas jānodod atzvanīšanas funkcijai. Plašāku informāciju skatiet sadaļā Funkcijas ar parametriem. |
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)
Konstruktori#
Konstruktori tiek izmantoti, lai manuāli izveidotu Optical objektus, kas ir nepieciešami optiskā sensora konfigurēšanai ārpus VEXkoda.
Optical#
Optical izveido optisko sensoru.
Usage:
Optical(smartport)
Parametrs |
Apraksts |
|---|---|
|
Viedā pieslēgvieta, kurai ir pievienots optiskais sensors, tiek pierakstīta kā PORTx, kur x ir pieslēgvietas numurs. |
# 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())