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

Μάθημα 2: Χρήση μπλοκ σύγκρισης και οδήγηση μέχρι κοντά

Σε αυτό το μάθημα, θα δημιουργήσετε ένα έργο που πλοηγεί το ρομπότ εικονικής πραγματικότητας (VR) στο γράμμα «A» χρησιμοποιώντας τον αισθητήρα απόστασης με το μπλοκ αναφοράς <Less than> Boolean. Στη μίνι-πρόκληση, θα εφαρμόσετε αυτές τις δεξιότητες για να πλοηγηθείτε από την αρχή του Λαβύρινθου του Τοίχου μέχρι τον αριθμό «1».

Μια κάτοψη του λαβυρίνθου στον τοίχο με το γράμμα Α ως στόχο να επισημαίνεται σε ένα κόκκινο πλαίσιο, κοντά στην αρχική θέση του ρομπότ εικονικής πραγματικότητας.

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

  • Προσδιορίστε ότι το μπλοκ <Greater than> είναι ένα Boolean μπλοκ που αναφέρει εάν η πρώτη τιμή είναι μεγαλύτερη από τη δεύτερη τιμή.
  • Προσδιορίστε ότι το μπλοκ <Less than> είναι ένα Boolean μπλοκ που αναφέρει εάν η πρώτη τιμή είναι μικρότερη από τη δεύτερη τιμή.
  • Προσδιορίστε ότι τα μπλοκ <Greater than> ή <Less than> αναφέρουν μια τιμή TRUE ή FALSE σε ένα μπλοκ [Wait until].
  • Περιγράψτε πώς να δημιουργήσετε ένα έργο που έχει ένα ρομπότ εικονικής πραγματικότητας να κινείται προς τα εμπρός μέχρι η τιμή του αισθητήρα απόστασης να είναι μικρότερη από μια τιμή κατωφλίου 50 χιλιοστών (mm).

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

  • Ξεκινήστε ένα νέο έργο στο VEXcode VR και ονομάστε το έργο Unit5Lesson2. Να θυμάστε ότι μπορείτε να χρησιμοποιήσετε μπλοκ VEXcode, μπλοκ Switch ή έναν συνδυασμό και των δύο τύπων μπλοκ για το έργο σας. 
Γραμμή εργαλείων VEXcode VR με το κουμπί «Όνομα έργου» επισημασμένο σε κόκκινο πλαίσιο, αριστερά από το κουμπί «Επιλογή παιδικής χαράς». Το όνομα του έργου έχει οριστεί σε Ενότητα 5 Μάθημα 2.

Χρησιμοποιήστε τον αισθητήρα απόστασης για να αποφύγετε τους τοίχους

  • Σύρετε το μπλοκ [Μονάδα δίσκου] στον χώρο εργασίας.
    Το έργο μπλοκ VR του VEXcode ξεκινά με ένα μπλοκ "When Started" (Όταν ξεκίνησε) και ένα μπλοκ "Drive Forward" από κάτω του. Υπάρχει ένα κόκκινο πλαίσιο που επισημαίνει το μπλοκ Drive Forward.
  • Συνδέστε ένα μπλοκ [Περιμένετε μέχρι] κάτω από το μπλοκ [Οδήγηση].
    Προβάλλονται τα ίδια μπλοκ VEXcode VR όπως και πριν, αλλά τώρα με ένα μπλοκ "Περιμένετε μέχρι" στο κάτω μέρος που επισημαίνεται με ένα κόκκινο πλαίσιο. Το πλήρες έργο αναφέρει: Όταν ξεκινήσει, προχωρήστε και περιμένετε μέχρι. Η παράμετρος του μπλοκ "Περιμένετε μέχρι" είναι κενή.

Αυτό το έργο θα χρησιμοποιήσει τον Αισθητήρα Απόστασης για να πλοηγηθείτε μέσα στην Παιδική Χαρά του Λαβύρινθου Τοίχου χωρίς να χτυπήσετε σε τοίχους. Σε αυτό το έργο θα χρησιμοποιήσετε το μπλοκ (Απόσταση από) μέσα στο μπλοκ Boolean <Less than>.

