Οπτικός αισθητήρας#

Εισαγωγή#

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

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

optical Optical = optical(index);

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

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

virtual ~optical();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

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

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

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

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

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

  • setLight — Ενεργοποιεί ή απενεργοποιεί τη λυχνία LED του οπτικού αισθητήρα.

  • setLightPower — Ορίζει το επίπεδο ισχύος φωτός του οπτικού αισθητήρα.

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

  • color — Επιστρέφει το χρώμα που ανιχνεύεται από τον οπτικό αισθητήρα.

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

  • hue — Επιστρέφει την απόχρωση που ανιχνεύεται από τον οπτικό αισθητήρα.

  • objectDetected — Καταγράφει μια συνάρτηση που θα καλείται όταν ο οπτικός αισθητήρας ανιχνεύει ένα αντικείμενο.

  • objectLost — Καταγράφει μια συνάρτηση που θα κληθεί όταν ο οπτικός αισθητήρας χάσει ένα αντικείμενο.

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

// Create an optical object in Port 1
optical Optical1 = optical(PORT1);

setLight#

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

Available Functions
void  setLight(ledState state);

Parameters

Παράμετρος

Τύπος

Περιγραφή

state

ledState

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

Return Values

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

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

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

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

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

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

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Παράμετρος

Τύπος

Περιγραφή

intensity

int32_t

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

units

percentUnits

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

Return Values

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

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

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

Available Functions
bool  isNearObject();

Parameters

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

Return Values

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

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

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

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

color#

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

Available Functions
vex::color  color();

Parameters

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

Return Values

Το χρώμα που ανιχνεύεται από τον οπτικό αισθητήρα ως παράδειγμα της κλάσης χρώματος.

Πιθανά χρώματα είναι:

  • black

  • white

  • red - Τιμή απόχρωσης μεταξύ 340° - 20°

  • green - Τιμή απόχρωσης μεταξύ 80° - 140°

  • blue - Τιμή απόχρωσης μεταξύ 200° - 240°

  • yellow - Τιμή απόχρωσης μεταξύ 40° - 60°

  • orange - Τιμή απόχρωσης μεταξύ 20° - 40°

  • purple - Τιμή απόχρωσης μεταξύ 240° - 280°

  • cyan - Τιμή απόχρωσης μεταξύ 140° - 200°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

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 Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

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

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

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

Available Functions
double hue();

Parameters

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

Return Values

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

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

objectDetected#

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

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια προηγουμένως καθορισμένη συνάρτηση που εκτελείται όταν ο Οπτικός Αισθητήρας ανιχνεύει ένα νέο αντικείμενο.

Return Values

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

Examples

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Display a message when the Optical Sensor detects an object.
void detected() {
  Brain.Screen.print("object detected");
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  // Run detected when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

Καταχωρεί μια συνάρτηση επανάκλησης για την περίπτωση απώλειας ενός αντικειμένου.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια προηγουμένως καθορισμένη συνάρτηση που εκτελείται όταν ο Οπτικός Αισθητήρας χάνει ένα ανιχνευμένο αντικείμενο.

Return Values

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

Examples

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Display a message when the Optical Sensor loses an object.
void lost() {
  Brain.Screen.print("object lost");
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}