Sensor Warna#

Perkenalan#

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

Konstruktor Kelas#

colorsensor Color1 = colorsensor(index);

Destruktor Kelas#

Menghancurkan objek colorsensor dan melepaskan sumber daya terkait.

virtual ~colorsensor();

Parameter#

Parameter

Jenis

Keterangan

index

int32_t

Port Pintar tempat Sensor Warna terhubung, ditulis sebagai PORTx, di mana x adalah nomor port (misalnya, PORT1).

Contoh#

// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);

Fungsi Keanggotaan#

Kelas colorsensor mencakup fungsi anggota berikut:

  • setLight – Menyalakan, mematikan, atau mengatur tingkat kecerahan LED Sensor Warna.

  • isNearObject – Mengembalikan nilai boolean yang menunjukkan apakah suatu objek dekat dengan Sensor Warna atau tidak.

  • detects – Mengembalikan apakah warna tertentu terdeteksi oleh Sensor Warna atau tidak.

  • colorname – Mengembalikan nama warna yang terdeteksi oleh Sensor Warna.

  • brightness – Mengembalikan kecerahan objek yang terdeteksi.

  • hue – Mengembalikan nilai hue yang terdeteksi.

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

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

// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);

setLight#

Mengatur daya cahaya LED Sensor Warna. Cahaya ini dapat membantu Sensor Warna mendeteksi objek dan warna dengan lebih jelas.

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

Jika lampu Sensor Warna 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

1 — Menghidupkan atau mematikan LED menggunakan ledState.

void setLight( 
  ledState  state );

2 Menghidupkan lampu LED dengan intensitas tertentu.

void setLight( 
  int32_t      intensity, 
  percentUnits units = percent );

Parameters

Parameter

Jenis

Keterangan

state

ledState

Mengatur status LED menjadi menyala atau mati. ledState::on menyalakan LED dengan kecerahan 100%. ledState::off mematikannya.

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.
Color1.setLight(50, percent);

isNearObject#

Mengembalikan nilai true jika Sensor Warna 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 Warna mendeteksi sebuah objek.

  • false – Sensor Warna tidak mendeteksi objek.

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

detects#

Mengembalikan nilai true jika Sensor Warna mendeteksi warna tertentu.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parameter

Jenis

Keterangan

color

colorType

Warna yang valid:

  • blue – Nilai rona antara 196° dan 229°
  • blue_green – Nilai rona antara 140° dan 195°
  • blue_violet – Nilai rona antara 230° dan 239°
  • green – Nilai rona antara 84° dan 139°
  • orange – Nilai rona antara 21° dan 30°
  • purple
  • red – Nilai rona antara 350° dan 14°
  • red_orange – Nilai rona antara 15° dan 20°
  • red_violet – Nilai rona antara 281° dan 350°
  • violet – Nilai rona antara 240° dan 280°
  • white
  • yellow – Nilai rona antara 54° dan 74°
  • yellow_green – Nilai rona antara 75° dan 83°
  • yellow_orange – Nilai rona antara 31° dan 53°

color

vex::color

A valid custom color, or one of the predefined colors listed above.

Return Values
  • true – Sensor Warna mendeteksi warna.

  • false – Sensor Warna tidak mendeteksi warna.

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Drive until a red object is seen
  Drivetrain.drive(forward);
  while (true) {
    if (Color1.detects(red)) {
      Drivetrain.stop();
      break;
    }
    wait(0.5, seconds);
  }
}

colorname#

Mengembalikan warna yang paling cocok yang terdeteksi.

Available Functions
colorType colorname();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Saat dicetak langsung, akan menampilkan nilai numerik yang terkait dengan warna tersebut:

Warna

Nilai Numerik

none

0

red

1

green

2

blue

3

white

4

yellow

5

orange

6

purple

7

cyan

8

red_violet

9

violet

10

blue_violet

11

blue_green

12

yellow_green

13

yellow_orange

14

red_orange

15

black

16

transparent

17

Notes
  • Fungsi convertColorToString secara otomatis dibuat oleh VEXcode ketika Sensor Warna dikonfigurasi di jendela Perangkat. Fungsi ini hanya tersedia di dalam proyek VEXcode IQ dan tidak akan berfungsi di lingkungan lain.

  • Saat menggunakan colorname di luar VEXcode, perbandingan harus dilakukan langsung dengan nilai colorType — warna apa pun yang diawali dengan colorType:: (misalnya, colorType::green atau colorType::red).

Examples
int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Continuously check the detected color
  while (true) {

    // Compare the color name with "red"
    if (convertColorToString(Color1.colorname()) == "red") {
      Brain.Screen.print("Red object!");
    } else {
      Brain.Screen.print("Not red");
    }

    wait(0.5, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

int main() {
  // Initializing Robot Configuration. DO NOT REMOVE!
  vexcodeInit();

  // Continuously check the detected color
  while (true) {

    // Compare the color name with the colorType
    if (Color1.colorname() == colorType::red) {
      Brain.Screen.print("Red object!");
    } else {
      Brain.Screen.print("Not red");
    }

    wait(0.5, seconds);
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
  }
}

brightness#

Mengembalikan jumlah cahaya yang dipantulkan dari objek.

Persentase yang lebih tinggi berarti lebih banyak cahaya yang dipantulkan kembali ke Sensor Warna. 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 Warna 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 Color Sensor
double brightness = Color1.brightness();

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

hue#

Mengembalikan rona warna yang terdeteksi oleh Sensor Warna.

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

Nilai double yang mewakili nilai hue yang terdeteksi oleh Sensor Warna dalam rentang 0 — 359,00.

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