Προγραμματισμός με Συνθήκες - Python
Εργαλειοθήκη Εκπαιδευτικού
-
Ο Σκοπός αυτής της Δραστηριότητας
Αυτή η δραστηριότητα θα εισαγάγει τους μαθητές στη χρήση των εντολών while και if για να κάνουν το ρομπότ να κινηθεί προς τα εμπρός, εκτός εάν πατηθεί η οθόνη.
- Αυτή η δραστηριότητα θα εισαγάγει τους μαθητές στις υποθετικές εκφράσεις και στις οδηγίες που κάνουν το ρομπότ να κινείται προς τα εμπρός, εκτός εάν πατηθεί η οθόνη.
- Για περισσότερες πληροφορίες σχετικά με τις εντολές if και if-else ή άλλες που χρησιμοποιούνται σε αυτήν τη δραστηριότητα, επισκεφθείτε τις πληροφορίες βοήθειας στο VEXcode V5. Για περισσότερες πληροφορίες σχετικά με αυτό το ενσωματωμένο εργαλείο βοήθειας, ανατρέξτε στο άρθρο σχετικά με τη βοήθεια στο Python.
Εργαλειοθήκη Δασκάλου
Για προτάσεις σχετικά με στρατηγικές διδασκαλίας για αυτήν την ενότητα, ανατρέξτε στη στήλη Παράδοση του Οδηγού Ρυθμού με τις Προϋποθέσεις και τις Προϋποθέσεις! (Έγγραφο Google )
Το Clawbot είναι έτοιμο να πάρει αποφάσεις!
Αυτή η εξερεύνηση θα σας δώσει τα εργαλεία για να ξεκινήσετε να δημιουργείτε μερικά ενδιαφέροντα έργα που χρησιμοποιούν την εντολήif-else
- Εντολές Python VEXcode V5 που θα χρησιμοποιηθούν σε αυτήν την εξερεύνηση:
- drivetrain.drive_for(ΜΠΡΟΣΤΑ)
- brain.screen.pressing()
- μετάδοσης κίνησης.stop()
- εάν η συνθήκη:
- αλλού:
- ενώ Αληθές:
- αναμονή (5, ΔΕΥΤΕΡΟΛΕΠΤΑ)
Μπορείτε να χρησιμοποιήσετε τις πληροφορίες βοήθειας που βρίσκονται μέσα στο VEXcode V5 για να μάθετε περισσότερα σχετικά με τις εντολές της Python.

Βεβαιωθείτε ότι έχετε έτοιμα τα απαραίτητα υλικά, το σημειωματάριο μηχανικής σας και το VEXcode V5.
| Ποσότητα | Απαιτούμενα υλικά |
|---|---|
| 1 |
Κιτ εκκίνησης για την τάξη VEX V5 (με ενημερωμένο υλικολογισμικό) |
| 1 |
VEXcode V5 (τελευταία έκδοση, Windows, macOS) |
| 1 |
Σημειωματάριο Μηχανικής |
| 1 |
Πρότυπο Clawbot (Σύστημα μετάδοσης κίνησης 2 κινητήρων, χωρίς γυροσκόπιο) |
Συμβουλές για τους Δασκάλους
Εάν αυτή είναι η πρώτη φορά που ο μαθητής χρησιμοποιεί το VEXcode V5, μπορεί να ανατρέξει στα Tutorials οποιαδήποτε στιγμή κατά τη διάρκεια αυτής της εξερεύνησης. Τα Tutorials βρίσκονται στη γραμμή εργαλείων.

Βήμα 1: Ας ξεκινήσουμε με την κατανόηση των υπό όρους δηλώσεων
Πριν ξεκινήσετε τον προγραμματισμό με υποθετικές εκφράσεις, διαβάστε το άρθρο που εξηγεί τις εντολέςif-else. Το άρθρο μπορεί να βρεθεί εδώ (Google Doc / .docx / .pdf).
Για μια λίστα με τους τελεστές που θα χρησιμοποιηθούν στις εντολές if-else, διαβάστε το άρθρο που εξηγεί τους Booleans. Αυτό το άρθρο μπορεί να βρεθεί εδώ (Google Doc).
Βήμα 2: Ας ξεκινήσουμε τον προγραμματισμό με εντολές υπό όρους.
-
Ανοίξτε το παράδειγμα έργου προτύπου Clawbot (Σύστημα μετάδοσης κίνησης 2 κινητήρων, Χωρίς γυροσκόπιο).

