Εξοικείωση με τους οριζόντιους «αισθητήρες εγγύτητας» του Thymio σε απλές εφαρμογές ανίχνευσης εμποδίων (27η Δραστηριότητα)

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

1. Εισαγωγή  

Μετά από την ανίχνευση χρωμάτων που συναντάει το ρομποτάκι μας στο έδαφος, καθώς και την κλασική εφαρμογή «ακολουθία μιας γραμμής» (Line Following), που παρουσιάστηκαν σε προηγούμενες δραστηριότητες (https://www.eduportal.gr/el/ ), ήρθε η σειρά της ανίχνευσης εμποδίων με τη χρήση των επτά οριζόντιων αισθητήρων εγγύτητας.

Εδώ και μερικά χρόνια, η προσωπική εμπειρία με έχει οδηγήσει στο να αναγνωρίζω, στην αναδυόμενη «Εκπαιδευτική Ρομποτική», τον κατ’ εξοχήν πειραματικό  χαρακτήρα της κι ας είναι ακόμα προσεγγιστικός. Αυτός είναι και ο λόγος που κατέληξα στο να μιλάω τόσο για «Προβλήματα και Πειράματα Ρομποτικής» όσο και για την ανάγκη  αξιοποίησης στοιχείων από την «πειραματική μέθοδο έρευνας» σε μια ……. μελλοντική διαμόρφωση ενός Προγράμματος Σπουδών για τη διδασκαλία της ρομποτικής στην εκπαίδευση.

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

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

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

2. Μια πρώτη γνωριμία με τους «αισθητήρες εγγύτητας» του Thymio

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

Σ’ αυτή τη δραστηριότητα θα χρησιμοποιήσουμε τόσο το πιο απλό περιβάλλον του «Οπτικού Προγραμματισμού, VPL», όσο και το «Text Programming» όπου αυτό μας εξυπηρετεί. Για τα περιβάλλοντα BLOCKLY και ScratchX θα παρουσιαστούν σε αμέσως επόμενες δραστηριότητες.

2.1. Η έννοια / μέγεθος «απόσταση σταματήματος» στο περιβάλλον VPL

Ι) Οι πρώτες παρατηρήσεις

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

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

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

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

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

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

Με παρόμοιο τρόπο μπορώ να διαπιστώσω ότι τα αντίστοιχα συμβαίνουν και για τους υπόλοιπους μπροστινούς αισθητήρες.

Ας συνοψίσουμε τα πρώτα συμπεράσματα:

Οι τιμές των αισθητήρων εγγύτητας:

  • κυμαίνονται από την τιμή 0 ως την τιμή 4600 περίπου και τις διαβάζουμε στο γνωστό πίνακα τιμών των αισθητήρων του Thymio
  • εξαρτώνται από την απόσταση μεταξύ ενός συγκεκριμένου αισθητήρα και του εμποδίου: Όσο πλησιέστερα βρίσκονται ο αισθητήρας και το εμπόδιο, τόσο μεγαλύτερη είναι η τιμή του αισθητήρα εγγύτητας

ΙΙ) Πείραμα πρώτο: Η έννοια / μέγεθος «απόσταση σταματήματος». Η περιγραφή, το σκηνικό και το πρόγραμμα (σε VPL)

Η Περιγραφή: Το ρομποτάκι τοποθετείται σε απόσταση (περίπου 20 εκατοστών) ακριβώς απέναντι στο εμπόδιο-χρωματιστή λωρίδα. Στη συνέχεια, κινείται με σταθερή ταχύτητα (V) και τελικά σταματάει σε «απόσταση σταματήματος» (d) από το εμπόδιο.

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

Πρώτη προσέγγιση

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

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

Ας σημειωθεί, ότι η τιμή 4000 του  κεντρικού αισθητήρα που εμφανίζεται στο «Text Programming» εξυπηρετεί τις ανάγκες του πειράματος αλλά μπορεί να αλλάξει (κατά 50 ή 100 ή 200 μονάδες; ) με τον αντίστοιχο μεταβολέα (slider) στο VPL και κατά 1 μονάδα στο «Text Programming» με το πληκτρολόγιο.

Ο πίνακας τιμών:

Ποια είναι η σχέση μεταξύ των τιμών του αισθητήρα εγγύτητας  και της «απόστασης σταματήματος»;

Χρησιμοποιώντας το πρόγραμμα μπορώ να φτιάξω, με μολύβι και χαρτί, ένα πίνακα με τρεις στήλες με αριθμητικές τιμές που προκύπτουν μόνο από 4 μετρήσεις:

  • στην πρώτη στήλη τοποθετούμε τις τιμές που εμείς αποδίδουμε στον αισθητήρα εγγύτητας στον κώδικα της διαδικασίας σταματήματος.
  • στη δεύτερη στήλη βάζουμε τις τιμές που διαβάζουμε στον πίνακα του περιβάλλοντος VPL και

στην τρίτη καταγράφουμε την αντίστοιχη «απόσταση σταματήματος» του κινητού ρομπότ.  

Σημείωση: Το πρόγραμμα που φτιάξαμε δεν μπορεί να μας ικανοποιεί από τη στιγμή που δεν είναι εφικτό να αλλάζουμε την τιμή του αισθητήρα κατά βούληση, όπως για παράδειγμα, 10 ή 20 ή 50 μονάδες.

