LEGO® Education > Σχέδια Μαθήματος > ΣΧΕΔΙΟ ΕΝΟΤΗΤΑΣ:

Κάντε το να κινηθεί

Διερευνήστε πώς ένα μοντέλο που μοιάζει με αυτοκίνητο μπορεί να κινείται προς τα εμπρός και να αλλάζει κατευθύνσεις χρησιμοποιώντας μαθηματικές συναρτήσεις.

 

}

45 λεπτά

Τάξεις ΣΤ’ Δημοτικού- Β’ Γυμνασίου

Αρχάριο

Ερωτήσεις προς διερεύνηση

  • Πώς μπορούν να χρησιμοποιήσουν μαθηματικές συναρτήσεις για να αλλάξουν κατεύθυνση;

Προετοιμασία ( Prepare )

  • Βεβαιωθείτε ότι οι κόμβοι SPIKE Prime είναι φορτισμένοι, ειδικά αν η σύνδεση γίνεται μέσω Bluetooth.

Συμμετοχή ( Engage )

(Ομαδική συζήτηση, 5 λεπτά)

Εμπλέξτε τους μαθητές σε μια συζήτηση σχετικά με το πώς ο οδηγός προκαλεί την κίνηση ενός αυτοκινήτου.

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

Δείξτε στους μαθητές ένα βίντεο με το μοντέλο βάσης οδήγησης με το οποίο θα εργαστούν στη διερεύνηση να κινείται για να δουν πώς μπορεί να κινείται παρόμοια με ένα αυτοκίνητο. Μπορεί να χρησιμοποιηθεί το βίντεο engage από το μάθημα Training Camp 1. Το βίντεο είναι διαθέσιμο στη διεύθυνση https://education.lego.com/en-us/lessons/prime-competition-ready/training-camp-1-driving-around#ignite-a-discussion.

Συζητήστε το βίντεο με τους μαθητές.

Ανακάλυψη ( Explore )

(Μικρές ομάδες, 20 λεπτά)

Οι μαθητές θα διερευνήσουν ένα μοντέλο που μοιάζει με αυτοκίνητο ως είδος μεταφορικού μέσου.

Κατευθύνετε τους μαθητές στην ενότητα BUILD στην εφαρμογή SPIKE. Εδώ οι μαθητές μπορούν να έχουν πρόσβαση στις οδηγίες κατασκευής για το μοντέλο Driving Base. Ζητήστε από τους μαθητές να κατασκευάσουν το μοντέλο βάσης οδήγησης. Οι οδηγίες κατασκευής είναι επίσης διαθέσιμες στη διεύθυνση https://education.lego.com/en-us/support/spike-prime/building-instructions.

Καθοδηγήστε τους μαθητές να ανοίξουν ένα νέο έργο στον καμβά προγραμματισμού Python. Ζητήστε από τους μαθητές να διαγράψουν τυχόν κώδικα που βρίσκεται ήδη στον προγραμματιστικό χώρο. Οι μαθητές θα πρέπει να συνδέσουν τον κόμβο τους.  

Προτρέψτε τους μαθητές να σκεφτούν πώς θα προγραμματίσουν την κινητήρια βάση τους να κινείται. Οι μαθητές θα πρέπει να γράψουν ένα πρόγραμμα που να επιτρέπει στο όχημα να κινείται προς τα εμπρός, προς τα πίσω και να στρίβει προγραμματίζοντας τους κινητήρες. Αν οι μαθητές χρειάζονται έμπνευση για το πρόγραμμά τους, προτείνετε να κοιτάξουν το παράδειγμα προγράμματος από το μάθημα Bike Riding for Data. Παρόμοια με αυτό το πρόγραμμα, οι μαθητές θα πρέπει να συμπεριλάβουν μια μέθοδο για την πρόσθεση (επιτάχυνση) και την αφαίρεση (επιβράδυνση) της ταχύτητας.

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

Παράδειγμα κώδικα:

from spike import PrimeHub, MotorPair, LightMatrix
from spike.control import wait_for_seconds

hub = PrimeHub()
drive = MotorPair(‘C’, ‘D’)

\# Ορισμός της ταχύτητας κίνησης ως συνάρτηση
driving_speed = 25

def ride():
    hub.light_matrix.write(driving_speed)
    drive.move(25, ‘cm’, 0, driving_speed)

\# ορίστε τις συνθήκες για την κίνηση προς τα εμπρός και τον καθορισμό της ταχύτητας
while True:
    if hub.left_button.was_pressed():
        driving_speed = driving_speed – 5
        ride()
        wait_for_seconds(3)

    if hub.right_button.was_pressed():
        ταχύτητα οδήγησης = ταχύτητα οδήγησης + 5
        ride()
        wait_for_seconds(3)

