Εγκέφαλος#

Εισαγωγή#

Στο VEX EXP C++, το αντικείμενο Brain αναπαρίσταται από την κλάση brain Δημιουργείτε (ή χρησιμοποιείτε το προεπιλεγμένο αντικείμενο Brain που παρέχεται από το έργο) και στη συνέχεια αποκτάτε πρόσβαση στις λειτουργίες του Brain μέσω των αντικειμένων-μελών του.

Παράγωγες Κλάσεις#

Η κλάση brain χρησιμεύει ως βασική κλάση για τις ακόλουθες παράγωγες κλάσεις:

  • Screen - Αυτή η κλάση παρέχει πρόσβαση στην ενσωματωμένη έγχρωμη οθόνη αφής του εγκεφάλου, επιτρέποντας στα προγράμματα να εμφανίζουν κείμενο, γραφικά και να λαμβάνουν δεδομένα αφής.

  • Timer - Αυτή η κλάση παρέχει βοηθητικά προγράμματα χρονισμού υψηλής ανάλυσης για τη μέτρηση του χρόνου που έχει παρέλθει και τον έλεγχο της συμπεριφοράς που βασίζεται στον χρόνο σε προγράμματα.

  • Battery - Αυτή η κλάση επιτρέπει στα προγράμματα να παρακολουθούν την κατάσταση της μπαταρίας του εγκεφάλου, συμπεριλαμβανομένης της τάσης, του ρεύματος, της χωρητικότητας και της θερμοκρασίας.

  • Button - Αυτή η κλάση επιτρέπει στα προγράμματα να αλληλεπιδρούν με τα κουμπιά του εγκεφάλου.

  • ThreeWirePort (triport / 3-Wire) - Αυτή η κλάση παρέχει πρόσβαση στις θύρες 3-Wire του Brain για τη σύνδεση και τον έλεγχο παλαιών αισθητήρων και συσκευών, όπως διακόπτες ορίου, ποτενσιόμετρα και LED.

  • SDcard - Αυτή η κλάση επιτρέπει την ανάγνωση και την εγγραφή στην κάρτα SD του εγκεφάλου για αποθήκευση αρχείων, καταγραφή δεδομένων και φόρτωση εξωτερικών πόρων.

Κατασκευαστές κλάσεων#

brain();

Παράμετροι#

Ο κατασκευαστής brain δεν χρησιμοποιεί παραμέτρους.

Σημειώσεις#

  • Μόνο ένα αντικείμενο brain θα πρέπει να δημιουργηθεί σε ένα έργο.

Παράδειγμα#

// Create the EXP Brain
brain Brain = brain();

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

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

  • playSound - Αναπαράγει ένα από τα ενσωματωμένα ηχητικά εφέ του εγκεφάλου.

  • playNote - Αναπαράγει μια μουσική νότα για μια συγκεκριμένη διάρκεια.

  • programStop - Διακόπτει το τρέχον έργο που εκτελείται στον εγκέφαλο EXP.

  • timer - Επιστρέφει την τρέχουσα τιμή του εσωτερικού χρονοδιακόπτη του εγκεφάλου στις καθορισμένες μονάδες.

  • resetTimer - Επαναφέρει τον εσωτερικό χρονοδιακόπτη του εγκεφάλου στο μηδέν και επανεκκινεί τη χρονομέτρηση.

  • setTimer - Ορίζει τον εσωτερικό χρονοδιακόπτη του εγκεφάλου σε μια καθορισμένη τιμή και μονάδα χρόνου.

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

// Create the EXP Brain
brain Brain = brain();

αναπαραγωγήΉχου#

Αναπαράγει έναν από τους ενσωματωμένους ήχους του εγκεφάλου.

Available Functions
void playSound(
    soundtype sound,
    uint32_t volume = 50 );

Parameters

Παράμετροι

Τύπος

Περιγραφή

sound

soundtype

Ο καθορισμένος ήχος που θα αναπαραχθεί από τον Εγκέφαλο.

volume

uint32_t

Προαιρετικό. Η ένταση ήχου στην οποία θα αναπαράγεται ο ήχος είναι ακέραια από 0% έως 100%. Η προεπιλογή είναι 50%.

Όνομα ήχου

Αναπαραγωγή ήχου

alarm

alarm2

doorClose

fillup

headlightsOff

headlightsOn

powerDown

ratchet

ratchet2

siren

siren2

tada

tollBooth

wrench

wrongWay

wrongWaySlow

Return Values

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

playNote#

Παίζει μια μουσική νότα από τον Εγκέφαλο.

Available Functions

1 - Παίξε μια μουσική νότα.

void playNote(
    int32_t octave,
    int32_t note );

