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

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Εκπαιδευτικού - Ο Σκοπός αυτής της Δραστηριότητας

Αυτή η δραστηριότητα θα εισαγάγει τους μαθητές στη χρήση των εντολών while και if then ώστε το ρομπότ να κινηθεί προς τα εμπρός, εκτός εάν πατηθεί η οθόνη.

  • Αυτή η δραστηριότητα θα εισαγάγει τους μαθητές στις υποθετικές εκφράσεις και στις οδηγίες που κάνουν το ρομπότ να κινείται προς τα εμπρός, εκτός εάν πατηθεί η οθόνη.

  • Για περισσότερες πληροφορίες σχετικά με τις εντολές if then και if then else ή άλλες που χρησιμοποιούνται σε αυτήν τη δραστηριότητα, επισκεφθείτε τις πληροφορίες βοήθειας στο VEXcode V5. Για περισσότερες πληροφορίες σχετικά με αυτό το ενσωματωμένο εργαλείο βοήθειας, ανατρέξτε σε αυτά τα άρθρα σχετικά με τη βοήθεια στην C++  .

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου

Για προτάσεις σχετικά με στρατηγικές διδασκαλίας για αυτήν την ενότητα, ανατρέξτε στη στήλη Παράδοση του Οδηγού Ρυθμού To Do or Not to Do! (Google Doc / .docx / .pdf)

Το Clawbot είναι έτοιμο να πάρει αποφάσεις!

Αυτή η εξερεύνηση θα σας δώσει τα εργαλεία για να ξεκινήσετε να δημιουργείτε μερικά ενδιαφέροντα έργα που χρησιμοποιούν την εντολή if then else .

  • Εντολές VEXcode V5 C++ που θα χρησιμοποιηθούν σε αυτήν την εξερεύνηση: 
    • Σύστημα μετάδοσης κίνησης.κίνηση(προς τα εμπρός);
    • Brain.Screen.pressing()
    • Σύστημα μετάδοσης κίνησης.stop();
    • αν (συνθήκη){}
    • περιμένω μέχρι();
    • ενώ (συνθήκη){}  
    • αναμονή(1, δευτερόλεπτα);

Μπορείτε να χρησιμοποιήσετε τις πληροφορίες βοήθειας που βρίσκονται μέσα στο VEXcode V5 για να μάθετε περισσότερα σχετικά με τις οδηγίες C++.

VEXcode V5 με μια εντολή drive for πληκτρολογημένη στον χώρο εργασίας στα αριστερά και τις πληροφορίες βοήθειας ανοιχτές στα δεξιά. Η Βοήθεια εμφανίζει έναν ορισμό της εντολής και πληροφορίες σχετικά με τον τρόπο χρήσης της.

Βεβαιωθείτε ότι έχετε έτοιμα τα απαραίτητα υλικά, το σημειωματάριο μηχανικής σας και το VEXcode V5.

Απαιτούμενα υλικά:
Ποσότητα Απαιτούμενα υλικά
1

Κιτ εκκίνησης για την τάξη VEX V5 (με ενημερωμένο υλικολογισμικό)

1

VEXcode V5 (τελευταία έκδοση, Windows, macOS)

1

Σημειωματάριο Μηχανικής

1

Πρότυπο Clawbot (Σύστημα μετάδοσης κίνησης 2 κινητήρων, χωρίς γυροσκόπιο)

Εικονίδιο Συμβουλών Δασκάλου Συμβουλές για τους Δασκάλους

Εάν αυτή είναι η πρώτη φορά που ο μαθητής χρησιμοποιεί το VEXcode V5, μπορεί να ανατρέξει στα Tutorials οποιαδήποτε στιγμή κατά τη διάρκεια αυτής της εξερεύνησης. Τα Tutorials βρίσκονται στη γραμμή εργαλείων.

Γραμμή εργαλείων VEXcode V5 με το εικονίδιο του Tutorial επισημασμένο σε κόκκινο πλαίσιο. Από τα αριστερά, η Γραμμή Εργαλείων εμφανίζει το εικονίδιο V5, ένα εικονίδιο υδρόγειου σφαίρας, το Αρχείο και, στη συνέχεια, τα Εκπαιδευτικά Βίντεο. Στα δεξιά υπάρχουν πρόσθετα εικονίδια και λειτουργίες.