Δώστε χρόνο στους μαθητές να εξερευνήσουν το πρόγραμμα. Προτρέψτε τους να συνεχίσουν να πατούν το δεξί ή/και το αριστερό κουμπί κατά την εκτέλεση του προγράμματος για να δουν πώς θα συνεχίσει να κινείται η βάση οδήγησης προσθέτοντας ή αφαιρώντας 5. Οι μαθητές θα μπορούν να βλέπουν κάθε φορά τη νέα ταχύτητα στον κόμβο.

Οδήγηση στο χώρο
Δεδομένου ότι τα αυτοκίνητα δεν κινούνται συχνά μόνο σε ευθεία γραμμή, προτρέψτε τους μαθητές να τροποποιήσουν το πρόγραμμά τους ώστε να περιλαμβάνει την κίνηση προς διαφορετικές κατευθύνσεις. Ενθαρρύνετε τους μαθητές να χρησιμοποιήσουν τις μαθηματικές τους συναρτήσεις για να καθορίσουν τον τρόπο με τον οποίο κάνουν στροφές.

from spike import PrimeHub, MotorPair, LightMatrix, Motor
from spike.control import wait_for_seconds

hub = PrimeHub()
drive = MotorPair(‘C’, ‘D’)
turn_rt = Motor(‘C’)
turn_lt = Motor(‘D’)

driving_speed = 25
turning = 360

\# Ορίστε τη συνάρτηση για την οδήγηση προς τα εμπρός. Η ταχύτητα πρέπει να είναι ακέραιος αριθμός, οπότε κατά τη διαίρεση πρέπει να στρογγυλοποιήσετε ώστε η μεταβλητή να παραμείνει ακέραιος αριθμός
def ride():
    hub.light_matrix.write(round(driving_speed))
    drive.move(5, ‘cm’, 0, round(driving_speed))
    wait_for_seconds(1)

\# set the function for turning right.
def turning_rt():
    hub.light_matrix.write(turning / 4)
    turn_rt.run_for_degrees(-turning, driving_speed)

\# set the function for turning left.
def turning_lt():
    hub.light_matrix.write(turning / 4)
    turn_lt.run_for_degrees(turning, driving_speed)

while True:
    ride()
    if hub.right_button.was_pressed():
        driving_speed = driving_speed + 5
        turning = turning + 360
        turning_rt()
        wait_for_seconds(3)

    if hub.left_button.was_pressed():
        driving_speed = driving_speed – 5
        turning = turning – 360
        turning_lt()
        wait_for_seconds(3)

Εξηγήστε το ( Explain )

(Ολόκληρη η ομάδα, 5 λεπτά)

Συζητήστε με τους μαθητές πώς λειτούργησε το πρόγραμμα. Κάντε στους μαθητές ερωτήσεις όπως:

  • Γιατί το πρόγραμμα σας επέτρεψε να συνεχίσετε να προσθέτετε ή να αφαιρείτε ταχύτητες;
  • Πώς καταφέρατε να τροποποιήσετε το πρόγραμμά σας ώστε να περιλαμβάνει στροφή και κίνηση προς διαφορετικές κατευθύνσεις;
  • Γιατί η βάση κίνησης συνέχισε να κινείται όταν δεν πατούσατε τα κουμπιά;