Τα <Less than>, <Greater than>και <Equal to> είναι μπλοκ σύγκρισης - συγκρίνουν τιμές. Είναι επίσης μπλοκ αναφοράς Boolean που αναφέρουν μια τιμή TRUE όταν πληρούται η συνθήκη σύγκρισης και FALSE όταν η συνθήκη είναι ΟΧΙ.

  • Η τιμή <Less than> αναφέρει την τιμή TRUE όταν η πρώτη τιμή είναι μικρότερη από τη δεύτερη τιμή και την τιμή FALSE όταν η πρώτη τιμή είναι μεγαλύτερη ή ίση με τη δεύτερη τιμή.
    VEXcode VR Less Than boolean μπλοκ, που διαβάζει '25 μικρότερο από 50'.
  • Η τιμή <Greater than> αναφέρει την τιμή TRUE όταν η πρώτη τιμή είναι μεγαλύτερη από τη δεύτερη τιμή και την τιμή FALSE όταν η πρώτη τιμή είναι μικρότερη ή ίση με τη δεύτερη τιμή.
    VEXcode VR Μεγαλύτερο από boolean μπλοκ, που διαβάζει '100 μεγαλύτερο από 50'.
  • <Equal to> αναφέρει την τιμή TRUE όταν οι δύο τιμές είναι ακριβώς ίδιες και την τιμή FALSE όταν δεν είναι.
    VEXcode VR Ίσο με boolean μπλοκ, ανάγνωση '50 ίσο με 50'.

Τα μπλοκ σύγκρισης μπορούν να δέχονται δεκαδικούς, ακέραιους ή αριθμητικούς αριθμούς. Δέχονται επίσης στρογγυλά μπλοκ αναφοράς, όπως το μπλοκ (Απόσταση από). Το μπλοκ (Απόσταση από) μπορεί να είναι με ένα μπλοκ σύγκρισης όταν χρησιμοποιείται ο Αισθητήρας Απόστασης σε ένα έργο.

Σε αυτό το παράδειγμα, το μπλοκ θα αναφέρει TRUE όταν η απόσταση από ένα αντικείμενο και τον αισθητήρα απόστασης σε ένα ρομπότ εικονικής πραγματικότητας είναι μικρότερη από 50 χιλιοστά (mm).

VEXcode VR Boolean μπλοκ Μικρότερο από με ένα μπλοκ Απόσταση από μέσα του, που αναφέρει 'Front Distance σε χιλιοστά μικρότερη από 50'.

  • Σύρετε το μπλοκ Boolean <Less than> στο μπλοκ [Περιμένετε μέχρι].
  • Τοποθετήστε το στρογγυλό μπλοκ (Απόσταση από) μέσα στο μπλοκ αναφοράς Boolean
    Έργο VEXcode VR Blocks που συνδυάζει τα προηγούμενα βήματα. Ολόκληρο το έργο τώρα αναφέρει "Όταν ξεκινήσει, οδηγήστε μπροστά και περιμένετε μέχρι η απόσταση από το μέτωπο σε χιλιοστά να είναι μικρότερη από 50". Ένα κόκκινο πλαίσιο επισημαίνει το μπλοκ "Λιγότερο από" (Less Than boolean block).
  • Το μπλοκ [Περιμένετε μέχρι] θα κρατήσει το ρομπότ εικονικής πραγματικότητας σε κίνηση προς τα εμπρός μέχρι να πληρούται η συνθήκη και η αναφερόμενη απόσταση να είναι μικρότερη από 50 χιλιοστά (mm). Στη συνέχεια, το έργο θα προχωρήσει στο επόμενο μπλοκ της στοίβας, το οποίο θα είναι το μπλοκ [Διακοπή οδήγησης].
    Ένα διάγραμμα που απεικονίζει τη ροή της λογικής στο έργο VEXcode VR Blocks. Το έργο ξεκινά με κίνηση προς τα εμπρός και διατηρεί αυτήν την εντολή μέχρι η απόσταση του αισθητήρα μπροστινής απόστασης σε χιλιοστά να γίνει μικρότερη από 50, μετά την οποία ένα μπλοκ Διακοπή οδήγησης τερματίζει την εντολή Οδήγηση προς τα εμπρός.
  • Απαιτείται ένα μπλοκ [Διακοπή οδήγησης] μετά το μπλοκ [Περιμένετε μέχρι] επειδή το ρομπότ εικονικής πραγματικότητας θα συνεχίσει να οδηγεί μέχρι να του δοθεί εντολή να σταματήσει. Προσθέστε ένα μπλοκ [Διακοπή οδήγησης] στο έργο.
    Τα μπλοκ VEXcode VR προβάλλονται από πριν με ένα μπλοκ Stop Driving που προστίθεται μετά το μπλοκ Wait Until. Ολόκληρο το έργο τώρα αναφέρει: Όταν ξεκινήσει η οδήγηση, οδηγήστε εμπρός και περιμένετε μέχρι η απόσταση από το μπροστινό μέρος σε χιλιοστά να είναι μικρότερη από 50, μετά την οποία σταματήστε την οδήγηση.
  • Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να οδηγεί από την αρχή του λαβυρίνθου του τοίχου και να σταματά όταν ο αισθητήρας απόστασης αναφέρει ότι απέχει λιγότερο από 50 χιλιοστά (mm) από τον τοίχο.
    Μια κάτοψη του λαβυρίνθου-τοίχου με το γράμμα Α ως στόχο κοντά στην αρχική θέση του ρομπότ εικονικής πραγματικότητας. Το ρομπότ εικονικής πραγματικότητας (VR) έχει πλέον προχωρήσει ως αποτέλεσμα του έργου των μπλοκ.
  • Χρησιμοποιώντας το μπλοκ <Less than> με το μπλοκ (Απόσταση από) μέσα στο μπλοκ [Περιμένετε μέχρι], δίνεται εντολή στο ρομπότ εικονικής πραγματικότητας να περιμένει μέχρι να απέχει λιγότερο από 50 χιλιοστά (mm) από τον τοίχο πριν σταματήσει.
  • Επαναφέρετε την Παιδική Χαρά για να μετακινήσετε το Ρομπότ Εικονικής Πραγματικότητας (VR) πίσω στην αρχική του θέση.

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

