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

Εισαγωγή#

Η κλάση colorsensor χρησιμοποιείται για την πρόσβαση σε δεδομένα από τον Color Sensor. Χρησιμοποιεί ανακλώμενο φως για την ανίχνευση αντικειμένων, την αναγνώριση χρωμάτων και τη μέτρηση της φωτεινότητας και της απόχρωσης.

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

colorsensor Color1 = colorsensor(index);

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

Καταστρέφει το αντικείμενο colorsensor και απελευθερώνει τους σχετικούς πόρους.

virtual ~colorsensor();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

Η Έξυπνη Θύρα στην οποία είναι συνδεδεμένος ο Αισθητήρας Χρώματος, γράφεται ως PORTx, όπου x είναι ο αριθμός θύρας (για παράδειγμα, PORT1).

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

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

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

Η κλάση colorsensor περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:

  • setLight – Ενεργοποιεί, απενεργοποιεί ή ρυθμίζει τη λυχνία LED του αισθητήρα χρώματος σε ένα καθορισμένο επίπεδο φωτεινότητας.

  • isNearObject – Επιστρέφει εάν ένα αντικείμενο βρίσκεται κοντά στον Αισθητήρα Χρώματος.

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

  • colorname – Επιστρέφει το όνομα του χρώματος που ανιχνεύεται από τον Αισθητήρα Χρώματος.

  • brightness – Επιστρέφει την ανιχνευμένη φωτεινότητα ενός αντικειμένου.

  • hue – Επιστρέφει την ανιχνευμένη τιμή απόχρωσης.

Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους colorsensor , πρέπει να δημιουργηθεί μια παρουσία colorsensor , όπως φαίνεται παρακάτω:

/* 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 — Ενεργοποιεί ή απενεργοποιεί τη λυχνία LED χρησιμοποιώντας την εντολή ledState.

void setLight( 
  ledState  state );

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

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

state

ledState

Ενεργοποιεί ή απενεργοποιεί τη λυχνία LED. ledState::on ενεργοποιεί τη λυχνία LED στο 100% της φωτεινότητας. ledState::off την απενεργοποιεί.

intensity

int32_t

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

units

percentUnits

Η μονάδα που αντιπροσωπεύει την ένταση του φωτός: percent % pct τοις εκατό

Return Values

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

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

isNearObject#

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

Available Functions
bool  isNearObject();

Parameters

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

Return Values

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

  • true – Ο αισθητήρας χρώματος ανιχνεύει ένα αντικείμενο.

  • false – Ο αισθητήρας χρώματος δεν ανιχνεύει κάποιο αντικείμενο.

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

Ένα έγκυρο χρώμα:

  • blue – Τιμή απόχρωσης μεταξύ 196° και 229°
  • blue_green – Τιμή απόχρωσης μεταξύ 140° και 195°
  • blue_violet – Τιμή απόχρωσης μεταξύ 230° και 239°
  • green – Τιμή απόχρωσης μεταξύ 84° και 139°
  • orange – Τιμή απόχρωσης μεταξύ 21° και 30°
  • purple
  • red – Τιμή απόχρωσης μεταξύ 350° και 14°
  • red_orange – Τιμή απόχρωσης μεταξύ 15° και 20°
  • red_violet – Τιμή απόχρωσης μεταξύ 281° και 350°
  • violet – Απόχρωση μεταξύ 240° και 280°
  • white
  • yellow – Απόχρωση μεταξύ 54° και 74°
  • yellow_green – Απόχρωση μεταξύ 75° και 83°
  • yellow_orange – Απόχρωση μεταξύ 31° και 53°

color

vex::color

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

Return Values
  • true – Ο αισθητήρας χρώματος ανιχνεύει το χρώμα.

  • false – Ο αισθητήρας χρώματος δεν ανιχνεύει το χρώμα.

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
  • Η συνάρτηση convertColorToString δημιουργείται αυτόματα από το VEXcode όταν διαμορφώνεται ένας Αισθητήρας Χρώματος στο παράθυρο Συσκευές. Είναι διαθέσιμη μόνο μέσα σε έργα VEXcode IQ και δεν θα λειτουργήσει σε άλλα περιβάλλοντα.

  • Όταν χρησιμοποιείται colorname εκτός του VEXcode, οι συγκρίσεις θα πρέπει να γίνονται απευθείας με μια τιμή colorType — οποιοδήποτε χρώμα που ξεκινά με colorType:: (για παράδειγμα, colorType::green ή 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

Μια λογική τιμή για την ανάγνωση ακατέργαστων δεδομένων φωτεινότητας αντί για ποσοστό. Η προεπιλογή είναι 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();