Krāsu sensors#
Ievads#
colorsensor klase tiek izmantota, lai piekļūtu datiem no Krāsu sensora. Tā izmanto atstaroto gaismu, lai noteiktu objektus, identificētu krāsas un mērītu spilgtumu un nokrāsu.
Klases konstruktors#
colorsensor Color1 = colorsensor(index);
Klases iznīcinātājs#
Iznīcina colorsensor objektu un atbrīvo saistītos resursus.
virtual ~colorsensor();
Parametri#
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Viedports, kuram ir pievienots krāsu sensors, kas pierakstīts kā |
Piemēri#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Dalībnieku funkcijas#
colorsensor klasē ietilpst šādas dalībfunkcijas:
setLight– Ieslēdz, izslēdz krāsu sensora gaismas diodi vai iestata spilgtuma līmeni.isNearObject– Atgriež, vai objekts atrodas tuvu krāsu sensoram.detects– Atgriež, vai krāsu sensors ir noteicis norādīto krāsu.colorname– Atgriež krāsu sensora noteiktās krāsas nosaukumu.brightness– Atgriež objekta noteikto spilgtumu.hue– Atgriež noteikto nokrāsas vērtību.
Pirms jebkuru colorsensor dalībfunkciju izsaukšanas ir jāizveido colorsensor instance, kā parādīts zemāk:
/* 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#
Iestata krāsu sensora LED gaismas jaudu. Gaisma var palīdzēt krāsu sensoram skaidrāk noteikt objektus un krāsas.
Ja krāsu sensora gaisma ir izslēgta, gaismas jaudas iestatīšana virs 0% ieslēgs gaismu.
Ja krāsu sensora gaisma ir ieslēgta, gaismas jaudas iestatīšana uz 0% izslēgs gaismu.
Augstāks procentuālais daudzums padara gaismu spilgtāku. Zemāks procentuālais daudzums padara gaismu blāvāku.
Available Functions1 — Ieslēdz vai izslēdz gaismas diodi, izmantojot
ledState.void setLight( ledState state );
Parameters2 — Ieslēdz gaismas diodi noteiktā intensitātē.
void setLight( int32_t intensity, percentUnits units = percent );
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Ieslēdz vai izslēdz LED gaismu. |
|
|
Gaismas jaudas līmenis ir no 0 līdz 100. |
|
|
The unit that represents the light intensity: |
Šī funkcija neatgriež vērtību.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Atgriež, ja krāsu sensors nosaka tuvumā esošu objektu.
Available Functionsbool isNearObject();
Šī funkcija nepieņem nekādus parametrus.
Return ValuesŠī funkcija atgriež Būla vērtību, kas norāda, vai ir atklāts tuvumā esošs objekts:
true— Krāsu sensors nosaka objektu.false– Krāsu sensors neuztver objektu.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Atgriež, ja krāsu sensors nosaka noteiktu krāsu.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parametri |
Tips |
Apraksts |
|---|---|---|
|
|
Derīga krāsa:
|
|
|
Derīga pielāgota krāsa vai viena no iepriekš definētajām krāsām, kas uzskaitītas iepriekš. |
true— Krāsu sensors nosaka krāsu.false– Krāsu sensors nenosaka krāsu.
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#
Atgriež tuvāko noteikto atbilstošo krāsu.
Available FunctionscolorType colorname();
Šī funkcija nepieņem nekādus parametrus.
Return ValuesTieši izdrukājot, tiek parādīta ar šo krāsu saistītā skaitliskā vērtība:
Krāsa |
Skaitliskā vērtība |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Funkcija
convertColorToStringtiek automātiski izveidota ar VEXcode, kad ierīču logā tiek konfigurēts krāsu sensors. Tā ir pieejama tikai VEXcode IQ projektos un nedarbosies citās vidēs.Ja ārpus VEXkoda tiek izmantota
colornamevērtība, salīdzinājumi jāveic tieši arcolorTypevērtību — jebkuru krāsu, kas sākas arcolorType::(piemēram,colorType::greenvaicolorType::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#
Atgriež no objekta atstarotās gaismas daudzumu.
Augstāks procentuālais daudzums nozīmē, ka uz krāsu sensoru tiek atstarots vairāk gaismas. Zemāks procentuālais daudzums nozīmē, ka atpakaļ tiek atstarots mazāk gaismas.
Available Functionsdouble brightness(bool bRaw = false);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Būla vērtība neapstrādātu spilgtuma datu, nevis procentuālās vērtības nolasīšanai. Noklusējuma vērtība ir |
Dubultskaitlis, kas apzīmē krāsu sensora noteikto spilgtumu diapazonā no 0 līdz 100 %, vai dubultskaitlis, kas apzīmē sensora noteiktos neapstrādātos datus.
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#
Atgriež krāsu sensora noteikto nokrāsu.
Nokrāsa ir veids, kā aprakstīt krāsu, izmantojot skaitļus ap krāsu apli.

double hue();
Šī funkcija nepieņem nekādus parametrus.
Return ValuesDubultskaitlis, kas attēlo krāsu sensora noteikto nokrāsas vērtību diapazonā no 0 līdz 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();