Κατά την απεικόνιση των στροφών χρησιμοποιήθηκε μια μαθηματική συνάρτηση για τη μετατροπή των πραγματικών βαθμών περιστροφής του τροχού σε πόσο γύρισε η βάση κίνησης. Σε αυτή την περίπτωση, όταν ο απλός κινητήρας περιστρέφεται κατά 360 μοίρες, πραγματοποιεί μια πλήρη περιστροφή του τροχού, η οποία στρέφει τη βάση κίνησης κατά 90 μοίρες. Χρησιμοποιώντας μαθηματικά μπορείτε να προσδιορίσετε την απάντηση στο 360 / n = 90. Σε αυτή την περίπτωση n = 4. Έτσι, βλέπετε αυτή τη μαθηματική συνάρτηση να χρησιμοποιείται στη γραμμή hub.light_matrix.write(turning / 4).

    Εξελίξτε το ( Elaborate )

    (Μικρές ομάδες, 10 λεπτά)

    Προκαλέστε τους μαθητές να αναγνωρίσουν σφάλματα στα προγράμματά τους.

    Δείξτε στους μαθητές κάθε πρόγραμμα που ακολουθεί και το μήνυμα σφάλμα του. Ζητήστε από τους μαθητές να συζητήσουν τι πρέπει να αλλάξει σε κάθε κώδικα για να διορθωθεί το σφάλμα ή να προστεθεί ο κώδικας που λείπει. Οι μαθητές μπορούν να πληκτρολογήσουν το πρόγραμμα ή να το αναθεωρήσουν μαζί ως ολόκληρη η τάξη. Σκεφτείτε να κάνετε τις αλλαγές ως τάξη και να βεβαιωθείτε ότι το πρόγραμμα εκτελείται σωστά μετά από κάθε αλλαγή.

    Δραστηριότητα εντοπισμού σφαλμάτων 1:

    Βρείτε το σφάλμα στο πρόγραμμα. Υπενθυμίστε στους μαθητές ότι μερικές φορές το σφάλμα δεν εντοπίζεται μέχρι να εκτελεστεί το πρόγραμμα και να γίνει μια ενέργεια για να διαβαστεί αυτό το μέρος του προγράμματος.

    from spike import PrimeHub, MotorPair, LightMatrix
    from spike.control import wait_for_seconds

    hub = PrimeHub()
    drive = MotorPair(‘C’, ‘D’)

    \# Ορισμός της ταχύτητας κίνησης ως συνάρτηση
    driving_speed = 25

    def ride():
        hub.light_matrix.write(driving_speed)
        drive.move(25, 0, driving_speed)

    \# ορίστε τις συνθήκες για την κίνηση και την ταχύτητα
    while True:
        if hub.left_button.was_pressed():
            driving_speed = driving_speed – 5
            ride()
            wait_for_seconds(3)

        if hub.right_button.was_pressed():
            ταχύτητα οδήγησης = ταχύτητα οδήγησης + 5
            ride()
            wait_for_seconds(3)

    Μήνυμα σφάλματος:
    Αρχείο “./projects/22622.py”, γραμμή 23
    Αρχείο “./projects/22622.py”, γραμμή 13, in ride
    Αρχείο “_api/motorpair.py”, γραμμή 1, in move
    TypeError: Η μονάδα δεν είναι συμβολοσειρά (string).

    Το μήνυμα σφάλματος αναφέρεται σε πολλές γραμμές που είναι λανθασμένες. Ωστόσο, στην πραγματικότητα δεν υποδεικνύει τη μία γραμμή που έχει το σφάλμα. Στη γραμμή 12, αφαιρέθηκαν οι μονάδες που λένε στη βάση οδήγησης πόσο μακριά πρέπει να κινηθεί προς τα εμπρός. Αυτή η γραμμή κώδικα πρέπει να διαβάζεται drive.move(25, ‘cm’, 0, driving_speed). Όταν πατηθεί το κουμπί για να κινηθεί η βάση οδήγησης, αναφέρεται στη συνάρτηση και δεν έχει τις μονάδες που απαιτούνται για να γνωρίζει πώς να κινηθεί προς τα εμπρός.

    Δραστηριότητα εντοπισμού σφαλμάτων 2:

    Βρείτε το σφάλμα στο πρόγραμμα. Υπενθυμίστε στους μαθητές ότι μερικές φορές το σφάλμα δεν εντοπίζεται μέχρι να εκτελεστεί το πρόγραμμα και να γίνει μια ενέργεια για να διαβαστεί αυτό το μέρος του προγράμματος.

    from spike import PrimeHub, MotorPair, LightMatrix
    from spike.control import wait_for_seconds

    hub = PrimeHub()
    drive = MotorPair(‘C’, ‘D’)

    \# Ορισμός της ταχύτητας κίνησης ως συνάρτηση
    driving_speed = 25

    def ride():
    hub.light_matrix.write(driving_speed)
    drive.move(-25, ‘cm’, 0, driving_speed)

    \# ορίστε τις συνθήκες για την κίνηση προς τα εμπρός και τον καθορισμό της ταχύτητας
    while True:
    if hub.left_button.was_pressed():
    driving_speed = driving1_speed – 5
    ride()
    wait_for_seconds(3)

    if hub.right_button.was_pressed():
    driving_speed = driving2_speed + 5
    ride()
    wait_for_seconds(3)

    Μήνυμα σφάλματος:
    File “programrunner/__init__.py”, line 1, in start_program
    Αρχείο “./projects/31408.py”, γραμμή 17
    NameError: η μεταβλητή ‘driving1_speed’ δεν έχει οριστεί

    Το μήνυμα σφάλματος δεν θα εμφανιστεί μέχρι οι μαθητές να πατήσουν ένα από τα κουμπιά. Οι μαθητές θα πρέπει να αναγνωρίσουν ότι το σφάλμα εμφανίζεται στη γραμμή 17. Το μήνυμα σφάλματος υποδεικνύει ότι το όνομα driving1_speed δεν έχει οριστεί. Πρόκειται για ένα τυπογραφικό λάθος στο πρόγραμμα, όπου το πρόγραμμα προσπαθεί να αναφερθεί σε μια μεταβλητή που δεν έχει οριστεί. Αυτό θα μπορούσε να υποδηλώνει ότι το πρόγραμμα γράφτηκε λανθασμένα προσπαθώντας να συμπεριλάβει μια νέα μεταβλητή εκεί που δεν χρειάζεται ή ξεχνώντας να ορίσει μια απαραίτητη μεταβλητή. Σε αυτή την περίπτωση, μια νέα μεταβλητή δεν είναι απαραίτητη.

    Προκαλέστε τους μαθητές να βρουν το δεύτερο λάθος σε αυτό το πρόγραμμα. Δεν παρέχεται μήνυμα σφάλματος για αυτό το σφάλμα, αλλά είναι παρόμοιο με το πρώτο σφάλμα που εντοπίστηκε. Συζητήστε τρόπους με τους οποίους οι μαθητές μπορούν να βρουν αυτό το δεύτερο σφάλμα και ζητήστε τους να προσδιορίσουν τον τρόπο διόρθωσής του. Σημείωση: το δεύτερο σφάλμα είναι το ίδιο με το πρώτο και βρίσκεται στη γραμμή 22.

    Αξιολόγηση  ( Evaluate )

    (Ομαδική άσκηση, 5 λεπτά)

    Παρατηρήσεις του εκπαιδευτικού:

    Συζητείστε για το πρόγραμμα με τους μαθητές.
    Κάντε στους μαθητές ερωτήσεις όπως:

    • Πώς καταφέρατε να χρησιμοποιήσετε μαθηματικές συναρτήσεις για να αλλάξετε τον τρόπο με τον οποίο κινείται η βάση οδήγησης τόσο σε ευθείες γραμμές όσο και κατά τη στροφή;
    • Ποια λάθη μπορεί να προκύψουν κατά τη δημιουργία πολύπλοκων προγραμμάτων; Ποιες είναι οι στρατηγικές για την αποσφαλμάτωση αυτών των σφαλμάτων;
    • Πώς θα μπορούσατε να χρησιμοποιήσετε τη βάση κίνησης για να στρίψετε αντί για έναν απλό κινητήρα;

    Αυτοαξιολόγηση:

    Βάλτε τους μαθητές να απαντήσουν στα ακόλουθα στα ημερολόγιά τους:

    • Τι μάθατε σήμερα σχετικά με τη χρήση πολλαπλών μαθηματικών συναρτήσεων σε ένα πρόγραμμα;
    • Ποια χαρακτηριστικά ενός καλού συμπαίκτη επέδειξα σήμερα;
    • Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση του χρόνου τους σήμερα.
    • Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση των υλικών (εξαρτημάτων) τους σήμερα.
    Υποστήριξη εκπαιδευτικών

    Οι μαθητές θα:

    • Προγραμματίσουν μια βάση οδήγησης να κινείται προς τα εμπρός και να αλλάζει κατευθύνσεις
    • Δημιουργήσουν ένα πρόγραμμα με μαθηματικές συναρτήσεις
    Πράγματα που θα χρειαστείτε
    • Σετ SPIKE Prime έτοιμα για χρήση από τους μαθητές
    • Συσκευές με εγκατεστημένη την εφαρμογή SPIKE
    • Ημερολόγια μαθητών
    Εκπαιδευτικά πρότυπα

    CSTA
    2-CS-02
    Σχεδιασμός έργων που συνδυάζουν στοιχεία υλικού και λογισμικού για τη συλλογή και ανταλλαγή δεδομένων.

    2-AP-10
    Χρήση διαγραμμάτων ροής ή/και ψευδοκώδικα για την αντιμετώπιση σύνθετων προβλημάτων ως αλγόριθμοι

    2-AP-13
    Να αναλύουν προβλήματα και υποπροβλήματα σε μέρη για να διευκολύνουν το σχεδιασμό, την υλοποίηση και την αναθεώρηση προγραμμάτων.

    2-AP-16
    Ενσωμάτωση υπάρχοντος κώδικα, μέσων και βιβλιοθηκών σε πρωτότυπα προγράμματα και απόδοση των στοιχείων αυτών.

    2-AP-17
    Συστηματική δοκιμή και βελτίωση των προγραμμάτων με τη χρήση μιας σειράς περιπτώσεων δοκιμής.

    2-AP-19
    Τεκμηρίωση προγραμμάτων προκειμένου να διευκολύνεται η παρακολούθηση, ο έλεγχος και η αποσφαλμάτωση.