Αξιοποίηση του λογισμικού Scratch στον προγραμματισμό του κινητού-ρομπότ Thymio (14η Δραστηριότητα)

Του Νίκου Δαπόντε

Α. ΕΙΣΑΓΩΓΗ

Στις προηγούμενες 13 Δραστηριότητες – Θεματικές ενότητες – που αναρτήθηκαν στο εκπαιδευτικό portal (https://www.eduportal.gr/el/) εδώ και ένα χρόνο, μας ενδιέφερε να γνωρίσουμε αρκετά από τα ιδιαίτερα χαρακτηριστικά (τεχνικά – παιδαγωγικά- προγραμματιστικά) του κινητού ρομπότ-εδάφους Thymio.

  • Χαιρόμαστε που αυτό το ρομποτάκι έλκει την καταγωγή του από τις ιδέες του Jean Piaget (constructivism) και του Seymour Papert (constructionism) αναφορικά με τα ενδιαφέροντα των παιδιών στα διαφορετικά στάδια της εξέλιξής τους και την οικοδόμηση νέων γνώσεων με την αξιοποίηση εργαλείων και μέσων τα οποία διευκολύνουν τη μάθηση.
  • Μας ικανοποιεί, ως εκπαιδευτικούς, η εφαρμογή της ιδέας της «Πολλαπλότητας των προγραμματιστικών περιβαλλόντων» στην πλατφόρμα ASEBA που συνοδεύει το Thymio και περιλαμβάνει ταυτόχρονα τρεις γλώσσες προγραμματισμού:

Α) Visual Programming (Οπτικός Προγραμματισμός βασισμένος σε εικονίδια και στην ιδέα του ζεύγους EVENT (γεγονός) –>  ACTION (Δράση))

B)BlocklyProgramming (Προγραμματισμός βασισμένος στο BLOCKLY της Google με άμεσο επηρεασμό από το Scratch)

Γ) Text Programming (Προγραμματισμός σε γλώσσα κειμένου ASEBA για το Thymio)

  • Μας χαροποιεί το γεγονός ότι η φιλοσοφία τουproject Thymio είναι εξ’ ολοκλήρου προσανατολισμένη στο πνεύμα του «OpenLicenses” σε όλα (hardware, software, documentation) καθώς και η εξυπηρέτηση που προσφέρει το επίσημο site (www.thymio.org σε 6 γλώσσες) με το πλούσιο και συχνά εμπλουτιζόμενο  περιεχόμενο (ειδήσεις, δραστηριότητες, ιδέες…).
  • Τέλος, για να ολοκληρώσουμε την εισαγωγή, μας ενδιαφέρει ιδιαίτερα η δυνατότητα χρησιμοποίησης ενός εμπλουτισμένου περιβάλλοντος του Scratch (το φορτώνω στον υπολογιστή μου και τρέχει στα Windows 10, ας το βαφτίσουμε “Scratch for Thymio”) για τον προγραμματισμό του ρομπότ Thymio, έστω και στην πειραματική του μορφή σήμερα (Απρίλης 2017). Επομένως, αυτό που θα μας απασχολήσει από δω και πέρα θα είναι και η αξιοποίηση αυτού του “Scratch for Thymio” μαζί με τα υπόλοιπα τρία περιβάλλοντα του ASEBA.

Β. THYMIO + SCRATCH = Δημιουργική αμφίδρομη σχέση

Είναι γνωστό ότι τα δύο βασικά περιβάλλοντα «οπτικού προγραμματισμού – VPL» και BLOCKLY εξυπηρετούν τις ανάγκες προγραμματισμού του Thymio με ένα σύνολο ειδικών εντολών και αυτό γίνεται με επιτυχία, κατά τη γνώμη μου. Όμως, η επικοινωνία εξακολουθεί να είναι μιας κατεύθυνσης: πάντα από το προγραμματιστικό περιβάλλον VPL ή BLOCKLY προς το ρομποτάκι που υπάκουα εκτελεί συγκεκριμένες κάθε φορά εντολές και αντιδρά σύμφωνα με το περιβάλλον του. Αλλά, εκτός από αυτό απουσιάζουν από τις εντολές και διαδικασίες προγραμματισμού του ρομπότ δυνατότητες, όπως για παράδειγμα, η χρήση μαθηματικών εργαλείων όπως η τετραγωνική ρίζα, τα ημίτονα, συνημίτονα κ.λ.π.

