Από τη Γραφική Παράσταση (θέσης, χρόνου) στην «οδήγηση» του κινητού – ρομπότ στο περιβάλλον Thymio + Scratch (17η Δραστηριότητα)

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

Α. Εισαγωγή   

Α.1) Το ερέθισμα

Ένα project που έφτιαξα παλιότερα στο Scratch, με τίτλο «Από τη γραφική παράσταση (x,t) στην προσομοίωση», αναφερόταν σε μια γραφική παράσταση και στην πραγματοποίηση της αντίστοιχης προσομοίωσης της κίνηση ενός παιδιού – sprite  στην οθόνη του υπολογιστή μας.

Αυτό το applet Scratch, με ευκολία, επιτρέπει τη διαμόρφωση του γραφήματος (x,t) με τη βοήθεια του δείκτη του ποντικιού: κάνοντας κλικ και σύρσιμο των οκτώ «σημείων» – που ενώνονται μεταξύ τους με μια γραμμή – συνιστούν τελικά ένα γράφημα (x,t) στο Καρτεσιανό Σύστημα Συντεταγμένων. Στη συνέχεια, με κλικ στο κουμπί «ξεκίνα» παρακολουθούμε την προσομοίωση της κίνησης σύμφωνα με το γράφημα (x,t). Ενδιαφέρον παρουσιάζει η δυνατότητα που προσφέρει το περιβάλλον: μόλις ο δείκτης του ποντικιού αγγίξει ένα από τα οκτώ «σημεία» του γραφήματος μας ένα μήνυμα μας πληροφορεί για τις αλγεβρικές τιμές της θέσης του κινητού καθώς και την αντίστοιχη χρονική στιγμή.Μ’ αυτόν τον τρόπο επιτυγχάνεται η «ανάκριση» των οκτώ «σημείων» του γραφήματος και η συναγωγή συμπερασμάτων. 
Επιπλέον, οι αλγεβρικές τιμές της ταχύτητας του κινητού εμφανίζονται σε μονοδιάστατο πίνακα. Πρόκειται για τιμές που αντιστοιχούν σε καθένα από τα επτά ευθύγραμμα τμήματα του γραφήματος ώστε να ελέγχεται το γράφημα κατά τη διάρκεια της διαμόρφωσής του.
Όσον αφορά την παρακολούθηση της κίνησης του παιδιού στον άξονα – x, μετά από σχόλιο-υπόδειξη ενός μαθητή στο Scratch website, πρόσθεσα μια κατακόρυφη πράσινη γραμμή που μετακινείται συνεχώς δείχνοντας το αντίστοιχο σημείο του γραφήματος. Πρόκειται για ένα ενδιαφέρον βοηθητικό εργαλείο ελέγχου μεταξύ δύο αναπαραστάσεων.

Ας δούμε, λοιπόν, το project ερέθισμα για επέκταση του στην εκπαιδευτική ρομποτική: https://scratch.mit.edu/projects/2202942/

Συνοπτικά, θα λέγαμε ότι με την αλλαγή του γραφήματος (x,t) μπορώ να πραγματοποιήσω μια επιθυμητή προσομοίωση της κίνησης του κοριτσιού στην οθόνη.

Για παράδειγμα, στο σύντομη βίντεο διάρκειας μόλις ενός λεπτού, βλέπουμε δύο διαφορετικές κινήσεις.

Στα στιγμιότυπα δείχνονται τόσο η πρώτη φάση κατά την οποία το κορίτσι  πραγματοποιεί μια ευθύγραμμη επιταχυνόμενη κίνηση όσο και η δεύτερη η οποία είναι μια ευθύγραμμη (ομαλή κατά προσέγγιση) κίνηση.

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

