Ας πειραματιστούμε με τους επτά “Οριζόντιους αισθητήρες απόστασης” κατάλληλους για την ανίχνευση εμποδίων (4η Δραστηριότητα)

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

Το κινητό – ρομποτάκι Thymio, εκτός από τους δύο αισθητήρες εδάφους που γνωρίσαμε στην 3η Δραστηριότητα διαθέτει και άλλους επτά οριζόντιους αισθητήρες απόστασης: πέντε στο μπροστινό και δύο στο πίσω μέρος του Thymio.

Μια από τις σημαντικότερες χρήσεις τους, όπως θα δούμε, είναι και η ανίχνευση εμποδίων ιδιαίτερο χαρακτηριστικό γνώρισμα των ρομπότ. Στο παρακάτω διάγραμμα -από τον επίσημο δικτυακό τόπο αφιερωμένο στο Thymio www.thymio.org – εμφανίζονται όλοι οι αισθητήρες του Thymio καθώς και άλλα αξεσουάρ που διαθέτει (όπως, για παράδειγμα υποδοχές για αξιοποίηση όλων των μηχανικών κομματιών της LEGO) κάτι που μας επιτρέπει να έχουμε μια ολοκληρωμένη εικόνα για το «τι είναι και τι μπορεί να κάνει το ρομποτάκι Thymio».

thymio1-4

Σκέφτηκα ότι μια από τις προσεγγίσεις εξοικείωσης με αυτούς τους αισθητήρες μπορεί να είναι η παρουσίαση τους μέσα από ποικίλα και απλά παραδείγματα κυρίως μέσα από τα προγραμματιστικά περιβάλλοντα όπως το VPL («Οπτικός προγραμματισμός») και το BLOCKLY (δες παραδείγματα από τις τρεις προηγούμενες δραστηριότητες στο δικτυακό τόπο του eduportal).

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

Πρώτο παράδειγμα – επίδειξη:

Πώς να προγραμματίσω το Thymio στο περιβάλλον VPL έτσι ώστε

— να κινείται όταν ένα αντικείμενο – εμπόδιο είναι τοποθετημένο σχετικά μακριά από το μπροστινό μέρος του και

— να σταματάει όταν το πλησιάζει;

Στο περιβάλλον «Οπτικού Προγραμματισμού» (VPL), μετά από μερικές δοκιμαστικές προσπάθειες κατέληξα στα παρακάτω δύο ζεύγη του τύπου:

EVENT(Γεγονός)  ——>  ACTIONS (Δράσεις)

Στο πρώτο ζεύγος, θέλω να κινείται το ρομποτάκι μπροστά με σταθερή ταχύτητα εφόσον δεν ανιχνεύει στο μπροστινό του μέρος κάποιο αντικείμενο – εμπόδιο. Επιλέγω το γεγονός «αισθητήρες» και με click and drop το μεταφέρω στην περιοχή προγραμματισμού. Στη συνέχεια, με κλικ στο μπροστινό τετραγωνάκι επιλέγω το «μαύρο». Επιπλέον, για μια πρώτη εισαγωγή στα χρώματα του ρομπότ επιλέγω ως δεύτερη action τη σύνθεση των χρωμάτων RGB (Red- Green-Blue) όπως θα γνωρίσουμε αναλυτικά σε επόμενη δραστηριότητα.  Προς το παρόν μας χρειάζεται μόνο η επιλογή του χρώματος που επιτυγχάνεται με τη χρήση των τριών μεταβολέων (sliders) R, G, B.

Στο δεύτερο ζεύγος, το ρομποτάκι σταματάει όταν ανιχνεύει μπροστά του ένα αντικείμενο – εμπόδιο.

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

thymio2-4

Δεύτερο παράδειγμα – επίδειξη:

Πώς να προγραμματίσω το Thymio στο περιβάλλον VPL έτσι ώστε:

Α) να κινείται μπροστά όταν πλησιάζω το δάχτυλό μου ή ένα μολύβι στον κεντρικό αισθητήρα του μπροστινού μέρος του Thymio,

Β) να κινείται προς τα πίσω όταν πλησιάζω τα δάχτυλά μου στο δεξιό και αριστερό αισθητήρα (στο πίσω μέρος του Thymio) και

