Περιγραφή
Αυτός ο αισθητήρας αναφέρει την απόσταση μεταξύ αυτού και του πλησιέστερου στερεού αντικειμένου (εύρος 50mm - 1m). Υπολογίζει την απόσταση χρησιμοποιώντας τον χρόνο που χρειάζεται για να ανακλαστούν τα υπερηχητικά κύματα από ένα αντικείμενο και να επιστρέψουν στον αισθητήρα.
Πώς λειτουργεί ο αισθητήρας απόστασης: Ακρόαση της απόστασης
Ο αισθητήρας απόστασης χρησιμοποιεί τις ίδιες αρχές με τις συσκευές σόναρ για τη μέτρηση του ήχου. Στέλνει έναν μικροσκοπικό παλμό υπερήχων με τον πομπό του στη μία πλευρά του αισθητήρα και στη συνέχεια πολλαπλασιάζει τον χρόνο που χρειάζεται για να ακούσει τον ήχο να ανακλάται πίσω στον δέκτη στην άλλη πλευρά του αισθητήρα. Ο αισθητήρας υπολογίζει την απόσταση με βάση το χρόνο που χρειάστηκε ο ηχητικός παλμός για να κάνει το ταξίδι μετ' επιστροφής. Ο αισθητήρας απόστασης κάνει στη συνέχεια έναν υπολογισμό με βάση την ταχύτητα του ήχου για να πει στον εγκέφαλο του ρομπότ πόσο μακριά βρίσκεται το πλησιέστερο αντικείμενο.
Εάν η επιφάνεια δεν είναι επίπεδη όπως ένας καμπύλος τοίχος ή μια μπάλα, το υπερηχητικό κύμα δεν ανακλάται από όλα τα μέρη εξίσου ή ταυτόχρονα. Η πλησιέστερη επιφάνεια που είναι αρκετά μεγάλη ώστε να ανακλά πίσω μια ανιχνεύσιμη ποσότητα του κύματος καθορίζει την ανιχνευόμενη απόσταση του αντικειμένου.
Κοινές χρήσεις του αισθητήρα απόστασης:
Αυτός ο αισθητήρας μπορεί να ανιχνεύσει εάν υπάρχει κάποιο αντικείμενο μπροστά του.
Αυτός ο αισθητήρας μπορεί να μετρήσει την απόσταση μεταξύ αυτού και ενός αντικειμένου.
- Ένα ρομπότ μπορεί να χρησιμοποιήσει αυτόν τον αισθητήρα για να οδηγήσει σε μια ορισμένη απόσταση μακριά από ένα αντικείμενο. Δείτε την παρακάτω κινούμενη εικόνα για να δείτε την αλλαγή της τιμής της απόστασης καθώς το ρομπότ οδηγεί μέχρι η απόσταση να πέσει κάτω από τα 160 mm.
- Ένα ρομπότ μπορεί να χρησιμοποιήσει αυτόν τον αισθητήρα για να πλησιάσει ένα αντικείμενο χωρίς να το αγγίξει. Δείτε αυτήν την κινούμενη εικόνα για να δείτε δύο ρομπότ να χρησιμοποιούν αισθητήρες απόστασης για να συντονίσουν την οδήγησή τους.
- Οι τιμές που παρέχονται από αυτόν τον αισθητήρα μπορούν να χρησιμοποιηθούν για την προσαρμογή της ταχύτητας του ρομπότ ανάλογα με το αν βρίσκεται κοντά ή μακριά από ένα αντικείμενο ή μια επιφάνεια. Δείτε αυτήν την κινούμενη εικόνα για να δείτε ένα ρομπότ να προσαρμόζεται με βάση την απόσταση από έναν τοίχο.
Χρήσεις του αισθητήρα απόστασης σε ένα ρομπότ αγώνων
- Το ρομπότ μπορεί να χρησιμοποιήσει τον αισθητήρα απόστασης για να ξεκινήσει μια ακολουθία συμπεριφορών όταν βρίσκεται στο σωστό σημείο για να το κάνει. Για παράδειγμα, το ρομπότ μπορεί να κινηθεί προς τα εμπρός μέχρι να ανιχνεύσει ότι βρίσκεται 150 χιλιοστά μακριά από έναν τοίχο, στη συνέχεια να στρίψει κατά 90 μοίρες και να απελευθερώσει ένα αντικείμενο σε μια ζώνη βαθμολόγησης.
- Ο αισθητήρας απόστασης μπορεί να χρησιμοποιηθεί για την ενεργοποίηση ενεργειών του ρομπότ, όπως η ανάληψη ενός πιονιού παιχνιδιού, όταν εντοπιστεί ένα αντικείμενο εντός εμβέλειας.
- Το ρομπότ μπορεί να χρησιμοποιήσει τον αισθητήρα απόστασης για να κινηθεί προς ένα αντικείμενο ή μια επιφάνεια μέχρι να βρεθεί σε μια συγκεκριμένη απόσταση, χωρίς να την αγγίξει. Αυτό μπορεί να χρησιμοποιηθεί για να διασφαλιστεί ότι το ρομπότ δεν θα αναποδογυρίσει κομμάτια παιχνιδιού.
- Ένα ρομπότ μπορεί να χρησιμοποιήσει τον αισθητήρα απόστασης για να απομακρυνθεί από ένα αντικείμενο ή μια επιφάνεια μέχρι να φτάσει σε μια συγκεκριμένη απόσταση. Αυτό μπορεί να χρησιμοποιηθεί για την αποφυγή συγκρούσεων με άλλα ρομπότ στο πεδίο.
Χρήση του αισθητήρα απόστασης στο VEXcode IQ
Προσθήκη του αισθητήρα απόστασης ως συσκευής στο VEXcode IQ
Για να κωδικοποιήσετε τον Αισθητήρα Απόστασης στο VEXcode IQ, πρέπει πρώτα να διαμορφώσετε τον Αισθητήρα Απόστασης. Δείτε αυτό το άρθρο για να μάθετε περισσότερα σχετικά με τη διαμόρφωση ενός αισθητήρα στο VEXcode IQ.
Μόλις ρυθμιστεί ο αισθητήρας, θα εμφανιστούν εντολές στην Εργαλειοθήκη που μπορείτε να χρησιμοποιήσετε στο έργο σας.
Κωδικοποίηση του αισθητήρα απόστασης σε μπλοκ
Το μπλοκ <Object found> είναι ένα μπλοκ αναφοράς Boolean που αναφέρει μια συνθήκη ως αληθή ή ψευδή. Τα λογικά μπλοκ, όπως το μπλοκ <Object found> , χωράνε μέσα σε μπλοκ με εξαγωνικές (εξάπλευρες) εισόδους για άλλα μπλοκ.
Το μπλοκ Boolean <Object found> αναφέρει την τιμή «true» εάν ο αισθητήρας ανιχνεύσει ένα αντικείμενο και την τιμή «false» εάν ο αισθητήρας δεν το κάνει. Για να μάθετε περισσότερα σχετικά με τα Boolean μπλοκ, επισκεφθείτε τη Βοήθεια ή το άρθρο Σχήματα και Σημασία Μπλοκ.
Σε αυτό το παράδειγμα, το μπλοκ <Object found> χρησιμοποιείται με ένα μπλοκ [Περιμένετε μέχρι] για να κάνει το ρομπότ να κινηθεί προς τα εμπρός μέχρι ο Αισθητήρας Απόστασης να ανιχνεύσει ένα αντικείμενο. Όταν ο αισθητήρας ανιχνεύσει ένα αντικείμενο, το ρομπότ θα σταματήσει να οδηγεί, όπως φαίνεται στην παραπάνω εικόνα.
Το μπλοκ (Απόσταση από) αναφέρει την απόσταση του πλησιέστερου αντικειμένου από τον αισθητήρα απόστασης. Αναφέρει ένα εύρος από 24mm έως 1000mm ή από 1 ίντσα έως 40 ίντσες. Το μπλοκ (Απόσταση από) είναι ένα μπλοκ αναφοράς που χρησιμοποιείται μέσα σε μπλοκ με κυκλικά διαστήματα.
Σε αυτό το παράδειγμα, το μπλοκ (Απόσταση από) χρησιμοποιείται με ένα μπλοκ [Εκτύπωση] για να εμφανιστεί στην οθόνη Brain η απόσταση μεταξύ του Αισθητήρα Απόστασης και ενός αντικειμένου. Το μπλοκ (Απόσταση από) εμφανίζεται επίσης μέσα σε ένα μπλοκ <Less than> , το οποίο βρίσκεται μέσα σε ένα μπλοκ {Περιμένετε μέχρι}. Αυτό θα κάνει το ρομπότ να κινείται μέχρι ο αισθητήρας απόστασης να ανιχνεύσει ένα αντικείμενο σε απόσταση μικρότερη από 50 χιλιοστά και στη συνέχεια να σταματήσει να κινείται. Αυτό φαίνεται στο πρώτο βίντεο παραπάνω.
Κωδικοποίηση του αισθητήρα απόστασης σε Python
Σημείωση:Για να κωδικοποιήσετε έναν αισθητήρα απόστασης VEX IQ (1ης γενιάς) σε Python, πρέπει να είναι συνδεδεμένος σε έναν εγκέφαλο VEX IQ (2ης γενιάς). Το VEX IQ (1ης γενιάς) Brain δεν υποστηρίζει Python.
απόσταση_7.είναι_αντικείμενο_ανιχνευμένο()Η εντολή distance.is_object_detected αναφέρει την τιμή 'true' εάν ανιχνευθεί ένα αντικείμενο και την τιμή 'false' εάν δεν ανιχνευθεί ένα αντικείμενο.
Σημείωση:Το όνομα του αισθητήρα απόστασης που εμφανίζεται στην εντολή αντιστοιχεί στο όνομα που του δίνεται στη διαμόρφωση.
|
| Σε αυτό το παράδειγμα, ένας βρόχοςWhile με συνθήκη not χρησιμοποιείται με την εντολή distance.is_object_detected για να κάνει το ρομπότ να κινηθεί προς τα εμπρός μέχρι ο αισθητήρας απόστασης να ανιχνεύσει ένα αντικείμενο. Όταν ο αισθητήρας ανιχνεύσει ένα αντικείμενο, το ρομπότ θα σταματήσει να οδηγεί, όπως φαίνεται στον κώδικα Python παραπάνω. |
απόσταση_7.απόσταση(MM)Η εντολή distance.distance αναφέρει την απόσταση του πλησιέστερου αντικειμένου από τον αισθητήρα απόστασης. Αναφέρει ένα εύρος από 24mm έως 1000mm ή από 1 ίντσα έως 40 ίντσες.
|
|
Σε αυτό το παράδειγμα, ένας βρόχος While με συνθήκη not χρησιμοποιείται με την εντολή distance.is_object_detected για να κάνει το ρομπότ να κινηθεί προς τα εμπρός μέχρι ο Αισθητήρας Απόστασης να ανιχνεύσει ένα αντικείμενο. Όταν ο αισθητήρας ανιχνεύσει ένα αντικείμενο, το ρομπότ θα σταματήσει να κινείται. Σε αυτό το παράδειγμα, η εντολή distance.distance χρησιμοποιείται μαζί με την εντολή brain.screen.print για να εμφανιστεί στην οθόνη Brain η απόσταση μεταξύ του Αισθητήρα Απόστασης και ενός αντικειμένου. Η εντολή distance.distance εμφανίζεται επίσης μέσα σε έναν βρόχο While με συνθήκη όχι . Αυτό θα κάνει το ρομπότ να κινείται μέχρι ο αισθητήρας απόστασης να ανιχνεύσει ένα αντικείμενο σε απόσταση μικρότερη από 50 χιλιοστά και στη συνέχεια να σταματήσει να κινείται. Αυτό φαίνεται στο πρώτο βίντεο παραπάνω. |