Προγραμματίζω το ρομποτάκι Thymio ώστε να ακολουθεί μια μαύρη λωρίδα στο δάπεδο (3η Δραστηριότητα)

Μια συνηθισμένη δραστηριότητα εκπαιδευτικής ρομποτικής για αρχάριους (και όχι μόνο) είναι αυτή στην οποία προτείνεται ο προγραμματισμός ενός  thymio_3-2_         mobile-robot έτσι ώστε να ακολουθεί μια μαύρη λωρίδα στο έδαφος, όπως δείχνουν οι παραπάνω φωτογραφίες.

Η επίλυση του προβλήματος προϋποθέτει την ύπαρξη δύο «αισθητήρων εγγύτητας εδάφους » ( ground proximity sensors) στο κάτω – μπροστινό μέρος του Thymio (τα δύο μικρά μαύρα ορθογώνια της φωτογραφίας).

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

Πώς να προγραμματίσω το ρομποτάκι, που κινείται πάνω στο τραπέζι, έτσι ώστε να μην πέφτει όταν φτάνει στην άκρη του;

Παίρνουμε υπόψη μας ότι οι δύο «αισθητήρες εγγύτητας εδάφους» του Thymio

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

Επιπλέον, γνωρίζουμε ότι:

α) αν κάτω από τους αισθητήρες εγγύτητας εδάφους υπάρχει μαύρο χρώμα

ΤΟΤΕ,

δεν υπάρχει ανακλώμενη υπέρυθρη ακτινοβολία

β)αν κάτω από τους αισθητήρες υπάρχει άλλο φωτεινό χρώμα, για παράδειγμα λευκό,

ΤΟΤΕ,

υπάρχει μια ποσότητα ανακλώμενης ακτινοβολίας.

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

Με βάση τα παραπάνω φτιάχνουμε το σχετικό πρόγραμμα στο περιβάλλον του «Οπτικού Προγραμματισμού» (Visual Programming – VPL) και το αντίστοιχο «Text Programming».

thymio_3-3_

Ακολουθώντας παρόμοια λογική και στο περιβάλλον BLOCKLY οδηγούμαστε στο παρακάτω εξίσου απλό πρόγραμμα «σταματήματος στην άκρη του τραπεζιού»:

thymio_3-4_

Μετά από την πρώτη γνωριμία με τους δύο «αισθητήρες εδάφους» (δεξιό και αριστερό) επανερχόμαστε στο βασικό ερώτημα της 3ης Δραστηριότητας:

«Πώς να προγραμματίσω στις γλώσσες VPL και BLOCKLY το ρομποτάκι Thymio ώστε να ακολουθεί μια μαύρη λωρίδα στο δάπεδο;»

Το ρομποτάκι Thymio ακολουθεί μια μαύρη λωρίδα
Το ρομποτάκι Thymio ακολουθεί μια μαύρη λωρίδα

Για τον πειραματισμό μου χρησιμοποίησα μια πίστα με κλειστή μαύρη λωρίδα που αγόρασα μαζί με το ρομποτάκι (https://www.thymio.org/en:thymioaccessory)

thymio_3-6_

  1. Στο περιβάλλον «Οπτικού Προγραμματισμού» (VPL)

Μετά από μερικές δοκιμαστικές προσπάθειες κατέληξα στα παρακάτω τέσσερα ζεύγη του τύπου:   EVENT (Γεγονός) ——à ACTIONS (Δράσεις)

Στο πρώτο ζεύγος, το ρομποτάκι παραμένει ακίνητο όταν ανιχνεύει λευκό χρώμα.

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

Αν  και οι δύο αισθητήρες εδάφους του Thymio είναι πάνω από λευκή επιφάνεια

ΤΟΤΕ,

παραμένει ακίνητο (μηδενικές ταχύτητες κινητήρων)

 

Αν  και οι δύο αισθητήρες εδάφους του Thymio είναι πάνω από τη μαύρη λωρίδα (3.5 cm)

ΤΟΤΕ,

κινείται με ίσες ταχύτητες των κινητήρων (150, 150)

 

Αν ο αριστερός αισθητήρας είναι πάνω από τη μαύρη λωρίδα

ΚΑΙ ο δεξιός είναι έξω απ’ αυτήν

ΤΟΤΕ,

το ρομποτάκι στρίβει αριστερά (-250, 250)

 

Αν ο δεξιός αισθητήρας είναι πάνω από τη μαύρη λωρίδα

ΚΑΙ ο αριστερός είναι έξω απ’ αυτήν

ΤΟΤΕ,

το ρομποτάκι στρίβει δεξιά (250, -250)

 

Το τελικό πρόγραμμα στο περιβάλλον του «Οπτικού Προγραμματισμού» θα έχει τη μορφή:

thymio_3-7_β) Στο περιβάλλον BLOCKLY, με παρόμοια λογική, θα έχουμε τον παρακάτω κώδικα:

thymio_3-8_Τι εξυπηρετεί η δραστηριότητα «το ρομποτάκι Thymio ακολουθεί μια μαύρη λωρίδα στο έδαφος;»

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

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

thymio_3-9_

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

Ο δέκτης είναι μια φωτοδίοδος ευαίσθητη μόνο στην υπέρυθρη ακτινοβολία.

Ισχύει ο κανόνας: όσο το αντικείμενο είναι «εγγύτερα» στον αισθητήρα τόσο μεγαλύτερη είναι και η ποσότητα της ανακλώμενης ακτινοβολίας.

Για τα κινητά τηλέφωνα που χρησιμοποιούν αισθητήρα υπερύθρων αξίζει να γνωρίζουμε ότι:

«ο αισθητήρας εγγύτητας βρίσκεται δίπλα στο ακουστικό του κινητού τηλεφώνου. Έτσι όταν πλησιάζουμε το τηλέφωνο στο αυτί μας η συσκευή κλείνει αυτόματα την οθόνη και με αυτόν τον τρόπο εξοικονομεί ενέργεια αλλά και αποφεύγεται το «πάτημα» κάποιου «κουμπιού» στην οθόνη αφής κατά τη διάρκεια της κλήσης από το μάγουλο μας» (https://physicsandroid.wordpress.com/%CE%B1%CE%B9%CF%83%CE%B8%CE%B7%CF%84%CE%AE%CF%81%CE%B1%CF%82-%CE%B5%CE%B3%CE%B3%CF%8D%CF%84%CE%B7%CF%84%CE%B1%CF%82/)

2. Από το επίσημο site του Thymio http://thymio.org αντλούμε την πληροφορία ότι η τιμή της prox.ground.delta που εμφανίζεται στους κώδικες «Text Programming» υπολογίζεται από τη διαφορά μεταξύ της ποσότητας

ανακλώμενης ακτινοβολίας prox.ground.reflected  (τιμή 0 – καθόλου ανάκλαση και 1023 μέγιστη ) και

της ακτινοβολίας περιβάλλοντος prox.ground.ambiant (τιμή 0 – καθόλου φως και 1023 μέγιστο).

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

Παρακάτω δίνονται πέντε παραδείγματα – στιγμιότυπα που αναφέρονται στις παρακάτω διαφορετικές περιπτώσεις:

thymio_3-10_thymio_3-11_3. Η δραστηριότητα μπορεί να αποτελέσει και μια προετοιμασία για εφαρμογές που απαιτούν τη χρήση των υπόλοιπων επτά  αισθητήρων υπέρυθρης ακτινοβολίας του Thymio  (5 αισθητήρες στο μπροστινό και 2 στο πίσω μέρος).