Βήμα 1: Ας ξεκινήσουμε με την κατανόηση των υπό όρους δηλώσεων 

Πριν ξεκινήσετε τον προγραμματισμό με υποθετικές εκφράσεις, διαβάστε το άρθρο της Βιβλιοθήκης VEX που εξηγεί τις Δηλώσεις If Then Else . Το άρθρο μπορεί να βρεθεί εδώ.

Στιγμιότυπο οθόνης από τη Βιβλιοθήκη VEX, που δείχνει ένα άρθρο με τίτλο Χρήση εντολών if-else στον κώδικα VEX V5.Για μια λίστα με τους τελεστές που θα χρησιμοποιηθούν στις εντολές If Then Else , διαβάστε το άρθρο της βιβλιοθήκης VEX που εξηγεί τους Booleans. Αυτό το άρθρο μπορεί να βρεθεί εδώ.Στιγμιότυπο οθόνης από τη Βιβλιοθήκη VEX, που δείχνει ένα άρθρο με τίτλο Χρήση Λογικών Ρυθμών στον VEXcode V5.

Βήμα 2: Ας ξεκινήσουμε τον προγραμματισμό με εντολές υπό όρους.

  • Ανοίξτε το παράδειγμα έργου προτύπου Clawbot (Σύστημα μετάδοσης κίνησης 2 κινητήρων, Χωρίς γυροσκόπιο).

    Παράδειγμα επιλογής έργου στο VEXcode V5 με ένα κόκκινο πλαίσιο γύρω από το φίλτρο Προτύπων στην κορυφή και το έργο Clawbot drivetrain 2 motor no gyro, που υποδεικνύει ποιο πρότυπο θα ανοίξει.

     

  • Κατασκευάστε το παρακάτω έργο.
// Έναρξη κώδικα έργου
int main() {
  // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
  vexcodeInit();

  ενώ (αληθές) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    }    
  }  
}  

Κάντε τα εξής στο σημειωματάριο μηχανικής σας:

  • Εξηγήστε τι κάνει το Clawbot στο πλαίσιο του έργου. Θα χρειαστεί να εξηγήσετε περισσότερα από το γεγονός ότι δημιουργεί ένα κουμπί διακοπής. Εξηγήστε ποιες οδηγίες κάνουν το Clawbot να κάνει τι.
  • Γράψτε μια περίληψη σε μία πρόταση που να αποτυπώνει τι κάνει το έργο.
  • Δοκιμάστε να δείτε αν η πρόβλεψή σας για το τι έχει να κάνει το Clawbot στο πλαίσιο του έργου είναι σωστή.

Το παράθυρο διαλόγου Όνομα έργου στη γραμμή εργαλείων VEXcode V5 εμφανίζει την ένδειξη Δημιουργία κουμπιού διακοπής και δείχνει ότι έχει επιλεγεί η θέση 1.

  • Αποθηκεύστε και κατεβάστε το έργο ως CreatingAStopButton στην υποδοχή 1 στο Clawbot και, στη συνέχεια, εκτελέστε το.
  • Για βοήθεια σχετικά με τη λήψη ενός έργου, ανατρέξτε στο σεμινάριο στο VEXcode V5 που εξηγεί να κάνετε λήψη και εκτέλεση ενός έργου (C++).
  • Ελέγξτε τις εξηγήσεις σας για το έργο και προσθέστε σημειώσεις για να τις διορθώσετε, όπως απαιτείται.

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου - Απαντήσεις

Σε αυτό το έργο, το ρομπότ κινείται συνεχώς προς τα εμπρός, αλλά σταματάει αν πατηθεί η οθόνη. Αυτό επιτυγχάνεται χρησιμοποιώντας μια εντολή forever για συνεχή οδήγηση και έλεγχο. Εάν πατηθεί η οθόνη (TRUE), τότε το Clawbot σταματά να οδηγεί.Το έργο "Δημιουργία κουμπιού διακοπής" εμφανίζεται με εντολές που φέρουν την ένδειξη του σκοπού τους. Η εντολή if είναι κυκλωμένη με κόκκινο χρώμα και έχει την ένδειξη Ελέγχει εάν η συνθήκη είναι True - πατιέται η οθόνη. Η εντολή διακοπής κουκκίδας μετάδοσης κίνησης φέρει την ένδειξη Εκτελεί το μπλοκ εάν είναι αληθές. Η εντολή "wait until" (αναμονή μέχρι να επισημανθεί η εντολή) ελέγχει την ταχύτητα επεξεργασίας.

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

