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 |
|---|---|---|
|
|
Port Pintar yang terhubung ke Sensor Optik, ditulis sebagai |
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 Functionsvoid setLight(ledState state);
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sets the LED on or off. |
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 Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Tingkat daya untuk mengatur cahaya dari 0 – 100. |
|
|
Satuan yang mewakili intensitas cahaya: |
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 Functionsbool isNearObject();
Fungsi ini tidak menerima parameter apa pun.
Return ValuesFungsi ini mengembalikan nilai Boolean yang menunjukkan apakah objek di dekatnya terdeteksi:
true– Sensor Optik mendeteksi suatu objek.false– Sensor Optik tidak mendeteksi objek.
// 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 Functionsvex::color color();
Fungsi ini tidak menerima parameter apa pun.
Return ValuesWarna yang terdeteksi oleh Sensor Optik sebagai contoh dari kelas warna.
Warna yang mungkin adalah:
blackwhitered- 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°
// 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 Functionsdouble brightness(bool bRaw = false);
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Nilai Boolean untuk membaca data kecerahan mentah, bukan persentase. Nilai defaultnya adalah |
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.

double hue();
Fungsi ini tidak menerima parameter apa pun.
Return ValuesAngka 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 Functionsvoid objectDetected(void (* callback)(void));
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik mendeteksi objek baru. |
Fungsi ini tidak mengembalikan nilai.
ExamplesDefinisikan 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 Functionsvoid objectLost(void (* callback)(void));
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik kehilangan objek yang terdeteksi. |
Fungsi ini tidak mengembalikan nilai.
ExamplesDefinisikan 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); }