Γ) να σταματάει όταν το «χτυπήσουμε» (tap) ;

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

thymio3-4

Τρίτο παράδειγμα – επίδειξη:

Πώς να προγραμματίσω το Thymio στο περιβάλλον VPL έτσι ώστε:

                                        ΑΝ

θέτω το δάχτυλό μου μπροστά από κάθε μπροστινό αισθητήρα [0,1,2,3,4]

                                     ΤΟΤΕ

το ρομποτάκι να περιστρέφεται αριστερά ή δεξιά ή να κινείται μπροστά με σταθερή ταχύτητα και να παίρνει διαφορετικό χρώμα;

Μετά από μερικές δοκιμές οικοδομώ το πρόγραμμα στο περιβάλλον VPL και διακρίνω εύκολα τους πέντε αισθητήρες με τις ονομασίες 0, 1, 2, 3, 4. Χρησιμοποιώντας και τους μεταβολείς (sliders) RGB  διαλέγω τα χρώματα του Thymio.

thymio4-4

Τέταρτο παράδειγμα – επίδειξη:

Πώς να προγραμματίσω το Thymio στο περιβάλλον BLOCKLY έτσι ώστε:

                                        ΑΝ

θέτω το δάχτυλό μου μπροστά από τον κεντρικό μπροστινό αισθητήρα [2] ή τους δύο αισθητήρες στο πίσω μέρος του Thymio

                                     ΤΟΤΕ

το ρομποτάκι να κινείται προς το χέρι μου με σταθερή ταχύτητα

                                      ΔΙΑΦΟΡΕΤΙΚΑ

να σταματάει την κίνηση;

Μεταφράζοντας τα παραπάνω στη «γλώσσα» BLOCKLY που καταλαβαίνει το ρομποτάκι  Thymio έχουμε τον απλό κώδικα:thymio5a-4 thymio5b-4

Πέμπτο παράδειγμα – επίδειξη:

Πώς να προγραμματίσω το Thymio στο περιβάλλον BLOCKLY έτσι ώστε:

                                        ΑΝ

θέτω το δάχτυλό μου μπροστά από τον κεντρικό μπροστινό αισθητήρα [2] του Thymio

                                     ΤΟΤΕ

το ρομποτάκι να πλησιάζει ή να απομακρύνεται από το χέρι μου με αυξανόμενη ταχύτητα

                                     ΔΙΑΦΟΡΕΤΙΚΑ ΑΝ

θέτω το δάχτυλό μου μπροστά από τους δύο αισθητήρες στο πίσω μέρος του Thymio

                                     ΤΟΤΕ

το ρομποτάκι να πλησιάζει ή να aαπομακρύνεται από το χέρι μου με αυξανόμενη ταχύτητα

thymio6-4

Τι εξυπηρετεί η δραστηριότητα με τους επτά οριζόντιους αισθητήρες απόστασης του Thymio;

Για άλλη μια φορά επιβεβαιώνεται ότι:

  1. H «Πολλαπλότητα των Αναπαραστάσεων» (προγραμματιστικών περιβαλλόντων) και η μετάβαση από τη μία αναπαράσταση στην άλλη διευκολύνει τη διαδικασία της μάθησης. Υπενθυμίζω ότι το «Test Programming» εμφανίζεται αυτόματα εφόσον χρησιμοποιώ το περιβάλλον VPL ή το BLOCKLY.
  2. O «Οπτικός Προγραμματισμός» (VPL) του Thymio προσφέρει ένα ευνοϊκό περιβάλλον για μια πρώτη γνωριμία με τους οριζόντιους αισθητήρες όπως αποδεικνύεται από τα πειράματα επίδειξης που παραθέσαμε παραπάνω.
  3. Στο περιβάλλον προγραμματισμού BLOCKLY για το Thymio έχουμε στη διάθεσή μας δύο βασικές εντολές και λειτουργίες: thymio7-4
  4. Με το πέμπτο παράδειγμα-επίδειξη μας προσφέρεται μια καλή ευκαιρία εισαγωγής της μεταβλητής στον προγραμματισμό στο BLOCKLY όπως και στο Scratch όπως θα δούμε αναλυτικά σε άλλες δραστηριότητες.