Η γραμμή ψευδοκώδικα θα μπορούσε να είναι τόσο απλή όσο: Οδηγήστε προς τα εμπρός μέχρι να πατήσετε την οθόνη.

Τα σημειωματάρια μηχανικής των μαθητών μπορούν να διατηρούνται και να βαθμολογούνται ατομικά (Google Doc / .docx / .pdf) ή ως ομάδα  (Google Doc / .docx / .pdf). Οι προηγούμενοι σύνδεσμοι παρέχουν διαφορετική ρουμπρίκα για κάθε προσέγγιση. Κάθε φορά που μια ρουμπρίκα περιλαμβάνεται στον εκπαιδευτικό σχεδιασμό, είναι καλή πρακτική να εξηγείται η ρουμπρίκα ή τουλάχιστον να δίνονται αντίγραφα στους μαθητές πριν από την έναρξη της δραστηριότητας.

Βήμα 3: Κατανόηση της εντολής wait until() .

Παρατηρήστε ότι αν πατηθεί η οθόνη του Brain, η ροή του έργου κινείται γρήγορα και το έργο θα μετακινηθεί στην επόμενη εντολή, η οποία είναι η εντολή Drivetrain.stop() .

Έτσι, το έργο χρειάζεται μια εντολή waitUntil() που λέει στο ρομπότ να παραμείνει σταματημένο μέχρι να απελευθερωθεί η οθόνη του εγκεφάλου. Διαφορετικά, η εντολή forever θα προκαλούσε την επανεκκίνηση του έργου.

περιμένω μέχρι(!Brain.Screen.pressing());

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

Βήμα 4: Αλλαγή του έργου.

Το επόμενο βήμα μας είναι να αλλάξουμε την εντολή if then σε μια εντολή if then else.

Το παράθυρο διαλόγου "Όνομα έργου" στη γραμμή εργαλείων VEXcode V5 αναφέρει "Διακοπή" ή "Οδήγηση" και δείχνει ότι έχει επιλεγεί η υποδοχή 1.

  • Ξεκινήστε αποθηκεύοντας CreatingAStopButton ως το νέο έργο, StopOrDrive.
  • Αν χρειάζεστε βοήθεια για την αποθήκευση ενός έργου, κάντε κλικ στο εδώ για C++.
  • Στη συνέχεια, δημιουργήστε το έργο StopOrDrive που φαίνεται παρακάτω.
// Έναρξη κώδικα έργου
int main() {
  // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
  vexcodeInit();

  ενώ (αληθές) {
    Drivetrain.drive(forward);
    εάν (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    } 
    αλλιώς {
      Drivetrain.drive(forward);
    }   
  }  
}  
  • Κατεβάστε το StopOrDrive στην υποδοχή 2 στο Clawbot σας.

Η επιλογή υποδοχής στη Γραμμή Εργαλείων VEXcode V5 είναι ανοιχτή και η υποδοχή 2 είναι επιλεγμένη και επισημασμένη με ένα κόκκινο πλαίσιο. Το όνομα του έργου είναι "Σταμάτημα ή Οδήγηση".

  • Για βοήθεια σχετικά με τη λήψη ενός έργου, ανατρέξτε στο σεμινάριο στο VEXcode V5 που εξηγεί να κάνετε λήψη και εκτέλεση ενός έργου (C++).
  • Δοκιμάστε CreatingAStopButton (Υποδοχή 1) και στη συνέχεια δοκιμάστε StopOrDrive (Υποδοχή 2) και συγκρίνετέ τα για να δείτε αν υπάρχει κάποια διαφορά στη συμπεριφορά του ρομπότ. Σημειώστε τυχόν διαφορές στο σημειωματάριο μηχανικής σας

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου - Απάντηση

Όσον αφορά τη συμπεριφορά του ρομπότ, θα πρέπει να υπάρχει διαφορά μεταξύ έργων CreatingAStopButton και StopOrDrive όχι .

