To Thymio ως χειριστήριο οπτικών εφέ, προσομοιώσεων και animations στην οθόνη με τους αισθητήρες του Thymio στο περιβάλλον Scratch 3.0

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

Σε προηγούμενη ανάρτηση μας στο Eduportal ασχοληθήκαμε με τη χρήση του Thymio ως τηλεχειριστήριο και καλύψαμε περιπτώσεις σχεδίασης στην οθόνη (https://www.eduportal.gr/to-rompotaki-thymio-os-tilecheiristirio-remote-control-psifiakon-antikeimenon-stin-othoni/).  Συνεχίζοντας στην ίδια λογική, έχει ενδιαφέρον να δούμε το πώς μπορούμε να ελέγχουμε, με τη βοήθεια αισθητήρων του Thymio, ένα project το οποίο φτιάχτηκε για να τρέχει στο περιβάλλον του Scratch 2.0 ή από το Γενάρη 2019 στο Scratch 3.0.

Πιο συγκεκριμένα, στην «Κοινότητα του Scratch» https://scratch.mit.edu μπορούμε να αναζητήσουμε ποικίλα projects, με θέματα που αναφέρονται σε οπτικά εφέ (optical effects) και οπωσδήποτε διάφορες προσομοιώσεις φυσικών φαινομένων (simulations ) καθώς και animations. Παρακάτω,  για παράδειγμα, δίνεται μια σειρά από τέτοια φαινόμενα τα οποία εξελίσσονται στην οθόνη του υπολογιστή μας και τα ανάρτησα κατά καιρούς στο Scratch. Με κλικ στα links μεταβαίνουμε σ’ αυτά για να πάρουμε μια ιδέα το πώς επιδρούμε με ότι μας προσφέρει ο τρόπος που προγραμματίστηκαν στο Scratch 2.0.

Πρόκειται για πέντε απλά παραδείγματα, όπως το εφέ μιας περιστρεφόμενης  καρδιάς, την κίνησης ενός jelly stickman, ένα κωνικό εκκρεμές, ένα κύτταρο και την εκτόξευση αντικειμένων στο πεδίο βαρύτητας.

Η περιέργεια μου με έσπρωξε να πειραματιστώ με τα πέντε αυτά projects, χρησιμοποιώντας ως «τηλεκοντρόλ» τόσο τους αισθητήρες του Thymio όσο και αυτούς που διαθέτει από τη … μάνα του το WeDo 2.0. δηλαδή (tilt και απόστασης).

Είχε ενδιαφέρον το ψάξιμο ενός κώδικα καθενός από τα projects (στο scratch 2.0.) με σκοπό να εντοπίσω τα σημεία εκείνα που μπορώ να αξιοποιήσω αισθητήρες για πρόκληση επιλεγμένων αλλαγών.

Στη συνέχεια θα παρουσιάσω τα ευρήματα από τη χρήση του Thymio, εφόσον αυτό με ενδιαφέρει εδώ. Όσοι διαθέτουν ένα σύστημα ρομποτικής WeDo 2.0. ας δοκιμάσουν και τέτοιου τύπου δραστηριότητες.

Α. Η εικόνα του Κυττάρου: Το πρώτο οπτικό εφέ

Σ’ αυτό το project η εικόνα ενός κυττάρου στην οθόνη παραμένει διαρκώς στην ίδια θέση. Μια πρώτη ιδέα για το πώς μπορούμε να επιδράσουμε σ’ αυτήν την εικόνα με τη χρήση αισθητήρων  είναι αυτή κατά την οποία κινείται στην περιοχή της οθόνης και …. να ανακλάται στα άκρα της. Έτσι, για τις ανακλάσεις και την κίνηση χρησιμοποίησα το «πλακίδιο» <αν βρίσκεσαι στα όρια, αναπήδησε> (κλασική ιδέα του Scratch 2.0) και τη γνωστή εντολή <κίνηση>  με είσοδο τη λειτουργία <κλίση (μπροστά πίσω ), που ανήκει στη διασύνδεση «Thymio+Scratch 3.0».

Η δεύτερη ιδέα αφορά την παρέμβαση σε δύο εφέ, στα οποία αποδίδονται οι μεταβολές τους, ημιτονοειδή / συνημιτονοειδή αντίστοιχα, μέσω του μεταβλητού πλάτους <k> = τιμή κεντρικού αισθητήρα εγγύτητας.

Μετά από δοκιμές κατέληξα στις εντολές και λειτουργίες της διαδικασίας:

ΣΗΜΕΙΩΣΗ  Από χτες το βράδυ, 2 Ιαν. 2019, λειτουργεί η «Κοινότητα του Scratch 3.0.» οπότε ανάρτησα το παραπάνω project για να το δοκιμάσω και με το WeDo, δείτε το αν έχετε στο hub τους δύο αισθητήρες i) απόστασης (distance) και ii) κλίσης (tilt) https://scratch.mit.edu/projects/276675474/

Η διαδικασία είναι παρόμοια με αυτή του Thymio όπως φαίνεται από τον κώδικα:

 

Β. Το σόου ενός jelly stickman: Μια περίπτωση animation

Ο stickman, πράγματι, περιορίζεται στα όρια της οθόνης, όμως, μπορεί να μετακινηθεί σε οποιαδήποτε θέση χρειαστεί. Ως συνήθως, στο περιβάλλον του Scratch, δεχόμαστε ότι η οθόνη είναι εφοδιασμένη με ένα Καρτεσιανό Σύστημα Συντεταγμένων (x, y) με αρχή (0, 0) το κέντρο της. Με βάση αυτό το σύστημα καταστρώνουμε και τις εντολές μετακίνησης του «ψηφιακού αντικειμένου», όπως για παράδειγμα, είναι η βάση με την οποία συνδέεται ο jelly stickman.

