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

Εισαγωγή#

Η κλάση distance χρησιμοποιείται για τον έλεγχο και την πρόσβαση σε δεδομένα από έναν αισθητήρα απόστασης.

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

Ο αισθητήρας απόστασης λειτουργεί σε εύρος από 20 mm έως 2000 mm.

Κάτω από 200 mm, η ακρίβεια είναι περίπου ±15 mm. Πάνω από 200 mm, η ακρίβεια βελτιώνεται σε περίπου 5%.

Ο αισθητήρας απόστασης χρησιμοποιεί λέιζερ Κλάσης 1. Η ανίχνευση κατευθύνεται κατευθείαν μπροστά και είναι ασφαλής για την τάξη.

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

distance( int32_t  index );

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

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

~distance();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

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

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

// Create a Distance Sensor instance in Port 1
distance Distance1 = distance(PORT1);

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

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

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

  • objectSize — Επιστρέφει το εκτιμώμενο μέγεθος του ανιχνευμένου αντικειμένου.

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

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

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

  • installed — Επιστρέφει εάν ο αισθητήρας απόστασης είναι εγκατεστημένος και συνδεδεμένος.

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

/* This constructor is required when using VS Code.
Distance Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a Distance Sensor instance in Port 1
distance Distance1 = distance(PORT1);

objectDistance#

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

Available Functions
double objectDistance( distanceUnits units );

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

distanceUnits

Η μονάδα απόστασης:

  • mm - χιλιοστά (20 mm έως 2000 mm)
  • cm - εκατοστά (2 cm έως 200 cm)
  • inches - ίντσες (0,78 ίντσες έως 78,74 ίντσες)

Return Values

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

objectSize#

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

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

Available Functions
sizeType objectSize();

Parameters

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

Return Values

Επιστρέφει ένα sizeType που υποδεικνύει το εκτιμώμενο μέγεθος του ανιχνευμένου αντικειμένου:

  • none — No object is detected.
  • small — A small object is detected.
  • medium — A medium object is detected.
  • large — A large object is detected.

objectVelocity#

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

Η ταχύτητα δείχνει πόσο γρήγορα κινείται το αντικείμενο προς ή μακριά από τον αισθητήρα απόστασης. Μια τιμή κοντά στο 0 σημαίνει ότι το αντικείμενο δεν κινείται πολύ σε σχέση με τον αισθητήρα.

Available Functions
double objectVelocity();

Parameters

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

Return Values

Επιστρέφει ένα double που αντιπροσωπεύει τη σχετική ταχύτητα του ανιχνευμένου αντικειμένου σε m/s (μέτρα ανά δευτερόλεπτο).

isObjectDetected#

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

Available Functions
bool isObjectDetected();

Parameters

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

Return Values

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

  • true — The Distance Sensor detects an object.
  • false — The Distance Sensor does not detect an object.

changed#

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

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Ένας δείκτης προς μια συνάρτηση που θα καλείται όταν αλλάξει η τιμή της ανιχνευμένης απόστασης. Η συνάρτηση δεν πρέπει να δέχεται παραμέτρους και να επιστρέφει void.

Return Values

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

installed#

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

Available Functions
bool installed();

Parameters

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

Return Values

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

  • true — The Distance Sensor is installed and connected.
  • false — The Distance Sensor is not installed or not connected.