LEGO® Education > Σχέδια Μαθήματος > ΣΧΕΔΙΟ ΕΝΟΤΗΤΑΣ:
Νέες κινήσεις με κινητήρες
Οι μαθητές προγραμματίζουν τους κινητήρες τους ώστε να κινούνται σε ακριβείς θέσεις και για ακριβείς μοίρες.
45 λεπτά
Τάξεις Ε’ Δημοτικού- Α’ Γυμνασίου
Αρχάριοι
Ερωτήσεις προς διερεύνηση
- Πώς κινούνται τα ρομπότ με ακρίβεια;
Προετοιμασία ( Prepare )
Βεβαιωθείτε ότι οι κόμβοι SPIKE Prime είναι φορτισμένοι, ειδικά αν η σύνδεση γίνεται μέσω Bluetooth.
Βεβαιωθείτε ότι οι μαθητές έχουν κατασκευάσει το μοντέλο Getting Started 2: Motors and Sensors μέσω του βήματος 19 που χρησιμοποιήθηκε στο μάθημα Νέες κινήσεις με κινητήρες.
Συμμετοχή ( Engage )
Χρησιμοποιώντας ένα ελαστικό από το σετ SPIKE Prime, ζητήστε από τους μαθητές να σκεφτούν διάφορους τρόπους για να μετρήσουν πόσο μακριά θα έφτανε το ελαστικό αν έκανε μία περιστροφή. Οι μαθητές θα πρέπει να καταλήξουν σε διάφορες μεθόδους για τον προσδιορισμό αυτής της απόστασης.
- Προτρέψτε τους μαθητές να σκεφτούν τον τροχό ως κύκλο.
- Συζητήστε μαζί τους πώς να υπολογίσετε την περιφέρεια για να προσδιορίσετε την απόσταση.
- Ρωτήστε τους μαθητές πώς θα μπορούσαν να μετρήσουν την περιφέρεια του τροχού χρησιμοποιώντας μια επίπεδη επιφάνεια, αν δυσκολεύονται.
- Ζητήστε από τους μαθητές να φανταστούν ότι έχουν ένα ρομπότ με τροχούς. Πρέπει να κωδικοποιήσουν τους κινητήρες για να μετακινηθούν σε μια συγκεκριμένη απόσταση.
- Ρωτήστε τους μαθητές πώς θα μπορούσαν να προγραμματίσουν το μοτέρ για να κινηθεί εκτός από το χρόνο; Πώς αυτό θα βοηθούσε στην ακριβέστερη κίνηση του ρομπότ;
- Συζητήστε ιδέες με τους μαθητές σχετικά με το πώς να κινηθεί μόνο ½ στροφή (0,5 περιστροφή), μια πλήρη στροφή (1 περιστροφή), 2 στροφές (2 περιστροφές).
Σημείωση: Ο τροχός έχει διάμετρο 5,6 cm (2,2 in.) και διανύει μια απόσταση 17,6 cm (6,9 in) ανά περιστροφή ή έναν πλήρη κύκλο 360ο μοιρών.
Ανακάλυψη ( Explore )
Οι μαθητές θα εξερευνήσουν πώς να προγραμματίζουν κινητήρες για να κινούνται χρησιμοποιώντας μοίρες.
Εκτέλεση ενός μοτέρ για μοίρες
Η εκτέλεση ενός κινητήρα για μοίρες σας επιτρέπει να καθορίσετε πόσο μακριά θα γυρίσει ο κινητήρας σε βήματα μοίρας – 1/360 της περιστροφής. Καταιγισμός ιδεών με τους μαθητές για το πώς θα μπορούσαν να προγραμματίσουν τον κινητήρα να κινηθεί.
Οι μαθητές θα πρέπει να σκεφτούν ποιες πληροφορίες χρειάζεται το λογισμικό για να λειτουργήσει σωστά το υλικό. Γράψτε μαζί με τους μαθητές ένα πρόγραμμα ψευδοκώδικα για να κάνετε τον κινητήρα να τρέξει για έναν πλήρη κύκλο.
Ένα παράδειγμα θα μπορούσε να είναι το εξής:
- Εισαγωγή κινητήρα
- Αρχικοποίηση κινητήρα
- Ενεργοποίηση του κινητήρα
- Μετακίνηση του κινητήρα κατά 360 μοίρες
Σημείωση: Ο κώδικας που γράφεται βήμα προς βήμα δεν χρειάζεται να ταιριάζει ακριβώς με αυτό που θα υπάρχει στο πρόγραμμα. Ο ψευδοκώδικας χρησιμοποιείται για να βοηθήσει τους μαθητές να σκεφτούν ποια βήματα χρειάζονται ώστε ο προγραμματισμός να κωδικοποιηθεί γραμμικά.
- Καθοδηγήστε τους μαθητές να ανοίξουν ένα νέο έργο στον καμβά προγραμματισμού της Python.
- Ζητήστε από τους μαθητές να διαγράψουν τυχόν κώδικα που υπάρχει ήδη στην περιοχή προγραμματισμού. Οι μαθητές θα πρέπει να συνδέσουν τον διανομέα τους και να συνδέσουν έναν κινητήρα στη θύρα C του διανομέα τους.
- Δώστε στους μαθητές το δείγμα κώδικα για την κίνηση του κινητήρα.
- Ζητήστε από τους μαθητές να εκτελέσουν το πρόγραμμα. Οι μαθητές μπορούν επίσης να αντιγράψουν και να επικολλήσουν αυτόν τον κώδικα από την ενότητα Βάση γνώσεων Getting Started Part 2: Controlling the Motors στον καμβά προγραμματισμού.
from spike import Motor
\# Αρχικοποίηση του κινητήρα
motor = Motor(‘C’)
\# Περιστροφή του κινητήρα κατά 360 μοίρες δεξιόστροφα
motor.run_for_degrees(360)
Συζητήστε με τους μαθητές πώς κινήθηκε ο κινητήρας. Βοηθήστε τους μαθητές να αναγνωρίσουν τον δείκτη στον κινητήρα που σας επιτρέπει να ρυθμίσετε τη θέση στις 0 μοίρες. Αυτό θα επιτρέψει στους μαθητές να μετρήσουν πόσο μακριά κινείται ο κινητήρας.
Ζητήστε από τους μαθητές να θέσουν το σημάδι στη θέση 0. Εκτελέστε ξανά το πρόγραμμα. Ρωτήστε τους μαθητές αν ο δείκτης επιστρέφει στην ίδια θέση.
00
Προτρέψτε τους μαθητές να βάλουν διαφορετικούς αριθμούς στις τιμές των μοιρών για να δουν πώς κινείται ο κινητήρας. Βάλτε τους να δοκιμάσουν μεγάλους και μικρούς αριθμούς.
Βεβαιωθείτε ότι οι μαθητές προσπαθούν συγκεκριμένα να κινήσουν τον κινητήρα χρησιμοποιώντας μια αρνητική τιμή. Ρωτήστε τους τι άλλαξε. (Η κατεύθυνση αντιστράφηκε.)
Ζητήστε από τους μαθητές να εισάγουν έναν αριθμό μεγαλύτερο από 360. Τι συμβαίνει;
# Run the motor 360 degrees clockwise, at 30% speed
motor.run_for_degrees(-360, 30)
Συζητήστε τι ανακάλυψαν οι μαθητές μετά τις έρευνές τους.
Εκτέλεση ενός μοτέρ στη θέση
Οι μαθητές θα διερευνήσουν τον τρόπο λειτουργίας ενός μεμονωμένου κινητήρα σε μια θέση.
00
- Ζητήστε από τους μαθητές να εντοπίσουν ξανά τον δείκτη θέσης και να βεβαιωθούν ότι είναι ευθυγραμμισμένος. Όταν είναι ευθυγραμμισμένος, ο κινητήρας βρίσκεται στη θέση 0 μοιρών. Συζητήστε με τους μαθητές πώς να προγραμματίσετε τον κινητήρα να κινηθεί σε μια συγκεκριμένη θέση (ο κινητήρας θα σταματήσει σε μια ακριβή θέση).
- Προτρέψτε τους μαθητές να αλλάξουν τον ψευδοκώδικά τους ώστε να χρησιμοποιούν θέση αντί για μοίρες.
- Δώστε στους μαθητές το δείγμα κώδικα για την κίνηση του κινητήρα.
- Ζητήστε από τους μαθητές να πληκτρολογήσουν αυτό το πρόγραμμα στον καμβά προγραμματισμού. Οι μαθητές μπορούν επίσης να αντιγράψουν και να επικολλήσουν αυτόν τον κώδικα από την ενότητα Βάση γνώσεων Getting Started Part 2: Controlling the Motors. Ζητήστε από τους μαθητές να εκτελέσουν αυτό το πρόγραμμα.
from spike import Motor
# Initialize the motor
motor = Motor(‘C’)
# Place the motor in position “0,” aligning the markers
motor.run_to_position(0, ‘shortest path’, 75)
- Συζητήστε το πρόγραμμα με τους μαθητές για να εντοπίσουν τι συμβαίνει κατά την εκτέλεση του κώδικα. Αν οι μαθητές ξεκινήσουν από τη θέση 0 μοίρες, ο κινητήρας δεν θα κινηθεί.
- Ζητήστε από τους μαθητές να μετακινήσουν τον κινητήρα ώστε να μην βρίσκεται πλέον στη θέση 0 μοίρες. Εκτελέστε το πρόγραμμα. Ο κινητήρας θα πρέπει να μετακινηθεί στη θέση 0 μοίρες. Προς ποια κατεύθυνση κινήθηκε για να φτάσει εκεί;
- Ζητήστε από τους μαθητές να εκτελέσουν το πρόγραμμα αρκετές ακόμη φορές με τον κινητήρα να ξεκινά σε διαφορετικές θέσεις κάθε φορά. Συζητήστε τι συμβαίνει. Οι μαθητές θα πρέπει να αναγνωρίσουν ότι ο κινητήρας δεν κινείται με τον ίδιο τρόπο κάθε φορά. Ο κινητήρας κινείται προς την κατεύθυνση που κάνει τη συντομότερη διαδρομή πίσω στη θέση 0 μοίρες.
- Επανεξετάστε μαζί τις γραμμές του κώδικα για να επισημάνετε γιατί ο κινητήρας κινείται με αυτόν τον τρόπο.
Ποια είναι η μεγαλύτερη κίνηση που μπορεί να κάνει ένας κινητήρας για να επιστρέψει στη θέση 0;
- Ζητήστε από τους μαθητές να αλλάξουν τον κώδικα για να κάνουν τον κινητήρα να σταματήσει σε διαφορετικές θέσεις.
- Μπορείτε να τους δώσετε αυτό το δείγμα κώδικα και στη συνέχεια να τους αφήσετε να εξερευνήσουν ιδέες για το πώς θα μπορούσαν να αλλάξουν τον κώδικα.
- Υπενθυμίστε στους μαθητές ότι κατά την εξερεύνηση υπάρχει μεγάλη πιθανότητα να λάβουν ένα μήνυμα σφάλματος στην κάτω κονσόλα και το πρόγραμμα να μην εκτελεστεί.
from spike import PrimeHub, Motor
from spike.control import wait_for_seconds
# Initialize the motor
motor = Motor(‘C’)
# Run the motor to different positions, at different speeds
wait_for_seconds(1)
motor.run_to_position(0, ‘shortest path’, 30)
wait_for_seconds(1)
motor.run_to_position(90, ‘clockwise’, 100)
Εξηγήστε το ( Explain )
Επιτρέψτε στους μαθητές να μοιραστούν τα νέα παραδείγματα προγραμμάτων που δημιούργησαν για τις μοίρες και τη θέση και να συζητήσουν τρόπους προγραμματισμού του κινητήρα. Συζητήστε πώς ο κινητήρας μπορεί να ρυθμιστεί ώστε να κινείται για μοίρες και πότε αυτό μπορεί να είναι χρήσιμο σε ένα πρόγραμμα.
- Πώς λειτουργεί αυτό το πρόγραμμα;
- Πότε θα ήταν χρήσιμο να προγραμματίσετε έναν κινητήρα να κινείται χρησιμοποιώντας μοίρες ή για θέση;
- Γιατί η χρήση μοίρας ή θέσης επιτρέπει μεγαλύτερη ακρίβεια στην κίνηση από τον προγραμματισμό για δευτερόλεπτα;
- Πώς κινήθηκε ο κινητήρας όταν βάλατε έναν αριθμό μεγαλύτερο από 360;
- Πώς μπορείτε να υπολογίσετε πόσες μοίρες θα χρειαστεί να προγραμματίσετε;
- Όταν χρησιμοποιείτε τη συντομότερη διαδρομή στο πρόγραμμά σας για τη θέση, γιατί ο κινητήρας δεν κινείται αν ξεκινήσετε από τη θέση 0 μοίρες;
- Πώς μπορείτε να προγραμματίσετε τον κινητήρα να κινείται προς την αντίθετη κατεύθυνση;
Εξελίξτε το ( Elaborate )
- Συνεργαστείτε για να εργαστείτε στην αποσφαλμάτωση. Δώστε στους μαθητές καθέναν από τους ακόλουθους κώδικες. Συζητήστε τι είναι λάθος σε κάθε κώδικα.
- Βεβαιωθείτε ότι οι μαθητές εκτελούν κάθε κώδικα και εξετάζουν το μήνυμα σφάλματος στην κονσόλα.
1) Τι λείπει;
from spike import Motor
# Rotate the motor 360 degrees clockwise
motor.run_for_degrees(360)
Οι μαθητές θα πρέπει να αναγνωρίσουν ότι ο κινητήρας δεν είναι αρχικοποιημένος και επομένως δεν μπορεί να τρέξει για μοίρες. Το μήνυμα σφάλματος στην κονσόλα είναι
File “lib/hub/flash/programrunner/__init__.py”, line 1, in start_program
File “./projects/31408.py”, line 4
NameError: name ‘motor’ isn’t defined
Οι μαθητές πρέπει να προσθέσουν motor=Motor(‘C’) μετά τη γραμμή import. Ζητήστε από τους μαθητές να το προσθέσουν αυτό και να εκτελέσουν ξανά το πρόγραμμα για να ελέγξουν το πρόγραμμά τους.
2) Ποιος αριθμός είναι λάθος και γιατί;
from spike import Motor
# Initialize the motor
motor = Motor(‘C’)
# Run motor for 2 seconds at 50% speed
motor.run_for_seconds(2.0, 150)
Οι μαθητές θα πρέπει να αναγνωρίσουν ότι η ισχύς του κινητήρα έχει οριστεί στο 150, το οποίο βρίσκεται εκτός του επιτρεπόμενου εύρους 100%. Το πρόγραμμα, ωστόσο, εξακολουθεί να εκτελείται χωρίς μήνυμα σφάλματος στην κονσόλα. Η ισχύς θα επανέλθει στο 100% και θα εκτελεστεί το πρόγραμμα.
3) Τι συμβαίνει;
from spike import PrimeHub, Motor
from spike.control import wait_for_seconds
# Initialize the motor
motor = Motor(‘C’)
# Run the motor to different positions, at different speeds
wait_for_seconds(1)
motor.run_to_position(0, ‘shorest path’, 30)
wait_for_seconds(1)
motor.run_to_position(90, ‘clockwise’, 100)
Οι μαθητές θα πρέπει να αναγνωρίσουν ότι η λέξη shortest είναι ανορθόγραφη στη γραμμή 9. Το μήνυμα σφάλματος υποδεικνύει ότι υπάρχει πρόβλημα στη γραμμή 9 και ότι το σφάλμα είναι μια τιμή που δεν επιτρέπεται.
File “lib/hub/flash/programrunner/__init__.py”, line 1, in start_program
File “./projects/23262.py”, line 9
File “lib/hub/flash/spike/motor.py”, line 1, in run_to_position
ValueError: direction is not one of the allowed values: (‘shortest path’, ‘clockwise’, ‘counterclockwise’).
Αξιολόγηση ( Evaluate )
Παρατήρηση του εκπαιδευτικού:
Συζήτηση για το πρόγραμμα με τους μαθητές.
Κάντε στους μαθητές ερωτήσεις όπως:
- Ποιοι είναι οι διαφορετικοί τρόποι με τους οποίους μπορείτε να προγραμματίσετε τους κινητήρες σας να κινηθούν;
- Ποιες μέθοδοι επιτρέπουν πιο ακριβείς κινήσεις;
- Ποιοι είναι οι τρόποι με τους οποίους μπορείτε να προγραμματίσετε την κίνηση χρησιμοποιώντας τη θέση;
Αυτοαξιολόγηση:
- Βάλτε τους μαθητές να απαντήσουν στα ακόλουθα στο ημερολόγιό τους:
- Τι μάθατε σήμερα που μπορεί να σας βοηθήσει στον προγραμματισμό ρομπότ για να κινούνται με ακρίβεια;
- Ποια χαρακτηριστικά ενός καλού συμπαίκτη επέδειξα σήμερα;
- Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση του χρόνου τους σήμερα.
- Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση των υλικών (εξαρτημάτων) που έκαναν σήμερα.
Υποστήριξη εκπαιδευτικών
Οι μαθητές θα:
- Προγραμματίσoουν έναν κινητήρα να μετακινηθεί στη θέση του χρησιμοποιώντας τη συντομότερη διαδρομή.
- Προγραμματίσουν έναν κινητήρα να κινηθεί σε μια συγκεκριμένη θέση.
- Προγραμματίσουν έναν κινητήρα να κινηθεί σε έναν καθορισμένο αριθμό μοιρών.
Πράγματα που θα χρειαστείτε
- SPIKE Prime sets
- Συσκευές με εγκατεστημένη την εφαρμογή SPIKE App.
- Ημερολόγια μαθητών
Εκπαιδευτικά πρότυπα
CSTA
2-CS-02
Σχεδιασμός έργων που συνδυάζουν στοιχεία υλικού και λογισμικού για τη συλλογή και ανταλλαγή δεδομένων.
2-AP-10
Να χρησιμοποιούν διαγράμματα ροής ή/και ψευδοκώδικα για την αντιμετώπιση σύνθετων προβλημάτων ως αλγόριθμοι
2-AP-16
Ενσωμάτωση υπάρχοντος κώδικα, μέσων και βιβλιοθηκών σε πρωτότυπα προγράμματα και απόδοση των στοιχείων αυτών.
2-AP-17
Συστηματική δοκιμή και βελτίωση των προγραμμάτων με τη χρήση μιας σειράς περιπτώσεων δοκιμής.
2-AP-19
Τεκμηρίωση προγραμμάτων ώστε να διευκολύνεται η παρακολούθηση, ο έλεγχος και η αποσφαλμάτωση.
CCSS ELA
SL.8.1
Συμμετέχουν αποτελεσματικά σε μια σειρά από συνεργατικές συζητήσεις (ατομικές, ομαδικές και υπό την καθοδήγηση του δασκάλου) με διαφορετικούς εταίρους για θέματα, κείμενα και ζητήματα της 8ης τάξης, αξιοποιώντας τις ιδέες των άλλων και εκφράζοντας με σαφήνεια τις δικές τους
SL.8.4
Παρουσιάζουν ισχυρισμούς και ευρήματα, δίνοντας έμφαση στα σημαντικότερα σημεία με εστιασμένο, συνεκτικό τρόπο, με σχετικά αποδεικτικά στοιχεία, έγκυρη επιχειρηματολογία και καλά επιλεγμένες λεπτομέρειες- χρησιμοποιούν κατάλληλη οπτική επαφή, επαρκή ένταση και σαφή προφορά.
RST.6-8.3
Ακολουθούν με ακρίβεια μια διαδικασία πολλαπλών βημάτων κατά τη διεξαγωγή πειραμάτων, τη λήψη μετρήσεων ή την εκτέλεση τεχνικών εργασιών
L.8.6
Να αποκτούν και να χρησιμοποιούν με ακρίβεια τις κατάλληλες για την τάξη γενικές ακαδημαϊκές λέξεις και φράσεις και φράσεις για συγκεκριμένους τομείς- να συγκεντρώνουν γνώσεις λεξιλογίου όταν εξετάζουν μια λέξη ή φράση σημαντική για την κατανόηση ή την έκφραση
Λεξιλόγιο
Βαθμοί
Θέση