ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ Μεταπτυχιακό Δίπλωμα Ειδίκευσης "Τεχνολογίες Πληροφορικής και Επικοινωνιών στην Εκπαίδευση" ΤΙΤΛΟΣ: Σχεδίαση, υλοποίηση και αξιολόγηση Ρομποτικής Συσκευής για τη Ρομποτική Πλατφόρμα e-probotlab (Early Programming Robots Laboratory) Κ Α Ρ Α Χ Ρ Η Σ Τ Ο Σ Β. Χ Ρ Ι Σ Τ Ο Φ Ο Ρ Ο Σ Ε Π Ι Β Λ Ε Π Ω Ν Κ Α Θ Η Γ Η Τ Η Σ : Β. Κ Ο Μ Η Σ ( Τ μ ή μ α Ε π ι σ τ η μ ώ ν τ η ς Ε κ π α ί δ ε υ σ η ς κ α ι τ η ς Α γ ω γ ή ς σ τ η ν Π ρ ο σ χ ο λ ι κ ή Η λ ι κ ί α ) Πάτρα 2016
Περι γρα φή Στο πλαίσιο της διπλωματικής εργασίας αναπτύχθηκε και αξιολογήθηκε η αυτοκινούμενη ρομποτική συσκευή της πλατφόρμας πάνω στην πλακέτα Arduino. Πρόκειται για μια προγραμματιζόμενη ρομποτική συσκευή με μορφή αυτοκινήτου, η οποία μπορεί να προγραμματιστεί (από νηπιαγωγείο έως και γυμνάσιο) ή και να κατασκευαστεί από μαθητές της υποχρεωτικής εκπαίδευσης (γυμνάσιο). Στην περίπτωσή μας το περιβάλλον αξιολογήθηκε με μικρούς μαθητές 5-7 ετών, ηλικία για την οποία προβλέπεται η έναρξη εκμάθησης του προγραμματισμού. Η εργασία αυτή αποτελεί το ένα από τα δύο μέρη ανάπτυξης μιας πλατφόρμας (ρομποτικής κατασκευής και προγραμματιστικού περιβάλλοντος κατασκευής). Παρουσιάζεται ο τρόπος με τον οποίο αναπτύχθηκε η ρομποτική κατασκευή της πλατφόρμας. Σε άλλη διπλωματική εργασία παρουσιάζεται η μεθοδολογία ανάπτυξης και χρήσης του προγραμματιστικού περιβάλλοντος της πλατφόρμας. Η αξιολόγηση έδειξε ότι είναι αρκετά εύκολη η κατανόηση της χρήσης του ρομποτικού συστήματος και ο προγραμματισμός του.
A bs t ract Within this dissertation a self-propelled robotic platform based on Arduino, was developed and evaluated. This platform is a car shaped robotic device, which can be programmed (from kindergarten through high school students) or can be constructed by pupils of compulsory education (high school). In our case the environment was evaluated by young students (5-7 years old). This work is one of two parts of a programmable robotic platform-system (robotics and programming environment). Here we can see the construction steps of the robotic platform. In another dissertation it s shown the methodology of development and use of the programming environment of the platform. The evaluation showed that it is quite easy to understand the use of the robotic system and its programming.
Η παρούσα διπλωματική εργασία εκπονήθηκε στα πλαίσια του Μεταπτυχιακού Προγράμματος Σπουδών «Μαθηματικά και Σύγχρονες Εφαρμογές» συγκεκριμένα της ειδίκευσης «Τεχνολογίες Πληροφορικής και Επικοινωνιών στην εκπαίδευση» του Μαθηματικού Τμήματος του Πανεπιστημίου Πατρών. Η επίβλεψη και άμεση καθοδήγηση της διπλωματικής εργασίας μου από τον κ. Κόμη Βασίλειο Καθηγητή του Τμήματος Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική Ηλικία, αποτέλεσε εξαιρετική τιμή για μένα. Η συνεργασία μου μαζί του όχι μόνο εξασφάλισε τις ευνοϊκότερες προϋποθέσεις για την ολοκλήρωση αυτού του έργου, αλλά επηρέασε και εξακολουθεί να επηρεάζει τη στάση μου απέναντι στην επιστημονική γνώση και την αναζήτηση εποικοδομητικών τρόπων διδασκαλίας. Θέλω να τον ευχαριστήσω θερμά για την υπομονή του, τη βοήθειά του και τη συμπαράστασή του. Ένα ιδιαίτερα μεγάλο ευχαριστώ οφείλω στην Αναστασία Μισιρλή, νηπιαγωγό και διδάκτορα του Τμήματος Επιστημών της Εκπαίδευσης και της Αγωγής στην Προσχολική Ηλικία, για την αμέριστη συμπαράστασή της καθ όλη την διάρκεια της έρευνας, την καθοδήγηση και υποστήριξη κατά την υλοποίηση της εργασίας. Πάντα πρόθυμη και ουσιαστική στις παρατηρήσεις της. Ευχαριστώ ιδιαίτερα τον κ. Κώστα Νάκο για την άψογη συνεργασία του καθώς μαζί συνεργαστήκαμε στην ολοκλήρωση της πλατφόρμας.
Στον πατέρα μου...
Περιεχόμενα Περιγραφή... 2 Abstract... 3 Κατάλογος Σχημάτων... 8 Κεφάλαιο 1: Εισαγωγή... 10 1.1 Στόχος και κίνητρο...... 11 1.2 Σχετική έρευνα...... 12 1.3 Ερευνητικό πρόβλημα και ερευνητική συνεισφορά...... 14 1.4 Οργάνωση της εργασίας...... 15 Κεφάλαιο 2: Ρομποτικές πλατφόρμες και κατασκευές... 17 2.1 Ρομποτικές πλατφόρμες στην εκπαίδευση...... 17 2.1.1 Thymio II [9]... 17 2.1.2 BOE-Bot [10]... 18 2.1.3 Dash and Dot [11]... 18 2.1.4 LEGO Mindstorms [12]... 19 2.1.5 MOSS [13]... 20 2.1.6 Scribbler 2 [14]... 20 2.1.7 Cubelets [15]... 21 2.1.8 ATOMS [16]... 21 2.1.9 4WD Mecanum wheel mobile robot kit [17]... 22 2.1.10 Robotis Dream [18]... 22 2.1.11 Bee Bot [19]... 23 2.1.12 Pro Bot [20]... 24 2.1.13 ΚΙΒΟ [21]... 24 2.1.14 Blue Bot [29]... 24 2.2 Μικροελεγκτές - Μικροεπεξεργαστές για τη δημιουργία ρομποτικών κατασκευών...... 25 2.2.1 Raspberry Pi [22]... 25 2.2.2 Phidgets [23]... 26 2.2.3 Basic Stamp 2 και η μητρική Πλακέτα (Basicstamp Board) [24]... 26 2.2.4 BX-24 της Netmedia [25]... 27 2.2.5 Arduino [26]... 28 Κεφάλαιο 3: Σχεδίαση... 29 3.1 Μέθοδος ανάπτυξης...... 29 3.1.1 Ανάλυση Απαιτήσεων... 31 3.1.2 Αρχιτεκτονική Συστήματος... 37 3.1.3 Εγκατάσταση πλατφόρμας... 62
Κεφάλαιο 4: Διδακτική παρέμβαση με το e-probotlab... 65 4.1.1 Στοιχεία αξιολόγησης... 65 4.1.2 Γνωριμία με το e-probotlab... 66 4.1.3 Εφαρμογή 1 ου φύλλου εργασίας... 67 4.1.4 Εφαρμογή 2 ου φύλλου εργασίας... 70 4.1.5 Εφαρμογή 3 ου φύλλου εργασίας... 76 4.1.6 Εφαρμογή 4 ου φύλλου εργασίας... 78 4.1.7 Ερωτηματολόγιο - Συνέντευξη... 80 4.1.8 Συμπεράσματα... 81 Βιβλιογραφια... 83 Παράρτημα Α: Δράσεις στις οποίες παρουσιάστηκε το e-probotlab.... 85 Παράρτημα Β: Σύντομη περιγραφή συναφούς εργασιας με τίτλο Σχεδίαση, Υλοποίηση και Αξιολόγηση Προγραμματιστικού Περιβάλλοντος για την Ρομποτική Πλατφόρμα E-Probotlab... 88
Κ ατάλογο ς Σχημάτων Εικόνα 1: Thymio II Εικόνα 2: BOE-Bot Εικόνα 3: Dash and Dot Εικόνα 4: LEGO Mindstorms Εικόνα 5: MOSS Εικόνα 6: Scribbler 2 Εικόνα 7: Cubelets Εικόνα 8: ATOMS Εικόνα 9: 4WD Mecanum wheel mobile robot kit Εικόνα 10: Robotis Dream Εικόνα 11: Bee Bot Εικόνα 12: Pro Bot Εικόνα 1: KIBO Εικόνα 14: Blue-Bot Εικόνα 15: Raspberry Pi Εικόνα 2: Phidgets Εικόνα 3: Basic Stamp 2 Εικόνα 4: Basicstamp Board Εικόνα 5: BX-24 Εικόνα 20: Arduino Εικόνα 21: Απλοποιημένο διάγραμμα σταδίων ανάπτυξης εφαρμογών λογισμικού Εικόνα 22: Επικοινωνία αρθρωμάτων συστήματος Εικόνα 6: Διάγραμμα δραστηριοτήτων Εικόνα 7: Άρθρωμα ρομποτικής κατασκευής Εικόνα 8: Βηματικοί κινητήρες Εικόνα 9: Άρθρωμα επικοινωνίας Εικόνα 10: Σχήμα επικοινωνίας Εικόνα 11: Άρθρωμα Wi-Fi Εικόνα 12: Εσωτερικό ρομποτικής κατασκευής Εικόνα 30: Πίσω μέρος ρομποτικής κατασκευής Εικόνα 31: Πλαϊνό μέρος ρομποτικής κατασκευής Εικόνα 32: Κάτω μέρος ρομποτικής κατασκευής Εικόνα 33: Πάνω μέρος ρομποτικής κατασκευής Εικόνα 34: Half-size Breadboard Εικόνα 35: Jumper wire pack Εικόνα 13: Συνδεσμολογία ηλεκτρικών μερών Εικόνα 14: H-Bridge Εικόνα 15: Διάγραμμα συνδεσμολογίας H-bridge
Εικόνα 16: Διάγραμμα συνδεσμολογίας εσωτερικών μερών Εικόνα 40: Σύνδεση μέσω θύρας USB-b του Arduino Εικόνα 41: Φόρτωση προγράμματος στη ρομποτική κατασκευή Εικόνα 42: Πίνακας ελέγχου XAMPP Εικόνα 43: Γνωριμία μαθητών με το e-probotlab Εικόνα 44: Εργασία μαθητών στο Πρώτο φύλλο Δραστηριοτήτων Εικόνα 45: Ενδεικτικές απαντήσεις μαθητών Εικόνα 46: Ενδεικτικές απαντήσεις μαθητών Εικόνα 47: Ενδεικτικές απαντήσεις μαθητών Εικόνα 4817: Ενδεικτικές απαντήσεις μαθητών Εικόνα 49: Ενδεικτικές απαντήσεις μαθητών Εικόνα 50: Οι μαθητές πειραματίζονται Εικόνα 51: Ενδεικτικές απαντήσεις μαθητών Εικόνα 52: Εικόνα δραστηριοτήτων 3 και 4 Εικόνα 53: Μάτια και κεραία e-probotlab Εικόνα 54: Η πρώτη Πίστα Εικόνα 55: Η πρώτη Πίστα Εικόνα 56: Σκέψη για την επίλυση της Δραστηριότητας Εικόνα 57: Ο τρόπος εργασίας των μαθητών Εικόνα 58: Οι δυο τρόποι δημιουργίας και εκτέλεσης προγράμματος Εικόνα 59: Ενδεικτικές πίστες μαθητών Εικόνα 60: Οι κάρτες που δόθηκαν στους μαθητές Εικόνα 61: Ενδεικτικές διαδρομές μαθητών Εικόνα 62: Η πίστα των μαθητών Εικόνα 6318: Η πίστα και η εργασία των μαθητών Εικόνα 64: Οι απαντήσεις των μαθητών Εικόνα 65: Η εργασία των μαθητών Εικόνα 66: Εργασία μαθητών νηπιαγωγείου Εικόνα 67: Φωτογραφικό υλικό 1 Εικόνα 68: Φωτογραφικό υλικό 2 Εικόνα 69: Φωτογραφικό υλικό 3 Εικόνα 70: Διεπαφή προγραμματιστικού περιβάλλοντος
Κ ΕΦΑ ΛΑ ΙΟ 1: ΕΙΣΑΓΩΓΗ Η παρούσα εργασία μελετά τη σχεδίαση και την ανάπτυξη του e-probotlab, το οποίο είναι ένα εργαστήριο κατασκευής και προγραμματισμού ρομποτικών συσκευών. Η πλατφόρμα e-probotlab (Early Programming Robots Laboratory) χρησιμοποιεί υλικό και λογισμικό ανοικτού κώδικα (Open Source) και παρέχει τη δυνατότητα κατασκευής και προγραμματισμού αυτοκινούμενων ρομποτικών κατασκευών συνδυάζοντας την πλακέτα Arduino (μικροεπεξεργαστής ανοικτού κώδικα χαμηλού κόστους) με ένα εύχρηστο προγραμματιστικό περιβάλλον (γλώσσα οπτικού προγραμματισμού τύπου Logo). Πρόκειται για ένα περιβάλλον μάθησης προγραμματισμού και ρομποτικής, το οποίο μπορεί να χρησιμοποιηθεί από μαθητές της υποχρεωτικής εκπαίδευσης (από νηπιαγωγείο έως και γυμνάσιο). Η πλατφόρμα παρέχει τη δυνατότητα στους μαθητές να ασχοληθούν με την τεχνολογία σε τρία επίπεδα: Να δημιουργούν, να χειρίζονται και να χρησιμοποιούν τεχνολογία. Η καινοτομία του e-probotlab έγκειται στον κατάλληλο συνδυασμό υλικού (πλατφόρμα Arduino) και λογισμικού (οπτικό προγραμματιστικό περιβάλλον) προσαρμοσμένο για μαθητές από 5 έως 15 ετών. Η πλατφόρμα επιτρέπει σε μικρότερους μαθητές να χειριστούν το ρομπότ με απλό τρόπο, ενώ η ανοικτή τεχνολογία που χρησιμοποιεί επιτρέπει σε μεγαλύτερους μαθητές να κατασκευάσουν οι ίδιοι, με τη βοήθεια ενδεχομένως του εκπαιδευτικού, το ρομπότ χρησιμοποιώντας απλά υλικά και την πλακέτα Arduino. Η γλώσσα προγραμματισμού είναι ανεξάρτητη λειτουργικού και υπολογιστικού συστήματος και επιτρέπει την καθοδήγηση του ρομπότ μέσω ασύρματου δικτύου. Η πλατφόρμα e-probotlab συνιστά ένα πλαίσιο μάθησης προγραμματισμού και ρομποτικής μέσα από την πράξη. Παρέχει το υλικό και το προγραμματιστικό περιβάλλον για τη δημιουργία αυτοκινούμενων ρομπότ και το παιδαγωγικό πλαίσιο ένταξής τους στην εκπαιδευτική διαδικασία. Το συγκεκριμένο πλαίσιο είναι σπονδυλωτό, ξεκινώντας από δραστηριότητες μάθησης προγραμματισμού μέσω καθοδήγησης ενός ρομπότ έως τη δημιουργία του αυτοκινούμενου ρομπότ με τη χρήση της πλατφόρμας Arduino. Επιτρέπει, με άλλα λόγια, την ανάπτυξη της
προγραμματιστικής ικανότητας και του χειρισμού της ρομποτικής τεχνολογίας ενώ ευνοεί την προσέγγιση βασικών επιστημονικών πεδίων, όπως Φυσική, Τεχνολογία, Μηχανική και Μαθηματικά (Science, Technology, Engineering and Mathematics - STEM). Ειδικότερα, στην παρούσα εργασία περιγράφεται το ρομποτικό κατασκευαστικό μέρος της πλατφόρμας. Σε συναφή εργασία με τίτλο Σχεδίαση, υλοποίηση και αξιολόγηση Προγραμματιστικού Περιβάλλοντος για την Ρομποτική Πλατφόρμα e- ProBotLab του κ. Νάκου Κωνσταντίνου περιγράφεται η διεπιφάνεια προγραμματισμού της πλατφόρμας. 1.1 Στόχος και κίνητρο Κίνητρο για την ανάπτυξη της συγκεκριμένης πλατφόρμας αποτέλεσε η κατανόηση πλέον του γεγονότος ότι η γνώση του πως να προγραμματίζει κανείς είναι αναγκαία, ιδιαίτερα για τις νεότερες γενιές. Μπορεί να πει κανείς ότι ο προγραμματισμός θα αποτελέσει μέρος της βασικής παιδείας στη νέα ψηφιακή εποχή. Τα παιδιά μεγαλώνουν σήμερα σε ένα τελείως διαφορετικό περιβάλλον από αυτό που μεγάλωσαν οι γονείς τους. Οι έξυπνες συσκευές, οι υπολογιστές και υπηρεσίες όπως το Facebook και το Youtube αποτελούν αναπόσπαστο κομμάτι της καθημερινότητας. Ένα κομμάτι αποτελεί η εκμάθηση χρήσης όλων αυτών των τεχνολογιών. Ένα άλλο όμως αποτελεί η κατανόηση της λογικής πίσω από αυτές τις τεχνολογίες. Όταν μαθαίνουν προγραμματισμό, τα παιδιά κατανοούν τον κόσμο στον οποίο κατοικούν. Η εξάρτησή μας από την τεχνολογία καθημερινά μόνο αυξάνεται. Οι μαθητές του σήμερα θα πρέπει όχι μόνο να χρησιμοποιούν την τεχνολογία παθητικά, αλλά και να την κατανοούν και να την ελέγχουν. Παράλληλα, άλλο ένα κίνητρο για την ανάπτυξη της συγκριμένης πλατφόρμας αποτελεί το γεγονός πως η εκμάθηση κώδικα αναπτύσσει την λογική σκέψη και βοηθά στην "επίλυση προβλήματος". Οι ικανότητες που αναπτύσσονται με τον προγραμματισμό βοηθούν τα παιδιά να αναπτύξουν νέους τρόπους σκέψης και να υιοθετήσουν νέες τεχνικές επίλυσης προβλήματος. Η ιδέα πίσω από την ανάπτυξη της πλατφόρμας είναι ότι ο προγραμματισμός δεν θα πρέπει να είναι δύσκολο να γίνει κατανοητός ακόμη και από παιδιά μικρής ηλικίας. Ένα από τα σημαντικότερα χαρακτηριστικά της πλατφόρμας είναι η άμεση ανατροφοδότηση που παρέχει, στοιχείο
που είναι πολύ σημαντικό για την εκμάθηση προγραμματισμού. Αν ένα παιδί προγραμματίζει ένα αντικείμενο να κινηθεί με ένα συγκεκριμένο τρόπο και άμεσα δει το αποτέλεσμα που θέλει τότε άμεσα γνωρίζει ότι έχει προγραμματίσει τη συσκευή σωστά. Αυτού του τύπου η άμεση ανατροφοδότηση αποτελεί ένα εκπληκτικό εκπαιδευτικό εργαλείο. 1.2 Σχετική έρευνα Στη βιβλιογραφία υπάρχει μεγάλος όγκος δραστηριοτήτων σχετικών με εκπαιδευτική ρομποτική και το ενδιαφέρον της εκπαιδευτικής και επιστημονικής κοινότητας είναι αυξημένο γύρω από τον συγκεκριμένο τομέα. Πιο συγκεκριμένα, όσον αφορά την πρωτοβάθμια εκπαίδευση και κυρίως τις ηλικίες από 6 έως 12 χρονών η έρευνα στην εκπαιδευτική ρομποτική εστιάζει γύρω από τα ρομπότ σαν προγραμματιζόμενες συσκευές ή σαν μοντέλα κατασκευής. Ωστόσο οι περισσότερες έρευνες γύρω από την εκπαιδευτική ρομποτική χρησιμοποιούν σαν σύστημα εφαρμογής κάποιο κλειστό εμπορικό σύστημα, Η πλειοψηφία αυτών των ερευνών σε ποσοστό 90% έχουν πραγματοποιηθεί με το σύστημα Lego Mindstorms. Δύο ακόμη εμπορικά συστήματα που χρησιμοποιούνται σε έρευνες και εφαρμογές εκπαιδευτικής ρομποτικής σε παιδιά ηλικίας από 6 έως 12 χρονών είναι τα Lego WeDo και Beebot. Πρόσφατα εμφανίστηκε και το Thymio II robot, ένα σύστημα ανοικτού κώδικα με προσαρμοσμένους αισθητήρες. Παρακάτω αναφέρονται μερικές σχετικές έρευνες. Το IniRobot [1] αναπτύχθηκε σε Γαλλικά και Ελβετικά σχολεία πρωτοβάθμιας εκπαίδευσης το 2015 με σκοπό την μύηση των παιδιών στη ρομποτική και την επιστήμη των υπολογιστών. Βασίστηκε στη χρήση της ρομποτικής πλατφόρμας Thymio II όπου τα παιδιά συνεργατικά μέσα από ερευνητικές δραστηριότητες καθοδηγούνται στην κατασκευή της γνώσης τους. Το 2014 η σχολή μηχανικής και εφαρμοσμένων επιστημών του πανεπιστημίου Harvard παρουσίασε το AERobot [2], ένα χαμηλού κόστους ρομπότ που μπορεί να χρησιμοποιηθεί για διδακτική ρομποτικής και εισαγωγικών εννοιών προγραμματισμού στην πρωτοβάθμια εκπαίδευση. Το AERobot αποτελείται από τη ρομποτική κατασκευή
η οποία είναι ανοικτού κώδικα και μπορεί να ενσωματώσει ένα σύνολο αισθητήρων, και από το περιβάλλον προγραμματισμού το οποίο αποτελεί τροποποίηση μιας γραφικής γλώσσας προγραμματισμού του πακέτου Minibloq [27]. Η πλατφόρμα εφαρμόστηκε πιλοτικά σε τρείς συνεδρίες ενός πιλοτικού μαθήματος με τίτλο "BugBots: Programming Mini-Robots", μιας εβδομάδας που πραγματοποιήθηκε το καλοκαίρι του 2014 από το STEM summer camp i2 Camp [28]. Το 2015 το πανεπιστήμιο της Alabama παρουσίασε το Spherly [3] ένα περιβάλλον προγραμματισμού που βασίζεται στη Blockly, μια ανοικτού κώδικα block-based γλώσσα προγραμματισμού παρόμοιας φιλοσοφίας με αυτή της Scratch. Σκοπός της πλατφόρμας Shperly είναι ο προγραμματισμός της ρομποτικής συσκευής Sphero μέσα από την προτεινόμενη πλατφόρμα. Το συγκεκριμένο έργο εστιάζει στην ανάπτυξη του λογισμικού - γλώσσας προγραμματισμού η οποία θα χρησιμοποιηθεί για την καθοδήγηση της ρομποτικής συσκευής. Όσον αφορά τη ρομποτική συσκευή, αυτή αποτελεί ένα κλειστό σύστημα εμπορικά διαθέσιμο. Το 2014 το ινστιτούτο ρομποτικής και έξυπνων συστημάτων του Πανεπιστημίου ETH της Ζυρίχης παρουσίασε μια οπτική γλώσσα προγραμματισμού (visual programming language) [4] για τη ρομποτική συσκευή Thymio II. Η προτεινόμενη γλώσσα προγραμματισμού προορίζεται για παιδιά προσχολικής ηλικίας και σκοπό έχει να καταστήσει τον προγραμματισμό προσεγγίσιμο από αυτά. Τα παιδιά μπορούν συσχετίζοντας εικονίδια να προγραμματίσουν το ρομπότ. Η συγκεκριμένη γλώσσα προγραμματισμού αναπτύχθηκε πάνω στο εργαλείο Aseba (https://www.thymio.org/en:start) ένα περιβάλλον προγραμματισμού για το ρομπότ Thymio που επιτρέπει σε αρχάριους προγραμματιστές να προγραμματίζουν ρομπότ εύκολα και αποδοτικά. Το εργαστήριο πολυμέσων του MIΤ παρουσίασε στο 4th International Conference on Interaction Design and Children, το Social Robot (SoRo) Toolkit [5]. Το συγκεκριμένο εργαλείο δίνει τη δυνατότητα σε νέους προγραμματιστές κυρίως προσχολικής ηλικίας, να προγραμματίσουν ρομπότ, διδάσκοντάς τα να αλληλεπιδρούν. Η διδασκαλία των ρομπότ πραγματοποιείται μέσω κανόνων που δείχνουν τα παιδία στα ρομπότ. Στη συνέχεια τα παιδιά μπορούν να αλληλεπιδρούν με τα ρομπότ θέτοντας σε ενέργεια τους κανόνες που έχουν ορίσει. Το σύστημα χρησιμοποιεί απτά (tangible) αντικείμενα και
συγκεκριμένα ετικέτες βινυλίου. Στη συνέχεια πραγματοποιήθηκε μια μελέτη αξιολόγησης με 22 παιδιά προσχολικής ηλικίας. Τα αποτελέσματα της έρευνας έδειξαν ότι τα παιδιά όχι μόνο διασκεδάζουν παίζοντας με τα απτά αντικείμενα και το ρομπότ αλλά παράλληλα αντιλαμβάνονται βασικές προγραμματιστικές έννοιες. Ένα ερευνητικό έργο [6] το οποίο υλοποιεί ένα προγραμματιστικό περιβάλλον για ρομπότ μέσω της χρήσης έξυπνων συσκευών από παιδιά προσχολικής ηλικίας από 4 έως 6 χρονών δημοσιεύτηκε το 2015 στο Tecnologias del Aprendizaje, IEEE Revista Iberoamericana. Το προγραμματιστικό περιβάλλον υποστηρίζει ακολουθίες εντολών (maximum 8 εντολές) κίνησης, αλλά και αισθητήρων. Οι εντολές μέσω της έξυπνης συσκευής περνούν και καθοδηγούν ένα ΝΧΤ ρομπότ. To Universidad Nacional de Cordoba/CONICET, Cordoba, Argentina παρουσίασε στο συνέδριο ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '15) [7] μια πλατφόρμα την οποία χρησιμοποίησε σε σχετική σχολική παρέμβαση για τη διδακτική της επιστήμης των υπολογιστών σε παιδιά ηλικίας από 3 έως 11 ετών. Η προτεινόμενη προγραμματιστική πλατφόρμα αποτελεί μια επέκταση της ανοικτού κώδικά γλώσσας blocklyduino [8], η οποία προσαρμόστηκε σε μια ρομποτική συσκευή ανοικτού κώδικα. Η ευρεία εφαρμογή εμπορικών συστημάτων σε έρευνες εκπαιδευτικής ρομποτικής καθώς και τα ιδιαίτερα χαρακτηριστικά των παιδιών της πρωτοβάθμιας εκπαίδευσης αναδεικνύουν τη δυσκολία ανάπτυξης ρομποτικών πρωτοτύπων. 1.3 Ερευνητικό πρόβλημα και ερευνητική συνεισφορά Υπάρχουν πολλές έρευνες παγκοσμίως που αποδεικνύουν πως τα παιδιά που μαθαίνουν προγραμματισμό σε μικρή ηλικία αναπτύσσουν την λογική σκέψη καλύτερα γεγονός που τα βοηθά στη συνέχεια να αναπτύξουν άλλες δεξιότητες. Ο προγραμματισμός σε αυτή την ηλικία θα πρέπει να γίνεται με συγκεκριμένο τρόπο κυρίως διασκεδαστικό για τα παιδία με σκοπό να τραβήξει την προσοχή τους. Απώτερος στόχος, όπως αναφέρθηκε και πιο πάνω, είναι μέσα από αυτή τη διαδικασία, η ανάπτυξη της λογικής σκέψης. Το προτεινόμενο σύστημα απευθύνεται σε δασκάλους προσχολικής ηλικίας με εμπειρία στη χρήση νέων τεχνολογιών στο εκπαιδευτικό
περιβάλλον. Το κοινό στόχος είναι παιδία ηλικίας μεταξύ 4 και 6 χρονών τα οποία χρησιμοποιούν το περιβάλλον υπό την καθοδήγηση του δάσκαλου τους. Το ερευνητικό πρόβλημα που εντοπίστηκε αναζητώντας τη βιβλιογραφία είναι ότι τα προτεινόμενα συστήματα ρομποτικής για παιδιά προσχολικής ηλικίας εστιάζουν σε ένα από τα δύο σημαντικά μέρη του συστήματος. Έχουν προταθεί συστήματα τα οποία εστιάζουν στο σχεδιασμό και την υλοποίηση της ρομποτικής συσκευής και κάνουν χρήση μιας υπάρχουσας γλώσσας προγραμματισμού για την καθοδήγηση του ρομπότ. Μια δεύτερη περίπτωση είναι τα συστήματα να εστιάζουν στη δημιουργία της γλώσσας προγραμματισμού και να χρησιμοποιούν κάποιο εμπορικό διαθέσιμο ρομπότ σαν μέρος του συστήματος. Τέλος υπάρχουν και κάποια συστήματα τα οποία έχουν προταθεί και τα οποία χρησιμοποιούν κάποιο προγραμματιστικό περιβάλλον ανοικτού κώδικα καθώς και κάποια εμπορική ρομποτική κατασκευή για την υλοποίηση τους. Και στις παραπάνω τρείς περιπτώσεις δεν υπάρχει απόλυτη ταύτιση της ρομποτικής συσκευής και της γλώσσας προγραμματισμού καθώς στην πρώτη περίπτωση η υπάρχουσα γλώσσα προγραμματισμού δεν έχει σχεδιαστεί για τη συγκεκριμένη ρομποτική κατασκευή ενώ στη δεύτερη περίπτωση η ρομποτική κατασκευή αντίστοιχα δεν έχει σχεδιαστεί για τη συγκεκριμένη γλώσσα προγραμματισμού. Παράλληλα σε όλες τις περιπτώσεις κατά το σχεδιασμό τόσο της γλώσσας προγραμματισμού όσο και της ρομποτικής κατασκευής δεν έχει ληφθεί υπόψη το συγκεκριμένο ηλικιακό φάσμα της ομάδας στόχου και τα συγκεκριμένα ειδικά χαρακτηριστικά που έχει αυτή η ομάδα. Το προτεινόμενο περιβάλλον όσον αφορά το λογισμικό θα έχει μια απλή διεπαφή η οποία θα αποτελείται από εικονογραφικά στοιχεία λόγο του στοχευμένου κοινού. Τα παιδία θα μπορούν να λύσουν μέσω της πλατφόρμας διάφορα προβλήματα τα οποία έχουν προκαθοριστεί. Έτσι το κάθε παιδί θα πρέπει να δημιουργεί ένα σύνολο εντολών και θα μπορεί να δει το ρομπότ να εκτελεί τις δεδομένες εντολές. 1.4 Οργάνωση της εργασίας Η παρούσα μεταπτυχιακή εργασία θα αναπτυχθεί σε 4 συνολικά κεφάλαια. Η διάρθρωση της εργασίας είναι η εξής:
Στο κεφάλαιο 1 περιγράφεται ο στόχος της διπλωματικής εργασίας και τα κίνητρα που οδήγησαν στην ενασχόληση με το συγκεκριμένο πεδίο. Περιγράφεται το ερευνητικό πρόβλημα και πώς αυτό προσεγγίστηκε στη συγκεκριμένη διπλωματική. Στο κεφάλαιο 2 γίνεται μια ανασκόπηση των σημαντικότερων ρομποτικών πλατφορμών και κατασκευών που χρησιμοποιούνται στην εκπαιδευτική διαδικασία. Στόχος είναι να παρουσιαστούν συνοπτικά στον αναγνώστη τα πιο γνωστά εμπορικά και μη συστήματα στο χώρο της εκπαιδευτικής τεχνολογίας σήμερα. Τα συστήματα που περιγράφονται αφορούν κυρίως εκπαιδευτικά ρομποτικά συστήματα και πλατφόρμες για παιδιά προσχολικής ηλικίας. Στο κεφάλαιο 3 παρουσιάζεται η μεθοδολογία υλοποίησης της ρομποτικής κατασκευής. Συγκεκριμένα πραγματοποιείται η ανάλυση απαιτήσεων της πλατφόρμας, περιγράφεται η σχεδίασή της καθώς και η υλοποίησή της. Κατόπιν παρουσιάζονται οι περιπτώσεις χρήσης της ρομποτικής συσκευής ως μέρος της πλατφόρμας. Ακολουθεί η γενική Αρχιτεκτονική της πλατφόρμας, οι τεχνολογίες που χρησιμοποιήθηκαν και τέλος κλείνει η ενότητα με την περιγραφή της διαδικασίας εγκατάστασης. Στο κεφάλαιο 4 παρουσιάζεται μια διδακτική παρέμβαση με στόχο να εξετάσει την ευχρηστία και την ελκυστικότητα του συστήματος (ρομποτική κατασκευή και περιβάλλον προγραμματισμού) από τους μαθητές στα πλαίσια της γενικότερης αξιολόγησης του συστήματος. Θα πρέπει να αναφερθεί ότι η αξιολόγηση αφορά το σύστημα σαν σύνολο δηλαδή τη ρομποτική κατασκευή (η οποία περιγράφεται σε αυτή τη διπλωματική εργασία) και το προγραμματιστικό περιβάλλον (το οποίο περιγράφεται σε συναφή διπλωματική εργασία του κ Νάκου Κωνσταντίνου βλέπε Παράρτημα Β). Στο Παράρτημα Α παρουσιάζεται φωτογραφικό υλικό από τη συμμετοχή της Ερευνητικής Ομάδας ΤΠΕ στην Εκπαίδευση (ICTE Group) του ΤΕΕΑΠΗ του Πανεπιστήμιο Πατρών με την πλατφόρμα e-probotlab στην 2η Έκθεση Μεταφοράς Τεχνογνωσίας 2015 - Patras Innovation Quest 2015 (PatrasIQ). Τέλος στο παράρτημα Γ παρατίθενται το σχέδιο μαθήματος και τα φύλλα εργασίας της διδακτικής παρέμβασης που παρουσιάζεται στο κεφάλαιο 4.
Κ ΕΦΑ ΛΑ ΙΟ 2: ΡΟΜ ΠΟΤΙΚ ΕΣ ΠΛΑΤΦΟΡΜΕΣ ΚΑΙ ΚΑ Τ ΑΣΚΕΥΕΣ 2.1 Ρομποτικές πλατφόρμες στην εκπαίδευση Στη συγκεκριμένη ενότητα θα παρουσιαστούν συνοπτικά οι σημαντικότερες ρομποτικές κατασκευές που χρησιμοποιούνται στην εκπαιδευτική διαδικασία. Τα ρομπότ καθημερινά γίνονται όλο και περισσότερο δημοφιλή στον εκπαιδευτικό χώρο και χρησιμοποιούνται ως εργαλεία διδασκαλίας. Η ενασχόληση με τα ρομπότ είναι ιδιαιτέρως εποικοδομητική διαδικασία κυρίως για τα μικρά παιδιά, βοηθώντας τα να αποκτήσουν ιδιαίτερες δεξιότητες (επίλυση προβλήματος, συνεργατικότητα, δημιουργικότητα, ομαδικό πνεύμα). Οι ρομποτικές πλατφόρμες που θα παρουσιαστούν σε αυτή την ενότητα έχουν σχεδιαστεί κυρίως για μικρά παιδιά, με σκοπό να ενταχθούν στα προγράμματα σπουδών προσχολικής εκπαίδευσης. 2.1.1 Thymio II [9] Αυτή η ρομποτική πλατφόρμα είναι μια από τις πιο διαδεδομένες στην προσχολική και την πρωτοβάθμια εκπαίδευση. Περιλαμβάνει ένα ευρύ φάσμα αισθητήρων και ένα προγραμματιστικό περιβάλλον που βασίζεται στο Aseba [9] το οποίο είναι ένα φιλικό προς το χρήστη εργαλείο. Το Thymio II μπορεί να χρησιμοποιηθεί τόσο στις μικρότερες ηλικίες σαν εργαλείο για την εισαγωγή στη ρομποτική και τον προγραμματισμό όσο και στις μεγαλύτερες ηλικίες για εμβάθυνση στον προγραμματισμό και στη διεξαγωγή πειραμάτων. Εικόνα 1: Thymio II
2.1.2 BOE-Bot [10] Το BOE-Bot είναι μια κινητή πλατφόρμα με τροχούς, πλήρως παραμετροποιήσιμη που μπορεί να χρησιμοποιηθεί σε διαφορετικών τύπων έργα. Αποτελεί μια πάρα πολύ καλή λύση για αυτούς που θέλουν να κάνουν τα πρώτα τους βήματα στον προγραμματισμό ρομπότ, ξεκινώντας από βασικές κινήσεις κατεύθυνσης και προχωρώντας σε προγραμματισμό αισθητήρων. Το πακέτο περιλαμβάνει ένα σύνολο αισθητήρων (photoresistors, infrared sensors, touch-sensors) και περιφερειακών (καλώδια, αντιστάσεις, πυκνωτές). Εικόνα 2: BOE-Bot 2.1.3 Dash and Dot [11] Το εκπαιδευτικό ρομπότ Dash and Dot είναι ιδανικά για την εκμάθηση ρομποτικής. Μπορεί να προγραμματιστεί με παιγνιώδη τρόπο ενισχύοντας τη φαντασία των παιδιών. Προγραμματίζεται με μια γλώσσα προγραμματισμού βασισμένη σε μπλοκ εντολών όπως τη γλώσσα scratch.
Εικόνα 3: Dash and Dot 2.1.4 LEGO Mindstorms [12] Μπορεί να χρησιμοποιηθεί από αρχάριους μέχρι προχωρημένους χρήστες στην εκπαιδευτική διαδικασία. Συνδυάζει προγραμματιζόμενα τούβλα με ηλεκτρικές μηχανές, αισθητήρες, τούβλα Lego και τεχνικά κομμάτια Lego (όπως εργαλεία, άξονες, ακτίνες και υδραυλικά μέρη), κατάλληλα για να κτίσει ο χρήστης το ρομπότ. Η εκπαιδευτική έκδοση των προϊόντων καλείται Lego Mindstorms for Schools και έρχεται με το γραφικό περιβάλλον προγραμματισμού Robolab που αναπτύχθηκε στο πανεπιστήμιο Tufts χρησιμοποιώντας ως μηχανή το LabVIEW. Εικόνα 4: LEGO Mindstorms
2.1.5 MOSS [13] Τα MOSS robotics δεν χρειάζονται προγραμματισμό ή γνώσεις υπολογιστή για να ξεκινήσει κάποιος να δημιουργεί μικρά ρομπότ τα οποία μπορούν να αλληλεπιδρούν με το περιβάλλον. Αποτελούν ιδανική λύση για μικρά παιδιά και αρχάριους χρήστες που θέλουν να ασχοληθούν με τη ρομποτική. Εικόνα 5: MOSS 2.1.6 Scribbler 2 [14] Το Scribbler 2 είναι ένα ρομπότ ανοιχτού κώδικα με μια σειρά από διαφορετικούς αισθητήρες. Διαθέτει ένα σημαντικό αριθμό εκπαιδευτικών πόρων που καλύπτουν ένα μεγάλο φάσμα προγραμματιστικών εννοιών. Εικόνα 6: Scribbler 2
2.1.7 Cubelets [15] Τα Cubelets αποτελούν μαγνητικούς κύβους που χρησιμοποιούνται για τη δημιουργία μηχανών και ρομπότ χωρίς τη χρήση προγραμματισμού. Η συμπεριφορά του ρομπότ εξαρτάται από τον τρόπο διασύνδεσης των κύβων. Χωρίζονται σε Κύβους Αίσθησης Sense Blocks, Κύβους Δράσης Action Blocks και Κύβους Σκέψης Think Blocks. Ο συνδυασμός τους δημιουργεί ρομπότ που κινείται, ανταποκρίνεται στο φως, τον ήχο, και τη θερμοκρασία. Είναι ένας πολύ καλός τρόπος για να διδαχτούν τα παιδιά για το πώς λειτουργούν τα ρομπότ, χωρίς στην πραγματικότητα να χρειάζεται να γνωρίζουν οτιδήποτε σχετικά με τον προγραμματισμό. Αποτελούν ιδανική επιλογή για παιδιά από 6 μέχρι 16 χρονών που θέλουν να ασχοληθούν με τη ρομποτική. Εικόνα 7: Cubelets 2.1.8 ATOMS [16] Το ATOMS μπορεί να χρησιμοποιηθεί από παιδιά ώστε να αναπτύξουν τις προγραμματιστικές τους ικανότητες. Μπορεί ταυτόχρονα να χρησιμοποιηθεί για την κατασκευή ρομποτικών κατασκευών αλλά και του προγραμματισμού τους. Μπορεί να συνδεθεί με ένα iphone, ipod touch ή ένα ipad για τον χειρισμό του. Η πλατφόρμα έχει ενσωματωμένο ένα κινητήρα, ένα ηχείο, μια μπαταρία, έναν infrared αισθητήρα, ένα accelerometer και ένα μπλοκ ελέγχου iphone.
Εικόνα 8: ATOMS 2.1.9 4WD Mecanum wheel mobile robot kit [17] To 4WD robotic είναι μια open source πλατφόρμα που μπορεί να χρησιμοποιηθεί για τη δημιουργία ρομπότ τόσο από αρχάριους όσο και από προχωρημένους. Η πλατφόρμα μπορεί να περιστρέφεται προς οποιαδήποτε κατεύθυνση λόγω των δυνατοτήτων των τροχών της. Περιλαμβάνει 4 ultrasonic αισθητήρες, και έναν Arduino 238 μικροελεγκτή. Εικόνα 9: 4WD Mecanum wheel mobile robot kit 2.1.10 Robotis Dream [18] Το Robotis Dream δημιουργήθηκε για να εισαγάγει τα παιδιά σταδιακά στη ρομποτική. Παρέχεται σε διάφορα επίπεδα. Το Robotis Dream Level 1 αποτελεί μια εισαγωγικού επιπέδου ρομποτική πλατφόρμα κατάλληλη για μάθηση και διδακτική ρομποτικής. Το
Το Robotis Dream Level 2 διδάσκει στα παιδιά τα βασικά για το πώς ένα ρομπότ κινείται καθώς και για τους αισθητήρες ταχύτητας και πίεσης. Το Το Robotis Dream Level 3 εισάγει νέες δυνατότητες όπως σερβομηχανή και infrared αισθητήρα που μας επιτρέπουν να χτίσουμε πιο έξυπνα ρομπότ Εικόνα 10: Robotis Dream 2.1.11 Bee Bot [19] Η προγραμματιζόμενη συσκευή του Bee-Bot, αποτελεί ιδιαίτερα δημοφιλή λύση για εισαγωγή στον προγραμματισμό στην προσχολική εκπαίδευση. Τα μικρά παιδιά παίζοντας με τη μέλισσα μαθαίνουν να την κινούν μπροστά-πίσω, δεξιά-αριστερά και να την καθοδηγούν σε συγκεκριμένα μονοπάτια και σε μικρές αποστολές. Αναπτύσσουν έτσι τις δεξιότητες που σχετίζονται με τον βασικό προγραμματισμό και μαθαίνουν να χρησιμοποιούν την αλγοριθμική λογική για να επιλύουν μικρά προβλήματα με παιγνιώδη και ευχάριστο τρόπο. Εικόνα 11: Bee Bot
2.1.12 Pro Bot [20] Στο Pro-Bot, ένα απλό πρόγραμμα μπορεί να αναπτυχθεί με τη χρήση μόνο των τεσσάρων πλήκτρων με τα βέλη. Τα πλήκτρα μπορούν είτε να μετακινούν το όχημα κατά ένα βήμα είτε να το περιστρέφουν κατά 90. Καθώς πατάμε τα πλήκτρα, στην οθόνη εμφανίζονται οι συντομεύσεις των αντίστοιχων εντολών της Logo. Ένα από τα πλεονεκτήματα του Pro-Bot είναι η δυνατότητα επεξεργασίας των προγραμμάτων με τη χρήση της οθόνης. Διαθέτει επίσης τη δυνατότητα επανάληψης εντολών δίνοντας τη δυνατότητα στα παιδία να διδαχθούν την έννοια της επανάληψης. Εικόνα 12: Pro Bot 2.1.13 ΚΙΒΟ [21] To KIBO είναι μια ρομποτική πλατφόρμα σχεδιασμένη για μικρά παιδία ηλικίας από 4 έως 7 χρονών. Η πλατφόρμα υποστηρίζει τη μάθηση μέσω εξάσκησης όπου τα παιδία κατασκευάζουν τα δικά τους ρομπότ, στη συνέχεια τα προγραμματίζουν και τέλος τα διακοσμούν. Εικόνα 13: KIBO 2.1.14 Blue Bot [29] To Blue Bot είναι μια προγραμματιζόμενη συσκευή η οποία εισάγει τον προγραμματισμό στην προσχολική ηλικία. Αποτελεί μια νέα έκδοση του Bee Bot που
αναφέρθηκε παραπάνω με τη διαφορά ότι ο προγραμματισμός γίνεται από tablet ή PC μέσω Bluetooth ή απευθείας μέσω τον κουμπιών στο πάνω μέρος του Bee Bot. Η ιδέα του Bee Bot πλησιάζει κατά πολύ την κεντρική ιδέα της συγκεκριμένης εργασίας. Εικόνα 14: Blue Bot 2.2 Μικροελεγκτές - Μικροεπεξεργαστές για τη δημιουργία ρομποτικών κατασκευών Στην ενότητα αυτή παρουσιάζονται πιο γνωστοί μικροεπεξεργαστές και μικροελεγκτές που μπορούν να χρησιμοποιηθούν για τη δημιουργία προγραμματιζόμενων ρομποτικών κατασκευών. 2.2.1 Raspberry Pi [22] Το Raspberry Pi είναι μια πλακέτα μεγέθους πιστωτικής κάρτας που συνδέεται σε μια οθόνη και σε ένα πληκτρολόγιο. Είναι μια μικρογραφία ARM-based υπολογιστή που μπορεί να χρησιμοποιηθεί για πολλά από τα πράγματα που μπορεί να κάνει και ένας κανονικός υπολογιστής, όπως δημιουργία και επεξεργασία λογιστικών φύλλων, επεξεργασία κειμένου και παιχνίδια καθώς και να αναπαράγει βίντεο υψηλής ανάλυσης (HD). Το Raspberry Pi model B board αποτελεί μόνο την πλακέτα και συνοδεύεται με λειτουργικό σύστημα, κάρτα SD, τροφοδοτικό, πληκτρολόγιο, θήκη ή καλώδια. Το λειτουργικό σύστημα φορτώνεται στο Raspberry Pi μέσω κάρτας SD με προεγακτεστημένο λειτουργικό σύστημα. Υποστηρίζει διάφορες εκδόσεις λειτουργικών συστημάτων όπως το RASPBIAN (ειδική έκδοση Debian) ή το PIDORA (ειδική έκδοση Fedora). Είναι μια μικρή συσκευή που επιτρέπει στους ανθρώπους όλων των ηλικιών να εξερευνήσουν τους υπολογιστές, και να μάθουν πώς να προγραμματίζουν σε
γλώσσες όπως η Scratch (κυρίως για παιδιά) και Python. Αναπτύχθηκε στο Ηνωμένο Βασίλειο από το Ίδρυμα Raspberry Pi με σκοπό την προώθηση της διδασκαλίας της βασικής επιστήμης των υπολογιστών στα σχολεία. Υπάρχουν 2 μοντέλα. Το μοντέλο τύπου Α και το μοντέλο τύπου Β Εικόνα 15: Raspberry Pi 2.2.2 Phidgets [23] Το Phidgets είναι ένα σύνολο δομικών στοιχείων εύκολων στη χρήση και χαμηλού κόστους τα οποία μπορούμε να χειριστούμε από τον ΗΥ μας. Περιλαμβάνει μια σειρά αισθητήρων αλλά και μικροεπεξεργαστών τα οποία ο χρήστης μπορεί να χειριστεί με ελάχιστες γνώσης ηλεκτρονικής. Το Phidgets δουλεύει με πολλές γλώσσες προγραμματισμού και σε κάθε λειτουργικό σύστημα. Συνδέεται με τον υπολογιστή μέσω USB. Εικόνα 16: Phidgets 2.2.3 Basic Stamp 2 και η μητρική Πλακέτα (Basicstamp Board) [24] Ο BASIC STAMP της εταιρίας Parallax είναι ένας δημοφιλής μικροελεγκτής που ενσωματώνει στο ίδιο chip έναν μικροελεγκτή και έναν Parallax PBASIC Διερμηνευτή.
Οι μικροελεγκτές Basic Stamp έχουν σχεδιαστεί για να χρησιμοποιούνται σε ένα ευρύ φάσμα εφαρμογών. Πολλές κατασκευές που απαιτούν ενσωματωμένο σύστημα με κάποιο επίπεδο νοημοσύνης μπορούν να χρησιμοποιήσουν για ελεγκτή κάποιον Basic Stamp. Το όνομά του οφείλεται στην γλώσσα προγραμματισμού του (που είναι τύπου Basic) και στις διαστάσεις του, που είναι περίπου όσο ένα γραμματόσημο. Εικόνα 17: Basic Stamp 2 Εικόνα 18: Basicstamp Board 2.2.4 BX-24 της Netmedia [25] Ο πυρήνας του BX-24 είναι ο επεξεργαστής BasicX ο οποίος είναι βασισμένος στο Atmel AVR ATmega8535 chip. Ο BX-24p έχει 16 εισόδους 1/0 γενικής χρήσης που είναι TTL και CMOS compatible. Όταν χρησιμοποιούνται για ψηφιακές I/0, κάθε είσοδος
μπορεί να βρεθεί σε τέσσερις καταστάσεις - output high, output low, input tri-state και input with pull-up. Εικόνα 19: BX-24 2.2.5 Arduino [26] Tο Arduino είναι μια υπολογιστική πλατφόρμα βασισμένη σε μια απλή μητρική πλακέτα με ενσωματωμένο μικροελεγκτή, εισόδους/εξόδους, η οποία μπορεί να προγραμματιστεί και να χρησιμοποιηθεί για την ανάπτυξη ανεξάρτητων διαδραστικών αντικειμένων και προγραμμάτων. Αποτελεί ένα εργαλείο για την κατασκευή ενός υπολογιστικού συστήματος το οποίο θα ελέγχει συσκευές του φυσικού κόσμου, σε αντίθεση με τον κοινό Ηλεκτρονικό Υπολογιστή. Είναι ανοιχτού υλικού και λογισμικού και βασίζεται σε μια αναπτυξιακή υπολογιστική πλατφόρμα, που ενσωματώνει επάνω έναν μικροελεγκτή και συνδέεται με τον Η/Υ για να τον προγραμματίσουμε μέσα από ένα απλό περιβάλλον ανάπτυξης. Ένα Arduino μπορεί να χρησιμοποιηθεί για να αναπτύξουμε διαδραστικά αντικείμενα, να δεχτούμε εισόδους από πληθώρα αισθητηρίων οργάνων και διακόπτες, αλλά και να ελέγχουμε διάφορα φώτα, κινητήρες και άλλες συσκευές εξόδου του φυσικού κόσμου. Εικόνα 20: Arduino
Κ ΕΦΑ ΛΑ ΙΟ 3: ΣΧΕΔΙΑΣΗ Η παρούσα εργασία αφορά στη σχεδίαση, υλοποίηση και αξιολόγηση αυτοκινούμενης ρομποτικής συσκευής για την Ρομποτική Πλατφόρμα e-probotlab (Early Programming Robots Laboratory). Η πλατφόρμα αυτή αποτελεί ένα μοντέλο εργαστηρίου για την κατασκευή και τον προγραμματισμό ρομποτικών συσκευών στη βασική εκπαίδευση (νηπιαγωγείο, δημοτικό και γυμνάσιο). Η καινοτομία της πλατφόρμας e-probotlab έγκειται στον κατάλληλο συνδυασμό υλικού (πλατφόρμα Arduino) και λογισμικού (οπτικό προγραμματιστικό περιβάλλον) προσαρμοσμένο για μαθητές από 5 έως 15 ετών. Η πλατφόρμα επιτρέπει σε μικρότερους μαθητές να χειριστούν το ρομπότ με απλό τρόπο, ενώ η ανοικτή τεχνολογία που χρησιμοποιεί επιτρέπει σε μεγαλύτερους μαθητές να κατασκευάσουν οι ίδιοι, με τη βοήθεια ενδεχομένως του εκπαιδευτικού, το ρομπότ χρησιμοποιώντας απλά υλικά και την πλακέτα Arduino. Παρακάτω περιγράφονται τα στάδια ανάπτυξης της πλατφόρμας. Συγκεκριμένα περιγράφεται η ανάλυση απαιτήσεων της πλατφόρμας, περιγράφεται η σχεδίαση της καθώς και η υλοποίησή της. Κατόπιν παρουσιάζονται οι περιπτώσεις χρήσης της ρομποτικής συσκευής ως μέρος της πλατφόρμας. Ακολουθεί η γενική Αρχιτεκτονική της πλατφόρμας, οι τεχνολογίες που χρησιμοποιήθηκαν και τέλος κλείνει η ενότητα με την περιγραφή της διαδικασίας εγκατάστασης. 3.1 Μέθοδος ανάπτυξης Η μέθοδος ανάπτυξης που χρησιμοποιήθηκε για τη σχεδίαση της εκπαιδευτικής πλατφόρμας, στηρίχθηκε στη μεθοδολογία ICONIX [30]. Η ICONIX είναι μια μεθοδολογία ανάπτυξης που επιτρέπει τη συστηματική μετάβαση από τις αρχικές απαιτήσεις όπως αυτές διατυπώνονται από τον πελάτη, στο προϊόν που τελικά υλοποιεί τις απαιτήσεις αυτές. Το βασικό χαρακτηριστικό της μεθοδολογίας ICONIX είναι η επαναληπτικότητα.
Εικόνα 21: Απλοποιημένο διάγραμμα σταδίων ανάπτυξης εφαρμογών λογισμικού Επιτρέπει τη συστηματική μετάβαση από τις αρχικές απαιτήσεις όπως αυτές διατυπώνονται από τον πελάτη, στον κώδικα που τελικά υλοποιεί τις απαιτήσεις αυτές. Η μεθοδολογία ICONIX βασίζεται στην αξιοποίηση ενός υποσυνόλου της UML για τη δημιουργία διαγραμμάτων ως ενδιάμεσα προϊόντα κατά την εξέλιξη του συστήματος που αναπτύσσεται. Συγκεκριμένα, από το σύνολο των διαγραμμάτων της UML, χρησιμοποιούνται τα διαγράμματα περιπτώσεων χρήσης, τα διαγράμματα κλάσεων, τα διαγράμματα ευρωστίας (ειδική περίπτωση των διαγραμμάτων συνεργασίας) και τα διαγράμματα ακολουθίας. Στη συνέχεια αναλύονται οι φάσεις της μεθοδολογίας όπως αυτές ακολουθήθηκαν κατά την ανάπτυξη της πλατφόρμας.
3.1.1 Ανάλυση Απαιτήσεων Η ανάλυση απαιτήσεων περιλαμβάνει δυο φάσεις. Στην πρώτη φάση αναλύονται οι απαιτήσεις των χρηστών αναφορικά με το σύστημα που πρέπει να δημιουργηθεί καθώς και περιγράφεται η ομάδα στόχος. Περιγράφονται οι ανάγκες των χρηστών που το σύστημα καλείται να καλύψει, η ταυτότητα των χρηστών και τα ιδιαίτερα εκείνα χαρακτηριστικά τους που επηρέασαν τον σχεδιασμό καθώς και οι προδιαγραφές που θα πρέπει αυτό να πληροί. Το δεύτερο βήμα περιλαμβάνει τον εντοπισμό και την καταγραφή, στη μεγαλύτερη δυνατή λεπτομέρεια, όλων των δυνατών ενεργειών των χρηστών και των αντίστοιχων αποκρίσεων του συστήματος (Περιγραφή περιπτώσεων χρήσης). Το παραδοτέο αυτής της φάσης είναι το διάγραμμα περιπτώσεων χρήσης καθώς και η αναφορά με την λεκτική περιγραφή τους. 3.1.1.1 Ομάδα - στόχος Το σύστημα προορίζεται για μαθητές νηπιαγωγείου καθώς και πρώτων τάξεων δημοτικού, καλύπτοντας ένα μεγάλο μέρος από τους στόχους του αναλυτικού προγράμματος σπουδών που αφορά το μάθημα της πληροφορικής. Δίνει έμφαση σε έννοιες και όρους που η χρήση των πολυμεσικών εργαλείων βοηθάει στη κατάκτηση της γνώσης τους. Οι πολυμεσικές εφαρμογές, οι προσομοιώσεις και τα διάφορα παιχνίδια που έχει τη δυνατότητα να υλοποιήσει το κάνουν ελκυστικό και ενδιαφέρον για τους μαθητές. Τα χαρακτηριστικά ανάπτυξης της ρομποτικής συσκευής αλλά και του λογισμικού που την καθοδηγεί λαμβάνουν υπόψη την ομάδα στόχο - μαθητή και προσαρμόζονται γύρω από αυτή. Το σύστημα απευθύνεται επίσης και στους εκπαιδευτικούς. Μπορούν μέσα από το γνωστικό άξονα "Διαθεματική Ενότητα" να δημιουργήσουν δικές τους δραστηριότητες για το μαθητή. Μερικά από τα βασικά χαρακτηριστικά της συγκεκριμένης ομάδας στόχου που λήφθηκαν υπόψη κατά τη σχεδίαση και την υλοποίηση της ρομποτικής κατασκευής της πλατφόρμας είναι τα εξής:
1) Τα παιδιά αυτής της ηλικίας χάνουν το ενδιαφέρον τους πολύ εύκολα οπότε η εξωτερική εμφάνιση του ρομπότ θα πρέπει να προσελκύει το ενδιαφέρον τους και να τραβά την προσοχή τους 2) Τα παιδιά αυτής της ηλικίας δεν δείχνουν υπομονή. Έτσι θα πρέπει η ρομποτική κατασκευή να είναι εύκολα διαχειρίσιμη και απλοϊκή 3) Τα παιδιά αυτής της ηλικίας είναι απρόσεκτα και μπορεί να κακομεταχειρίζονται τη ρομποτική κατασκευή. Για το λόγο αυτό η ρομποτική κατασκευή θα πρέπει να κατασκευαστεί από υλικά ανθεκτικά και αξιόπιστα και το τελικό παραγόμενο προϊόν να έχει μια συμπαγή και ανθεκτική δομή 4) Στα παιδιά αρέσει να μαθαίνουν παίζοντας, έτσι η ρομποτική κατασκευή θα πρέπει να έχει τη μορφή παιχνιδιού 5) Η σκέψη των παιδιών αυτής της ηλικίας είναι ιδιαίτερα απλοϊκή. Λαμβάνοντας αυτό υπόψη θα πρέπει και οι εντολές κινήσεις που θα μπορεί η ρομποτική κατασκευή να πραγματοποιήσει να είναι ιδιαίτερα απλοϊκές. Έτσι επιλέχθηκε να μπορεί η κατασκευή να κινείται μπροστά, πίσω, αριστερά στροφή, δεξιά στροφή 3.1.1.2 Χρήστες Συστήματος Οι χρήστες που συμμετέχουν και αλληλεπιδρούν με το e-probotlab είναι ο διαχειριστής της πλατφόρμας, ο εκπαιδευτής και ο εκπαιδευόμενος. Πιο αναλυτικά: 3.1.1.2.1 Ο Διαχειριστής του συστήματος (Administrator) Ο διαχειριστής έχει τη συνολική εποπτεία της εφαρμογής και μπορεί να ρυθμίζει και να παραμετροποιεί τα διάφορα μέρη του συστήματος όπως για παράδειγμα οι ρυθμίσεις του ROUTER που χρησιμοποιεί το σύστημα για να εγκατασταθεί ή η παραμετροποίηση των υπολογιστών ή των έξυπνων συσκευών που θα χρησιμοποιηθούν από τους εκπαιδευομένους. Παράλληλα είναι επιφορτισμένος με την υποχρέωση ορθής λειτουργίας και φόρτισης της ρομποτικής συσκευής. Στις περισσότερες των περιπτώσεων ο Διαχειριστής του συστήματος και ο Εκπαιδευτής μπορεί να είναι το ίδιο πρόσωπο.
3.1.1.2.2 Ο Εκπαιδευτής (Teacher) Ο εκπαιδευτής είναι ο χρήστης ο οποίος είναι υπεύθυνος για τη χρήση του συστήματος και την καθοδήγηση των μαθητών. Επίσης είναι ο υπεύθυνος δημιουργίας δραστηριοτήτων οι οποίες θα υλοποιούνται από τους μαθητές με τη βοήθεια του συστήματος που αναπτύχθηκε. 3.1.1.2.3 Ο Εκπαιδευόμενος (Student) Ο χρήστης που έχει ρόλο εκπαιδευόμενου έχει τη δυνατότητα να συμμετάσχει στις εκπαιδευτικές δραστηριότητες που υπάρχουν στο μάθημα μέσω της χρήσης του εκπαιδευτικού λογισμικού. Το ρόλο αυτό διαδραματίζουν κυρίως οι μαθητές προσχολικής ηλικίας και δημοτικού. Αποτελεί τον βασικότερο χρήστη του συστήματος και οι περισσότερες προδιαγραφές που τίθενται για την υλοποίηση του συστήματος αφορούν τους μαθητές. 3.1.1.3 Λειτουργικές Απαιτήσεις Το υπό ανάπτυξη σύστημα θα πρέπει να ικανοποιεί τις παρακάτω λειτουργικές απαιτήσεις: Ασύρματη επικοινωνία (Wi-Fi) ρομποτικής συσκευής με λογισμικό Η συγκεκριμένη απαίτηση τέθηκε καθώς θα πρέπει οι μαθητές να μπορούν να αλληλεπιδρούν με τη συσκευή στο μεγαλύτερο βαθμό ευελιξίας, στοιχείο το οποίο προσφέρει η ασύρματή επικοινωνία. Ο λόγος που δεν επιλέχθηκε κάποιο άλλο είδος επικοινωνίας όπως π.χ. Bluetooth είναι η μεγαλύτερη κάλυψη που παρέχει το δίκτυο Wi-Fi σε σχέση με τους άλλους τύπους δικτύου καθώς και η δυνατότητα πολλαπλής πρόσβασης από διαφορετικά είδη συσκευών. Το Bluetooth πρωτόκολλο αποτελεί εναλλακτική λύση καθώς πρόκειται για μια φθηνότερη εμπορική λύση σε σχέση με το Wi-Fi το οποίο απαιτεί την ύπαρξη ενδιάμεσου μεταγωγέα (router) αλλά και με λιγότερες ανάγκες παραμετροποίησης για την εγκατάσταση της σύνδεσης. Παρόλα αυτά δεν επιλέχθηκε καθώς το Wi-Fi αποτελεί μια υπηρεσία η οποία υπάρχει και υποστηρίζεται ήδη σε κάθε ελληνικό σχολείο αλλά και φορέα με αποτέλεσμα να μην χρειάζεται επιπλέον επένδυση στην αγορά του εξοπλισμού.
Ανάπτυξη ρομποτικής συσκευής με χρήση ανοιχτού υλικού και λογισμικού αναπτυξιακή πλακέτα Μια από τις βασικές απαιτήσεις του συστήματος είναι η χρήση υλικού και λογισμικού ανοικτού κώδικα. Ο λόγος αυτής της απαίτησης είναι οικονομικός καθώς τέθηκε η ανάγκη ανάπτυξης ενός συστήματος κατά πολύ οικονομικότερο από ήδη υπάρχοντα συστήματα όπως το εμπορικό Lego Mindstorms. Για το σκοπό αυτό επιλέχθηκε η υπολογιστική πλατφόρμα Arduino η οποία προγραμματίστηκε σε γλώσσα wiring (C++like γλώσσα προγραμματισμού). Ο λόγος επιλογής της συγκεκριμένης πλατφόρμας έναντι αντίστοιχων ανοικτού κώδικα (Phidget SBC, Raspberry pi) είναι το χαμηλό κόστος σε συνδυασμό με την δημοφιλία της συγκεκριμένης πλατφόρμας καθώς υπάρχει μια μεγάλη κοινότητα που την υποστηρίζει. Έτσι θεωρήθηκε ορθό να χρησιμοποιηθεί η συγκεκριμένη πλακέτα ούτως ώστε να μπορεί στο μέλλον κάποιος εκπαιδευτικός ή μη να αναζητήσει λύσεις σχετικά με προβλήματα ή επιπλέον δυνατότητες που θέλει να αναπτύξει στη συγκεκριμένη πλακέτα. Δυνατότητα αποθήκευσης πλήθους εντολών (buffering) και εκτέλεσής τους σε δεύτερο χρόνο από τη ρομποτική συσκευή Αποτελεί μια μη ορατή ανάγκη του συστήματος καθώς το πρόβλημα που δημιουργείται είναι ότι όταν οι προς εκτέλεση εντολές θα αποσταλούν στη ρομποτική συσκευή αυτή θα τις εκτελέσει τόσο γρήγορα που ορατό στον παρατηρητή ουσιαστικά θα είναι το αποτέλεσμα μόνο της τελευταίας προς εκτέλεση εντολής. Για το λόγο αυτό επιλέχθηκε να δημιουργηθεί ένα είδος buffer στη ρομποτική συσκευή με αποτέλεσμα την αποστολή των εντολών στο buffer και την εκτέλεσή τους με κάποιου είδους καθυστέρηση την κάθε μια. Αυτό δίνει τη δυνατότητα στη συσκευή να εκτελέσει όλες τις εντολές και αυτές να γίνουν αντιληπτές από τον παρατηρητή. Δυνατότητα ευχρηστίας και εύκολης παραμετροποίησης του συστήματος Θα πρέπει να μπορούν οι χειριστές του συστήματος να το παραμετροποιούν με την λιγότερο δυνατή προσπάθεια. Για το σκοπό αυτό η ρομποτική συσκευή θα πρέπει να σχεδιαστεί με τέτοιο τρόπο ώστε να είναι δυνατή η πρόσβαση στα επιμέρους συστατικά
της εύκολα και άμεσα. Τέτοιες παρεμβάσεις αφορούν την εύκολη απομάκρυνση, αντικατάσταση και φόρτιση των μπαταριών της κατασκευής, πρόσβαση στις κύριες πλακέτες της κατασκευής για αντιμετώπιση προβλημάτων. Η ευχρηστία του συστήματος αφορά και το πόσο εύκολα μπορεί να χρησιμοποιηθεί από τους εκπαιδευτές και τους εκπαιδευομένους. Για το σκοπό αυτό το υλικό δημιουργίας της ρομποτικής κατασκευής δεν θα πρέπει να είναι επικίνδυνο για τους χρήστες και βαρύ. Επιλέχθηκε το εξωτερικό της κατασκευής να δημιουργηθεί από ξύλο, ένα υλικό ανθεκτικό, ελαφρύ και φιλικό για τους εκπαιδευομένους κυρίως. Ο όρος φιλικό παραπέμπει στα ξύλινα παιχνίδια τα οποία είναι ιδιαίτερα προσφιλή στα μικρά παιδιά. Κίνηση Η κατασκευή θα πρέπει να μπορεί να κινείται τριγύρω στο περιβάλλον. Θα πρέπει η συσκευή να διαθέτει σύστημα αξόνων τροχών ικανό να την κινεί και να την καθιστά ικανή να πραγματοποιήσει βασικές κινήσεις στο επίπεδο. Οι κινήσεις που το ρομπότ θα μπορεί να πραγματοποιήσει είναι μπροστά, πίσω, αριστερά, δεξιά. Επειδή έχει αποφασιστεί ότι αριστερή κίνηση σημαίνει περιστροφή της μετόπης της κατασκευής προς τα αριστερά και δεξιά κίνηση σημαίνει το αντίστοιχο θα πρέπει η ρομποτική κατασκευή να μπορεί να περιστρέφεται στον άξονα της. Για να πραγματοποιήσει αυτή την κίνηση θα πρέπει η κατασκευή όταν επιχειρεί να στρίψει αριστερά να στρίβει δεξιόστροφα τον αριστερό τροχό και ταυτόχρονα να στρίβει αριστερόστροφα τον δεξιό τροχό. Ενέργεια Το προτεινόμενο ρομπότ θα πρέπει να είναι ενεργειακά αυτόνομο για ικανό χρονικό διάστημα. Για το λόγο αυτό επιλέχθηκε να προσαρμοστούν συστήματα τροφοδοσίας ενέργειας υποστηριζόμενα από μπαταρίες. Για λόγους οικονομίας επιλέχθηκε οι μπαταρίες που θα προσαρμοστούν να είναι επαναφορτιζόμενες. Το ρομπότ υποστηρίζεται από δύο ανεξάρτητα υποσυστήματα ενέργειας. Ένα υποσύστημα τροφοδοσίας ενέργειας το οποίο θα πρέπει να τροφοδοτεί το σύστημα αξόνων τη κατασκευής. Αυτό γιατί η ενέργεια που χρειάζονται οι κινητήρες (motors) για να κινηθούν είναι αρκετά μεγάλη σε σχέση με την ενέργεια που καταναλώνει η υπόλοιπη
ρομποτική κατασκευή. Το δεύτερο υποσύστημα τροφοδοτεί με ενέργεια την κεντρική πλακέτα (μικροελεγκτή) και όλα τα περιφερειακά όπως το Wi-Fi. 3.1.1.4 Περιπτώσεις χρήσης ρομποτικής κατασκευής Περίπτωση χρήσης: Εκκίνηση ρομποτικής συσκευής α) Σύντομη περιγραφή: Επιτρέπει στο χρήστη να εκκινήσει τη ρομποτική κατασκευή β) Χειριστές: Διαχειριστής, Καθηγητής, Μαθητής Βασική ροή: Βήμα 1. Ο χρήστης ενεργοποιεί τη συσκευή τροφοδοσίας στο επάνω μέρος της ρομποτικής κατασκευής. Η συσκευή αυτή τροφοδοτεί τα ηλεκτρικά μέρη του ρομπότ. Βήμα 2. Ο χρήστης ενεργοποιεί τη συσκευή τροφοδοσίας στο κάτω μέρος της ρομποτικής κατασκευής. Η συσκευή τροφοδοτεί τους κινητήρες της ρομποτικής κατασκευής. Βήμα 3. Η ρομποτική κατασκευή απαιτεί κάποιο χρόνο για την αρχικοποίηση της και τη σύνδεση της με τον μεταγωγέα (router). Όταν στο Wi-Fi ανάψουν δύο πράσινα λαμπάκια η ρομποτική κατασκευή είναι πλέον συνδεδεμένη και έτοιμη για χρήση. Περίπτωση χρήσης: Απενεργοποίηση ρομποτικής συσκευής α) Σύντομη περιγραφή: Επιτρέπει στο χρήστη να απενεργοποιήσει τη ρομποτική κατασκευή β) Χειριστές: Διαχειριστής, Καθηγητής, Μαθητής Βασική ροή: Βήμα 1. Ο χρήστης απενεργοποιεί τη συσκευή τροφοδοσίας στο επάνω μέρος της ρομποτικής κατασκευής. Βήμα 2. Ο χρήστης απενεργοποιεί τη συσκευή τροφοδοσίας στο κάτω μέρος της ρομποτικής κατασκευής Περίπτωση χρήσης: Φόρτιση ρομποτικής συσκευής α) Σύντομη περιγραφή: Επιτρέπει στο χρήστη να φορτίσει τη ρομποτική κατασκευή β) Χειριστές: Διαχειριστής, Καθηγητής, Μαθητής Βασική ροή:
Βήμα 1. Ο χρήστης αφαιρεί το πάνω καπάκι της ρομποτικής κατασκευής. Βήμα 2. Στο καπάκι είναι ενσωματωμένη η εξωτερική μονάδα ενέργειας η οποία τροφοδοτεί με ενέργεια τα ηλεκτρικά μέρη της κατασκευής. Συνδέεται στον φορτιστή η εξωτερική μονάδα φόρτισης. Βήμα 3. Στο εσωτερικό της ρομποτικής κατασκευής υπάρχει εσωτερική μονάδα ενέργειας η οποία τροφοδοτεί με ενέργεια τους κινητήρες της ρομποτικής κατασκευής. Η μονάδα αποτελείται από μπαταρίες τύπου ΑΑ. Οι μπαταρίες αφαιρούνται και συνδέονται σε μονάδα επαναφόρτισης. Περίπτωση χρήσης: Χειρισμός ρομποτικής κατασκευής α) Σύντομη περιγραφή: Επιτρέπει στο χρήστη να κατευθύνει τη ρομποτική κατασκευή β) Χειριστές: Διαχειριστής, Καθηγητής, Μαθητής Βασική ροή: Βήμα 1. Ο χρήστης από το λογισμικό της πλατφόρμας το οποίο έχει δημιουργηθεί ειδικά για τη ρομποτική κατασκευή επιλέγει τις κατάλληλες εντολές που επιθυμεί η ρομποτική συσκευή να πραγματοποιήσει. Βήμα 2. Πατάει το κουμπί RUN στην διεπαφή. Βήμα 3. Η ρομποτική συσκευή πραγματοποιεί τις κινήσεις που έχει επιλέξει ο χρήστης. Βήμα 4. Η ρομποτική συσκευή ακινητοποιείται. Βήμα 5. Ο χρήστης μπορεί να επαναπρογραμματίσει την συσκευή. 3.1.2 Αρχιτεκτονική Συστήματος Το συγκεκριμένο σύστημα σχεδιάστηκε έχοντας λάβει υπόψη σαν σημαντικότερο παράγοντα τον μαθητή. Άλλος παράγοντας που συμμετέχει στο σύστημα και φαίνεται να το επηρεάζει είναι ο καθηγητής. Το PLU μοντέλο (Read 2004) εστιάζει σε αυτόν τον σημαντικό παράγοντα και καθορίζει πώς ο μαθητής της προσχολικής ηλικίας αλληλοεπιδρά με την τεχνολογία. Σε αυτό το μοντέλο τα παιδιά εμφανίζονται είτε σαν παίκτες είτε σαν μαθητευόμενοι είτε σαν χρήστες. Ο μαθητής σαν παίκτης: το παιδί βλέπει το ρομπότ και γενικότερα το όλο σύστημα σαν παιχνίδι. Για το σκοπό αυτό το σύστημα πρέπει να είναι διασκεδαστικό για το παιδί. Έτσι λοιπόν όσον αφορά τη διεπαφή παρουσιάζεται με παιγνιώδη τρόπο και δίνει την
αίσθηση παιχνιδιού στο παιδί. Υπάρχει περιορισμένο εύρος ανοιχτών χρωμάτων. Η πλοήγηση είναι αρκετά απλή. Τα σύμβολα που χρησιμοποιήθηκαν είναι βασικά σχήματα (όπως βέλος εμπρός) και μπορούν να γίνουν αντιληπτά από το μαθητή αυτής της ηλικίας. Όσον αφορά το δεύτερο μέρος του συστήματος που είναι η ρομποτική συσκευή κατασκευάστηκε σε μορφή παιχνιδιού και δίνει τη δυνατότητα στο μαθητή να παίξει με αυτό καθοδηγώντας το. Ο μαθητής σαν μαθητευόμενος: το λογισμικό χρησιμοποιείται σαν εργαλείο μάθησης μέσω του οποίου ο μαθητής θα διδαχθεί, θα αντιμετωπίσει προκλήσεις και θα αξιολογηθεί. Το λογισμικό αναπτύχθηκε με τέτοιο τρόπο ώστε να μπορεί ο μαθητής να διδάσκεται βασικές έννοιες προγραμματισμού. Παράλληλα δίνεται και η δυνατότητα αξιολόγησης του μαθητή αλλά και του τρόπου σκέψης του μαθητή μέσω λειτουργιών που υποστηρίζονται. Ο μαθητής σαν χρήστης: το παιδί βλέπει το σύστημα σαν εργαλείο. Έτσι για να θεωρηθεί χρήσιμο το σύστημα θα πρέπει να κάνει τα πράγματα πιο εύκολα για το παιδί. Έτσι λοιπόν επιλέχθηκε να χρησιμοποιηθούν drag & drop εντολές αντί να γίνεται σύνταξη εντολών από το μαθητή γεγονός που είναι δύσκολό σε αυτή την ηλικία. Παράλληλα επιλέχθηκε η πραγματική αναπαράσταση μέσω μοντέλου πραγματικού κόσμου (ρομποτική συσκευή) έτσι ώστε να γίνεται αντιληπτό από το μαθητή το αποτέλεσμα της εκτέλεσης του προγράμματος με καλύτερο τρόπο. Το σύστημα που αναπτύχθηκε αποτελεί μια μίξη από διαφορετικές τεχνολογίες οι οποίες περιγράφονται στο παρακάτω σχήμα. Το σύστημα αποτελείται από τρία διαφορετικά αρθρώματα (άρθρωμα διεπαφής, άρθρωμα ρομποτικής κατασκευής, άρθρωμα επικοινωνίας). 3.1.2.1 Άρθρωμα διεπαφής Όπως φαίνεται στην εικόνα αρχικά ο μαθητής μέσω της web διεπαφής δημιουργεί το πρόγραμμα διαδρομή που επιθυμεί με βάση τη δραστηριότητα που του δίνεται. Κατά τη διάρκεια της δημιουργίας ο μαθητής έχει τη δυνατότητα να τροποποιήσει το πρόγραμμα του είτε διαγράφοντας κάποια εντολή κίνησης είτε αλλάζοντας της τη σειρά μέσα στο πρόγραμμα.
Εικόνα 22: Επικοινωνία αρθρωμάτων συστήματος Στη συνέχεια ο μαθητής μπορεί να τρέξει το πρόγραμμα που έχει δημιουργήσει και να αρχίσει να παρατηρεί τη ρομποτική κατασκευή η οποία αναπαράγει το πρόγραμμα διαδρομή. Tα δύο στάδια αλληλεπίδρασης του μαθητή με τη διεπαφή μπορούν να καταγραφούν με τη δυνατότητα Screen Capture που έχει προστεθεί στην υλοποίηση της διεπαφής. Το video αυτό μπορεί να χρησιμοποιηθεί για ανάλυση από τον εκπαιδευτικό. Η επικοινωνία πραγματοποιείται μέσω ασύρματου δικτύου στο οποίο είναι συνδεδεμένη και η τερματική συσκευή στην οποία δουλεύει ο μαθητής αλλά και η ρομποτική κατασκευή. Η ρομποτική κατασκευή με σειριακό τρόπο λαμβάνει σε κατάλληλη μορφή το πρόγραμμα διαδρομή που έχει δημιουργήσει ο μαθητής. Αποθηκεύει το πρόγραμμα τοπικά (buffering) και άμεσα αρχίζει και εκτελεί την κάθε εντολή του με κάποια χρονοκαθυστέρηση ώστε να δίνει τη δυνατότητα στο μαθητή να αντιληφθεί τις επιμέρους εντολές. Αφού λάβει την ανατροφοδότηση από την εκτέλεση των εντολών από τη ρομποτική κατασκευή ο μαθητής μπορεί να αναδημιουργήσει το πρόγραμμα διαδρομή και να το επανεκτελέσει. Την όλη διαδικασία που περιγράφηκε την διενεργεί και τη συντονίζει ο Συντονιστής (Controller) της εφαρμογής. Ο Συντονιστής μας επεξεργάζεται και ανταποκρίνεται σε γεγονότα (events) δηλαδή σε ενέργειες
χρηστών κυρίως και λειτουργεί σε δύο χρόνους σε κάθε δημιουργία νέου προγράμματος (Χρόνος δημιουργίας - Construction Time, χρόνος εκτέλεσης - Run Time). Αυτό έχει να κάνει με το σημείο στο οποίο ο χρήστης μαθητής έχει εστιάσει σε κάθε χρόνο. Εικόνα 23: Διάγραμμα δραστηριοτήτων Χρόνος δημιουργίας Στον πρώτο χρόνο κατά τη διάρκεια που ο μαθητής δημιουργεί το πρόγραμμα αντίστοιχα ο Συντονιστής αλλάζει τα στοιχεία της διεπαφής. Έτσι πατώντας στην εντολή (F Forward) ένα πλαίσιο εντολής Forward προστίθεται στο γραφικό περιβάλλον του. Αυτή η προσθήκη αποτελεί τυπική αλλαγή στο View (Interface) του μαθητή. Επίσης ο
μαθητής μπορεί να τροποποιήσει το πρόγραμμα σέρνοντας και αφήνοντας το πλαίσιο εντολή σε άλλη θέση ή διαγράφοντας το. Αυτό θα προκαλέσει ανακατάταξη του προγράμματος το οποίο δημιουργείται. Παράλληλα o Συντονιστής σε αυτό το χρόνο τροποποιεί και το Model είτε προσθέτοντας στη λίστα τις νέες εντολές είτε τροποποιώντας τις υπάρχουσες. Χρόνος εκτέλεσης Στον δεύτερο χρόνο όταν μαθητής επιλέξει να εκτελέσει το πρόγραμμα πατώντας το κουμπί RUN ο Συντονιστής αναλαμβάνει να δημιουργήσει socket επικοινωνίας με την ρομποτική κατασκευή στην οποία έχει αποδοθεί σταθερή IP εσωτερικού δικτύου και ακούει σε συγκεκριμένη πόρτα επικοινωνίας αφιερωμένη για αυτό το λόγο. 3.1.2.2 Άρθρωμα ρομποτικής κατασκευής Εικόνα 24: Άρθρωμα ρομποτικής κατασκευής
Η ρομποτική κατασκευή του συστήματος αποτελείται από ένα single-board μικροελεκτή, δηλαδή μια απλή μητρική πλακέτα ανοικτού κώδικα, με ενσωματωμένο μικροελεγκτή ARDUINO και εισόδους/εξόδους. 3.1.2.2.1 Μικροελεγκτής ARDUINO Ο μικροελεγκτής Arduino είναι στην ουσία μια αναπτυξιακή πλακέτα που ενσωματώνει έναν ATMEL ATMEGA168. Υπάρχουν πολλές εκδόσεις του μικροελεγκτή. Οι κατασκευαστές του Arduino έχουν τοποθετήσει στις πλακέτες όλα τα απαραίτητα εξαρτήματα για την τροφοδοσία και την διασύνδεση των μικροελεγκτών με τον Ηλεκτρονικό Υπολογιστή. Η πλακέτα μπορεί να τροφοδοτηθεί είτε με τροφοδοτικό των 9Volt, είτε απευθείας από την USB θύρα του Υπολογιστή. O Arduino έχει 14 ψηφιακούς ακροδέκτες Εισόδου/Εξόδου. Αυτοί μπορούν να τεθούν ως είσοδοι ή ως έξοδοι με τις εντολές-συναρτήσεις pinmode(), digitalwrite(), and digitalread(). Λειτουργούν στα 5 Volts και έχουν την δυνατότητα να παρέχουν ή να καταβυθίζουν ένταση της τάξεως των 40mA. Σε κάθε Pin υπάρχει εσωτερικά ένας Pullup αντιστάτης στα 20-50KΩ. Επιπλέον έχει 5 Αναλογικούς ακροδέκτες Εισόδου. Αυτοί μπορούν να διαβάσουν αναλογικές τιμές όπως η τάση μιας μπαταρίας και να τις μετατρέψουν σε έναν αριθμό από 0-1023. Η μέτρηση της τάσης γίνεται από προκαθορισμένα από 0 έως 5 volts. Εκτός αυτού 6 εκ των 14 ψηφιακών ακροδεκτών οι P3, P5, P6, P9, P10 και P11 έχουν τη δυνατότητα να προγραμματιστούν ώστε να λειτουργούν ως Αναλογικές Έξοδοι. Τροφοδοσία Το αναπτυξιακό Arduino UNO τροφοδοτείται είτε από εξωτερική τροφοδοσία είτε απευθείας από την θύρα USB. H επιλογή της πηγής γίνεται αυτόματα από το αναπτυξιακό. Ως εξωτερική τροφοδοσία ορίζεται είτε μια μπαταρία, είτε μετασχηματιστής των 9Volt από 220V. Η μπαταρία μπορεί να συνδεθεί στις υποδοχές του Arduino Vin και GND όπου τοποθετούνται ο θετικός πόλος και ο αρνητικός αντίστοιχα. Από την άλλη αν τροφοδοτήσουμε με μετασχηματιστή απλά τοποθετούμε το βύσμα στην υποδοχή που υπάρχει με τον θετικό πόλο στο κέντρο.
Η πλακέτα μπορεί να λειτουργήσει με εξωτερική πηγή από 6 έως 20 Volts. Αν ωστόσο τροφοδοτηθεί με λιγότερα από 7 Volt τα pin εξόδου 5Volt δεν θα καταφέρουν να εξάγουν τάση 5 Volts. Αν από την άλλη δώσουμε πάνω από 12 Volts θα υπερθερμανθεί ο σταθεροποιητής τάσης στην πλακέτα και ενδεχόμενος να καταστραφεί. Συνεπώς μια ιδανική τάση είναι τα 9 Volts. Γιατί Arduino; Όλα αυτά τα εργαλεία που προαναφέραμε είναι απλά και για τον αρχάριο χρήστη καθώς "κρύβουν" τις δύσκολες λεπτομέρειες της αρχιτεκτονικής και επιτρέπουν τον άμεσο προγραμματισμό του μικροελεγκτή. Ο Arduino όχι μόνο απλοποιεί τη διαδικασία να δουλεύει κάποιος με μικροελεγκτές, αλλά διαθέτει επίσης κάποια πλεονεκτήματα που προσφέρει σε σχέση με άλλους μικροελεγκτές για χρήση από δασκάλους, μαθητές και άλλους hobbiστες, τα οποία αναφέρονται παρακάτω: Φθηνός - Οι πλακέτες του Arduino είναι εξαιρετικά φθηνές σε σχέση με άλλες πλατφόρμες μικροελεγκτών. Ειδικά δε μπορεί με τα σχηματικά που κυκλοφορούν στο Internet να κατασκευάσει κάποιος την φθηνότερη εκδοχή ενός Arduino. Ωστόσο ακόμα και αν προμηθευτεί την έτοιμη (μονταρισμένη πλακέτα) αυτή θα κοστίσει το μέγιστο 50 Euro. Τρέχει σε διάφορα Λειτουργικά Συστήματα. Οι μηχανικοί λογισμικού, ανέπτυξαν το περιβάλλον προγραμματισμού του Arduino για Windows, Machinstoh OSX και για λειτουργικά συστήματα Linux. Τα περισσότερα συστήματα ανάπτυξης Μικροελεγκτών περιορίζονται στα Windows. Απλό, ξεκάθαρο προγραμματιστικό περιβάλλον. Το περιβάλλον προγραμματισμού ενός Arduino ενδείκνυται για αρχάριους, αλλά είναι ταυτόχρονα και ευέλικτο και για πιο προχωρημένους χρήστες. Ανοιχτού λογισμικού που επεκτείνεται και παραμετροποιείται. Το software του Arduino διανέμεται με την μορφή εργαλείων ανοιχτού λογισμικού και είναι διαθέσιμο προς επέκταση για έμπειρους προγραμματιστές. Η γλώσσα προγραμματισμού του μπορεί να επεκταθεί διαμέσου των βιβλιοθηκών την C++ και οι άνθρωποι που θέλουν να ασχοληθούν περισσότερο με τους μικροελεγκτές μπορούν να μεταβούν από τον Arduino στην AVR C που είναι για
προγραμματισμό των Atmel Μικροελεγκτών και η γλώσσα στην οποία βασίστηκε το λογισμικό του Arduino. Ομοίως μπορεί κάποιος να προσθέσει κώδικα της AVR-C στο πρόγραμμα που έχει γράψει για τον Arduino του. Ανοιχτού Υλικού το οποίο μπορεί να επεκταθεί. Ο Arduino βασίζεται στους μικροελεγκτές της Atmel ATMEGA368 και ATMEGA168. Τα σχηματικά για τα αναπτυξιακά είναι κάτω από την άδεια της Creative Commons, επιτρέποντας σε έμπειρους σχεδιαστές να κατασκευάσουν το δικό τους αναπτυξιακό, εξελίσσοντας το ήδη υπάρχον χωρίς να έχουν νομικά προβλήματα. Η ακόμη καλύτερα όχι τόσο έμπειροι χρήστες μπορούν να επιδιώξουν την αντιγραφή και κατασκευή της πλακέτας σε ράστερ για να καταλάβουν την λειτουργία ενός Arduino. Η πλακέτα Arduino Uno έχει τη δυνατότητα τροφοδοσίας από τη θύρα usb του υπολογιστή είτε από εξωτερικό τροφοδοτικό, είτε από μπαταρία των 9V. 3.1.2.2.2 Βηματικοί κινητήρες Πάνω στην πλακέτα έχουν συνδεθεί δύο βηματικοί κινητήρες τύπου 28BYJ-48. Αυτού του είδους οι κινητήρες έχουν ένα ενσωματωμένο έλασμα τοποθέτησης με δύο οπές στερέωσης. Υπάρχουν μόνο 8 βήματα ανά περιστροφή. Αυτό σημαίνει ότι στην πραγματικότητα υπάρχουν 8 * 64 βήματα ανά περιστροφή = 512 βήματα. Ο λόγος που Εικόνα 25: Βηματικοί κινητήρες
χρησιμοποιήθηκαν βηματικοί κινητήρες είναι η ακρίβεια κίνησης που θέλουμε η ρομποτική κατασκευή να πετυχαίνει σε κάθε εκτέλεση εντολής. Η αρχιτεκτονική που ακολουθήθηκε στην συγκεκριμένη περίπτωση είναι η εξής: Μέσω της υποδοχής (socket) που εγκαθίσταται μεταξύ του σταθμού εργασίας και της κατασκευής, κάθε φορά που ο μαθητής τρέχει το πρόγραμμά του, φτάνει στη ρομποτική κατασκευή σε μορφή πίνακα και αποθηκεύεται το πρόγραμμα που έχει δημιουργήσει. Ένα παράδειγμα τέτοιου προγράμματος είναι το εξής: [Start, F, F, F, R, F, F, L, Stop]. Στη συνέχεια προσπελαύνονται τα στοιχεία του πίνακα ένα κάθε φορά και ανάλογα το στοιχείο εκτελείται η κάθε ενέργεια συνάρτηση που έχει οριστεί. Έτσι για παράδειγμα αν προσπελαύνεται το στοιχείο F του πίνακα τότε εκτελείται η συνάρτηση Forward η οποία προκαλεί κίνηση της ρομποτικής κατασκευής ένα βήμα μπροστά. Η ρομποτική κατασκευή διαθέτει δυνατότητα αποθήκευσης πλήθους εντολών (buffering) και εκτέλεσής τους σε δεύτερο χρόνο. Αποτελεί μια μη ορατή ανάγκη του συστήματος καθώς το πρόβλημα που δημιουργείται είναι ότι όταν οι προς εκτέλεση εντολές θα αποσταλούν στη ρομποτική συσκευή αυτή θα τις εκτελέσει τόσο γρήγορα που ορατό στον παρατηρητή ουσιαστικά θα είναι το αποτέλεσμα μόνο της τελευταίας προς εκτέλεση εντολής. Για το λόγο αυτό επιλέχθηκε να δημιουργηθεί ένα είδος ενδιάμεσης αποθήκευσης (buffer) στη ρομποτική συσκευή με αποτέλεσμα την αποστολή των εντολών στο buffer και την εκτέλεσή τους με κάποιου είδους καθυστέρηση την κάθε μια. Αυτό δίνει τη δυνατότητα στη συσκευή να εκτελέσει όλες τις εντολές και αυτές να γίνουν αντιληπτές από τον παρατηρητή. Ο τρόπος υλοποίησης της κατασκευής υποστηρίζει το μοντέλο ανοικτού κώδικα. Συγκεκριμένα, η ρομποτική κατασκευή είναι ανεξάρτητη του σταθμού εργασίας και λειτουργεί αφαιρετικά προς αυτόν. Η μόνη συνθήκη που πρέπει να ικανοποιηθεί είναι να καταφτάνει στην είσοδό του το πρόγραμμα του χρήστη στη μορφή που περιγράφηκε παραπάνω. Έτσι πιθανή τροποποίηση της διεπαφής ή της κατασκευής δεν επηρεάζει την συνολική αρχιτεκτονική του συστήματος. Με τον τρόπο αυτό μπορούν σε μελλοντική έκδοση να προστεθούν επιπλέον κινήσεις όπως Κίνηση Υπό Γωνία τόσο στη διεπαφή όσο και στην κατασκευή χωρίς να επηρεαστεί η ευστάθεια του συστήματος. Επίσης όσον αφορά την κατασκευή δίνεται δυνατότητα εύκολης αναβάθμισης των συστατικών
μερών της όπως για παράδειγμα η αντικατάσταση των βηματικών κινητήρων με άλλους μεγαλύτερης ισχύος. 3.1.2.2.3 Άρθρωμα επικοινωνίας Για την επικοινωνία των συστατικών μερών της εφαρμογής χρησιμοποιήθηκε ασύρματη δικτύωση. Η συγκεκριμένη απαίτηση τέθηκε καθώς θα πρέπει οι μαθητές να μπορούν να αλληλοεπιδρούν με τη συσκευή στο μεγαλύτερο βαθμό ευελιξίας, στοιχείο το οποίο προσφέρει η ασύρματή επικοινωνία. Ο λόγος που δεν επιλέχθηκε κάποιο άλλο είδος επικοινωνίας όπως π.χ. Bluetooth είναι η μεγαλύτερη κάλυψη που παρέχει το δίκτυο Wi-Fi σε σχέση με τους άλλους τύπους δικτύου καθώς και η δυνατότητα πολλαπλής πρόσβασης από διαφορετικά είδη συσκευών. Το Bluetooth πρωτόκολλο αποτελεί εναλλακτική λύση καθώς πρόκειται για μια φθηνότερη εμπορική λύση σε σχέση με το Wi-Fi το οποίο απαιτεί την ύπαρξη ενδιάμεσου μεταγωγέα (router). Παρόλα αυτά δεν επιλέχθηκε καθώς το Wi-Fi αποτελεί μια υπηρεσία η οποία υπάρχει και υποστηρίζεται ήδη σε κάθε ελληνικό σχολείο αλλά και φορέα με αποτέλεσμα να μην χρειάζεται επιπλέον επένδυση στην αγορά του εξοπλισμού. Εικόνα 26: Άρθρωμα επικοινωνίας Στην παρούσα εργασία για την ασύρματη επικοινωνία μεταξύ συσκευής ρομπότ και συσκευής ελέγχου προγραμματισμού (είτε ηλεκτρονικός υπολογιστής είτε smartphone συσκευή) επιλέχθηκε ένα Wi-Fi στοιχείο το οποίο έχει πολύ μεγαλύτερη εμβέλεια από το Bluetooth και μας επιτρέπει τον απομακρυσμένο έλεγχο του οχήματος από πολύ μεγάλη απόσταση. Επειδή η επικοινωνία στην περίπτωση αυτή δεν είναι
πλέον peer to peer όπως στην περίπτωση της Bluetooth συσκευής χρειάζεται και ένα ασύρματο mode/router ως διαμεσολαβητή για να μπορέσει να γίνει η επικοινωνία. Ποιο συγκεκριμένα, η συσκευή προγραμματισμού και το όχημα θα είναι συνδεδεμένα στο modem και η επικοινωνία θα ακολουθεί το σχήμα: Εικόνα 27: Σχήμα επικοινωνίας Μπορεί το συγκεκριμένο σχήμα να δίνει την εντύπωση αρχικά πώς είναι περισσότερο πολύπλοκο από την απλή peer-to-peer επικοινωνία που μπορεί να επιτευχθεί με μια Bluetooth συσκευή, όμως στην πραγματικότητα πρόκειται για ένα πιο ευέλικτο σχήμα το οποίο δίνει τη δυνατότητα σε διαφορετικές συσκευές να συνδέονται με το ρομπότ μέσω Wi-Fi. Μια από τις αρχικές απαιτήσεις εξάλλου ήταν να μπορεί το σύστημα να λειτουργεί ανεξάρτητο από συγκεκριμένους τύπους συσκευών και συγκεκριμένες τεχνολογίες. 3.1.2.2.3.1 Ρύθμιση Wi-Fi κεραίας για σύνδεση της με το router του σχολείου Θα πρέπει η Wi-Fi κεραία που χρησιμοποιούμε στη ρομποτική συσκευή μας να συνδεθεί με τον δρομολογητή (router) του εκάστοτε σχολείου. Αυτή είναι μια ρύθμιση που πρέπει να γίνει μία φορά μόνο στην αρχή. Στη συνέχεια, κάθε φορά που η ρομποτική συσκευή θα τροφοδοτείται με ρεύμα θα συνδέεται αυτόματα με τον δρομολογητή του σχολείου.
Εικόνα 28: Άρθρωμα Wi-Fi Το συγκεκριμένο Wi-Fi module που χρησιμοποιήσαμε στη ρομποτική κατασκευή μας έχει 2 διακόπτες και 3 κουμπιά πάνω του. Ένας διακόπτης είναι RUN/PROGRAM. Ο διακόπτης αυτός θα πρέπει να είναι στη θέση RUN. Ένας άλλος διακόπτης είναι DATA/COMMAND. Αυτός ο διακόπτης πρέπει να είναι στη θέση COMMAND. Υπάρχει επίσης ένα κουμπί RST το οποίο κάνει reset το Arduino, ένα άλλο κουμπί που ονομάζεται Function και το οποίο χρησιμοποιείται για να κάνει reset το Wi-Fi και τέλος ένα κουμπί το Alarm το οποίο ξυπνάει τι Wi-Fi από κατάσταση ηρεμίας. Για να ρυθμίσουμε το Wi-Fi εκτελούμε τα παρακάτω: 1. Ανοίγουμε το Arduino IDE στον υπολογιστή μας αφού πρώτα έχουμε συνδέσει με το USB καλώδιο το Arduino UNO board. 2. Ανοίγουμε τη σειριακή οθόνη από το μενού εργαλεία και θέτουμε το baud rate σε 115200 και ΝΕΑ ΓΡΑΜΜΗ 3. Συνδέουμε τα JUMPERS του Wi-Fi ως εξής: RX με RX και TX με TX. Για να μπορέσουμε να προγραμματίσουμε το Wi-Fi θα πρέπει να φορτώσουμε στο Arduino board το sketch Blink Led από τα παραδείγματα.
Αν όλα πάνε καλά μπορούμε στη σειριακή οθόνη να αρχίσουμε να περνάμε τις εντολές: 1. ΑΤ: αν πάρουμε απάντηση οκ προχωράμε παρακάτω 2. ΑΤΒ=9600, 8, n, 1 για να αλλάξουμε το ρυθμό μετάδοσης δεδομένων σε 9600 (επιλέγουμε στην σειριακή οθόνη σαν baud rate το 9600 αντί του 115200) 3. ΑT+WS για να ψάξουμε για διαθέσιμα δίκτυα στην περιοχή 4. ΑΤ+WAUTO=0, το όνομα του δικτύου μας όπως εμφανίζεται στην αναζήτηση 5. ΑΤ+WWPA= κωδικός του δικτύου μας 6. ΑΤ+NDHCP=0 για να απενεργοποιήσουμε το DHCP 7. ΑΤ+NSET=192.168.1.150, 255.255.255.0, 192.168.1.1 (οι τιμές είναι ενδεικτικές) 8. ΑΤ+NAUTO=1,1,,5000 θέτουμε θύρα TCP Server την 5000 9. ΑΤ&W0 για να σώσουμε τις αλλαγές 10. ΑΤΑ για να ξεκινήσουμε την αυτόματη σύνδεση Γυρνάμε τον διακόπτη από το COMMAND στο DATA. Αν όλα προχωρήσουν ομαλά θα πρέπει η ρομποτική συσκευή να έχει πάρει IP και να έχει συνδεθεί στο router. Ένα συνεχόμενο πράσινο λαμπάκι πάνω στο Wi-Fi δείχνει ότι η συσκευή έχει συνδεθεί επιτυχώς πάνω στο router. Θα πρέπει να σημειωθεί ότι αν κάποιος επιθυμεί να δηλώσει κάποια άλλη IP από την 192.168.1.150 ή κάποιο άλλο υποδίκτυο από το 255.255.255.0 είναι ελεύθερος να το κάνει. Ωστόσο καλό είναι να επιλέγεται κάποια IP η οποία δεν έχει μεγάλη πιθανότητα να επιλεγεί σε κάποιο υποδίκτυο. Στο συγκεκριμένο παράδειγμα το υποδίκτυο μπορεί να αποδώσει IP σε 250 περίπου υπολογιστές. Επιλέχθηκε η IP 192.168.1.150 η οποία δεν είναι τόσο πιθανή σε ένα δίκτυο με το πολύ 10 υπολογιστές. Αν παρατηρηθεί αδυναμία σύνδεσης της ρομποτικής κατασκευής μια πιθανή λύση είναι η απόδοση διαφορετικής IP στη συσκευή. 3.1.2.2.4 Σκελετός Για την κατασκευή του ρομπότ μας δημιουργήθηκε ξύλινος σκελετός στο εσωτερικό του οποίο προσαρμόστηκαν όλα τα επιμέρους στοιχεία όπως Arduino και Wi-Fi άρθρωμα.
Εικόνα 29: Εσωτερικό ρομποτικής κατασκευής Στο πίσω μέρος του σκελετού υπάρχει οπή για την προσαρμογή της κεραίας του Wi-Fi. Η κεραία είναι αποσπώμενη και υπάρχει για να ενισχύει την επικοινωνία με το μεταγωγέα (router) του συστήματος. Το μέγεθος της κεραίας δεν παίζει ρόλο και μπορεί να προσαρμοστεί ανάλογα στις ανάγκες των χρηστών. Εικόνα 30: Πίσω μέρος ρομποτικής κατασκευής Στα πλαϊνά μέρη του σκελετού έχουν ενσωματωθεί οι 2 κινητήρες της ρομποτικής κατασκευής. Οι κινητήρες έχουν προσαρμοστεί πάνω στη ρομποτική κατασκευή
προσδίδοντας σταθερότητα στην κατασκευή. Ο τρόπος που προσαρμόστηκαν αυξάνει την ασφάλεια της κατασκευής δεδομένου ότι η κατασκευή απευθύνεται σε μικρά παιδιά. Εικόνα 31: Πλαϊνό μέρος ρομποτικής κατασκευής Στο κάτω μέρος του σκελετού έχει ανοιχθεί οπή μέσω της οποίας δίνεται η δυνατότητα να τίθενται σε λειτουργία οι κινητήρες οι οποίοι όπως έχει αναφερθεί τροφοδοτούνται με ενέργεια από ανεξάρτητη πηγή ενέργειας (Μπαταρίες ΑΑ).
Εικόνα 32: Κάτω μέρος ρομποτικής κατασκευής Στο πάνω μέρος της κατασκευής υπάρχει αποσπώμενο καπάκι το οποίο συγκρατείται με δύο βίδες και δίνει τη δυνατότητα άμεσης πρόσβασης στο εσωτερικό της κατασκευής. Επάνω στο καπάκι έχει προσαρμοστεί μπαταρία τύπου powerbank η οποία τροφοδοτεί με ενέργεια τα ηλεκτρικά μέρη της κατασκευής (όχι κινητήρες) και είναι ανεξάρτητη. Η μπαταρία αυτή είναι επαναφορτιζόμενη και έχει αυτονομία 2 περίπου ωρών πλήρους λειτουργίας. Εικόνα 33: Πάνω μέρος ρομποτικής κατασκευής
Λόγω του σχετικά υψηλού κόστους κατασκευής καθώς και της δυσκολίας κατασκευής του συγκεκριμένου σκελετού προτείνεται μια πιο απλή και οικονομική λύση η οποία περιγράφεται παρακάτω: Ένας τετρακίνητος τύπος σκελετού ρομπότ που έχει σχεδιαστεί ειδικά για τέτοιου τύπου εργασίες. Διαθέτει 2 κινητήρες τύπου motor και διαθέτει τα παρακάτω χαρακτηριστικά: ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΣΑΣΙ Height: 80mm Motor rated voltage: 3V Length: 180mm Width: 155mm Motor stall current: 170mA 3.1.2.2.5 Συνδεσμολογία ηλεκτρονικών μερών Στην παρακάτω εικόνα φαίνεται η βασική συνδεσμολογία των ηλεκτρικών μερών της ρομποτικής κατασκευής. Εικόνα 34: Half-size Breadboard Εικόνα 35: Jumper wire pack
Εικόνα 36: Συνδεσμολογία ηλεκτρικών μερών Η συνδεσμολογία που εφαρμόστηκε είναι σχετικά απλή και εύκολή στη δημιουργία από οποιονδήποτε χωρίς να απαιτούνται εξειδικευμένες γνώσεις. 3.1.2.2.5.1 H-bridge (L293D) Το βασικό πρόβλημα στη χρήση των ψηφιακών pins του Arduino για τον έλεγχο των motors απευθείας είναι πολύ δύσκολο να αντιστραφεί η τάση. Για να αντιμετωπιστεί
αυτό το πρόβλημα χρησιμοποιείται ένα επιπλέον κύκλωμα το οποίο ονομάζεται H- bridge και φαίνεται παρακάτω: Εικόνα 37: H-Bridge Η H-Bridge δίνει τη δυνατότητα σε μια τάση να εφαρμοστεί σε κάθε κινητήρα σε κάθε κατεύθυνση. Με την H-Bridge μπορούμε να ελέγξουμε δύο κινητήρες ταυτόχρονα. Παρακάτω φαίνεται η συνδεσμολογία γύρω από την H-bridge: Εικόνα 38: Διάγραμμα συνδεσμολογίας H-bridge Στην παρακάτω εικόνα παρουσιάζεται ακριβώς η συνδεσμολογία του Arduino με την H- bridge και μέσω αυτής με τους κινητήρες. Με βάση αυτή τη συνδεσμολογία και το αντίστοιχο πρόγραμμα το οποίο έχει φορτωθεί στη ρομποτική κατασκευή η ρομπότ είναι ικανό να κινείται μπρος πίσω καθώς και να στρίβει στον άξονά του 90 μοίρες. Συγκεκριμένα βλέπουμε: Ο ακροδέκτης 3 και 6 της H-bridge συνδέεται στον αριστερό κινητήρα Ο ακροδέκτης 11 και 14 της H-bridge συνδέεται στον δεξιό κινητήρα
Οι ακροδέκτες 4, 5, 13 και 12 γειώνονται μέσω του breadboard πάνω στο Arduino Οι ακροδέκτες 2 και 7 της H-bridge συνδέονται στις ψηφιακές εξόδους 6 και 5 του Arduino αντίστοιχα Οι ακροδέκτες 15 και 10 της H-bridge συνδέονται στις ψηφιακές εξόδους 11 και 10 του Arduino αντίστοιχα Οι ακροδέκτες 1, 8, 16 και 9 της H-bridge συνδέονται σε τροφοδοσία ρεύματος Εικόνα 39: Διάγραμμα συνδεσμολογίας εσωτερικών μερών Θα πρέπει να σημειωθεί ότι η τροφοδοσία ηλεκτρικής ενέργειας που δίνεται από το Arduino (5v) δεν είναι αρκετή να υποστηρίξει και την κίνηση των κινητήρων αλλά και την παροχή ενέργειας στο Wi-Fi που αναφέρεται παραπάνω οπότε χρειάζεται να συνδεθεί και πρόσθετη πηγή ενέργειας.
3.1.2.2.6 Λογισμικό ρομποτικής συσκευής Παρακάτω φαίνεται ο κώδικας που αναπτύχθηκε ειδικά για τη συγκεκριμένη ρομποτική κατασκευή λαμβάνοντας υπόψη όλα τα ιδιαίτερα χαρακτηριστικά της κατασκευής καθώς και τις απαιτήσεις που τέθηκαν κατά τη σχεδίαση. int motor_left[] = {5, 6}; //τα pins του Arduino για τον αριστερό κινητήρα int motor_right[] = {10, 11}; //τα pins του Arduino για τον δεξιό κινητήρα int state[100]; //Συνάρτηση αρχικοποίησης συσκευής void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinmode(motor_left[i], OUTPUT); pinmode(motor_right[i], OUTPUT); } } /*Συνάρτηση επανάληψης συσκευής. Η συνάρτηση αυτή εκτελείται επαναληπτικά όσο η συσκευή βρίσκεται σε λειτουργία*/ void loop() { for (int i = 0; i < 100; i = i + 1) { if (Serial.available()>0){ } state[i] = Serial.read(); if (state[i] == 'f') { //Εάν η κατάσταση της συνάρτησης είναι 'f' τότε η συσκευή drive_forward(); // πρέπει να κινηθεί μπροστά ένα βήμα οπότε εκτελείται η // drive_forward delay(1000); // Η καθυστέρηση 1000 msec εφαρμόζεται για να μπορέσει η // συσκευή να κάνει buffering και να διαβάσει τις υπόλοιπες
// εντολές motor_stop(); state[i] ='j'; } else if (state[i]== 'b') { //Εάν η κατάσταση της συνάρτησης είναι 'b' τότε η συσκευή // πρέπει να κινηθεί πίσω ένα βήμα οπότε εκτελείται η // drive_backward drive_backward(); delay(1000); motor_stop(); state[i] ='j'; } else if (state[i] == 'l') { //Εάν η κατάσταση της συνάρτησης είναι 'l' τότε η συσκευή // πρέπει να στρίψει αριστερά οπότε εκτελείται η turn_left turn_left(); delay(550); motor_stop(); state[i] ='j'; } else if (state[i]== 'r') { //Εάν η κατάσταση της συνάρτησης είναι 'r' τότε η συσκευή // πρέπει να στρίψει δεξιά οπότε εκτελείται η turn_right turn_right(); delay(550); motor_stop(); state[i] ='j'; } else if (state[i] == 's') { //Εάν η κατάσταση της συνάρτησης είναι 's' τότε η συσκευή // πρέπει να ακινητοποιηθεί οπότε εκτελείται η // drive_forward motor_stop(); delay(1000);
motor_stop(); state[i] ='j'; } delay(2000); }} /*Συνάρτηση η οποία ακινητοποιεί τη ρομποτική συσκευή*/ void motor_stop(){ digitalwrite(motor_left[0], LOW); digitalwrite(motor_left[1], LOW); digitalwrite(motor_right[0], LOW); digitalwrite(motor_right[1], LOW); delay(25); } /*Συνάρτηση η οποία κινεί τη ρομποτική συσκευή ένα βήμα εμπρός*/ void drive_forward(){ digitalwrite(motor_left[0], HIGH); digitalwrite(motor_left[1], LOW); digitalwrite(motor_right[0], HIGH); digitalwrite(motor_right[1], LOW); } /*Συνάρτηση η οποία κινεί τη ρομποτική συσκευή ένα βήμα πίσω*/ void drive_backward(){ digitalwrite(motor_left[0], LOW); digitalwrite(motor_left[1], HIGH); digitalwrite(motor_right[0], LOW); digitalwrite(motor_right[1], HIGH); } /*Συνάρτηση η οποία αναγκάζει τη ρομποτική συσκευή να στρίψει αριστερά 90 μοίρες*/
void turn_left(){ digitalwrite(motor_left[0], LOW); digitalwrite(motor_left[1], HIGH); digitalwrite(motor_right[0], HIGH); digitalwrite(motor_right[1], LOW); } /*Συνάρτηση η οποία αναγκάζει τη ρομποτική συσκευή να στρίψει δεξιά 90 μοίρες*/ void turn_right() { digitalwrite(motor_left[0], HIGH); digitalwrite(motor_left[1], LOW); digitalwrite(motor_right[0], LOW); digitalwrite(motor_right[1], HIGH); } Το λογισμικό του ρομπότ μπορεί να φορτωθεί στην κατασκευή με τον κλασικό τρόπο που φορτώνεται ένα πρόγραμμα στον μικροελεγκτή Arduino. Αρκεί ο χρήστης να συνδέσει τη ρομποτική κατασκευή μέσω της θύρας USB-b του Arduino όπως φαίνεται στην εικόνα. Εικόνα 40: Σύνδεση μέσω θύρας USB-b του Arduino Στη συνέχεια αφού έχει τρέξει το Arduino IDE και έχει γράψει το πρόγραμμα που θέλει να φορτώσει στη ρομποτική κατασκευή επιλέγει την κατάλληλη πόρτα επικοινωνίας με
τη ρομποτική κατασκευή όπως φαίνεται στην παρακάτω εικόνα (Tools Serial Port menu). Στα Windows, αυτή η πόρτα θα μπορούσε να είναι μια εκ των COM1, COM2, COM3, COM4, ή COM5. Σε Mac, θα μπορούσε να είναι κάτι σαν /dev/cu.usbserial-1b1 ή /dev/cu.usa19qw1b1p1.1. Τέλος ο χρήστης πατάει το reset κουμπί στο board του Arduino και πατάει το Upload κουμπί στο IDE. Έπειτα από μερικά δευτερόλεπτα εμφανίζεται το μήνυμα "Done uploading.". Εικόνα 41: Φόρτωση προγράμματος στη ρομποτική κατασκευή