Δοκίμασα ορισμένους αισθητήρες από τους πολλούς που διαθέτει το Thymio και κατέληξα στην ακόλουθη επιλογή:

Α) τρία κουμπιά αφής, το <μπροστά>, το <κεντρικό> και το <δεξιά> και

Β) αξιοποιώ τις τιμές κλίσης των δύο από τις τρεις συνιστώσες του επιταχυνσιομέτρου (Χ, Υ) (βλέπε την ανάρτηση στο eduportal  https://www.eduportal.gr/thymio-scratch3-tilt/ ).

Έτσι, με το Thymio στα χέρια μου μπροστά στην οθόνη, μπορώ να οδηγήσω το stickman, προσεκτικά, σε όποια θέση επιθυμώ. Σε κάθε περίπτωση, μόνο όταν έχω πατημένο το κουμπί πάνω ή δεξιά μετακινείται η «φιγούρα – ζελέ». Ο ρυθμός των μετακινήσεων εξαρτάται από το εκάστοτε καθήκον. Τελικά, είναι εύκολο να επινοηθεί ένα απλό παιχνίδι εφόσον οριστεί τόσο ο στόχος, η διαδρομή και η αρχική θέση. Παρακάτω δίνεται και ο κώδικας που χρειάστηκε να φτιάξω για να επιτευχθεί η «πλοήγηση» του stickman στην οθόνη.

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

Γ. Η περιστροφή μιας «ψηφιακής» καρδιάς: Μια περίπτωση animation

Στο αρχικό project σχηματίζεται διαρκώς στην οθόνη μια καρδιά την οποία μπορώ να περιστρέφω γύρω από τον άξονα – y, μετακινώντας το δείκτη του ποντικιού κατά τον άξονα – χ. Η μεταβλητή για την επίτευξη αυτής της περιστροφής είναι η λειτουργία <θέση χ του ποντικιού>, όπως φαίνεται στο απόσπασμα από τον κώδικα του προγράμματος  στο περιβάλλον του Scratch.

Στην περίπτωση που θέλουμε να αξιοποιήσουμε έναν από τους αισθητήρες του Thymio για να περιστρέφουμε την «ψηφιακή καρδιά» δεν έχουμε παρά να θέσουμε την τιμή της κλίσης <αριστερά, δεξιά> στη θέση της λειτουργίας του ποντικιού  όπως σημειώσαμε παραπάνω.

Δ. Το κωνικό εκκρεμές: Μια περίπτωση simulation  

Έφτιαξα αυτό το project με σκοπό να επιβεβαιώσω ότι:

Ι) Αν η γωνιακή ταχύτητα (ω) του κωνικού εκκρεμούς αυξάνει, τότε, αυξάνει η γωνία του νήματος με την κατακόρυφο

ΙΙ) Αν η επιτάχυνση της βαρύτητας αυξάνει, τότε, ελαττώνεται η γωνία του νήματος με την κατακόρυφο.

Αλλά, ας γνωρίσουμε πρώτα απ’ όλα τους τρόπους με τους οποίους μπορούμε να  ελέγχουμε το κωνικό εκκρεμές, στο περιβάλλον του Scratch.

α) Με τα πλήκτρα 1, 2 και 3 αυξάνουμε την γωνιακή ταχύτητα του εκκρεμούς

β) Μπορείς να μεταβάλλεις την επιτάχυνση της βαρύτητας  με το slider g

γ) Με το slider θ μπορείς να αλλάζεις τη «γωνία θέασης»

δ) Με κλικ στην οθόνη βλέπεις μόνο την κίνηση του αντικειμένου

ε) Με πάτημα του πλήκτρου <space> σβήνεις τα γραφικά της οθόνης

Το κωνικό εκκρεμές αποτελεί μια εντυπωσιακή προσομοίωση και είναι κατάλληλη για να πειραματιστούμε με την αλλαγή των τιμών των sliders <θ> και <g>. Έτσι, προγραμματίζω με τον απλούστερο τρόπο τα πέντε κουμπιά αφής του Thymio, έτσι ώστε να αυξομειώνω τις τιμές των δύο μεταβλητών

i)             της γωνίας <θ> με το κουμπί αφής <μπροστά> (για αύξηση) και <πίσω (για ελάττωση)

ii)           της επιτάχυνσης βαρύτητας με τα κουμπιά αφής δεξιά και αριστερά

και να σβήνω τα γραφικά της οθόνης με το <κεντρικό>.

Οι διαδικασίες είναι οι ακόλουθες:

E. Με κάθε κλικ στην οθόνη και μια εκτόξευση: Περίπτωση simulation

Για τελευταίο παράδειγμα επέλεξα τo project σύμφωνα με το οποίο εκτοξεύονται …. καρδούλες με το πάτημα του κουμπιού αφής <μπροστά> αντί για το «κλικ» που είδαμε στο Scratch. Εδώ, το απλοποιώ λίγο ζητώντας να εκτοξεύονται αντικείμενα με το πάτημα ενός κουμπιού αφής καθώς και να αλλάζουν μορφή με ένα άλλο.

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

Σημείωση: Οι αλλαγές γίνονται μόνο στις διαδικασίες του σκηνικού.

Συμπεράσματα:  Ένας νέος ενδιαφέρον κόσμος ανοίγεται μπροστά μας, στο πλαίσιο της «Εκπαιδευτικής Ρομποτικής», εφόσον αξιοποιήσουμε ολόκληρη τη γκάμα των ευκαιριών που μας προσφέρει το περιβάλλον διασύνδεσης των ρομποτικών συστημάτων με το Scratch 3.0.

more