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

Προγραμματισμός με Συνθήκες - 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 με μια εντολή drive for πληκτρολογημένη στον χώρο εργασίας στα αριστερά και τις πληροφορίες βοήθειας ανοιχτές στα δεξιά. Η Βοήθεια εμφανίζει έναν ορισμό της εντολής και πληροφορίες σχετικά με τον τρόπο χρήσης της.

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

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

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

1

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

1

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

1

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

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

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

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

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

Πριν ξεκινήσετε τον προγραμματισμό με υποθετικές εκφράσεις, διαβάστε το άρθρο που εξηγεί τις εντολέςif-else. Το άρθρο μπορεί να βρεθεί εδώ (Google Doc / .docx / .pdf).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
Για μια λίστα με τους τελεστές που θα χρησιμοποιηθούν στις εντολές if-else, διαβάστε το άρθρο που εξηγεί τους Booleans. Αυτό το άρθρο μπορεί να βρεθεί εδώ (Google Doc).

Στιγμιότυπο οθόνης του συνδεδεμένου άρθρου με τίτλο Χρήση Booleans στο VEXcode V5 Python.

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

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

    Παραδείγματα έργων στο VEXcode V5 με το φίλτρο Πρότυπα και τον κινητήρα Clawbot Drivetrain 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.
    Το παράθυρο διαλόγου Όνομα έργου στη Γραμμή εργαλείων VEXcode V5 αναφέρει Δημιουργία κουμπιού διακοπής και δείχνει ότι έχει επιλεγεί η Θέση 1.
  • Ελέγξτε τις εξηγήσεις σας για το έργο και προσθέστε σημειώσεις για να τις διορθώσετε, όπως απαιτείται.

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

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

Δεν αναμένεται από τους μαθητές να κατανοήσουν γιατί χρησιμοποιούνται οι εντολές 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.Το παράθυρο διαλόγου Όνομα έργου στη Γραμμή εργαλείων VEXcode V5 αναφέρει Διακοπή ή Οδήγηση και δείχνει ότι έχει επιλεγεί η υποδοχή 1.
  • Αν χρειάζεστε βοήθεια για την αποθήκευση ενός έργου, δείτε αυτά τα άρθρα.
  • Στη συνέχεια, δημιουργήστε το έργοStopOrDriveπου φαίνεται παρακάτω.
# Κωδικός έναρξης έργου
ενώ True:
    εάν brain.screen.pressing():
        drivetrain.stop()
        ενώ brain.screen.pressing():
            wait(5, MSEC)
    αλλιώς:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)
  • Κατεβάστε τοStopOrDriveστην υποδοχή 2 στο Clawbot σας.

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

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

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

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

Εάν οι μαθητές χρειάζονται περαιτέρω βοήθεια για την κατανόηση των δηλώσεωνif-else, ανατρέξτε σε αυτό το άρθρο (Google Doc ).

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

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

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

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

Οι μαθητές θα πρέπει να σχεδιάσουν, να δοκιμάσουν και να βελτιώσουν αυτές τις αλλαγές στο έργο, καταγράφοντάς το παράλληλα στα σημειωματάρια μηχανικής τους. Για την ατομική ρουμπρίκα σημειωματάριων μηχανικής, κάντε κλικ σε έναν από τους ακόλουθους συνδέσμους (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) εικονοστοιχεία.