Πώς να αξιοποιώ το «επιταχυνσιόμετρο» (accelerometer) που διαθέτει το κινητό-ρομποτάκι Thymio; (11η Δραστηριότητα)

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

Ας ξεκινήσουμε εξετάζοντας από πιο κοντά τις τιμές του «επιταχυνσιομέτρου» (accelerometer) που διαθέτει το κινητό ρομποτάκι Thymio και του προσδίδει νέες ενδιαφέρουσες ιδιότητες.

(Βλέπε, επίσης α) το βίντεο με το ρομποτάκι Thymio να κινείται στην επιφάνεια μιας σφαίρας https://www.youtube.com/watch?v=Xx_iCYbvTTY ) β) το Thymio να είναι σε μια ….μπανιέρα https://www.youtube.com/watch?v=ACIyWz52ZP0 …..και τα δύο παρουσιάζουν ενδιαφέρον για πειραματισμό…)

Πιστεύω ότι ένας καλός τρόπος να εξοικειωθούμε με το «επιταχυνσιόμετρο του Thymio», προτού προχωρήσουμε στον προγραμματισμό με εντολές κλπ., είναι η παρακολούθηση των τιμών της μεταβλητής acc στην πρώτη στήλη (του γνωστού μας από τα προηγούμενα ASEBA studio) όταν τοποθετούμε το ρομποτάκι σε διάφορες θέσεις και προσανατολισμούς στο χώρο.

thymio11-01

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

thymio11-02

Εύκολα διαπιστώνει κανείς ότι οποιαδήποτε θέση ή προσανατολισμό και να έχει το ρομποτάκι στο χώρο η μεταβλητή acc -ονομάζεται acc [0], acc [1], acc [2] – παίρνει διάφορες τιμές που αντιστοιχούν, τελικά, στους τρεις άξονες (x , y, z) ενός «Συστήματος αναφοράς στο χώρο».

thymio11-03

Α) Στην περίπτωση κατά την οποία το ρομποτάκι ακουμπάει με τις ρόδες του σε οριζόντιο τραπέζι, όπως είδαμε προηγουμένως, οι τιμές του acc [2] είναι (1, 0 ,21 ώς 23).

Ας δούμε ποιες αλλαγές προκαλούνται σ’ αυτή την τριάδα τιμών σε ποικίλες περιπτώσεις.

i)_Με το χέρι μου περιστρέφω αργά-αργά το ρομποτάκι πάνω στο (περίπου) οριζόντιο τραπέζι μου και διαπιστώνω ότι, γενικά, οι τιμές του επιταχυνσιομέτρου για τους άξονες x, y και z παραμένουν περίπου ίδιες.

Σκέφτομαι να μετακινήσω το ρομποτάκι, κατακόρυφα προς τα πάνω ή προς τα κάτω, κάνοντας την υπόθεση ότι η τιμή acc [2] στον άξονα z θα μεταβάλλεται μόνο αν η κίνηση που επιβάλλω στο ρομποτάκι είναι επιταχυνόμενη.

Πράγματι, η τιμή του επιταχυνσιομέτρου στον άξονα z:

  • αυξάνει ή μειώνεται εφόσον το ρομποτάκι επιταχύνεται προς τα πάνω ή προς τα κάτω
  • παραμένει σταθερή και ίση με την επιτάχυνση της βαρύτητας εφόσον το ρομποτάκι ηρεμεί και είναι οριζόντιο.
  1. ii) Κοιτάζοντας το μπροστινό μέρος του Thymio, το περιστρέφω δεξιά 90 μοίρες και τελικά το αφήνω να παραμένει κάθετα στο τραπέζι. Τώρα, η αριστερή ρόδα ακουμπάει στο τραπέζι.

Θεωρούμε ότι η περιστροφή έγινε γύρω από τον άξονα-x {πίσω-μπρος}  του ρομπότ και το αποτέλεσμα είναι acc [24, -1, 1] όπως φαίνεται στην εικόνα:

thymio11-04

Επιπλέον, εύκολα διαπιστώνω ότι αν μετακινώ το ρομποτάκι πάνω στο οριζόντιο τραπέζι οι τιμές του επιταχυνσιομέτρου παραμένουν (περίπου) αμετάβλητες.

Αν περιστρέψω το Thymio ξανά 90 μοίρες και τοποθετηθεί από την ανάποδη (με τις ρόδες από πάνω, τότε, οι τιμές είναι acc [2, 0, -21] δηλαδή η τιμή της επιτάχυνσης είναι αρνητική. Τέλος, αν περιστρέφω το ρομποτάκι στο επίπεδο του οριζόντιου (…περίπου) τραπεζιού τότε οι τιμές παραμένουν (….περίπου) ίδιες.

iii) Ας ξεκινήσουμε με το ρομποτάκι τοποθετημένο έτσι ώστε οι ρόδες του να ακουμπάνε στο τραπέζι και να βλέπουμε το μπροστινό μέρος του, όπως κάναμε στην πρώτη περίπτωση με acc [2, 0, 22]. Στη συνέχεια το περιστρέφουμε δεξιά και παρατηρούμε τις τιμές να αλλάζουν. Αν η γωνία στροφής είναι περίπου 45 μοίρες, τότε, οι τιμές είναι acc [16, 0 18].

Το κινητό-ρομποτάκι Thymio διαθέτει έναν αισθητήρα ο οποίος μας επιτρέπει να μετράμαι τόσο τις τιμές της επιτάχυνσης όσο και την κατεύθυνσή της. Μ’ άλλα λογια το επιταχυνσιόμετρο είναι ένα όργανο που μας επιτρέπει να μετράμε την κλίση του ρομπότ ως προς την επιτάχυνση της βαρύτητας.