Επιπλέον, και στα δύο παραπάνω περιβάλλοντα, δεν μας επιτρέπεται να δημιουργούμε τις  δικές μας εντολές ή διαδικασίες. Μ’ άλλα λόγια δεν έχουμε τη δυνατότητα να φτιάξουμε το δικό μας εικονίδιο ή block χρησιμοποιώντας τα βασικά στοιχεία του περιβάλλοντος.

Τέλος, δεν μας επιτρέπεται να χρησιμοποιήσουμε αυτά τα περιβάλλοντα προγραμματισμού ώστε να δίνουμε εντολές, μέσω των αισθητήρων και των κουμπιών ή κινητήρων του ρομπότ,  σε αντικείμενα – sprites που «ζούνε» στο virtual κόσμο της οθόνης του υπολογιστή μας.

Τις πιο πάνω «αδυναμίες» έρχεται να καλύψει το «Scratch for Thymio» μια και έχουμε στη διάθεσή μας όλο το γνωστό οπλοστάσιο του Scratch (λίστες, δημιουργία blocks, μαθηματικά εργαλεία κ.α.). Αυτό, βέβαια, σημαίνει ότι η χρήση του για τον προγραμματισμό του Thymio προϋποθέτει στοιχειώδεις γνώσεις και εμπειρίες προγραμματισμού στο Scratch του M.I.T.  (Δείτε το βίντεο στην ιστοσελίδα https://scratch.mit.edu/about ). Επιπλέον, θεωρούμε ότι ο αρχάριος, προτού χρησιμοποιήσει το “Scratch for Thymio”, καλό θα είναι  να εξοικειωθεί προηγουμένως τόσο με τα χαρακτηριστικά του ρομπότ (βλέπε τις προηγούμενες δραστηριότητες στο eduportal) όσο και με τα περιβάλλοντα του «Οπτικού προγραμματισμού VPL» και του BLOCKLY.

Με τη σύνδεση του Thymio με το Scratch βρισκόμαστε μπροστά στο γνωστό «κλασσικό» περιβάλλον του Scratch εμπλουτισμένο με τις εντολές και λειτουργίες ρομποτικού προγραμματισμού.

Στην παρακάτω εικόνα παρουσιάζονται πιο καθαρά όλες  οι διαθέσιμες εντολές και λειτουργίες (μερικές από αυτές δεν λειτουργούν, μια και είναι σε πειραματικό στάδιο):

Για όποιον ενδιαφέρεται όχι μόνο να γνωρίσει τα νέα blocks αλλά και να πειραματιστεί άμεσα και γρήγορα, δεν έχει παρά να τα μεταφέρει στο χώρο προγραμματισμού του Scratch και να κάνει κλικ πάνω τους. Το Scratch εξυπηρετεί το ρομποτάκι Thymio ώστε να απαντάει… και να εκτελεί εντολές άμεσα παρατηρήσιμες: το ρομποτάκι κινείται μπροστά ή πίσω, στρέφεται δεξιά ή αριστερά, διαγράφει κυκλικά τόξα ορισμένης ακτίνας και γωνίας, μας δίνει τον προσανατολισμό του και τη θέση του, μας λέει ποιοι αισθητήρες λειτουργούν σε μια εξωτερική επίδραση κ.λ.π.).

Από αυτήν την άποψη, ο προγραμματισμός ενός κινητού ρομπότ όπως ο Thymio, συνδέεται άμεσα με την πειραματική διαδικασία επίλυσης προβλημάτων και μας εξυπηρετεί στο να σκεφτόμαστε, να εξερευνούμε, να μαθαίνουμε και να διδάσκουμε (βλέπε το πρόσφατο άρθρο του Allen Downey «Programming as a way of thinking» στο περιοδικό SCIENTIFIC AMERICAN, 26 Απριλίου 2017).

 Παρακάτω δίνονται ορισμένα παραδείγματα για πειραματισμό:

Παράδειγμα 1.    Εντολή:   move < αριθμός > mm

Παράδειγμα 2.    Εντολή:   turn < αριθμός > degrees

Ας σημειωθεί ότι το < όρισμα >  είναι οποιοσδήποτε αριθμός (θετικός ή αρνητικός) στα λογικά όρια λειτουργίας ενός κινητού ρομπότ, όπως το Thymio,  για τη διδασκαλία «εκπαιδευτικής ρομποτικής» στο Δημοτικό και το Γυμνάσιο.

