Tο ρομποτάκι Thymio μεταφέρει ηχητικά μηνύματα με τον κώδικα Morse (22η Δραστηριότητα στο περιβάλλον διασύνδεσης «Thymio+Scratchx»)

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

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

Αυτό που εδώ μας ενδιαφέρει πιο πολύ είναι η χρησιμοποίηση της εντολής ήχου   που διαθέτει η διασύνδεση «Thymio+Scratchx» με σκοπό να πειραματιστούμε στη μετάδοση  μηνυμάτων με το κώδικα Morse.

Ο Κώδικας Μορς είναι μια μέθοδος μετάδοσης πληροφοριών με παλμούς μικρής και μεγάλης διάρκειας ή σημάδια -τελείες και παύλες (Wikipedia). Επινοήθηκε ειδικά για τη μετάδοση μηνυμάτων μέσω τηλεγράφου στα μέσα του 1830 από τον Σάμιουελ Μορς (Samuel Morse, 1791 – 1872).

(το σκίτσο είναι από το site http://www.eduborail.org/Reading-1-MHT-9.aspx )

Αμέσως πιο κάτω δίνονται δύο πίνακες με τον κώδικα Μορς. Ο πρώτος αναφέρεται στο «Διεθνή Κώδικα Μορς» (International Morse Code, 1922)  γραμμάτων και ψηφίων και ο άλλος στον κώδικα των Ελληνικών γραμμάτων (για περισσότερα βλέπε στη Wikipedia) :

Β.  Ένα σενάριο παραγωγής ηχητικών μεταδόσεων με το ρομποτάκι

 

Πριν από τον προγραμματισμό θεωρώ ότι μια επαφή με τους ήχους των γραμμάτων θα μπορούσε να γίνει μέσα από την ιστοσελίδα  https://el.wikipedia.org/wiki/%CE%9A%CF%8E%CE%B4%CE%B9%CE%BA%CE%B1%CF%82_%CE%9C%CE%BF%CF%81%CF%82

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

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

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

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

  • Με ποιούς τρόπους μπορεί ο αποστολέας να στείλει το κωδικοποιημένο μήνυμα του (για παράδειγμα, τη λέξη THYMIO με καθένα από τα 5 γράμματα μεταφρασμένο σε κώδικα Μορς) με το ρομποτάκι;
  • Πώς να οικοδομήσει το αναγκαίο πρόγραμμα στο περιβάλλον του «Thymio+Scratchx»;

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

a) Μόλις ο παραλήπτης πατήσει το κεντρικό κουμπί του ρομπότ να ακούγεται το μήνυμα Τ-Η-Υ-Μ-Ι-Ο σε κώδικα Μορς (τελείες, παύλες)..

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

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

Από τη διαμόρφωση του «σεναρίου» είναι φανερό ότι επιδιώκεται η αξιοποίηση τόσο της οθόνης και του πληκτρολογίου του υπολογιστή όσο και των κουμπιών και αισθητήρων του ρομπότ».

Γ. Ο προγραμματισμός στο περιβάλλον «Thymio+Scratchx»

Ευτυχώς, το περιβάλλον διασύνδεσης «Thymio+Scratchx» περιλαμβάνει όχι μόνο αυτούσιο το γνωστό μας πρόγραμμα Scratch (www.scratch.mit.edu με την «Κοινότητα του Scratch» στο M.I.T.) αλλά και μια σειρά εντολών και λειτουργιών που εξυπηρετούν τον προγραμματισμό του κινητού ρομπότ Thymio (επιπλέον των περιβαλλόντων VPL, BLOCKLY και Text Programming).

Μετά από πολλές προσπάθειες προγραμματισμού, σύμφωνα με το «σενάριο» που αναφέρθηκε παραπάνω, κατάληξα στην επιλογή των αντικειμένων (sprites) που χρησιμοποιήθηκαν. καθώς και στη χρήση ορισμένων εντολών και λειτουργιών του νέου περιβάλλοντος «Thymio+Scratchx».

Τα αντικείμενα (sprites) του προγράμματος

Βασικά, πρόκειται για τα 6 γράμματα του μηνύματος T-Y-I-M-I-0 τα οποία εμφανίζονται στην οθόνη με υπόβαθρο πράσινου χρώματος. Το έβδομο sprite είναι ένα πλαίσιο που γράφει το όνομα της διασύνδεσης «Thymio+Scratch» και όταν περάσει πάνω από αυτό ο δείκτης του ποντικιού εμφανίζεται ένα μήνυμα – οδηγία. Σύμφωνα με τα παραπάνω η σελίδα οθόνης διαμορφώνεται ως εξής:

  • Σύμφωνα με το «σενάριο» ο αποδέκτης του μηνύματος μπορεί να ζητήσει από το ρομποτάκι να παίξει τους ήχους των 6 γραμμάτων ακουμπώντας το δάκτυλό του ή ένα στυλό μπροστά από τους πέντε μπροστινούς αισθητήρες (0,1,..4) και τον πίσω δεξιά αισθητήρα (5) για το έκτο γράμμα.
    Για αυτό το σκοπό χρειάζεται τη λειτουργία < proximity sensor > η οποία αναφέρεται σε 7  ορίσματα – αισθητήρες όπως δείχνονται παρακάτω.

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

IF ………..THEN όπως στο παράδειγμα:

  • Μια νέα εντολή προστέθηκε στο περιβάλλον διασύνδεσης «Thymio+Scratchx» και αναφέρεται στο άγγιγμα των πέντε κουμπιών που έχει στο πάνω μέρος του το ρομποτάκι.
    Πρόκειται για την εντολή button <ορίσματα > όπου τα 5 ορίσματα αντιστοιχούν στα πέντε κουμπιά:

  • Για την παραγωγή των ήχων τελεία-παύλα, σύμφωνα με τον κώδικα Μορς, αξιοποίησα την εντολή  play note <συχνότητα  Hz> during < χρόνος s > και χρησιμοποιείται για το «χτίσιμο» των δύο blogs που αναφέρουμε παρακάτω
  • Εδώ θα χρειαστεί να ορίσουμε δύο νέα Blocks τα οποία αναλαμβάνουν να παίζουν το ρόλο των δυο βασικών ήχων του κώδικα Μορς. Πρόκειται για τα blocks ΤΕΛΕΙΑ και ΠΑΥΛΑ όπως ορίστηκαν παρακάτω:
    Ο κώδικας προγραμματισμού για τα 3 γράμματα (Ο, Τα, Υ) αντίστοιχα είναι:

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

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

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

Share Button