Barevný senzor#
Zavedení#
Třída colorsensor se používá pro přístup k datům z Senzoru barev. Využívá odražené světlo k detekci objektů, identifikaci barev a měření jasu a odstínu.
Konstruktor třídy#
colorsensor Color1 = colorsensor(index);
Destruktor tříd#
Zničí objekt colorsensor a uvolní přidružené prostředky.
virtual ~colorsensor();
Parametry#
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Inteligentní port, ke kterému je připojen barevný senzor, zapsaný jako |
Příklady#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Členské funkce#
Třída colorsensor obsahuje následující členské funkce:
setLight– Zapíná, vypíná nebo nastavuje jas LED diody barevného senzoru.isNearObject– Vrací, zda se objekt nachází blízko senzoru barev.detects– Vrací, zda senzor barev detekoval zadanou barvu.colorname– Vrátí název barvy detekované senzorem barev.brightness– Vrátí detekovaný jas objektu.hue– Vrátí detekovanou hodnotu odstínu.
Před voláním jakékoli členské funkce colorsensor je nutné vytvořit instanci colorsensor , jak je znázorněno níže:
/* 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#
Nastavuje světelný výkon LED diody barevného senzoru. Světlo může pomoci barevnému senzoru jasněji detekovat objekty a barvy.
Pokud je světlo barevného senzoru vypnuté, nastavení výkonu světla nad 0 % světlo zapne.
Pokud svítí světlo barevného senzoru, nastavení výkonu světla na 0 % světlo vypne.
Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.
Available Functions1 — Zapíná nebo vypíná LED diodu pomocí
ledState.void setLight( ledState state );
Parameters2 — Rozsvítí LED diodu na určitou intenzitu.
void setLight( int32_t intensity, percentUnits units = percent );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Zapne nebo vypne LED. |
|
|
Úroveň výkonu pro nastavení světla od 0 do 100. |
|
|
Jednotka, která vyjadřuje intenzitu světla: |
Tato funkce nevrací hodnotu.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Vrátí hodnotu, pokud senzor barev detekuje blízký objekt.
Available Functionsbool isNearObject();
Tato funkce nepřijímá žádné parametry.
Return ValuesTato funkce vrací booleovskou hodnotu, která indikuje, zda byl detekován blízký objekt:
true– Senzor barev detekuje objekt.false– Senzor barev nedetekuje objekt.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Vrátí, pokud senzor barev detekuje zadanou barvu.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parametry |
Typ |
Popis |
|---|---|---|
|
|
A valid color:
|
|
|
Platná vlastní barva nebo jedna z výše uvedených předdefinovaných barev. |
true– Senzor barev detekuje barvu.false– Senzor barev barvu nedetekuje.
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#
Vrátí nejbližší nalezenou odpovídající barvu.
Available FunctionscolorType colorname();
Tato funkce nepřijímá žádné parametry.
Return ValuesPři přímém tisku se zobrazí číselná hodnota spojená s danou barvou:
Barva |
Číselná hodnota |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 let |
Funkce
convertColorToStringje automaticky vytvořena programem VEXcode, když je v okně Zařízení nakonfigurován senzor barev. Je k dispozici pouze v rámci projektů VEXcode IQ a v jiných prostředích nebude fungovat.Při použití hodnoty
colornamemimo VEXcode by se porovnání měla provádět přímo s hodnotoucolorType– s jakoukoli barvou, která začíná nacolorType::(napříkladcolorType::greennebocolorType::red).
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#
Vrátí množství světla odraženého od objektu.
Vyšší procento znamená, že se zpět k barevnému senzoru odráží více světla. Nižší procento znamená, že se zpět odráží méně světla.
Available Functionsdouble brightness(bool bRaw = false);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Logická hodnota pro čtení nezpracovaných dat jasu namísto procent. Výchozí hodnota je |
Dvojitá hodnota představující jas detekovaný barevným senzorem v rozsahu 0–100 % nebo dvojitá hodnota představující nezpracovaná data detekovaná senzorem.
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#
Vrátí odstín detekovaný barevným senzorem.
Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

double hue();
Tato funkce nepřijímá žádné parametry.
Return ValuesDvojitá hodnota představující hodnotu odstínu detekovaného senzorem barev v rozsahu 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();