Παράδειγμα 3. Εντολή    κύκλος ακτίνας < αριθμός > τόξου < αριθμός >

Συνοψίζοντας θα λέγαμε ότι το ρομποτάκι ακολουθεί ένα κυκλικό τόξο δεδομένης ακτίνας και σταματάει. Από την άλλη, διαπιστώνουμε ότι

— – αν η ακτίνα R > 0, τότε, το ρομποτάκι κινείται μπροστά

— αν η ακτίνα R < 0, τότε, το ρομποτάκι κινείται προς τα πίσω

— αν το τόξο γωνίας α > 0, τότε, στρέφεται δεξιά

— αν το τόξο γωνίας α < 0, τότε, στρέφεται αριστερά.

Παράδειγμα 4. Δύο εντολές για τους κινητήρες του Thymio

4astart motors < ταχύτητα αριστερού τροχού> Χ < ταχύτητα δεξιού τροχού > mm / sec

4b. stop motors

Μετά από αυτά τα συμπεράσματα, εύκολα θα μπορούσαμε να απαντήσουμε στα παρακάτω ερωτήματα: Πρώτα σκέψου και διατύπωσε μια πρόβλεψη και μετά ελέγχεις την ορθότητα της.

Παράδειγμα 5. Εντολές για τη διαχείριση των 8 LEDs στο πάνω μέρος του Thymio και η μοναδική νέα εντολή για ήχο

5.a    switch dial to < αριθμός >       

5.b    next  dial                  

5.c     leds clear

5.d     play note < αριθμός > για < αριθμός > 60th

 

Αμέσως μετά σκέφτηκα να φτιάξω μια διαδικασία η οποία θα δίνει εντολές στο ρομποτάκι να ανάβουν κυκλικά, το ένα μετά το άλλο, τα 8 LEDs. Επιπλέον, σκέφτηκα να φτιάξω ένα BLOCK στο οποίο να περιλαμβάνονται και οι 4 εντολές του παραδείγματος. Παρακάτω παρουσιάζω αυτά τα δύο μικρά προγραμματάκια με τα οποία επιτελείται η ίδια εργασία :

Για την εντολή play note ….. επαναλαμβάνουμε ότι σχετικό αναφέρθηκε στην 6η Δραστηριότητα με θέμα τον προγραμματισμό ήχων και μουσικής .

«Για να παραχθεί μια μουσική νότα από μια χορδή (κιθάρας ή ανθρώπινη ή άλλη χορδή), πρέπει αυτή να πάλλεται. Συχνότητα λέγεται ο αριθμός παλμών στο κάθε δευτερόλεπτο και μετριέται σε Ηz  (Χερτζ). Επειδή στην Ευρωπαϊκή μουσική έχουμε 7 νότες αλλά 12 ημιτόνια (μεταξύ μι-φα και σι-ντο δεν υπάρχει ημιτόνιο), ο τύπος με τον οποίο προκύπτουν όλες οι συχνότητες για τις νότες χρησιμοποιεί την “δωδεκάτη ρίζα του 2” και είναι ο εξής:

Όπου:   κ=0,2,4,5,7,9,11  για τις νότες αντίστοιχα: ντο, ρε, μι, φα, σολ, λα, σι.  Αν προσθέσουμε και τις ενδιάμεσες τιμές του κ=1,3,6,8,10 προκύπτουν οι νότες με τις διέσεις και λ=1,2,3,4,5,6,7,8   για τις οκτάβες.
Οι συχνότητες ν είναι σε Hz. Ο δείκτης στο ν δείχνει “ποιά νότα σε ποιά οκτάβα.  Οι συχνότητες που προκύπτουν στις νότες  λα  είναι σε ακέραιους αριθμούς:   110 Hz,  220Hz, 440Hz,  880Hz,  1760 Hz,  3520 Hz,  7040 Hz , 14080 Ηz  (ύστερα από την όγδοη οκτάβα «κουδουνίζουν τα … αυτιά!!!).   (http://users.sch.gr/stamgian/home8.htm)

Διάλεξα την 3η Οκτάβα (στην οποία η νότα λα έχει συχνότητα 440 Hz) και δέχτηκα τις παρακάτω συχνότητες όπως παρουσιάζεται στον πίνακα:

Παράδειγμα 6. Η λειτουργία < touching front > και οι τρόποι πρώτης γνωριμίας της.

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

Για περισσότερα…..