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

Μάθημα 2: Χρήση του μπλοκ [Περιμένετε μέχρι]

Σε αυτό το μάθημα, θα δημιουργήσετε ένα έργο χρησιμοποιώντας τον Αισθητήρα Bumper και το μπλοκ [Περιμένετε μέχρι]. Στη μίνι-πρόκληση, θα εφαρμόσετε αυτές τις δεξιότητες για να πλοηγηθείτε από την αρχή του Λαβύρινθου του Τοίχου μέχρι το γράμμα «Α».

Πλάγια όψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας ακριβώς μπροστά από έναν τοίχο, που δείχνει ότι οι τοίχοι είναι τρισδιάστατοι και το ρομπότ μπορεί να συγκρουστεί με αυτούς.

Μαθησιακά Αποτελέσματα

  • Προσδιορίστε ότι τα μπλοκ που δεν βρίσκονται σε αναμονή έχουν τη στοίβα να συνεχίζεται ακόμα και αν η συμπεριφορά του μπλοκ δεν έχει ολοκληρωθεί ακόμη.
  • Προσδιορίστε ότι ένα μπλοκ αναμονής θέτει τη στοίβα σε παύση μέχρι να ολοκληρωθεί η συμπεριφορά αυτού του μπλοκ.
  • Προσδιορίστε ότι η επισήμανση της εκτέλεσης του έργου οπτικοποιεί τα μπλοκ σε αναμονή έναντι των μπλοκ που δεν αναμένουν.
  • Προσδιορίστε ότι το μπλοκ [Περιμένετε μέχρι] είναι ένα μπλοκ Ελέγχου που δέχεται τιμές Boolean.
  • Προσδιορίστε ότι το μπλοκ [Περιμένετε μέχρι] θα ελέγχει επανειλημμένα μια λογική συνθήκη και δεν θα μετακινηθεί στο επόμενο μπλοκ μέχρι η συνθήκη να αναφέρει την τιμή TRUE.
  • Προσδιορίστε ότι το μπλοκ [Περιμένετε μέχρι] χρησιμοποιείται με ένα μπλοκ που δεν είναι σε αναμονή (π.χ. Drive) για να ελέγξετε την κατάσταση του αισθητήρα.
  • Προσδιορίστε ότι το μπλοκ <Pressing bumper> αναφέρει μια τιμή TRUE ή FALSE σε ένα μπλοκ [Wait until].
  • Προσδιορίστε πώς τα μπλοκ [Drive for] και [Turn for] είναι ειδικά μπλοκ που μπορούν να είναι είτε σε αναμονή είτε όχι.
  • Περιγράψτε πώς να δημιουργήσετε ένα έργο που έχει ένα ρομπότ εικονικής πραγματικότητας να κινείται προς τα εμπρός μέχρι να πατηθεί ο αισθητήρας προφυλακτήρα.

Ονομάστε και αποθηκεύστε το έργο

  • Ξεκινήστε ένα νέο έργο στο VEXcode VR και ονομάστε το έργο Unit4Lesson2.
Πλαίσιο ονόματος έργου στο κέντρο της Γραμμής εργαλείων VEXcode VR, επισημασμένο με κόκκινο πλαίσιο, αριστερά από το κουμπί Επιλογή παιδικής χαράς.

[Περιμένετε μέχρι] Μπλοκ

Το μπλοκ [Περιμένετε μέχρι] είναι ένα μπλοκ Ελέγχου που δέχεται Boolean συνθήκες. Τα μπλοκ [Περιμένετε μέχρι] ελέγχουν επανειλημμένα μια λογική συνθήκη και ελέγχουν τη ροή του έργου. Ένα έργο δεν θα μετακινηθεί στο επόμενο μπλοκ της στοίβας μέχρι η συνθήκη στο μπλοκ [Περιμένετε μέχρι] να αναφερθεί ως TRUE. Τα μπλοκ [Περιμένετε μέχρι] χρησιμοποιούνται σε συνδυασμό με μπλοκ που δεν περιμένουν, όπως [Οδήγηση] ή [Στροφή].

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

Τα μπλοκ που δεν βρίσκονται σε αναμονή και τα μπλοκ που βρίσκονται σε αναμονή καθορίζουν πότε το επόμενο μπλοκ ξεκινά μια συμπεριφορά. Τα μπλοκ αναμονής, όπως το [Drive for] και το [Turn for], ολοκληρώνουν τις συμπεριφορές τους πριν μετακινηθούν στο επόμενο μπλοκ της στοίβας. Τα μπλοκ που δεν αναμένουν, όπως τα [Drive] και [Turn], συνεχίζουν να μετακινούνται στο επόμενο μπλοκ της στοίβας, ακόμη και αν η συμπεριφορά του μπλοκ που δεν αναμένει δεν έχει ολοκληρωθεί.