Εάν οι μαθητές χρειάζονται περαιτέρω βοήθεια για την κατανόηση των δηλώσεων If-Else, κάντε κλικ στο εδώ.

Και στα δύο έργα, το Clawbot συμπεριφέρεται με τον ίδιο τρόπο. Η μόνη διαφορά είναι η χρήση της εντολής if then else στο έργο StopOrDrive .

Χρησιμοποιώντας την εντολή if then else θα μπορείτε να προσθέσετε επιπλέον κουμπιά στην οθόνη σε επερχόμενες δραστηριότητες.

Εικονίδιο "Επεκτείνετε τη Μάθησή σας" Επεκτείνετε τη Μάθησή σας

Καθώς προχωρά αυτό το Εργαστήριο STEM, οι μαθητές θα αναπτύσσουν έργα που επιτρέπουν στην οθόνη του Clawbot να λειτουργεί ως διεπαφή χρήστη. Προετοιμάζοντας αυτό, προκαλέστε τους μαθητές να καταλάβουν πώς να σχεδιάσουν ένα χρωματιστό ορθογώνιο στην οθόνη που λειτουργεί σαν κουμπί. Επειδή το πάτημα οπουδήποτε στην οθόνη είναι η τρέχουσα συνθήκη, το κουμπί θα πρέπει να καταλαμβάνει ολόκληρη την οθόνη. Οι μαθητές θα πρέπει να έχουν το έργο να μεταδίδει ένα συμβάν για να σχεδιάσουν το κουμπί όταν ξεκινήσει.
Κατευθύνετε τους μαθητές να μάθουν πρώτα πώς η οθόνη του εγκεφάλου είναι οργανωμένη σε ένα σύστημα συντεταγμένων. Θα πρέπει να το κατανοήσουν αυτό προκειμένου να ορίσουν παραμέτρους στις οδηγίες που θα χρησιμοποιήσουν. Οι συντεταγμένες που χρησιμοποιούνται αντιστοιχούν στον αριθμό των pixel και όχι στον αριθμό της στήλης ή της γραμμής. Εδώ είναι η διάταξη της οθόνης:

Το πλέγμα εικονοστοιχείων της οθόνης V5 Brain δείχνει 12 αριθμημένες σειρές κατά μήκος της αριστερής πλευράς, με την πάνω σειρά να φέρει την ένδειξη Σειρά 1 και την κάτω σειρά να φέρει την ένδειξη Σειρά 12. Στο επάνω μέρος υπάρχουν 48 αριθμημένες στήλες, με τη Στήλη 1 να επισημαίνεται στα αριστερά και τη Στήλη 48 στα δεξιά. Οι συνολικές μετρήσεις των pixel είναι 480px πλάτος επί 240px ύψος.

Οι μαθητές θα πρέπει να σχεδιάσουν, να δοκιμάσουν και να βελτιώσουν αυτές τις αλλαγές στο έργο, καταγράφοντάς το παράλληλα στα σημειωματάρια μηχανικής τους. Για την ατομική ρουμπρίκα σημειωματάριου μηχανικής, κάντε κλικ σε έναν από τους ακόλουθους συνδέσμους (Google Doc / .docx / .pdf) ή κάντε κλικ σε έναν από τους ακόλουθους συνδέσμους για ομαδικά σημειωματάρια (Google Doc / .docx / .pdf).

Ακολουθεί ένα παράδειγμα λύσης:

// Έναρξη κώδικα έργου
event draw = event();

void drawButton() {
  Brain.Screen.setFillColor(red);
  Brain.Screen.drawRectangle(0, 0, 480, 240);
  wait(1, seconds);
}

int main() {
  // Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
  vexcodeInit();

  draw(drawButton);

  ενώ (αληθινό) {
    draw.broadcast();
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(forward);
    }   
  }  
}  

Όπως μπορείτε να δείτε, το κουμπί έχει σχεδιαστεί για να καταλαμβάνει ολόκληρη την οθόνη ξεκινώντας από την αρχή (0, 0) και γεμίζοντας και τα 480 οριζόντια (άξονας x) εικονοστοιχεία και τα 240 κάθετα (άξονας y) εικονοστοιχεία.