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

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

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

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

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

-
Συνδέστε ένα μπλοκ [Περιμένετε μέχρι] κάτω από το μπλοκ [Οδήγηση].

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

-
Σύρετε ένα μπλοκ [Διακοπή οδήγησης] και προσθέστε το στο έργο.

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

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

Χρήση μπλοκ διακοπτών
Αυτό είναι το μπλοκ Switch που περιέχει την εντολή [Wait until] με <Bumper pressed>
Λογικός ρεπόρτερ. 
while not left_bumper.pressed(): Η εντολήστην Python ελέγχει αν πατιέται η αριστερή μπάρα. wait (5, MSEC)είναι μια εντολή Python που διακόπτει προσωρινά την εκτέλεση του ελέγχου για 5 χιλιοστά του δευτερολέπτου (MSEC), επομένως το έργο ελέγχει εάν πατιέται το αριστερό bumper κάθε 5 MSEC. Αυτή η γραμμή κώδικα έχει εσοχή κάτω από την πρώτη γραμμή κώδικα επειδή αυτή η εντολή είναι η συμπεριφορά που θα επαναλαμβάνεται μέχρι να ικανοποιηθεί η συνθήκη (σε αυτήν την περίπτωση, το αριστερό bumper που πατήθηκε). Στο VEXcode VR, μια εντολή αναμονή προστίθεται πάντα με έναν βρόχο υπό όρους. Ο σκοπός της εντολής wait είναι να διασφαλίσει ότι το VEXcode VR μπορεί να εκτελέσει σωστά το έργο όπως προβλέπεται, λόγω της διαδικτυακής φύσης της πλατφόρμας VEXcode VR. Η εντολή wait δεν πρέπει ποτέ να διαγράφεται όταν χρησιμοποιείται ένας βρόχος υπό όρους, επειδή το έργο σας ενδέχεται να μην εκτελεστεί όπως προβλέπεται. Μόλις πατηθεί ο αριστερός προφυλακτήρας, το ρομπότ θα σταματήσει να οδηγεί.
Επιλέξτε το κουμπί Επόμενο για να συνεχίσετε με το υπόλοιπο μάθημα.