Μετάβαση στο κύριο περιεχόμενο

Μάθημα 3: Στροφή σε μεγαλύτερη απόσταση

Πλοήγηση προς την τοποθεσία στροφής

  • Προσθέστε τις ακόλουθες εντολές στο έργο σας, μετά την τελευταία εντολή turn_for . Βεβαιωθείτε ότι η εσοχή των βρόχων while ταιριάζει με αυτές στο έργο. Μπορείτε να αντιγράψετε και να επικολλήσετε από ή προς το υπάρχον έργο σας ή να τα πληκτρολογήσετε στον Χώρο εργασίας.  

        ενώ front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES)
  • Μπορούμε να εκτιμήσουμε ότι η απόσταση από τον επόμενο τοίχο μέχρι την επιθυμητή θέση στροφής στον λαβύρινθο είναι περίπου 300 χιλιοστά (mm). Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ στην τελική του θέση, με μια μαύρη γραμμή να δείχνει την πορεία του από την αρχή. Η απόσταση από το μπροστινό μέρος του ρομπότ μέχρι το εμπόδιο στον απέναντι τοίχο αναφέρεται ως περίπου 300 mm. 

Για την ενημέρωσή σας

Μπορείτε να χρησιμοποιήσετε τα δεδομένα του αισθητήρα απόστασης όπως αναφέρονται στον Πίνακα Ελέγχου για να εκτιμήσετε την απόσταση του ρομπότ εικονικής πραγματικότητας από ένα αντικείμενο. Σταματήστε το έργο σας όταν το ρομπότ εικονικής πραγματικότητας φτάσει στην επιθυμητή τοποθεσία. Μόλις σταματήσει, οι τιμές στον Πίνακα Ελέγχου θα εμφανίσουν τις τιμές των αισθητήρων για το ρομπότ εικονικής πραγματικότητας (VR) στην οποία βρίσκεται αυτήν τη στιγμή. Αυτό μπορεί να χρησιμοποιηθεί για την παρατήρηση τιμών αισθητήρων καθώς και για την απεικόνιση της απόστασης μεταξύ του ρομπότ εικονικής πραγματικότητας και ενός αντικειμένου σε μια συγκεκριμένη χρονική στιγμή.

Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας κολλημένο στον τοίχο με εμπόδια κάτω από το γράμμα B. Το κουμπί Διακοπή στην κάτω αριστερή γωνία του παραθύρου της παιδικής χαράς επισημαίνεται με ένα κόκκινο πλαίσιο.

Η διακοπή του έργου όταν το ρομπότ εικονικής πραγματικότητας φτάσει σε ένα συγκεκριμένο σημείο, σας επιτρέπει να διακόψετε προσωρινά το έργο για να δείτε ποια τιμή αναφέρει ο αισθητήρας απόστασης σε πραγματικό χρόνο. Στην περίπτωση του Λαβύρινθου του Τοίχου, αυτή η τιμή μπορεί να χρησιμοποιηθεί στον τελεστή μεγαλύτερο από (>) για να σταματήσει το Ρομπότ Εικονικής Πραγματικότητας σε μεγαλύτερη απόσταση από τον τοίχο.
Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας σταματημένο περίπου στη θέση που πρέπει να στρίψει για να οδηγήσει γύρω από τον τοίχο και στη διαδρομή προς το γράμμα B. Ο Πίνακας ελέγχου είναι ανοιχτός στο παράθυρο της παιδικής χαράς και η τιμή απόστασης, που αναφέρεται στην άκρη δεξιά, είναι 272 mm.

  • Προσαρμόστε την τιμή στον τελικό τελεστή σύγκρισης βρόχου while στα 300 χιλιοστά (mm), όπως φαίνεται παρακάτω. Αυτό θα επιτρέψει στο ρομπότ εικονικής πραγματικότητας να κινείται προς τα εμπρός ενώ η απόσταση από τον τοίχο είναι μεγαλύτερη από 300 χιλιοστά. Όταν είναι μικρότερη από 300 χιλιοστά, το Ρομπότ Εικονικής Πραγματικότητας θα στρίψει αριστερά, στην επιθυμητή θέση στροφής στον Λαβύρινθο του Τοίχου.

        ενώ front_distance.get_distance(MM) > 300:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES) 
  • Εκκινήστε τοWall Maze Playgroundεάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο. Παρατηρήστε πώς το ρομπότ εικονικής πραγματικότητας στρίβει αριστερά στην επιθυμητή θέση στροφής, έτσι ώστε να είναι έτοιμο να συνεχίσει μέσα από τον λαβύρινθο μέχρι το γράμμα «Β». VEXcode VR με το έργο να φαίνεται στα αριστερά στον Χώρο Εργασίας και την τελική θέση του Ρομπότ VR στην Παιδική Χαρά. Το ρομπότ είναι τώρα στραμμένο προς τα κάτω, μέσα στην ανοιχτή διαδρομή που θα οδηγήσει στο γράμμα Β, και δεν εμποδίζεται από τοίχο.
  • Στη συνέχεια, προσθέστε τις ακόλουθες εντολές στο έργο σας, μετά την τελική εντολή turn_for , έτσι ώστε το VR Robot να συνεχίσει την πορεία του προς το γράμμα 'B'. Βεβαιωθείτε ότι οι βρόχοι ενώ έχουν εσοχή σωστά. 
  • 	ενώ front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    
        ενώ front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    
        ενώ front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.stop()
  • Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε ξανά το έργο.

    Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας σταματημένο στο γράμμα Β.
  • Το Ρομπότ Εικονικής Πραγματικότητας (VR) οδηγεί τώρα από την αρχή της Παιδικής Χαράς του Λαβύρινθου Τοίχου και σταματά στο γράμμα «B».
  • Παρατηρήστε ότι η αλλαγή του σωστού τελεστή σε 300 χιλιοστά επέτρεψε στο ρομπότ VR να περιστραφεί σε απόσταση μεγαλύτερη από τον τοίχο, κάτι που ήταν απαραίτητο για να περιστραφεί στη σωστή θέση.
  • Η τιμή απόστασης που αναφέρεται στον Πίνακα Ελέγχου μπορεί να χρησιμοποιηθεί για να παρατηρηθεί η απόσταση που βρισκόταν το ρομπότ εικονικής πραγματικότητας (VR) από έναν τοίχο όταν χρειάστηκε να στρίψει για να φτάσει στο γράμμα «B».
    Το Παράθυρο Παιδικής Χαράς με το Ρομπότ Εικονικής Πραγματικότητας (VR) στο σημείο στροφής για πλοήγηση προς την ανοιχτή διαδρομή προς το γράμμα Β. Η τιμή Απόστασης που αναφέρεται στον Πίνακα Ελέγχου είναι 300 mm.

Επιλέξτε το κουμπί Επόμενο για να συνεχίσετε με το υπόλοιπο μάθημα.