Värianturi#
Johdanto#
colorsensor -luokkaa käytetään Värianturin datan käyttämiseen. Se käyttää heijastunutta valoa esineiden havaitsemiseen, värien tunnistamiseen sekä kirkkauden ja sävyn mittaamiseen.
Luokan rakentaja#
colorsensor Color1 = colorsensor(index);
Luokan tuhoaja#
Tuhoaa colorsensor -objektin ja vapauttaa siihen liittyvät resurssit.
virtual ~colorsensor();
Parametrit#
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Värianturin kytkennän sisältävä älyportti, joka kirjoitetaan muodossa |
Esimerkkejä#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Jäsenten toiminnot#
colorsensor -luokka sisältää seuraavat jäsenfunktiot:
setLight– Sytyttää, sammuttaa värianturin LED-valon tai asettaa kirkkausasteen.isNearObject– Palauttaa, onko kohde lähellä värianturia.detects– Palauttaa, havaitseeko värianturi määritetyn värin.colorname– Palauttaa värianturin havaitseman värin nimen.brightness– Palauttaa objektin havaitun kirkkauden.hue– Palauttaa havaitun sävyn arvon.
Ennen minkään colorsensor -jäsenfunktion kutsumista on luotava colorsensor -instanssi alla olevan mukaisesti:
/* 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#
Asettaa värianturin LED-valon valotehon. Valo voi auttaa värianturia havaitsemaan esineitä ja värejä selkeämmin.
Jos värianturin valo on sammunut, valotehon asettaminen yli 0 %:n arvoon sytyttää valon.
Jos värianturin valo palaa, valotehon asettaminen arvoon 0 % sammuttaa valon.
Suurempi prosenttiosuus tekee valosta kirkkaampaa. Pienempi prosenttiosuus tekee valosta himmeämpää.
Available Functions1 — Sytyttää tai sammuttaa ledin käyttämällä arvoa
ledState.void setLight( ledState state );
Parameters2 — Sytyttää ledin tietylle kirkkaudelle.
void setLight( int32_t intensity, percentUnits units = percent );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Asettaa LEDin päälle tai pois päältä. |
|
|
Valon tehotaso asetetaan välille 0–100. |
|
|
Valon voimakkuutta kuvaava yksikkö: |
Tämä funktio ei palauta arvoa.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Palauttaa, jos värianturi havaitsee lähellä olevan kohteen.
Available Functionsbool isNearObject();
Tämä funktio ei hyväksy parametreja.
Return ValuesTämä funktio palauttaa totuusarvon, joka ilmaisee, onko lähellä oleva kohde havaittu:
true– Värianturi havaitsee kohteen.false– Värianturi ei havaitse kohdetta.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Palauttaa, jos värianturi havaitsee määritetyn värin.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parametrit |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Kelvollinen väri:
|
|
|
Kelvollinen mukautettu väri tai jokin yllä luetelluista valmiiksi määritetyistä väreistä. |
true– Värianturi tunnistaa värin.false– Värianturi ei tunnista väriä.
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#
Palauttaa lähimpänä havaitun vastaavan värin.
Available FunctionscolorType colorname();
Tämä funktio ei hyväksy parametreja.
Return ValuesSuoraan tulostettuna se näyttää kyseiseen väriin liittyvän numeerisen arvon:
Väri |
Numeerinen arvo |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
VEXcode luo automaattisesti funktion
convertColorToString, kun värianturi konfiguroidaan Laitteet-ikkunassa. Se on käytettävissä vain VEXcode IQ -projektien sisällä eikä toimi muissa ympäristöissä.Kun VEX-koodin ulkopuolella käytetään arvoa
colorname, vertailut tulisi tehdä suoraan käyttämällä arvoacolorType— mikä tahansa väri, joka alkaa arvollacolorType::(esimerkiksicolorType::greentaicolorType::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#
Palauttaa objektista heijastuneen valon määrän.
Korkeampi prosenttiosuus tarkoittaa, että enemmän valoa heijastuu takaisin värisensoriin. Matalampi prosenttiosuus tarkoittaa, että vähemmän valoa heijastuu takaisin.
Available Functionsdouble brightness(bool bRaw = false);
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Totuusarvo, jolla luetaan raaka kirkkausdata prosenttiarvon sijaan. Oletusarvo on |
Kaksinkertainen arvo, joka edustaa värianturin havaitsemaa kirkkautta välillä 0–100 %, tai kaksoisarvo, joka edustaa anturin havaitsemaa raakadataa.
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#
Palauttaa värisensorin havaitseman sävyn.
Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

double hue();
Tämä funktio ei hyväksy parametreja.
Return ValuesKaksinkertainen arvo, joka edustaa värianturin havaitsemaa sävyn arvoa välillä 0–359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();