Sensor Optik#

Perkenalan#

Kelas optical digunakan untuk mengakses data dari Sensor Optik EXP. Sensor ini menggunakan cahaya pantulan untuk mendeteksi objek, mengidentifikasi warna, dan mengukur kecerahan dan corak warna.

Konstruktor Kelas#

optical(
    int32_t index );

Destruktor Kelas#

Destroys the optical object and releases associated resources.

virtual ~optical();

Parameter#

Parameter

Jenis

Keterangan

index

int32_t

Port Pintar yang terhubung ke Sensor Optik, ditulis sebagai PORTx, di mana x adalah nomor port (misalnya, PORT1).

Contoh#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Fungsi Keanggotaan#

Kelas optical mencakup fungsi anggota berikut:

  • setLight — Menyalakan atau mematikan LED Sensor Optik.

  • setLightPower — Mengatur tingkat daya cahaya Sensor Optik.

  • isNearObject — Mengembalikan nilai boolean yang menunjukkan apakah Sensor Optik mendeteksi objek dalam jangkauan.

  • color — Mengembalikan warna yang terdeteksi oleh Sensor Optik.

  • brightness — Mengembalikan jumlah cahaya yang dipantulkan dari objek.

  • hue — Mengembalikan hue yang terdeteksi oleh Sensor Optik.

  • objectDetected — Mendaftarkan fungsi yang akan dipanggil ketika Sensor Optik mendeteksi suatu objek.

  • objectLost — Mendaftarkan fungsi yang akan dipanggil ketika Sensor Optik kehilangan sebuah objek.

Sebelum memanggil fungsi anggota optical apa pun, sebuah instance optical harus dibuat, seperti yang ditunjukkan di bawah ini:

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an optical instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

setLight#

Mengatur LED Sensor Optik ke mode menyala atau mati. Cahaya ini dapat membantu Sensor Optik mendeteksi objek dan warna dengan lebih jelas.

Available Functions
void  setLight(ledState state);

Parameters

Parameter

Jenis

Keterangan

state

ledState

Sets the LED on or off. ledState::on turns the LED on at 100% brightness. ledState::off turns it off.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

Mengatur kecerahan LED Sensor Optik. Cahaya ini dapat membantu Sensor Optik mendeteksi objek dan warna dengan lebih jelas.

Jika lampu Sensor Optik mati, mengatur daya lampu di atas 0% akan menyalakan lampu tersebut.

Jika lampu Sensor Optik menyala, mengatur daya lampu ke 0% akan mematikan lampu tersebut.

Persentase yang lebih tinggi membuat cahaya lebih terang. Persentase yang lebih rendah membuat cahaya lebih redup.

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parameter

Jenis

Keterangan

intensity

int32_t

Tingkat daya untuk mengatur cahaya dari 0 – 100.

units

percentUnits

Satuan yang mewakili intensitas cahaya: percent persen pct

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

Mengembalikan nilai true jika Sensor Optik mendeteksi objek di dekatnya.

Available Functions
bool  isNearObject();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Fungsi ini mengembalikan nilai Boolean yang menunjukkan apakah objek di dekatnya terdeteksi:

  • true – Sensor Optik mendeteksi suatu objek.

  • false – Sensor Optik tidak mendeteksi objek.

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

Mengembalikan warna yang terdeteksi oleh Sensor Optik.

Available Functions
vex::color  color();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Warna yang terdeteksi oleh Sensor Optik sebagai contoh dari kelas warna.

Warna yang mungkin adalah:

  • black

  • white

  • red - Nilai rona antara 340° - 20°

  • green - Nilai rona antara 80° - 140°

  • blue - Nilai rona antara 200° - 240°

  • yellow - Nilai rona antara 40° - 60°

  • orange - Nilai rona antara 20° - 40°

  • purple - Nilai rona antara 240° - 280°

  • cyan - Nilai rona antara 140° - 200°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

Mengembalikan jumlah cahaya yang dipantulkan dari objek.

Persentase yang lebih tinggi berarti lebih banyak cahaya yang dipantulkan kembali ke Sensor Optik. Persentase yang lebih rendah berarti lebih sedikit cahaya yang dipantulkan kembali.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parameter

Jenis

Keterangan

bRaw

bool

Nilai Boolean untuk membaca data kecerahan mentah, bukan persentase. Nilai defaultnya adalah false.

Return Values

Bilangan double yang mewakili kecerahan yang terdeteksi oleh Sensor Optik sebagai bilangan double dalam rentang 0 - 100%, atau bilangan double yang mewakili data mentah yang terdeteksi oleh sensor.

Examples
// Set a variable, brightness, to the value of the brightness
// detected by the Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Mengembalikan nilai hue dari warna yang terdeteksi.

Hue adalah cara untuk mendeskripsikan warna menggunakan angka-angka di sekitar roda warna.

Roda Warna VEX yang menunjukkan derajat warna di sekitar lingkaran, dengan merah pada 0 derajat dan bertransisi melalui pelangi seiring peningkatan nilainya.

Available Functions
double hue();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Angka desimal yang mewakili nilai rona yang terdeteksi oleh Sensor Optik dalam rentang 0 — 359,99.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

Mendaftarkan fungsi callback untuk saat sebuah objek terdeteksi.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik mendeteksi objek baru.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples

Definisikan fungsi callback (di luar int main())

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

Daftarkan fungsi callback di dalam int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

Mendaftarkan fungsi callback untuk saat sebuah objek hilang.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik kehilangan objek yang terdeteksi.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples

Definisikan fungsi callback (di luar int main())

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

Daftarkan fungsi callback di dalam int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}