Σε αυτό το μάθημα, μάθατε για τα λογικά μπλοκ <Greater than>, <Less than>και <Equal to>. Η παρακάτω εικόνα δείχνει τα μπλοκ σύγκρισης Switch Boolean. Για να λειτουργήσει ένα μπλοκ Switch Boolean όπως προβλέπεται, οι συναρτήσεις Switch Python πρέπει να εισαχθούν με τη σωστή ορθογραφία και στίξη. 

Σημειώστε ότι το μπλοκ Switch <Equal to> χρησιμοποιεί δύο σύμβολα ισότητας (==). Αυτό συμβαίνει επειδή στην Python, ένα σύμβολο ισότητας (=) αντιπροσωπεύει την ανάθεση μιας τιμής (για παράδειγμα, x = 10), ενώ δύο σύμβολα ισότητας (==) ελέγχουν εάν δύο τιμές είναι ίσες. Βεβαιωθείτε ότι χρησιμοποιείτε δύο σύμβολα ισότητας όταν χρησιμοποιείτε το μπλοκ Switch <Equal to>. 
Μια σύγκριση τριών λογικών μπλοκ VEXcode VR και των αντίστοιχων μπλοκ διακόπτη. Το μπλοκ "Λιγότερο από" γράφεται σε Python ως '25 < 50', το μπλοκ "Μεγαλύτερο από" γράφεται σε Python ως '100 > 50' και το μπλοκ "Ίσο με" γράφεται σε Python ως '50 == 50'. Ένα κόκκινο πλαίσιο επισημαίνει τα διπλά σύμβολα ίσον στο τελευταίο παράδειγμα, δείχνοντας πώς να συγκρίνετε δύο τιμές ως ίσες στην Python.

Είδατε επίσης ένα παράδειγμα έργου στο οποίο το ρομπότ εικονικής πραγματικότητας θα κινείται προς τα εμπρός μέχρι η αναφερόμενη απόσταση να είναι μικρότερη από 50 χιλιοστά (mm) από ένα αντικείμενο. Στη συνέχεια, το ρομπότ εικονικής πραγματικότητας θα σταματήσει. Το έργο στα δεξιά δείχνει τις αντίστοιχες εντολές Python μέσα σε ένα μπλοκ Switch. Η εντολήwhile not front_distance.get_distance(MM) < 50λέει στο ρομπότ να ελέγξει εάν η αναφερόμενη απόσταση είναι μικρότερη από 50 MM από ένα αντικείμενο.

Η επόμενη γραμμή κώδικα με εσοχή,αναμονή (5, MSEC),διακόπτει προσωρινά τον κώδικα για 5 χιλιοστά του δευτερολέπτου. Η εντολή που ελέγχει εάν η αναφερόμενη απόσταση είναι μικρότερη από 50 MM από ένα αντικείμενο θα περιμένει 5 MSEC πριν ελέγξει ξανά την συνθήκη. 

Μια σύγκριση του έργου μας VEXcode VR, με το μπλοκ Wait Until να έχει μετατραπεί σε μπλοκ διακόπτη στη δεξιά πλευρά. Το νέο μπλοκ διακόπτη διαβάζει σε Python 'while not front_distance.get_distance(MM) < 50: wait(5, msec)'.

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