Δεύτερη προσέγγιση

Για να έχουμε καλύτερα αποτελέσματα μπορούμε να αξιοποιήσουμε τη δυνατότητα που μας δίνεται ώστε να προσδιορίζουμε από το εικονίδιο του αισθητήρα της δεύτερης γραμμής (με επιλογή το σκούρο τετραγωνάκι) το άνω και κάτω όριο των τιμών του. Αυτό επιτυγχάνεται με τη βοήθεια των δύο μεταβολέων (sliders) όπως φαίνεται στο σχήμα: το 1800 και το 2200 είναι τα όρια τιμών στον κώδικα.

Παράδειγμα: Έστω ότι η επιθυμητή «απόσταση σταματήματος» του ρομπότ μπροστά από το εμπόδιο-λωρίδα γκρι χρώματος είναι 5 cm. Ποιες πρέπει να είναι οι κατάλληλες «άνω και κάτω τιμές» που πρέπει να επιλέξουμε με τους μεταβολείς (sliders); Ελέξτε την ορθότητα της επιλογής σας με το ρομποτάκι Thymio.         

Σκέψη: Τοποθετώ το ρομποτάκι σε απόσταση 5 cm από το γκρι εμπόδιο όπως στο σχήμα. Στον πίνακα τιμών αισθητήρων διαβάζουμε 1850 μονάδες. Στο «Text Programming», με τη βοήθεια των δύο μεταβολέων επιλέγω 1600 και 2000 ως τιμές για κάτω και άνω όριο τιμών.

ΙΙΙ) Πείραμα δεύτερο: Το ρομποτάκι ανιχνεύει ένα εμπόδιο, οπισθοχωρεί με μικρότερη ταχύτητα και τελικά σταματάει σε ένα δεύτερο εμπόδιο.

 

Η Περιγραφή: Το ρομποτάκι τοποθετείται σε απόσταση (περίπου 15 εκατοστών) ακριβώς απέναντι από ένα εμπόδιο-γκρι λωρίδα. Στη συνέχεια, κινείται με σταθερή ταχύτητα (V1) και μόλις πλησιάσει το εμπόδιο σε «απόσταση σταματήματος» τότε κάνει όπισθεν, κινείται με ταχύτητα (V2) και σταματάει μόλις το όπισθεν δεξί μέρος του (εκεί που βρίσκεται ο αισθητήρας 5 του Thymio) βρεθεί σε μικρή απόσταση από εμπόδιο-μαύρη λωρίδα ή το δάχτυλό μου. 

Το Σκηνικό: Εκτός από το οριζόντιο τραπέζι ή το έδαφος πάνω στο οποίο διαδραματίζεται η κίνηση, το σκηνικό του πειραματισμού μας περιλαμβάνει δύο εμπόδια-λωρίδες και μια μετροταινία.

Το Σχήμα: Φτιάχνω ένα απλό σχήμα αναπαράστασης α) της κίνησης του ρομπότ κάθετα στο εμπόδιο β) της οπισθοχώρησής του όταν φτάνει σε μια απόσταση από το μπροστινό εμπόδιο και γ) σταματήματός του με ένα εμπόδιο πίσω από αυτό:

Ο κώδικας του προγράμματος στο VPL: Για να διευκολυνθεί ο πειραματισμός θα χρειαστεί να φτιάξουμε ένα πρόγραμμα υπολογιστή και να το φορτώσουμε στο ρομποτάκι για εκτέλεση.

Σκέφτομαι: Στο περιβάλλον του VPL κυριαρχεί η ιδέα «γεγονός (event) – δράση (action) οπότε στην περίπτωσή μας διακρίνω τρία βασικά γεγονότα:

  • το πάτημα του κουμπιού «μπροστά»,
  • την ανίχνευση εμποδίου από τον κεντρικό αισθητήρα (2) και
  • την ανίχνευση του αισθητήρα (5)

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

Στο πρώτο γεγονός θέλουμε μόλις πατηθεί το κουμπί «μπροστά» και η κατάσταση του ρομπότ είναι (OFF, OFF, OFF, OFF), να κινείται μπροστά με ταχύτητα 150 mm / s και η κατάστασή του να γίνει (ON, OFF, OFF, OFF).

Κάποια στιγμή, ο αισθητήρας (2) ανιχνεύει εμπόδιο και η κατάσταση του είναι ίδια όπως στην προηγούμενη γραμμή οπότε εκτελείται η εντολή οπισθοχώρησης με ταχύτητα -200 mm / s και η κατάσταση γίνεται (OFF, ON, OFF, OFF).

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

(βλέπε https://www.eduportal.gr/thymio6/)

Επέκταση του προγράμματος: Αν θέλουμε να έχουμε τη δυνατότητα να επαναλαμβάνουμε την κίνηση με τις φάσεις της αλλά η ανίχνευση να γίνεται είτε με τον αισθητήρα 5 (πίσω δεξιά) ή τον αισθητήρα 6 (πίσω αριστερά) τότε θα πρέπει να προσθέσουμε μια τέταρτη γραμμή όπως φαίνεται παρακάτω.

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