2 - Αναπαράγει μια νότα για καθορισμένη διάρκεια και ένταση.

void playNote(
    int32_t octave,
    int32_t note,
    int32_t duration,
    int32_t volume = 50 );

Parameters

Παράμετροι

Τύπος

Περιγραφή

octave

int32_t

Ο ακέραιος αριθμός που αντιπροσωπεύει την οκτάβα στην οποία παίζεται η νότα:

  • 1 έως 3 - χαμηλή οκτάβα
  • 4 έως 7 - υψηλή οκτάβα

note

int32_t

Η νότα που πρέπει να παίξετε:

  • 0 - Ντο
  • 1 - Ρε
  • 2 - Μι
  • 3 - Φα
  • 4 - Σολ
  • 5 - Λα
  • 6 - Σι

duration

int32_t

Προαιρετικό. Η διάρκεια σε χιλιοστά του δευτερολέπτου για την αναπαραγωγή της νότας, έως και 500 χιλιοστά του δευτερολέπτου. Εάν δεν παρέχεται διάρκεια, η προεπιλεγμένη διάρκεια είναι 500 χιλιοστά του δευτερολέπτου.

volume

int32_t

Προαιρετικό. Η ένταση ήχου στην οποία θα αναπαράγεται ο ήχος είναι ακέραια από 0% έως 100%. Η προεπιλογή είναι 50%.

Return Values

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

πρόγραμμαΔιακοπή#

Σταματά το έργο που εκτελείται αυτήν τη στιγμή στο EXP Brain.

Available Functions
void programStop();

Parameters

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

Return Values

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

Examples
// Stop the project when the Brain screen is pressed
while (true) {
  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
  wait(20, msec);
}

μετρών την ώραν#

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

Available Functions
double timer(
  timeUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

timeUnits

Η μονάδα χρόνου επιστροφής:

  • seconds / sec - δευτερόλεπτα
  • msec - χιλιοστά του δευτερολέπτου

Return Values

Επιστρέφει ένα double που αντιπροσωπεύει τον χρόνο που έχει παρέλθει από την έναρξη του προγράμματος, στις καθορισμένες μονάδες.

Examples
  • Ο χρονοδιακόπτης ξεκινά αυτόματα όταν ξεκινά το έργο.

  • Ο χρονοδιακόπτης μπορεί να μηδενιστεί με τη χρήση του resetTimer.

Examples
// Stop the project after 3 seconds
while (Brain.timer(seconds) < 3) {
  wait(20, msec);
}

Brain.programStop();

Επαναφορά Χρονοδιακόπτη#

Μηδενίζει τον εσωτερικό χρονοδιακόπτη του εγκεφάλου. Στη συνέχεια, ο χρονοδιακόπτης αρχίζει αμέσως να μετράει ξανά από το μηδέν.

Available Functions
void resetTimer();

Parameters

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

Return Values

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

Notes
  • Ο χρονοδιακόπτης αρχίζει να μετράει ξανά αμέσως μετά την επαναφορά του.

  • Η κλήση του resetTimer επηρεάζει την τιμή που επιστρέφεται από τις επόμενες κλήσεις στο timer.

Examples
// Reset the timer and measure elapsed time
Brain.resetTimer();

while (Brain.timer(sec) < 5) {
  wait(20, msec);
}

// 5 seconds have elapsed since reset
Brain.Screen.print("5 seconds passed");

ορισμός χρονοδιακόπτη#

Ρυθμίζει τον εσωτερικό χρονοδιακόπτη του εγκεφάλου σε μια συγκεκριμένη τιμή και μονάδα χρόνου.

Available Functions
void setTimer(
  double value,
  timeUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

value

double

Ο χρόνος στον οποίο θα ρυθμιστεί ο χρονοδιακόπτης, με βάση τις timeUnits που παρέχονται στην παράμετρο units.

units

timeUnits

Η μονάδα που χρησιμοποιείται για την ερμηνεία της παραμέτρου value :

  • seconds / sec - δευτερόλεπτα
  • msec - χιλιοστά του δευτερολέπτου

Return Values

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

Notes
  • Ο χρονοδιακόπτης συνεχίζει να μετράει προς τα εμπρός μετά τη ρύθμισή του.

  • Η κλήση της συνάρτησης setTimer αλλάζει αμέσως την τιμή που επιστρέφεται από το timer.

Examples
// Set the timer to start at 10 seconds
Brain.setTimer(10, sec);

// Wait until the timer is at 3 seconds
while (Brain.timer(sec) < 3) {
  wait(20, msec);
}

// 5 seconds have elapsed since setTimer was called
Brain.Screen.print("5 seconds passed");