Optik Sensör#

giriiş#

optical sınıfı, Optik Sensör’den 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#

optical Optical = optical(index);

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

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

virtual ~optical();

Parametreler#

Parametre

Tip

Tanım

index

int32_t

Optik sensörün bağlı olduğu akıllı port, PORTxşeklinde yazılır; burada x port numarasıdır (örneğin, PORT1).

Örnekler#

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

Üye Fonksiyonları#

optical sınıfı aşağıdaki üye işlevlerini içerir:

  • setLight — Optik Sensörün LED’ini açar veya kapatır.

  • setLightPower — Optik Sensörün ışık gücü seviyesini ayarlar.

  • isNearObject — Optik Sensörün menzil içinde bir nesne algılayıp algılamadığını döndürür.

  • color — Optik Sensör tarafından algılanan rengi döndürür.

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

  • hue — Optik Sensör tarafından algılanan tonu döndürür.

  • objectDetected — Optik Sensör bir nesne algıladığında çağrılacak bir fonksiyonu kaydeder.

  • objectLost — Optik Sensör bir nesneyi kaybettiğinde çağrılacak bir fonksiyonu kaydeder.

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

/* 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 object in Port 1
optical Optical1 = optical(PORT1);

setLight#

Optik sensörün LED ışığını açar veya kapatır. Bu ışık, optik sensörün nesneleri ve renkleri daha net algılamasına yardımcı olur.

Available Functions
void  setLight(ledState state);

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.

Return Values

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

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

setLightPower#

Optik sensörün ışığının parlaklığını ayarlar. Işık, optik sensörün nesneleri ve renkleri daha net algılamasına yardımcı olabilir.

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

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

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

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

Parameters

Parametre

Tip

Tanım

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.
Optical.setLightPower(50, percent);

isNearObject#

Optik sensörün menzil içinde bir nesne algılayıp algılamadığını 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 — Yakında bir nesne tespit edildi.

  • false — Bir nesne algılanmadı.

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

color#

Optik sensör tarafından algılanan renk tonu değerine bağlı olarak, algılanan rengi döndürür.

Available Functions
vex::color  color();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

Optik Sensör tarafından renk sınıfı örneği olarak algılanan renk.

Olası renkler şunlardır:

  • blue – Renk tonu değeri 196° ile 229° arasında

  • blue_green – 140° ile 195° arasında renk tonu değeri

  • blue_violet – 230° ile 239° arasında renk tonu değeri

  • green – Renk tonu değeri 84° ile 139° arasında

  • orange – Renk tonu değeri 21° ile 30° arasında

  • red – Renk tonu değeri 350° ile 14° arasında

  • red_orange – 15° ile 20° arasında renk tonu değeri

  • red_violet – Renk tonu değeri 281° ile 350° arasında

  • violet – Renk tonu değeri 240° ile 280° arasında

  • yellow – Renk tonu değeri 54° ile 74° arasında

  • yellow_green – Renk tonu değeri 75° ile 83° arasında

  • yellow_orange – Renk tonu değeri 31° ile 53° arasında

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#

Optik sensöre geri yansıyan ışık miktarını döndürür.

Yüzde oranının yüksek olması, optik sensöre daha fazla ışığın geri yansıdığı anlamına gelir. Yüzde oranının düşük olması ise daha az ışığın geri yansıdığı 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

Optik 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 Optical Sensor
double brightness = Optical.brightness();

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

hue#

Optik 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

Optik sensör tarafından algılanan renk tonunun 0 ile 359,00 aralığındaki değerini temsil eden bir double sayı.

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

objectDetected#

Bir nesne algılandığında çalışacak bir geri çağırma fonksiyonu kaydeder.

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

Parameters

Parametre

Tip

Tanım

callback

void (*)(void)

Optik Sensör yeni bir nesne algıladığında yürütülen, önceden tanımlanmış bir fonksiyon.

Return Values

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

Examples

Geri çağırma fonksiyonunu tanımlayın ( int main() dışında)

// 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");
}

Geri çağrıyı main() fonksiyonunun içine kaydedin 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#

Bir nesne kaybolduğunda çalışacak bir geri çağırma fonksiyonu kaydeder.

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

Parameters

Parametre

Tip

Tanım

callback

void (*)(void)

Optik Sensör algılanan nesneyi kaybettiğinde yürütülen, önceden tanımlanmış bir fonksiyon.

Return Values

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

Examples

Geri çağırma fonksiyonunu tanımlayın ( int main() dışında)

// 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");
}

Geri çağrıyı main() fonksiyonunun içine kaydedin 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);
}