Πειράματα Εκπαιδευτικής Ρομποτικής: «Ακολουθία Γραμμής-Line Follower» με 1 μόνο αισθητήρα εδάφους του Thymio (24η Δραστηριότητα)

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

Α. Εισαγωγή

Σ’ αυτήν τη δραστηριότητα ενδιαφερόμαστε ιδιαίτερα για τη γνωστή ως «Line Follower» δραστηριότητα ρομποτικής με τη χρήση μόνο του ενός αισθητήρα εδάφους του κινητού εδάφους Thymio. Ταυτόχρονα, επιστρέφουμε και πάλι στα επίσημα περιβάλλοντα προγραμματισμού τόσο του  «Οπτικού Προγραμματισμού» (Virtual Programming Language, VPL», για μικρά παιδιά, καθώς και του BLOCKLY για μεγαλύτερα. Και εδώ, υποστηρίζουμε την παιδαγωγική προσέγγιση της «Πολλαπλότητας των Αναπαραστάσεων» καθώς και κάτι αντίστοιχο αναφορικά με τους διαφορετικούς τρόπους κατανόησης όπως το εκφράζει ο M. Resnick:

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

Βασικός στόχος αυτής της δραστηριότητας είναι η περαιτέρω εξοικείωση μας με τους αισθητήρες εδάφους και με μια προσέγγιση πειραματική, όπως επιβάλλεται. Από την άλλη αυτή η δραστηριότητα είναι και μια εισαγωγή στα προβλήματα ρομποτικής αναφορικά με το γνωστό θέμα «Line Follower» όπου οι λωρίδες και οι ποικίλες επιφάνειες δεν είναι αποκλειστικά του τύπου «μαύρο – άσπρο», όπως συνηθίζεται για λόγους ευκολίας, αλλά μπορεί να είναι και κόκκινες… πράσινες …. μπλε. (Βλέπε ένα χρήσιμο άρθρο περί των χρωμάτων RGB στο Thymio: https://www.eduportal.gr/thymio-led-13/ ). 

B.Τρία πειράματα με τoυς αισθητήρες εδάφους του Thymio

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

Στο αριστερό μέρος της οθόνης εμφανίζονται τα ονόματα (0) και (1) των δύο αισθητήρων και οι αντίστοιχες τιμές τους – στην περίπτωση που το ρομποτάκι ακουμπάει πάνω σε μια μαύρη επιφάνεια – όπως δείχνει ο πίνακας ονομάτων μεταβλητών και αντίστοιχων τιμών τους:

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

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

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

β) Υπενθυμίζουμε, ότι η τιμή ενός αισθητήρα που χρησιμοποιούμε στον προγραμματισμό είναι μόνο η prox.ground.delta και δίνεται από τη διαφορά δύο ακτινοβολιών: της ανακλώμενης και του περιβάλλοντος: 

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

  • από ένα «φωτάκι» τύπου LED, το οποίο εκπέμπει κόκκινη υπέρυθρη ακτινοβολία

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

Όσον αφορά τη λειτουργία των αισθητήρων εδάφους υπενθυμίζω το διάγραμμα που παρουσιάσαμε και στην 3η Δραστηριότητα στο Eduportal.

Εύκολα οδηγούμαστε σε τρεις απλές παρατηρήσεις και σε έναν πίνακα τιμών:

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

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

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

Με κατάλληλες στροφές δεξιά-αριστερά το ρομποτάκι, τελικά, κινείται πάνω σε μια  μαύρη λωρίδα που βρίσκεται πάνω σε μια λευκή επιφάνεια. Πρόκειται για τον απλούστερο τρόπο «ακολουθίας γραμμής» με  έναν μόνο αισθητήρα υπερύθρων και ονομάζεται «Μέθοδος Ζιγκ – Ζαγκ».

Στο σχήμα απεικονίζεται το ρομπότ Thymio καθώς κινείται πάνω στη μαύρη λωρίδα με την αξιοποίηση του αριστερού αισθητήρα (0) (κόκκινο τετραγωνάκι) :

Ο κώδικας σε «Οπτικό Προγραμματισμό, VPL»

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

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

Ο κώδικας σε «BLOCKLY»

Βασιζόμαστε στα παραπάνω και πολύ εύκολα φτιάχνουμε το πρόγραμμα της μεθόδου Ζιγκ Ζαγκ στο περιβάλλον BLOCKLY που παρέχεται δωρεάν με το λογισμικό ASEBA του Thymio όπως και το VPL.

Ο πειραματισμός με το ρομποτάκι και διάφορα υλικά

Για ένα γρήγορο test των δύο προγραμμάτων του τύπου, «Line Follower» με ένα μόνο αισθητήρα υπερύθρων, χρησιμοποιούμε απλά υλικά (χαρτόνια, πλαστικά κ.α.) πάνω σε τραπέζι, όπως φαίνεται στις φωτογραφίες:

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

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

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

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

Η λογική σκέψη μεταφράζεται στη γλώσσα που καταλαβαίνει το ρομποτάκι:

 Η μετάφραση σε «Οπτικό Προγραμματισμό, VPL» για την περίπτωση της αριστερόστροφης κίνησης

Η πρώτη λογική πρόταση είναι:

Αν (0) ανιχνεύει μαύρη γραμμή ΤΟΤΕ άναψε κόκκινο χρώμα και προχώρα μπροστά

Και η «μετάφραση» της πρώτης πρότασης:

Εφόσον αληθεύει το ΓΕΓΟΝΟΣ:   {Αν (0) ανιχνεύει μαύρη γραμμή }

Στην πρώτη γραμμή του κώδικα τοποθετούμε το εικονίδιο (sensor ground) που φανερώνει ότι ο αριστερός αισθητήρας (0)  του Thymio ανιχνεύει μαύρο χρώμα. Αυτό φαίνεται στον κώδικα του «Οπτικού Προγραμματισμού» από την τιμή του αισθητήρα που είναι ΜΙΚΡΟΤΕΡΗ του 400. Γενικά, η επιλογή της τιμής του αισθητήρα επιτυγχάνεται με τη βοήθεια του μεταβολέα (slider)

ΤΟΤΕ εκτελούνται οι ΔΡΑΣΕΙΣ:

Ανάβει το πράσινο LED στο πάνω μέρος του Thymio  και η ταχύτητά του είναι 100 mm / s

Η επιλογή του χρώματος επιτυγχάνεται με τη βοήθεια των τριών μεταβολέων (sliders) με τιμές από 0 ως 32. Εδώ, το κόκκινο προκύπτει από επιλογή του πράσινου να είναι 32 ενώ οι τιμές για το κόκκινο και το μπλε να είναι μηδέν. Από την άλλη η επιλογή της ταχύτητας 100 mm / s γίνεται με την απόδοση της τιμής 100 και για τους δύο κινητήρες – τροχούς.

Η δεύτερη λογική πρόταση είναι:

Αν (0) ανιχνεύει λευκό χρώμα ΤΟΤΕ στρίψε αριστερά

Και η «μετάφραση» της δεύτερης πρότασης:

Εφόσον αληθεύει το ΓΕΓΟΝΟΣ:   {Αν (0) ανιχνεύει λευκό χρώμα }

Στη δεύτερη γραμμή του κώδικα τοποθετούμε το εικονίδιο (sensor ground) που φανερώνει ότι ο αριστερός αισθητήρας (0)  του Thymio ανιχνεύει λευκό χρώμα. Αυτό φαίνεται στον κώδικα του «Οπτικού Προγραμματισμού» από την τιμή του αισθητήρα που είναι ΜΕΓΑΛΥΤΕΡΗ του 450. Γενικά, η επιλογή της τιμής του αισθητήρα επιτυγχάνεται με τη βοήθεια του μεταβολέα (slider)

ΤΟΤΕ εκτελούνται οι ΔΡΑΣΕΙΣ:  

Ανάβει το κόκκινο LED (32, 0, 0) στο πάνω μέρος του Thymio  και στρίβει αριστερά (VL=-100 και VR = 0) με τις επιλογής να γίνονται με τον τρόπο που περιγράψαμε παραπάνω.

Ο κώδικας του προγράμματος σε VPL  

Με την ίδια λογική φτιάχνουμε το πρόγραμμα και στην περίπτωση που θέλουμε να κινηθεί το ρομπότ δεξιόστροφα στην κλειστή γραμμή.

Ο κώδικας σε «BLOCKLY» για το δεύτερο πείραμα ρομποτικής

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

Ο πειραματισμός με το ρομποτάκι και διάφορα υλικά

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

Η γενίκευση αναφέρεται στο πείραμα 2. Αυτή τη φορά χρησιμοποιούμε μεταβλητές, τόσο για τα όρια των τιμών αναφορικά με το χρώμα της γραμμής (ΤΙΜΗ_1 και ΤΙΜΗ_2) όσο και για την ταχύτητα περιστροφής δεξιόστροφα ή αριστερόστροφα (μεταβλητή V). Για την επιλογή αυτών των τιμών αξιοποιούμε τα κουμπιά του τηλεκοντρόλ.

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

Ο κώδικας προγραμματισμού του τρίτου πειράματος

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

ΣΗΜΕΙΩΣΗ

Μια αναζήτηση στο site της «Κοινότητας του Scratch» για προσομοιώσεις του τύπου «Line Follower» ενός εικονικού ρομπότ στην οθόνη, μας οδηγεί σε έναν εντυπωσιακό αριθμό προγραμμάτων (projects) (https://scratch.mit.edu/search/projects?q=line%20follower ).

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

Α) «Ακολουθία Γραμμής» με έναν «εικονικό αισθητήρα»

Β) «Ακολουθία Γραμμής» με δύο «εικονικούς αισθητήρες»

Γ) «Ακολουθία Γραμμής» με τρεις «εικονικούς αισθητήρες»

Δ) Σχεδίαση μιας γραμμής και αμέσως μετά κίνηση του εικονικού ρομπότ – με δύο «εικονικούς αισθητήρες» – πάνω σ’ αυτήν (Drawing Line Follower).

Με το Thymio γνωρίσαμε αναλυτικά τους τύπους Α) και Β) ενώ ο Γ) δεν μπορούμε μια και το ρομποτάκι μας διαθέτει δύο αισθητήρες εδάφους. Όσο για τον τύπο Δ) προσπάθησα με ένα απλό μαρκαδόρο μόνο μια φορά και απέτυχα. Θα προσπαθήσω ρυθμίζοντας καλύτερα τα όρια τιμών των αισθητήρων. Είδομεν!

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

Share Button