Renk Sensörü#

giriiş#

colorsensor sınıfı, Renk Sensörü’nden veri almak için kullanılır. Nesneleri algılamak, renkleri belirlemek ve parlaklık ile tonu ölçmek için yansıyan ışığı kullanır.

Sınıf Oluşturucu#

colorsensor Color1 = colorsensor(index);

Sınıf Yıkıcısı#

colorsensor nesnesini yok eder ve ilgili kaynakları serbest bırakır.

virtual ~colorsensor();

Parametreler#

Parametre

Tip

Tanım

index

int32_t

Renk sensörünün bağlı olduğu Akıllı Bağlantı Noktası, PORTxşeklinde yazılır; burada x bağlantı noktası numarasıdır (örneğin, PORT1).

Örnekler#

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

Üye Fonksiyonları#

colorsensor sınıfı aşağıdaki üye fonksiyonlarını içerir:

  • setLight – Renk Sensörünün LED’ini açar, kapatır veya belirli bir parlaklık seviyesine getirir.

  • isNearObject – Bir nesnenin Renk Sensörüne yakın olup olmadığını döndürür.

  • detects – Belirtilen rengin Renk Sensörü tarafından algılanıp algılanmadığını döndürür.

  • colorname – Renk Sensörü tarafından algılanan rengin adını döndürür.

  • brightness – Bir nesnenin algılanan parlaklığını döndürür.

  • hue – Tespit edilen ton değerini döndürür.

Herhangi bir colorsensor üye fonksiyonunu çağırmadan önce, aşağıda gösterildiği gibi bir colorsensor örneği oluşturulmalıdır:

/* 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#

Renk sensörünün LED’inin ışık gücünü ayarlar. Bu ışık, renk sensörünün nesneleri ve renkleri daha net algılamasına yardımcı olur.

Renk sensörünün ışığı kapalıysa, ışık gücünü %0’ın üzerine ayarlamak ışığı açacaktır.

Renk sensörünün ışığı yanıyorsa, ışık gücünü %0’a ayarlamak ışığı söndürecektir.

Yüzde oranı ne kadar yüksekse ışık o kadar parlak olur. Yüzde oranı ne kadar düşükse ışık o kadar loş olur.

Available Functions

1 — ledState kullanarak LED’i açar veya kapatır.

void setLight( 
  ledState  state );

2 — LED’i belirli bir yoğunluğa ayarlar.

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

Parameters

Parametre

Tip

Tanım

state

ledState

LED’i açar veya kapatır. ledState::on LED’i %100 parlaklıkta açar. ledState::off kapatır.

intensity

int32_t

Işık gücü seviyesi 0 ile 100 arasında ayarlanabilir.

units

percentUnits

Işık yoğunluğunu temsil eden birim: % percent / pct

Return Values

Bu fonksiyon bir değer döndürmez.

Examples
// Set the light power to 50 percent.
Color1.setLight(50, percent);

isNearObject#

Renk Sensörü yakındaki bir nesneyi algılarsa bu değeri döndürür.

Available Functions
bool  isNearObject();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Bu fonksiyon, yakındaki bir nesnenin tespit edilip edilmediğini gösteren bir Boolean değeri döndürür:

  • true – Renk Sensörü bir nesne algılıyor.

  • false – Renk sensörü bir nesne algılamıyor.

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

detects#

Renk sensörünün belirtilen rengi algılayıp algılamadığını döndürür.

Available Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametreler

Tip

Tanım

color

colorType

A valid color:

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

color

vex::color

Geçerli bir özel renk veya yukarıda listelenen önceden tanımlanmış renklerden biri.

Return Values
  • true – Renk Sensörü rengi algılar.

  • false – Renk sensörü rengi algılamıyor.

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#

Tespit edilen en yakın eşleşen rengi döndürür.

Available Functions
colorType colorname();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Doğrudan yazdırıldığında, o renkle ilişkili sayısal değeri gösterir:

Renk

Sayısal Değer

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
  • VEXcode, Aygıtlar penceresinde bir Renk Sensörü yapılandırıldığında convertColorToString fonksiyonunu otomatik olarak oluşturur. Bu fonksiyon yalnızca VEXcode IQ projelerinde kullanılabilir ve diğer ortamlarda çalışmaz.

  • VEXcode dışında colorname kullanılırken, karşılaştırmalar doğrudan colorType değeriyle yapılmalıdır — colorType:: ile başlayan herhangi bir renk (örneğin, colorType::green veya 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#

Nesneden yansıyan ışık miktarını döndürür.

Yüzde oranının yüksek olması, renk sensörüne daha fazla ışığın geri yansıtıldığı anlamına gelir. Yüzde oranının düşük olması ise daha az ışığın geri yansıtıldığı anlamına gelir.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametre

Tip

Tanım

bRaw

bool

Parlaklık verilerini yüzde yerine ham olarak okumak için kullanılan bir Boolean değeri. Varsayılan değer false.

Return Values

Renk sensörü tarafından algılanan parlaklığı %0 - %100 aralığında temsil eden bir çift sayı veya sensör tarafından algılanan ham veriyi temsil eden bir çift sayı.

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#

Renk sensörü tarafından algılanan renk tonunu döndürür.

Renk tonu, renk çemberi üzerindeki sayılar kullanılarak rengi tanımlamanın bir yoludur.

Kırmızının 0 dereceden başlayıp değer arttıkça gökkuşağının renklerine geçiş yaptığı, daire etrafında renklerin derecelerini gösteren VEX Renk Çarkı.

Available Functions
double hue();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Renk Sensörü tarafından algılanan renk tonunun 0 ile 359,00 aralığındaki değerini temsil eden bir double değer.

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