Σημείωση: Ας σημειωθεί ότι μπορούμε να έχουμε δύο γραφήματα και δύο sprites – παιδιά στο ίδιο σκηνικό (δείτε το project https://scratch.mit.edu/projects/13973896/ )

 Α.2) Τα προαπαιτούμενα

 Μετά από τρεις προκαταρκτικές δραστηριότητες ρομποτικής με το Thymio στο διευρυμένο περιβάλλον «Scratch+Thymio» (βλέπε στο eduportal τις δραστηριότητες https://www.eduportal.gr/thymio14/  https://www.eduportal.gr/thymio-15/ και https://www.eduportal.gr/thymio-16/) μπορούμε να προχωρήσουμε στο πρώτο μας «project Φυσικής». Πρόκειται για δύο «πειράματα εκπαιδευτικής ρομποτικής στο πλαίσιο του STEAM (Science, Technology, Engineering, Art, Mathematics) και με περιεχόμενο που ανήκει παραδοσιακά στα γραφήματα της Κινηματικής.

 Στη δική μας προσέγγιση, έχουμε στη διάθεσή μας ένα κινητό ρομποτάκι Thymio και τον υπολογιστή μας:

Β. Δύο πειράματα ρομποτικής  στο περιβάλλον «Scratch+Thymio»   

Β.1) Στο πρώτο πείραμα μάς απασχολεί η δημιουργία ενός γραφήματος (θέσης, χρόνου) το οποίο να αναπαριστάνει την κίνηση του ρομπότ εδάφους Thymio.

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

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

Ας συνοψίσουμε:

Το σενάριο αποτυπώνεται στην παρακάτω σελίδα οθόνης του «Scratch+Thymio» με τον κώδικα του προγράμματος να ακολουθεί.

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

O προγραμματισμός στο «Scratch+Thymio», προφανώς, αφορά τα sprites που χρησιμοποιήσαμε:

και δίνεται αναλυτικά αμέσως πιο κάτω:

Για το sprite με όνομα <Thymio II-2> χρειαστήκαμε δύο διαδικασίες: Η πρώτη αναφέρεται στη διασύνδεση «Scratch+Thymio» ενώ η δεύτερη αφορά στην προετοιμασία για την πραγματοποίηση της γραφικής παράστασης (θέσης y, χρόνου t).

Για το δεύτερο sprite, με όνομα <help>, οι διαδικασίες αναφέρονται στην υλοποίηση του γραφήματος (θέσης y, χρόνου t) αξιοποιώντας τις εντολές για τις λίστες (lists) στο περιβάλλον του Scratch.

Για να ολοκληρώσω το πρώτο πείραμα, σκέφτηκα να κάνω μερικές δοκιμές που να απαντούν σε ερωτήματα του τύπου:

1.«Κάνε το γράφημα (y,t) για μια ευθύγραμμη ομαλή κίνηση του ρομπότ, με αρχική θέση του Thymio στη θέση με y=0 και μέτρο ταχύτητας  v = 67 mm / s ή v = -67 mm / s.

Η απάντηση, για ταχύτητες 67 και -67,  δίνεται στο σχήμα:

2. «Κάνε το γράφημα (y,t) για μια ευθύγραμμη ομαλή κίνηση του ρομπότ,

  • με αρχική θέση του Thymio y = -33 και μέτρο ταχύτητας 66
  • με αρχική θέση του Thymio y = 30 και μέτρο ταχύτητας 80

Η απάντηση μπορεί να δοθεί εύκολα (φροντίζοντας να μη «σβήνει» το γράφημα και να αλλάζω την αρχική θέση ) και παρουσιάζεται στο σχήμα:

3. «Κάνε το γράφημα (y,t) για μια ευθύγραμμη επιταχυνόμενη κίνηση του ρομπότ με αρχική θέση y = -30 και αρχική ταχύτητα 0 χρησιμοποιώντας το μεταβολέα (slider) <ταχύτητα>».

Η απάντηση:

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

Β.2) Στο δεύτερο πείραμα διαπραγματευόμαστε ένα ιδιαίτερα ενδιαφέρον ζήτημα που αφορά την «οδήγηση» του κινητού – ρομπότ Thymio με τη βοήθεια μιας …. γραφικής παράστασης (θέσης, χρόνου). Πρόκειται για έναν επιπλέον τρόπο «οδήγησης» («πιλοτάρισμα») του Thymio πέρα από τα κουμπιά του Thymio, το τηλεκοντρόλ, τους οριζόντιους αισθητήρες κ.α. τα οποία γνωρίσαμε ήδη από τις πρώτες δραστηριότητες (βλέπε ένα από τα παραδείγματα )

Στο βίντεο βλέπουμε ότι, με τη βοήθεια του δείκτη του ποντικιού, μπορούμε να αλλάζουμε τα δύο άκρα του ευθύγραμμου γραφήματος και να προκαλούμε αντίστοιχες αλλαγές στην κίνηση του ρομπότ. (Την πρώτη φορά που το είδα να συμβαίνει δεν πίστευα ότι θα τα καταφέρω αλλά αμέσως μετά σκέφτηκα ότι ένα project σαν κι αυτό θα μπορούσε, κάτω από ορισμένες συνθήκες, να με βοηθήσει στη διδασκαλία γραφικών παραστάσεων Κινηματικής στο σχολείο).

