Αισθητήρας χρώματος#

Εισαγωγή#

The colorsensor class is used to access data from the Color Sensor. It uses reflected light to detect objects, identify colors, and measure brightness and hue.

Κατασκευαστής κλάσης#

colorsensor Color1 = colorsensor(index);

Καταστροφέας κλάσης#

Destroys the colorsensor object and releases associated resources.

virtual ~colorsensor();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

The Smart Port that the Color Sensor is connected to, written as PORTx, where x is the port number (for example, PORT1).

Παραδείγματα#

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

Συναρτήσεις Μελών#

The colorsensor class includes the following member functions:

  • setLight – Turns the Color Sensor’s LED on, off, or to a set brightness level.

  • isNearObject – Returns whether or not an object is close to the Color Sensor.

  • detects – Returns whether or not a specified color is detected by the Color Sensor.

  • colorname – Returns the name of the color detected by the Color Sensor.

  • brightness – Returns the detected brightness of an object.

  • hue – Returns the detected hue value.

Before calling any colorsensor member functions, an colorsensor instance must be created, as shown below:

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

Ρυθμίζει την ισχύ φωτός της λυχνίας LED του αισθητήρα χρώματος. Το φως μπορεί να βοηθήσει τον αισθητήρα χρώματος να ανιχνεύει αντικείμενα και χρώματα με μεγαλύτερη σαφήνεια.

Εάν το φως του αισθητήρα χρώματος είναι σβηστό, η ρύθμιση της ισχύος φωτός πάνω από 0% θα ανάψει το φως.

Εάν το φως του αισθητήρα χρώματος είναι αναμμένο, η ρύθμιση της ισχύος φωτός στο 0% θα το σβήσει.

Ένα υψηλότερο ποσοστό κάνει το φως πιο φωτεινό. Ένα χαμηλότερο ποσοστό κάνει το φως πιο αμυδρό.

Available Functions

1 Turns the led on or off using ledState.

void setLight( 
  ledState  state );

2 Ανάβει το led σε μια συγκεκριμένη ένταση.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

state

ledState

Sets the LED on or off. ledState::on turns the LED on at 100% brightness. ledState::off turns it off.

intensity

int32_t

Το επίπεδο ισχύος για να ρυθμίσετε το φως από 0 έως 100.

units

percentUnits

The unit that represents the light intensity: percent / pct — percent

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

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

isNearObject#

Επιστρέφει εάν ο αισθητήρας χρώματος ανιχνεύσει ένα κοντινό αντικείμενο.

Available Functions
bool  isNearObject();

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Αυτή η συνάρτηση επιστρέφει μια λογική τιμή που υποδεικνύει εάν ανιχνεύεται ένα κοντινό αντικείμενο:

  • true – The Color Sensor detects an object.

  • false – The Color Sensor does not detect an object.

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

detects#

Επιστρέφει εάν ο αισθητήρας χρώματος ανιχνεύει ένα συγκεκριμένο χρώμα.

Available Functions

1 Detects a colorType.

bool detects( 
  colorType  color );

2 Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Παράμετροι

Τύπος

Περιγραφή

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

Ένα έγκυρο προσαρμοσμένο χρώμα ή ένα από τα προκαθορισμένα χρώματα που αναφέρονται παραπάνω.

Return Values
  • true – The Color Sensor detects the color.

  • false – The Color Sensor does not detect the color.

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#

Επιστρέφει το πλησιέστερο αντίστοιχο χρώμα που εντοπίστηκε.

Available Functions
colorType colorname();

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Όταν εκτυπώνεται απευθείας, εμφανίζει την αριθμητική τιμή που σχετίζεται με αυτό το χρώμα:

Χρώμα

Αριθμητική τιμή

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
  • The function convertColorToString is automatically created by VEXcode when a Color Sensor is configured in the Devices window. It is only available inside VEXcode IQ projects and will not work in other environments.

  • When using colorname outside of VEXcode, comparisons should be made directly with a colorType value — any color that begins with colorType:: (for example, colorType::green or 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#

Επιστρέφει την ποσότητα φωτός που ανακλάται από το αντικείμενο.

Ένα υψηλότερο ποσοστό σημαίνει ότι περισσότερο φως ανακλάται πίσω στον Αισθητήρα Χρώματος. Ένα χαμηλότερο ποσοστό σημαίνει ότι λιγότερο φως ανακλάται πίσω.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Παράμετρος

Τύπος

Περιγραφή

bRaw

bool

A Boolean value to read raw brightness data instead of percentage. The default is false.

Return Values

Ένα διπλό που αντιπροσωπεύει τη φωτεινότητα που ανιχνεύεται από τον αισθητήρα χρώματος στο εύρος 0 - 100% ή ένα διπλό που αντιπροσωπεύει τα ακατέργαστα δεδομένα που ανιχνεύονται από τον αισθητήρα.

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#

Επιστρέφει την απόχρωση που ανιχνεύεται από τον αισθητήρα χρώματος.

Η απόχρωση είναι ένας τρόπος περιγραφής χρώματος χρησιμοποιώντας αριθμούς γύρω από έναν χρωματικό κύκλο.

Ο Χρωματικός Τροχός VEX που δείχνει τους βαθμούς των χρωμάτων γύρω από έναν κύκλο, με το κόκκινο στις 0 μοίρες και μεταβαίνοντας μέσα στο ουράνιο τόξο καθώς η τιμή αυξάνεται.

Available Functions
double hue();

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Ένα διπλό που αντιπροσωπεύει την τιμή της απόχρωσης που ανιχνεύεται από τον Αισθητήρα Χρώματος στην περιοχή 0 — 359,00.

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