Μάθημα 2: Οδηγήστε μέχρι το γράμμα «Α»
Χρήση του αισθητήρα απόστασης για την αποφυγή τοίχων
Τώρα που μάθατε τι είναι οι τελεστές σύγκρισης και πώς μπορούν να χρησιμοποιηθούν σε ένα έργο, θα εφαρμόσετε αυτή τη μάθηση για να οδηγήσετε το ρομπότ εικονικής πραγματικότητας στο γράμμα «A» στην παιδική χαρά του λαβυρίνθου τοίχου. Αυτό το έργο θα χρησιμοποιήσει τον Αισθητήρα Απόστασης για να πλοηγηθείτε μέσα στην Παιδική Χαρά του Λαβύρινθου Τοίχου χωρίς να χτυπήσετε σε τοίχους.
Ονομάστε και αποθηκεύστε το έργο
- Ξεκινήστε ένα νέο έργο κειμένου και επιλέξτε το Wall Maze Playgroundόταν σας ζητηθεί.

- Ονομάστε το έργο Ενότητα 5Μάθημα 2.

-
Σύρετε, πληκτρολογήστε ή αντιγράψτε έναν βρόχοwhileκαι καταργήστε την εντολή Drivetrain που συμπληρώνεται ως μέρος του νέου προτύπου έργου Text, ώστε το έργο σας να μοιάζει με αυτό. Παρατηρήστε ότι η εντολή θα συμπληρώσει έναν βρόχο while με μια εντολή wait μέσα. Μην καταργήσετε την εντολή wait , καθώς θα διασφαλίσει ότι το ρομπότ εικονικής πραγματικότητας (VR) θα εκτελέσει το έργο σωστά.
def main(): ενώ συνθήκη: αναμονή(5, MSEC) -
Σύρετε, πληκτρολογήστε ή αντιγράψτε την εντολή non-waiting drive μέσα στον βρόχο, ώστε το έργο σας να μοιάζει με αυτό.
def main(): ενώ συνθήκη: drivetrain.drive(FORWARD) wait(5, MSEC)- Ελέγξτε ότι η εσοχή είναι σωστή και ότι η εντολή drive είναι ευθυγραμμισμένη με την εντολή wait.
Προσθέστε τη συνάρτησηget_distanceκαι τον τελεστή μεγαλύτερο από
- Σύρετε ή πληκτρολογήστε την εντολή get_distanceστη 'συνθήκη' του βρόχου while, ώστε το έργο σας να μοιάζει με αυτό. Πληκτρολογήστε τον τελεστή "μεγαλύτερο από" και τον δεύτερο τελεστή ως "50".
-
def main(): ενώ front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) -
Προσθέστε μια εντολή stop εκτός του βρόχου while, ώστε το έργο σας να μοιάζει με αυτό. Απαιτείται μια εντολή stop μετά τον βρόχο while επειδή το ρομπότ εικονικής πραγματικότητας θα συνεχίσει να οδηγεί μέχρι να του δοθεί εντολή να σταματήσει.
def main(): ενώ front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - Ανοίξτε το Παράθυρο Παιδικής Χαράς εάν δεν είναι ήδη ανοιχτό, βεβαιωθείτε ότι ανοίγει τοWall Maze Playgroundκαι εκτελέστε το έργο.
- Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας (VR) να κινείται προς τα εμπρός μέχρι ο αισθητήρας απόστασης να αναφέρει ότι η απόσταση μεταξύ του ρομπότ εικονικής πραγματικότητας και του τοίχου είναι και όχι μεγαλύτερη από 50 χιλιοστά (mm).

- Επαναφέρετε την Παιδική Χαρά για να μετακινήσετε το Ρομπότ Εικονικής Πραγματικότητας (VR) πίσω στην αρχική του θέση.
Συνεχίστε το έργο για να οδηγήσετε μέχρι το γράμμα «Α»
Χρησιμοποιώντας τον τελεστή μεγαλύτερο από (>) με την εντολή get_distanceως συνθήκη του βρόχου while , δίνεται εντολή στο ρομπότ VR να κινηθεί προς τα εμπρός εφόσον η απόσταση μεταξύ του ρομπότ VR και του τοίχου είναι μεγαλύτερη από 50 χιλιοστά (mm). Μόλις ο αισθητήρας απόστασης αναφέρει μια απόσταση από το ρομπότ εικονικής πραγματικότητας (VR) μέχρι τον τοίχο που δεν είναι μεγαλύτερη από 50 χιλιοστά, το ρομπότ εικονικής πραγματικότητας θα σταματήσει να κινείται. Για να συνεχίσει στο γράμμα «Α», το ρομπότ εικονικής πραγματικότητας πρέπει να γυρίσει όταν πλησιάζει τον τοίχο.
Για να οδηγήσει μέχρι το γράμμα «Α», το ρομπότ εικονικής πραγματικότητας θα πρέπει να ανιχνεύσει δύο τοίχους και να στρίψει αριστερά όταν εντοπιστούν αυτοί οι τοίχοι. Στη συνέχεια, το ρομπότ εικονικής πραγματικότητας θα σταματήσει όταν ανιχνεύσει τον τρίτο τοίχο, που βρίσκεται πίσω από το γράμμα «A».
-
Αντικαταστήστε την εντολή stopμε την εντολή turn_for, ώστε το έργο σας να μοιάζει με αυτό. Η εντολή turn_forείναι απαραίτητη επειδή μόλις ο αισθητήρας απόστασης βρεθεί σε απόσταση 50 χιλιοστών (mm) από έναν τοίχο, το ρομπότ εικονικής πραγματικότητας θα στρίψει αριστερά για να συνεχίσει προς το γράμμα «A».
- Ορίστε τις παραμέτρους της στροφής σε "ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ".
def main(): ενώ front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)- Προσθέστε έναν ακόμη βρόχο whileμε μια εντολή drive μέσα, κάτω από την εντολή turn_for . Ορίστε τη συνθήκη χρησιμοποιώντας την εντολή get_distanceως πρώτο τελεστέο, τον τελεστή μεγαλύτερο από και τη σταθερά '50' ως δεύτερο τελεστέο.
ενώ front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC)- Τέλος, προσθέστε τις ακόλουθες εντολές κάτω από τον δεύτερο βρόχο while για να δώσετε εντολή στο ρομπότ εικονικής πραγματικότητας να ανιχνεύσει τον τελευταίο τοίχο πίσω από το γράμμα «A» και στη συνέχεια να σταματήσει την οδήγηση. Βεβαιωθείτε ότι η εντολή turn_for και η εντολή stop βρίσκονται εκτός των αντίστοιχων κατά τη βρόχων.
drivetrain.turn_for(LEFT, 90, DEGREES) ενώ front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()- Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
- Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να οδηγεί από την αρχή του λαβυρίνθου του τοίχου μέχρι το γράμμα «A» και μετά να σταματά.

- Παρατηρήστε ότι το ρομπότ εικονικής πραγματικότητας δεν χτυπάει σε τοίχους καθώς κατευθύνεται προς το γράμμα «A». Όταν η τιμή του αισθητήρα απόστασης αναφέρει ότι το ρομπότ εικονικής πραγματικότητας (VR) δεν απέχει περισσότερο από 50 χιλιοστά (mm) από τον τοίχο, το ρομπότ εικονικής πραγματικότητας λαμβάνει εντολή να στρίψει ή να σταματήσει στο έργο.
Επιλέξτε το κουμπί Επόμενο για να συνεχίσετε με το υπόλοιπο μάθημα.