Ορισμένα μπλοκ, όπως τα [Οδήγηση προς] και [Στροφή προς], μπορεί να είναι μπλοκ σε αναμονή ή μη αναμονή. Επιλέγοντας το βέλος στο μπλοκ, το μπλοκ θα μετατραπεί από μπλοκ σε μπλοκ χωρίς αναμονή.

Εμφανίζεται μια μονάδα δίσκου για μπλοκ με το βέλος στα δεξιά του μπλοκ κλειστό και ανοιχτό. Στην κορυφή, μια κίνηση για μπλοκ γράφει Drive forward for 200mm. Στο κάτω μέρος, το ίδιο μπλοκ επεκτείνεται για να διαβάσει την ένδειξη Οδηγήστε προς τα εμπρός για 200 mm και μην περιμένετε.

Χρήση μπλοκ διακοπτών

Το μπλοκ Switch non-waiting προσθέτει μια παράμετρο "wait=False" στο τέλος του μπλοκ. "wait=False" είναι η εντολή Python που λέει στο μπλοκ να μην περιμένει και να συνεχίσει να μετακινείται στα επόμενα μπλοκ της στοίβας.

Το αντίστοιχο μπλοκ Switch εμφανίζεται με την εντολή drive for ως εντολή σε αναμονή και μη αναμονή. Στην κορυφή, η εντολή Python στο μπλοκ Switch διαβάζει την τελεία drivetrain drive_for (FORWARD, 200, MM).. Στο κάτω μέρος, η ίδια εντολή επεκτείνεται για να διαβάσει την τελεία drive_for του συστήματος μετάδοσης κίνησης (FORWARD, 200, MM, wait = false).

  • Σύρετε το μπλοκ [Drive] που δεν είναι σε αναμονή στον χώρο εργασίας.

    Ένα νέο έργο VR VEXcode με ένα μπλοκ "Κατά την έναρξη" με ένα μπλοκ μονάδας δίσκου συνδεδεμένο και ρυθμισμένο σε προώθηση.
  • Συνδέστε ένα μπλοκ [Περιμένετε μέχρι] κάτω από το μπλοκ [Οδήγηση].

    Το ίδιο έργο με ένα μπλοκ αναμονής μέχρι να προστεθεί στο κάτω μέρος της στοίβας. Η παράμετρος του μπλοκ Αναμονή μέχρι να αδειάσει.
  • Το μπλοκ [Περιμένετε μέχρι] δέχεται Boolean συνθήκες. Αυτό το έργο θα χρησιμοποιήσει τον Αισθητήρα Προφυλακτήρα για να διασχίσει τον Λαβύρινθος Τοίχου Παιδική Χαρά. Σύρετε το μπλοκ Boolean <Pressing bumper> στο μπλοκ [Περιμένετε μέχρι].

    Το ίδιο έργο με ένα μπλοκ Bumper pressed που προστέθηκε στην παράμετρο του μπλοκ Wait until. Το έργο τώρα αναγράφει Όταν ξεκινήσει, προχωρήστε, περιμένετε μέχρι να πατηθεί ο αριστερός προφυλακτήρας.
  • Σύρετε ένα μπλοκ [Διακοπή οδήγησης] και προσθέστε το στο έργο.

    Το ίδιο έργο με ένα μπλοκ διακοπής οδήγησης που προστέθηκε κάτω από το μπλοκ αναμονής μέχρι. Το έργο τώρα αναφέρει Όταν ξεκινήσει, προχωρήστε, περιμένετε μέχρι να πατηθεί ο αριστερός προφυλακτήρας και, στη συνέχεια, σταματήστε να οδηγείτε.
  • Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να οδηγεί από την αρχή του λαβυρίνθου του τοίχου και να σταματά όταν ο αισθητήρας προφυλακτήρα πιεστεί από τον τοίχο.
  • Το μπλοκ [Οδήγηση] επιτρέπει στο ρομπότ εικονικής πραγματικότητας να συνεχίζει να κινείται προς τα εμπρός, ενώ ελέγχει την κατάσταση του αισθητήρα προφυλακτήρα με το μπλοκ <Pressing bumper>. Μόλις το <Pressing bumper> αναφερθεί ως TRUE, το VR Robot θα μετακινηθεί στο επόμενο μπλοκ στη στοίβα και θα σταματήσει να οδηγεί.

    Το έργο VEXcode VR από αυτό το μάθημα διαχωρίστηκε για να δείξει τη ροή του έργου. Το μπλοκ "Κατά την έναρξη" ακολουθείται από το μπλοκ "οδήγηση προς τα εμπρός". Ένα χρυσό βέλος δείχνει προς τα κάτω από το μπλοκ κίνησης προς τα εμπρός στο μπλοκ Περιμένετε μέχρι να πατηθεί ο αριστερός προφυλακτήρας. Στα δεξιά του μπλοκ υπάρχουν 2 καμπύλα κόκκινα βέλη που υποδεικνύουν κυκλική κίνηση και οι λέξεις "δεν έχει πατηθεί (ψευδές)" που δείχνουν τι συμβαίνει όταν το ρομπότ κινείται προς τα εμπρός και ο διακόπτης προφυλακτήρα δεν είναι πατημένος. Κάτω από το μπλοκ "Περιμένετε μέχρι", ένα πράσινο βέλος που δείχνει προς τα κάτω στο μπλοκ "stop driving" με τις λέξεις "πατήθηκε (true)" υποδεικνύει ότι το έργο θα μετακινηθεί στο μπλοκ "stop driving" όταν πατηθεί ο διακόπτης προφυλακτήρα.

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

    Για να παρακολουθήσετε μια οπτικοποίηση των μπλοκ σε αναμονή έναντι των μπλοκ που δεν αναμένουν, παρακολουθήστε τη συνάρτηση επισήμανσης εκτέλεσης κώδικα στο VEXcode VR. Στην αρχή αυτού του έργου, η πράσινη επισήμανση θα εμφανιστεί γύρω από το μπλοκ [Περιμένετε μέχρι] μέχρι να ικανοποιηθεί η συνθήκη. Αυτό συμβαίνει επειδή το μπλοκ [Περιμένετε μέχρι] είναι ένα μπλοκ αναμονής. Η πράσινη επισήμανση θα εμφανιστεί για να παρακάμπτει τα μπλοκ που δεν βρίσκονται σε αναμονή, επειδή αυτές οι εντολές εκτελούνται γρήγορα.

    Το έργο VEXcode VR από αυτό το μάθημα με ένα κόκκινο πλαίσιο επεξήγησης γύρω από το μπλοκ "Περιμένετε μέχρι", που υποδεικνύει ότι πρόκειται για μπλοκ αναμονής.

     

    Χρήση μπλοκ διακοπτών 

    Αυτό είναι το μπλοκ Switch που περιέχει την εντολή [Wait until] με <Bumper pressed>  Λογικός ρεπόρτερ.

    Το έργο VEXcode VR όπως παραπάνω, αλλά με το μπλοκ "Περιμένετε μέχρι" να αντικατασταθεί από ένα μπλοκ "Εναλλαγή". Η εντολή Python στο μπλοκ Switch διαβάζει ενώ δεν είναι left_bumper.pressed(): στην πρώτη γραμμή. Στη συνέχεια, η εσοχή κάτω από το μπλοκ Python διαβάζει wait (5, msec).

    while not left_bumper.pressed(): Η εντολήστην Python ελέγχει αν πατιέται η αριστερή μπάρα.

    wait (5, MSEC)είναι μια εντολή Python που διακόπτει προσωρινά την εκτέλεση του ελέγχου για 5 χιλιοστά του δευτερολέπτου (MSEC), επομένως το έργο ελέγχει εάν πατιέται το αριστερό bumper κάθε 5 MSEC. Αυτή η γραμμή κώδικα έχει εσοχή κάτω από την πρώτη γραμμή κώδικα επειδή αυτή η εντολή είναι η συμπεριφορά που θα επαναλαμβάνεται μέχρι να ικανοποιηθεί η συνθήκη (σε αυτήν την περίπτωση, το αριστερό bumper που πατήθηκε).

    Στο VEXcode VR, μια εντολή αναμονή προστίθεται πάντα με έναν βρόχο υπό όρους. Ο σκοπός της εντολής wait είναι να διασφαλίσει ότι το VEXcode VR μπορεί να εκτελέσει σωστά το έργο όπως προβλέπεται, λόγω της διαδικτυακής φύσης της πλατφόρμας VEXcode VR. Η εντολή wait δεν πρέπει ποτέ να διαγράφεται όταν χρησιμοποιείται ένας βρόχος υπό όρους, επειδή το έργο σας ενδέχεται να μην εκτελεστεί όπως προβλέπεται.

    Μόλις πατηθεί ο αριστερός προφυλακτήρας, το ρομπότ θα σταματήσει να οδηγεί.

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