O προγραμματισμός στο «Scratch+Thymio», προφανώς, αφορά τα βασικά sprites που χρησιμοποιήσαμε στο project From Graph (x,t) to motion.sb2 :

Στο πρώτο sprite με όνομα < Thymio II > έχουμε τη διαδικασία διασύνδεσης «Scratch+Thymio» και την προετοιμασία για την κίνηση του ρομπότ με βάση την εντολή όπου v η κοινή ταχύτητα των δύο τροχών – κινητήρων.

Στα δύο επόμενα sprites < p0 >, < p > αναφέρονται στα δύο άκρα (κόκκινα κυκλάκια) του γραφήματος τις χρονικές στιγμές t0 = 0 s και t αντίστοιχα. Στο πρώτο, υπολογίζεται συνεχώς (forever) η θέση του κινητού ενώ στο δεύτερο υπολογίζονται τόσο η θέση όσο και η χρονική στιγμή.

Όμως, την καθοριστική εργασία αναλαμβάνει να διεκπεραιώσει το sprite με όνομα <Help2>: ενώνει με μια κόκκινη γραμμή τα sprites < p0 > και < p1 > και υπολογίζονται συνεχώς η χρονική διάρκεια t = θέση_χ – (-200) / 100, η μεταβολή θέσης dx = θέση_y – x0 και επομένως το μέτρο της ταχύτητας v = dx / t. Έτσι, συνεχώς έχουμε την τιμή του v στην οθόνη του υπολογιστή μας.

  • Ποιο συγκεκριμένα για το πρώτο sprite έχουμε τις διαδικασίες:

  • Για το δεύτερο και τρίτο sprite έχουμε τις διαδικασίες:

Για το sprite < p0 >

Για το sprite < p1 >

  • Η διαδικασία για το sprite < Help2 > έχουμε την πιο σημαντική διαδικασία:

  • Τέλος, οι διαδικασίες που αναλαμβάνουν την έναρξη της «οδήγησης» του Thymio με το χειρισμό της γραφικής παράστασης (θέσης, χρόνου):

Επίλογος

Μέχρι στιγμής διεκπεραιώθηκε μια πρώτη φάση που αφορά κυρίως την υλοποίηση της  ιδέας «οδήγησης» του κινητού – ρομπότ Thymio προγραμματίζοντας στο περιβάλλον «Scratch+Thymio».  Για να ολοκληρώσω το πρώτο πείραμα, θα χρειαστούν όχι μόνο αλλαγές του προγράμματος αλλά και αρκετές δοκιμές έτσι ώστε να διαμορφωθούν συγκεκριμένες εφαρμογές στον τομέα της Κινηματικής.

Στη συνέχεια θα έρθει η σειρά της «οδήγησης» του Thymio με τη βοήθεια της Γραφικής Παράστασης (ταχύτητας, χρόνου)…..

Σημειώσεις:

  1. Σε όλα τα projects που φτιάχνουμε στο «Scratch for Thymio» χρησιμοποιούμε κατάλληλα και τη διαδικασία διασύνδεσης του Scratch με το Thymio που γνωρίσαμε στη 15η Δραστηριότητα
  2. Το συμπέρασμά μας λέει ότι, μπορεί όλα να λειτουργούν σωστά όπως τα προγραμματίζουμε στο περιβάλλον «Scratch for Thymio», αλλά πάντα με μια παρατήρηση: οι αριθμητικές τιμές ισχύουν κατά προσέγγιση κάτι που είναι αναμενόμενο (το ρομποτάκι Thymio είναι σχετικά φτηνό και ως συνήθως χρειάζεται βαθμονόμηση – calibration ).
  3. Στις 20 Μαΐου 2017, τα projects που έφτιαξα εδώ, επιχείρησα να ανεβάσω στο Scratch Website αλλά, δυστυχώς, δεν γίνονται αποδεκτά εφόσον στον κώδικα τους περιλαμβάνονται «πειραματικές εντολές και λειτουργίες». Ελπίζω ότι θα επιτρέπεται η ανάρτηση τέτοιων projects μόλις οριστικοποιηθούν οι ατέλειες και ελλείψεις της διασύνδεσης Thymio+Scratch.

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