- Κατασκευάστε το παρακάτω έργο.
# Κωδικός έναρξης έργου
ενώ είναι True:
drivetrain.drive(FORWARD)
if brain.screen.pressing():
drivetrain.stop()
ενώ brain.screen.pressing():
wait(5, MSEC)
wait(5, MSEC)Κάντε τα εξής στο σημειωματάριο μηχανικής σας:
- Εξηγήστε τι κάνει το Clawbot στο πλαίσιο του έργου. Θα χρειαστεί να εξηγήσετε περισσότερα από το γεγονός ότι δημιουργεί ένα κουμπί διακοπής. Εξηγήστε ποιες οδηγίες κάνουν το Clawbot να κάνει τι.
- Γράψτε μια περίληψη σε μία πρόταση που να αποτυπώνει τι κάνει το έργο.
- Δοκιμάστε να δείτε αν η πρόβλεψή σας για το τι έχει να κάνει το Clawbot στο πλαίσιο του έργου είναι σωστή.
- Ονομάστε το έργοCreatingAStopButton. Κατεβάστε και εκτελέστε το έργο στο Clawbot.
- Ελέγξτε τις εξηγήσεις σας για το έργο και προσθέστε σημειώσεις για να τις διορθώσετε, όπως απαιτείται.
Εργαλειοθήκη Δασκάλου
-
Απαντήσεις
Σε αυτό το έργο, το ρομπότ κινείται συνεχώς προς τα εμπρός, αλλά σταματάει αν πατηθεί η οθόνη. Αυτό επιτυγχάνεται χρησιμοποιώντας μια πρόταση "forever" (ενώ True)για συνεχή οδήγηση και έλεγχο. Εάν πατηθεί η οθόνη (True), τότε το Clawbot σταματά να οδηγεί.
Δεν αναμένεται από τους μαθητές να κατανοήσουν γιατί χρησιμοποιούνται οι εντολές while brain.screen.pressing():and wait(5, MSEC). Εξηγήστε ότι αυτές οι εντολές είναι απαραίτητες λόγω της ταχύτητας ροής του προγράμματος του ρομπότ. Αν δεν ήταν εκεί, οι κινητήρες του Clawbot θα συμπεριφέρονταν σαν ο χρήστης να πατούσε την οθόνη ξανά και ξανά καθώς εκτελούσε κύκλο στο έργο. Αντίθετα, αυτές οι οδηγίες σταματούν τη ροή του προγράμματος και δεν επιτρέπουν στο έργο να ξεκινήσει ξανά τον βρόχο μέχρι ο χρήστης να σταματήσει να πατάει την οθόνη.
Η γραμμή ψευδοκώδικα θα μπορούσε να είναι τόσο απλή όσο: Οδηγήστε προς τα εμπρός μέχρι να πατήσετε την οθόνη.
Τα σημειωματάρια μηχανικής των μαθητών μπορούν να διατηρούνται και να βαθμολογούνται ατομικά (Google Doc / .docx / .pdf) ή ως ομάδα (Google Doc / .docx / .pdf). Οι προηγούμενοι σύνδεσμοι παρέχουν διαφορετική ρουμπρίκα για κάθε προσέγγιση. Κάθε φορά που μια ρουμπρίκα περιλαμβάνεται στον εκπαιδευτικό σχεδιασμό, είναι καλή πρακτική να εξηγείται η ρουμπρίκα ή τουλάχιστον να δίνονται αντίγραφα στους μαθητές πριν από την έναρξη της δραστηριότητας.
Βήμα 3: Κατανόηση των εντολώνwhileκαιwait().
Παρατηρήστε ότι αν πατήσετε την οθόνη του Brain, η ροή του έργου κινείται γρήγορα και το έργο θα μετακινηθεί στην επόμενη εντολή, η οποία είναι η εντολή drivetrain.stop().
Έτσι, το έργο χρειάζεται τις εντολές while και wait που λένε στο ρομπότ να παραμείνει σταματημένο μέχρι να απελευθερωθεί η οθόνη του Εγκεφάλου. Διαφορετικά, η εντολή για πάνταθα προκαλούσε την επανεκκίνηση του έργου.
ενώ brain.screen.pressing():
wait(5, MSEC)Οι εντολέςwhile και waitείναι απαραίτητες λόγω της ταχύτητας ροής του έργου. Αν δεν ήταν εκεί, το έργο θα προχωρούσε στην επόμενη εντολή πριν καν το ρομπότ προλάβει να απαντήσει.
Βήμα 4: Αλλαγή του έργου.
Το επόμενο βήμα μας είναι να αλλάξουμε την εντολήifσε μια εντολήif-else
- Ξεκινήστε αποθηκεύονταςCreatingAStopButtonως το νέο έργο,StopOrDrive.
- Αν χρειάζεστε βοήθεια για την αποθήκευση ενός έργου, δείτε αυτά τα άρθρα.
- Στη συνέχεια, δημιουργήστε το έργοStopOrDriveπου φαίνεται παρακάτω.
# Κωδικός έναρξης έργου
ενώ True:
εάν brain.screen.pressing():
drivetrain.stop()
ενώ brain.screen.pressing():
wait(5, MSEC)
αλλιώς:
drivetrain.drive(FORWARD)
wait(5, MSEC)- Κατεβάστε τοStopOrDriveστην υποδοχή 2 στο Clawbot σας.
- Για βοήθεια σχετικά με τη λήψη και την εκτέλεση ενός έργου, ανατρέξτε σε αυτό το άρθρο.
- ΔοκιμάστεCreatingAStopButton(Υποδοχή 1) και στη συνέχεια δοκιμάστεStopOrDrive(Υποδοχή 2) και συγκρίνετέ τα για να δείτε αν υπάρχει κάποια διαφορά στη συμπεριφορά του ρομπότ. Σημειώστε τυχόν διαφορές στο σημειωματάριο μηχανικής σας
Εργαλειοθήκη Δασκάλου
-
Απάντηση
Όσον αφορά τη συμπεριφορά του ρομπότ, θα πρέπει να υπάρχει διαφοράαντί γιαμεταξύ των έργωνCreatingAStopButtonκαιStopOrDrive.
Εάν οι μαθητές χρειάζονται περαιτέρω βοήθεια για την κατανόηση των δηλώσεωνif-else, ανατρέξτε σε αυτό το άρθρο (Google Doc ).
Και στα δύο έργα, το Clawbot συμπεριφέρεται με τον ίδιο τρόπο. Η μόνη διαφορά είναι η χρήση της πρότασης if-else στο έργο StopOrDrive
Η χρήση της πρότασης if-else θα σας επιτρέψει να προσθέσετε επιπλέον κουμπιά στην οθόνη σε επερχόμενες δραστηριότητες.
Επεκτείνετε τη Μάθησή σας
Καθώς προχωρά αυτό το Εργαστήριο STEM, οι μαθητές θα αναπτύσσουν έργα που επιτρέπουν στην οθόνη του Clawbot να λειτουργεί ως διεπαφή χρήστη. Προετοιμάζοντας αυτό, προκαλέστε τους μαθητές να καταλάβουν πώς να σχεδιάσουν ένα χρωματιστό ορθογώνιο στην οθόνη που λειτουργεί σαν κουμπί. Επειδή το πάτημα οπουδήποτε στην οθόνη είναι η τρέχουσα συνθήκη, το κουμπί θα πρέπει να καταλαμβάνει ολόκληρη την οθόνη. Οι μαθητές θα πρέπει να έχουν το έργο να μεταδίδει ένα συμβάν για να σχεδιάσουν το κουμπί όταν ξεκινήσει.
Κατευθύνετε τους μαθητές να μάθουν πρώτα πώς η οθόνη του εγκεφάλου είναι οργανωμένη σε ένα σύστημα συντεταγμένων. Θα πρέπει να το κατανοήσουν αυτό προκειμένου να ορίσουν παραμέτρους στις εντολές που θα χρησιμοποιούν. Οι συντεταγμένες που χρησιμοποιούνται αντιστοιχούν στον αριθμό των pixel και όχι στον αριθμό της στήλης ή της γραμμής. Εδώ είναι η διάταξη της οθόνης:
Οι μαθητές θα πρέπει να σχεδιάσουν, να δοκιμάσουν και να βελτιώσουν αυτές τις αλλαγές στο έργο, καταγράφοντάς το παράλληλα στα σημειωματάρια μηχανικής τους. Για την ατομική ρουμπρίκα σημειωματάριων μηχανικής, κάντε κλικ σε έναν από τους ακόλουθους συνδέσμους (Google Doc / .docx / .pdf) ή κάντε κλικ σε έναν από τους ακόλουθους συνδέσμους για ομαδικά σημειωματάρια (Google Doc / .docx / .pdf).
Ακολουθεί ένα παράδειγμα λύσης:
# Κωδικός έναρξης έργου
draw = Event()
def draw_button():
brain.screen.set_fill_color(Color.RED)
brain.screen.draw_rectangle(0, 0, 480, 240)
wait(1, SECONDS)
draw(draw_button)
while True:
draw.broadcast()
drivetrain.drive(FORWARD)
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
else:
drivetrain.drive(FORWARD)
wait(5, MSEC)Όπως μπορείτε να δείτε, το κουμπί έχει σχεδιαστεί για να καταλαμβάνει ολόκληρη την οθόνη ξεκινώντας από την αρχή (0, 0) και γεμίζοντας και τα 480 οριζόντια (άξονας x) εικονοστοιχεία και τα 240 κάθετα (άξονας y) εικονοστοιχεία.