Οι πειραματισμοί αυτού του τύπου δεν έχουν … τελειωμό. Ήρθε η στιγμή να κρατήσουμε ανοιχτό το ASEBA και να παρακολουθούμε τις τιμές αλλά αυτή τη φορά προγραμματίζοντας στα περιβάλλοντα που διαθέτει το Thymio (Οπτικός Προγραμματισμός, BLOCKLY και Text Programming).

Α) Ένα πρώτο παράδειγμα: αξιοποίηση εντολών του επιταχυνσιομέτρου-Οπτικός Προγραμματισμός (VPL)   

(δείτε το βίντεο στα Γαλλικά με Αγγλικούς υπότιτλους https://www.youtube.com/watch?v=l2JRdcBNIdY για τον advanced Οπτικό προγραμματισμό).

Προετοιμάζω το περιβάλλον ASEBA ενεργοποιώντας το κουμπί «auto» ώστε να παρακολουθώ και τις τρεις τιμές της μεταβλητής acc και επιλέγω να εργαστώ στο περιβάλλον του «Οπτικού Προγραμματισμού» VPL. Από τα γνωστά εικονίδια τύπου «γεγονότα» (Events) επιλέγω το τέταρτο (tap detection / tilt) και κάνω κλικ στο μεσαίο κυκλάκι που χωματίζεται κόκκινο. Στη συνέχεια, με το δείκτη του ποντικιού, επιλέγω τον προσανατολισμό του Thymio. Ως αντίστοιχες «δράσεις» (Actions) επιλέγω κάποιο χρώμα και μουσική.

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

thymio11-05

Εύκολα διαπιστώνει κανείς ότι, σε κάθε περίπτωση, το αντίστοιχο χρώμα ανάβει συνεχώς όταν το ρομποτάκι είναι σε μια συγκεκριμένη «γωνιακή περιοχή»!

Σημείωση: Τις τιμές των γωνιών μπορούμε να «διαβάσουμε» με μεγαλύτερη άνεση στο «Text Programming» που αντιστοιχεί στο προγραμματάκι των τριών σειρών (Βλέπε στο ΠΑΡΑΡΤΗΜΑ).

Β) Το δεύτερο παράδειγμα: αξιοποίηση εντολών του επιταχυνσιομέτρου στο (VPL)  

Όπως στο πρώτο παράδειγμα, επιλέγω το τέταρτο (tap detection / tilt) και κάνω κλικ στο δεξιό κυκλάκι που χωματίζεται κόκκινο. Στη συνέχεια, με το δείκτη του ποντικιού, επιλέγω τον προσανατολισμό του Thymio και ως αντίστοιχες «δράσεις» (Actions) επιλέγω κάποιο χρώμα και μουσική.

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

thymio11-06

Γ) ….και το τρίτο παράδειγμα στο (VPL) : ας παίξουμε με το ρομποτάκι πάνω σε κυλινδρική επιφάνεια με κλίση.

thymio11-07

Μετά από ένα γρήγορο πειραματισμό και χωρίς να έχω βρει ακόμα τον κατάλληλο κύλινδρο …κατέληξα στο παρακάτω «λογικό πρόγραμμα»:

 

  • Αν το ρομποτάκι παραμένει περίπου οριζόντιο,

τότε,  να μη κινείται (v = 0)

  • Αν το ρομποτάκι έχει …. κατηφορική κλίση,

τότε, να κινείται προς τα πίσω με μια ταχύτητα

  • Αν το ρομποτάκι έχει …. ανηφορική κλίση,

τότε, να κινείται προς τα μπρος με μια ταχύτητα

και το μεταφράζω σε κώδικα «Οπτικού Προγραμματισμού» VPL.

thymio11-08

Το πείραμα με τον κύλινδρο και το ρομποτάκι

Με μια πρώτη ματιά στην κουζίνα ανακαλύπτω τον «υποψήφιο κύλινδρο», το χαρτί κουζίνας τυλιγμένο σε κύλινδρο!

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

thymio11-09

Τα τρία βασικά παραδείγματα που προηγήθηκαν επιτρέπουν μια πρώτη γνωριμία με την έννοια του αισθητήρα «επιταχυνσιόμετρο» και τη χρήση του στο περιβάλλον του «Οπτικού Προγραμματισμού» VPL.

Ας δούμε και ένα τελευταίο παράδειγμα στο προγραμματιστικό περιβάλλον BLOCKLY.

Δ) Τέταρτο παράδειγμα: Το πείραμα με τον κύλινδρο και το ρομποτάκι Thymio στο προγραμματιστικό περιβάλλον BLOCKLY

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

thymio11-10

και  < on [accelerometer] updated > τα οποία χρησιμοποιούμε στον παρακάτω κώδικα προγραμματισμού.

thymio11-11

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

ΠΑΡΑΡΤΗΜΑ

thymio11-12

Χρήσιμες διευθύνσεις: Για να μάθουμε περισσότερα ή καλύτερα

Πέντε video με θέμα το επιταχυνσιόμετρο:

https://www.youtube.com/watch?v=V_zRvc1tNBM  γενικά (γαλλικά)

https://www.youtube.com/watch?v=eqZgxR6eRjo   το καλύτερο (γαλλικά)

https://www.youtube.com/watch?v=I8VDKZjv9Gk  Physics acc (αγγλικά)

https://www.youtube.com/watch?v=i2U49usFo10   γενικά acc (αγγλικά)

https://www.youtube.com/watch?v=woxc2eIedlM Accelerometer (αγγλικά)