Διπλωματική Εργασία. Τίτλος: Προσομοίωση Αλγορίθμων Διάταξης με Εκπαιδευτικό Ρομπότ. Εκπόνηση: Απόστολος A. Πουρνάρας



Σχετικά έγγραφα
Ρομποτική. Τι είναι ένα ρομπότ ; Τι είναι ο αλγόριθμος ; Τι είναι το πρόγραμμα ; Επιμέλεια παρουσίασης : Κυριακού Γεώργιος

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

«Προγραµµατισµός του LEGO Mindstorm NXT για το διαγωνισµό "Move the Ball!"»

Πακέτο Lego Mindstorms

ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ

Ταυτότητα εκπαιδευτικού σεναρίου. Γνώσεις και πρότερες ιδέες των μαθητών. Σκοπός και στόχοι

Επιμέλεια παρουσίασης: Αριστείδης Παλιούρας ΤΙ ΕΊΝΑΙ ΈΝΑ ΡΟΜΠΟΤ (ROBOT)?

ΡΟΜΠΟΤΙΚΗ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ LEGO MINDSTORMS NXT. ΚΕΦΑΛΑΙΟ 7ο. Δραστηριότητες για το ΝΧΤ-G και το Robolab

Η ΕΚΠΑΙΔΕΥΤΙΚΗ ΡΟΜΠΟΤΙΚΗ ΣΤΟ ΔΗΜΟΤΙΚΟ ΣΧΟΛΕΙΟ

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

RobotArmy Περίληψη έργου

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Διδακτική της Πληροφορικής ΙΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Ταξινόμηση. Σαλτογιάννη Αθανασία

Εισαγωγή στη Ρομποτική (για αρχάριους) Δημήτρης Πιπερίδης Διαδραστική Έκθεση Επιστήμης & Τεχνολογίας Ίδρυμα Ευγενίδου

Περιγραφή της 3 ης εργαστηριακής εφαρμογής: ρομποτικό σύστημα LEGO NXT

ΑΕΠΠ Ερωτήσεις θεωρίας

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

x = r cos φ y = r sin φ

ΧΡΩΜΑΤΙΚΟΣ ΤΑΞΙΝΟΜΗΤΗΣ ΜΕ ΡΟΜΠΟΤΙΚΟ ΒΡΑΧΙΟΝΑ ΚΑΙ ΧΡΗΣΗ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ BASIC STAMP ΤΗΣ PARALLAX

Σχεδίαση Εκπαιδευτικού Λογισμικού. Εργασία 2 - Α' φάση. Σενάριο/Σχέδιο μαθήματος. Σταματία Κορρέ Μ1430

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Σχεδίαση του αλγορίθμου για το παιχνίδι Rat s Life

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Π.Π.Σ.Π.Α Εργασία τεχνολογίας: ΡΟΜΠΟΤ

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

ΒΑΣΙΚΑ ΜΑΘΗΜΑΤΑ ΝΤΟΥΛΑΚΗΣ - ΜΕΝΙΟΥΔΑΚΗΣ ΕΠΑ.Λ ΕΛ. ΒΕΝΙΖΕΛΟΥ

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

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

Η ΙΣΤΟΡΙΑ ΤΩΝ ΡΟΜΠΟΤ

Τι είναι ρομπότ. Εκπαιδευτική ρομποτική Lego

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

Πέμπτη 25 Σεπτεμβρίου αίθουσα «Μελίνα Μερκούρη» του Δημαρχείου Ιεράπετρας

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Πληροφορική 2. Αλγόριθμοι

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Αρχιτεκτονική Υπολογιστών

Β1.1 Δημιουργία Εφαρμογής στο Περιβάλλον Προγραμματισμού EdScratch του Edison ρομπότ

Slalom Race Computer Game on Scratch

ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Αλγόριθμοι. Σενάριο για μαθητές της Γ γυμνασίου, διάρκειας 4 ωρών διδασκαλίας

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Πανεπιστήμιο Αιγαίου Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Εγκατάσταση του Arduino IDE

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Lab 1: Experimenting on Arduino & AI Sense

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Μετρώντας Επιτάχυνση με το Accelerόμετρο (ADXL 335) Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Ενότητα 1η. Εισαγωγή στην Πληροφορική

Εισαγωγή στη Ροµποτική

Προγραμματισμός. Το περιβάλλον του scratch

Εισαγωγή στη ρομποτική Γίνε κατασκευαστής

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διδακτική της Πληροφορικής με εφαρμογές Εκπαιδευτικής Ρομποτικής βασισμένης στην Εποικοδομιστική Θεωρία

Τι ακριβώς είναι η Java η C++, η PASCAL και η PYTHON;

Εφαρμογές Προσομοίωσης

WRO Hellas πιλοτικό πρόγραμμα εκπαιδευτικής ρομποτικής σε σχολεία του Δ. Αθηναίων

ΑΥΤΟΝΟΜΟ ΣΧΟΛΙΚΟ ΛΕΩΦΟΡΕΙΟ Έκδοση: 15 Ιανουαρίου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΕΚΠΑΙΔΕΥΣΗ

Μαλούτα Θεανώ Σελίδα 1

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Προγραμματισμός Ι (HY120)

ΣΕΝΑΡΙΟ ΤΠΕ ΓΕΝΙΚΕΥΜΕΝΟ ΠΥΘΑΓΟΡΕΙΟ ΘΕΩΡΗΜΑ - ΝΟΜΟΣ ΣΥΝΗΜΙΤΟΝΩΝ

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 4 TΟ ΡΟΜΠΟΤΙΚΟ ΟΧΗΜΑ ROGUE BLUE

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Μάθημα 4.1 Βασικές μονάδες προσωπικού υπολογιστή

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Transcript:

Πανεπιστήμιο Πατρών Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διπλωματική Εργασία Τίτλος: Προσομοίωση Αλγορίθμων Διάταξης με Εκπαιδευτικό Ρομπότ Εκπόνηση: Απόστολος A. Πουρνάρας Επίβλεψη: Ιωάννης Χατζηλυγερούδης Πάτρα 2011

2

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

4

Περίληψη Στη διπλωματική αυτή, παρουσιάζεται μια ρομποτική κατασκευή για την επίδειξη αλγορίθμων ταξινόμησης, με χρήση του εκπαιδευτικού ρομπότ της Lego, το LEGO Mindstorm NXT. Σκοπός αυτής τη επίδειξης είναι να βοηθήσει τους φοιτητές που την παρακολουθούν να κατανοήσουν καλύτερα τους τρόπους εκτέλεσης των αλγορίθμων ταξινόμησης. Το εκπαιδευτικό ρομπότ αυτό αποτελεί εμπορικό προϊόν, μη έχοντας όμως συγκεκριμένη μορφή. Αποτελείται από πολλά πλαστικά μέρη, τα οποία θυμίζουν τα κλασικά τουβλάκια της LEGO αλλά και πολλά άλλα όπως αισθητήρες, κινητήρες, γρανάζια και ρόδες. Με τη χρήση αυτών, κατασκευάστηκε ένα όχημα, το οποίο μπορεί να κινείται μόνο αριστερά-δεξιά, στο οποίο και προσαρτάται ένας αισθητήρας φωτηνότητας. Διαθέτει ακόμη έναν βραχίονα που μπορεί να κινηθεί πάνω-κάτω και στον οποίο προσαρτάται ένας αισθητήρας χρώματος. Οι αριθμοί που καλείται το ρομπότ να ταξινομήσει είναι στην ουσία κύβοι. Οι κύβοι αυτοί, είναι χρωματισμένοι στο επάνω μέρος τους με κάποιο χρώμα ενώ στην πρόσοψή τους έχει εκτυπωθεί ένας αριθμός. Το ρομπότ αναλαμβάνει να αναγνωρίσει με τον αισθητήρα χρώματος το χρώμα του κάθε κύβου και να το ταυτοποιήσει με τον αριθμό στο οποίο αντιστοιχίζεται το χρώμα αυτό. Τον αριθμό δηλαδή που είναι εκτυπωμένος στη πρόσοψη. Για την πλοήγηση του οχήματος εφαρμόζεται μια παραλλαγή της τοπολογικής πλοήγησης. Για την αντιστοίχιση των χρωμάτων με τους αριθμούς χρησιμοποιείται δειγματοληψία χρώματος και στη συνέχεια χρησιμοποιείται 1-προς-1 αντιστοίχιση χρώματος και κατάλληλου αριθμού. Τέλος, οι αλγόριθμοι ταξινόμησης που υλοποιήθηκαν ήταν οι Bubble Sort, Insertion Sort, Heap Sort, Quick Sort. Η επίδειξη των αλγορίθμων γίνεται χρησιμοποιώντας φυσικά τον βραχίονα ο οποίος μετακινεί κατάλληλα τους κύβους. Όμως για την καλλίτερη κατανόηση και για να βοηθηθούν όσοι παρακολουθούν την επίδειξη, παράλληλα της ταξινόμησης με τον βραχίονα, γίνεται χρήση κατάλληλων ηχητικών αλλά και γραπτών μηνυμάτων τα οποία προβάλλονται στην οθόνη που διαθέτει το ΝΧΤ. Τα όσα προβάλλονται στην οθόνη, χρησιμοποιώντας το προγραμματιστικό περιβάλλον Bricx, είναι δυνατόν να προβληθούν σε οθόνη υπολογιστή ή ακόμα και μέσω προβολέα εφόσον ο τελευταίος συνδέεται με υπολογιστή. Τέλος, θεωρούμε ότι το σύστημα που αναπτύχθηκε αποτελεί ένα πολύ καλό εργαλείο που μπορεί να βοηθήσει τον διδάσκοντα στη διδασκαλία των αλγορίθμων ταξινόμησης. Οι φοιτητές μπορούν μέσω της οπτικοποίησης να κατανοήσουν ευκολότερα και γρηγορότερα τους αλγορίθμους. Μελλοντικά ίσως προστεθούν και άλλοι αλγόριθμοι ταξινόμησης, να αναπτυχθεί μια γραφική διεπαφή που θα είναι ανεξάρτητη του Bricx για να προβάλλονται σε κάποια οθόνη τα όσα προβάλλονται χρησιμοποιώντας το Bricx, να χρησιμοποιηθούν διαφορετικοί τρόποι αναγνώρησης αριθμών όπως χρήση αλγορίθμων μορφολογικής επεξεργασίας και τέλος η βηματική ταξινόμηση των αλγορίθμων από κάποιον χειριστή. 5

6

Κατάλογος περιεχομένων 1. ΕΙΣΑΓΩΓΗ...9 1.1 Το θέμα της διπλωματικής εργασίας...9 1.2 Αλγοριθμικά και κατασκευαστικά θέματα...9 1.3 Περιγραφή κεφαλαίων...10 2. ΡΟΜΠΟΤΙΚΗ... 12 2.1 Ορισμός της ρομποτικής...12 2.2 Σύντομη ιστορική αναδρομή...12 2.3 Ορισμός του ρομπότ...13 2.4 Είδη ρομπότ και εφαρμογές...13 2.5 Τα ρομπότ στην εκπαίδευση...14 3. Η ΠΛΑΤΦΟΡΜΑ LEGO MINDSTORMS ΝΧΤ...16 3.1 Ιστορική αναδρομή της πλατφόρμας Lego Mindstorms...16 3.2 Η επεξεργαστική μονάδα...16 3.3 Γλώσσες προγραμματισμού για το ΝΧΤ...18 3.4 Δομικά στοιχεία...20 4. ΑΛΓΟΡΙΘΜΟΙ ΤΑΞΙΝΟΜΗΣΗΣ...22 4.1 Γενικά για τους αλγορίθμους ταξινόμησης...22 4.2 Bubble Sort...23 4.3 Insertion Sort...24 4.4 Quick Sort...25 4.5 Merge Sort...26 4.6 Heap Sort...27 4.7 Counting Sort...28 5. ΚΑΤΑΣΚΕΥΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΟΥ ΡΟΜΠΟΤ... 29 5.1 Σχεδιαστικές αποφάσεις...29 5.1.1 Οι κύβοι...29 5.1.2 Οι κινήσεις...29 5.1.3 Η πλατφόρμα...30 5.1.4 Το όχημα...30 5.2 Τελική κατασκευή...31 5.2.1 Οι κύβοι...31 5.2.2 Ο βραχίονας...31 5.2.3 Το κυρίως σώμα...34 5.2.4 Το αντίβαρο...35 5.2.5 Η πλατφόρμα...35 6. ΑΝΑΓΝΩΡΙΣΗ ΑΡΙΘΜΩΝ... 38 6.1 Εισαγωγή...38 6.2 OCR...38 6.3 Αντιστοίχιση με χρώμα...39 6.4 Επιλογή μεθόδου...42 7

7. ΠΛΟΗΓΗΣΗ... 43 7.1 Το πρόβλημα της πλοήγησης-σύστημα συντεταγμένων...43 7.2 Τεχνικές Πλοήγησης...44 7.3 Ανάγκες πλοήγησης του ρομπότ...44 7.4 Επιλογή τεχνικής και ανάλυση λειτουργίας...45 8. ΤΡΟΠΟΣ ΠΑΡΟΥΣΙΑΣΗΣ...49 8.1 Εισαγωγή...49 8.2 Οι κινήσεις...50 8.3 Οι ηχητικές και οι οπτικές ενδείξεις...50 8.4 παράδειγμα εκτέλεσης...54 9. ΟΙ ΑΛΓΟΡΙΘΜΟΙ ΤΑΞΙΝΟΜΗΣΗΣ ΠΟΥ ΜΕΤΑΦΕΡΘΗΚΑΝ ΣΕ NXC...55 9.1 Bubble Sort...55 9.2 Insertion Sort...55 9.3 Heap Sort...55 9.4 Quick Sort...58 10. ΒΕΛΤΙΩΣΕΙΣ - ΣΥΜΠΕΡΑΣΜΑΤΑ...62 10.1 Δυσκολίες και προβλήματα...62 10.2 Βελτιώσεις στη κατασκευή...63 10.3 Βελτιώσεις στον κώδικα...64 10.4 Η συμβολή της διπλωματικής στη διδασκαλία...64 ΒΙΒΛΙΟΓΡΑΦΙΑ... 66 ΠΑΡΑΡΤΗΜΑ: Εγκατάσταση και χρήση του Bricx σε windows 7 x64... 69 8

1. ΕΙΣΑΓΩΓΗ 1.1 Το θέμα της διπλωματικής εργασίας Στη διπλωματική αυτή, παρουσιάζεται μια ρομποτική κατασκευή για την επίδειξη αλγορίθμων ταξινόμησης, με χρήση του LEGO Mindstorm NXT. Σκοπός αυτής τη επίδειξης είναι να βοηθήσει τους φοιτητές που την παρακολουθούν να κατανοήσουν καλύτερα τους τρόπους εκτέλεσης των αλγορίθμων ταξινόμησης. Το ρομπότ αυτό αποτελείται από πολλά πλαστικά μέρη, τα οποία θυμίζουν τα κλασικά τουβλάκια της LEGO αλλά και πολλά άλλα όπως αισθητήρες, κινητήρες, γρανάζια και ρόδες. Το ρομπότ, καλείται να ταξινομήσει αριθμημένους κύβους. Οι κύβοι αυτοί είναι παραταγμένοι μπροστά του, πάνω σε μία ειδικά διαμορφωμένη πλατφόρμα. Οι αλγόριθμοι που μπορεί να χρησιμοποιείσει για να κάνει την ταξινόμηση είναι οι: Bubble Sort, Insertion Sort, Heap Sort και Quick Sort. Αλγόριθμος ταξινόμησης μπορεί να ορισθεί ο αλγόριθμος, δηλαδή μια λογικώς συνδεδεμένη αλληλουχία βημάτων που φέρουν εις πέρας κάποια εργασία, ο οποίος ταξινομεί μια αταξινόμητη διάταξη αριθμών. Η επίδειξη των αλγορίθμων γίνεται χρησιμοποιώντας φυσικά τον βραχίονα ο οποίος μετακινεί κατάλληλα τους κύβους. Όμως για την καλλίτερη κατανόηση και για να βοηθηθούν όσοι παρακολουθούν την επίδειξη, παράλληλα της ταξινόμησης με τον βραχίονα, γίνεται χρήση κατάλληλων ηχητικών αλλά και γραπτών μηνυμάτων τα οποία μπορούν να προβληθούν σε οθόνη υπολογιστή ή ακόμα και μέσω προβολέα εφόσον ο τελευταίος συνδέεται με υπολογιστή. 1.2 Αλγοριθμικά και κατασκευαστικά θέματα Για να καταφέρει το ρομπότ να κάνει τη διάταξη, θα πρέπει να ληφθούν υπόψιν αλγοριθμικά αλλά και κατασκευαστικά θέματα και βάση αυτών να παρθούν σχεδιαστικές αποφάσεις. Αυτές οι αποφάσεις θα προσδιορίσουν τη κατασκευή του οχήματος, τον τρόπο με τον οποίο θα μπορεί να κινείται και να δρα. Θα πρέπει να λυθούν διενέξεις και να βρεθούν συμβιβασμοί, μιας και κάποιες σχεδιαστικές αποφάσεις συγκρούονται με άλλες. Έτσι θα πρέπει λοιπόν να ληφθούν υπόψιν τα εξής: Αναγνώριση αριθμών Κινήσεις και βαθμοί ελευθερίας του οχήματος Πλοήγηση οχήματος Παρουσίαση αλγορίθμων. Οπτικά και ακουστικά. Ποιοι αλγόριθμοι μπορούν να οπτικοποιηθούν Πιο συγκεκριμένα, Αναγνώριση αριθμών. Για να γίνει η ταξινόμηση θα πρέπει αρχικά να είναι γνωστοί οι προς ταξινόμηση αριθμοί. Οι αριθμοί όμως αρχικά δεν είναι γνωστοί στο ρομπότ. Για να τους μάθει, θα πρέπει να μπορεί να τους διαβάζει. Θα πρέπει λοιπόν βάσει των απαιτήσεων που υπάρχουν, να επιλεγεί ο κατάλληλος τρόπος. Κινήσεις και βαθμοί ελευθερίας του οχήματος Πρέπει να καθοριστεί η δομή, η κατασκευή δηλαδή του ρομποτικού οχήματος. Τι είναι απαραίτητο να κάνει και με ποιο βαθμό ελευθερίας. 9

Πλοήγηση οχήματος Καθορίζοντας τη κατασκευή του οχήματος θα πρέπει να καθοριστεί στη συνέχεια και ο τρόπος με τον οποίο θα είναι σε θέσει να κατευθύνεται αυτόνομα στο χώρο στον οποίο θα ενεργεί. Παρουσίαση αλγορίθμων. Οπτικά και ακουστικά. Ο σκοπός της διπλωματικής είναι πρωτίστως εκπαιδευτικός. Θα πρέπει ο φοιτητής που παρακολουθεί να μπορεί να καταλάβει τον αλγόριθμο που του παρουσιάζεται και να λύνει τις απορίες που τυχόν είχε πριν την παρουσίαση. Δε θα πρέπει να του δημιουργούνται νέες. Έτσι, η παρουσίαση θα πρέπει να είναι κατανοητή, απέριττη και να παρέχει όλες τις απαραίτητες συνοδευτικές πληροφορίες που απαιτούνται για την κατανόηση των αλγορίθμων. Ποιοι αλγόριθμοι μπορούν να οπτικοποιηθούν Δυστυχώς, δεν μπορούν να οπτικοποιηθούν όλοι οι αλγόριθμοι. Τουλάχιστον όχι με τη χρήση του ρομπότ που κατασκευάστηκε για τους σκοπούς αυτής της διπλωματικής. Έπρεπε να βρεθούν λοιπόν ποιοι αλγόριθμοι ήταν κατάλληλοι ώστε να μπορεί το ρομπότ να εκτελέσει σε πρώτο στάδιο αλγοριθμικά και ποιοι από αυτούς ήταν δυνατόν να οπτικοποιήσει. 1.3 Περιγραφή κεφαλαίων Παρακάτω βλέπουμε τα κεφάλαια της διπλωματικής και τα περιεχόμενά τους. Κεφάλαιο 1: Παρουσιάζεται ο στόχος της διπλωματικής, τα σχεδιαστικά θέματα που ελήφθησαν υπόψιν και μια περιγραφή των κεφαλαίων της διπλωματικής. Κεφάλαιο 2: Δίνονται ορισμοί των ρομπότ και της ρομποτικής, γίνεται μια αναδρομή στην ιστορία τους, δίνονται παραδείγματα των εφαρμογών των ρομπότ με ιδιαίτερη έμφαση στις εφαρμογές στην εκπαίδευση. Κεφάλαιο 3: Γίνεται μια ιστορική αναδρομή της πλατφόρμας LEGO MINDSTORMS, αναλύεται η επεξεργαστική της μονάδα, αναφέρονται τα δομικά της στοιχεία και αναλύονται οι αισθητήρες που χρησιμοποιήθηκαν για τους σκοπούς της διπλωματικής καθώς και ο σερβοκινητήρας της πλατφόρμας. Ακόμη, Γίνεται μια παρουσίαση των διαφορετικών γλωσσών προγραμματισμού του ΝΧΤ. Κεφάλαιο 4: Γίνεται μια παρουσίαση των αλγορίθμων ταξινόμησης εν γένη και στη συνέχεια παρουσιάζονται αλγοριθμικά έξι βασικοί αλγόριθμοι. Ο Bubble sort, ο Insertion sort, o Heap sort, ο Merge sort, ο Quick sort και ο Counting sort. Για κάθε αλγόριθμο παρατίθεται και ένα διάγραμμα που δείχνει τις επιδόσεις του για πίνακες διαφόρων μεγεθών και κατανομών. Κεφάλαιο 5: Αρχικά παρουσιάζονται και αναλύονται οι σχεδιαστικές αποφάσεις που πάρθηκαν καθώς και οι λόγοι που οδήγησαν σε αυτές τις αποφάσεις. Ακολούθως, παρουσιάζεται και αναλύεται η δομή και η λειτουργία της τελικής, ολοκληρωμένης κατασκευής. Το όχημα, ο βραχίονάς του, η πλατφόρμα και οι κύβοι. Για όλα αυτά, υπάρχουν φωτογραφίες με επεξηγήσεις. Κεφάλαιο 6: 10

Παρουσιάζονται διάφοροι τρόποι με τους οποίους θα μπορούσε το ρομπότ να αναγνωρίσει τους προς διάταξη αριθμούς και εξηγείται η επιλογή που έγινε για τις ανάγκες της διπλωματικής αυτής. Κεφάλαιο 7: Αναλύονται δυο τεχνικές πλοήγησης. Εξηγείται το πως έγινε η επιλογή μεταξύ των δύο και αναλύεται ο τρόπος εφαρμογής της επιλεχθείσας τεχνικής στο ρομπότ της διπλωματικής. Κεφάλαιο 8: Εξηγείται ο τρόπος οπτικοποίησης των αλγορίθμων που υλοποιήθηκαν. Κεφάλαιο 9: Παρουσιάζονται οι αλγόριθμοι που μεταφέρθηκαν στην NXC. Επισημαίνονται οι διαφορές που έχουν σε σχέση με τις υλοποιήσεις σε ANSI C και όπου είναι απαραίτητο, γίνεται επεξήγηση των τρόπων με τους οποίους παρακάμφθηκαν προβλήματα κατά τη μεταφορά από ANSI C σε NXC. Κεφάλαιο 10: Παρουσιάζονται διάφορα προβλήματα που ανέκυψαν. Προγραμματιστικά αλλά και κατασκευαστικά. Προτείνονται βελτιώσεις. Γίνεται μια αξιολόγηση της διπλωματικής ως προς τον εκπαιδευτικό της χαρακτήρα. Παράρτημα: Στο παράρτημα, δίδεται οδηγός εγκατάστασης του προγραμματιστικού περιβάλλοντος Bricx σε Windows 7 και το πως μπορεί να χρησιμοποιηθεί. 11

2. ΡΟΜΠΟΤΙΚΗ 2.1 Ορισμός της ρομποτικής Ρομποτική είναι ο κλάδος της τεχνολογίας που ασχολείται με το σχεδιασμό, την κατασκευή, τη λειτουργία, και την χρησιμοποίηση των ρομπότ. Η ρομποτική σχετίζεται με τις επιστήμες των ηλεκτρονικών, της μηχανικής και του προγραμματισμού. [08] 2.2 Σύντομη ιστορική αναδρομή Η κατασκευή του πρώτου ρομπότ αποδίδεται στον μαθηματικό Αρχύτα τον Ταραντίνο (428-347 π.χ.), ο οποίος λέγεται πως κατασκεύασε μια ιπτάμενη μηχανή. Η μηχανή κινούνταν με ατμό, μπορούσε να διανύσει μέχρι και 200 μέτρα και ονομαζόταν περιστερά ή πετομηχανή. Το 1495 ο Leonardo DaVinci σχεδιάζει και πιθανόν κατασκευάζει το παλαιότερο σχέδιο ανθρωποειδούς ρομπότ που σώζεται μέχρι σήμερα. Πρόκειται για μια μηχανική κατασκευή που μοιάζει με στρατιώτη με πανοπλία. Ο μηχανισμός στο εσωτερικό του, του επιτρέπει να κινεί τα χέρια και το κεφάλι του και να ανασηκώνεται, όπως ακριβώς θα γινόταν εάν βρισκόταν ένας άνθρωπος μέσα στην πανοπλία. Το 1738 ο Jacques de Vaucanson ξεκινάει την κατασκευή ρομπότ. Αρχικά δημιουργεί έναν μηχανισμό που παίζει φλάουτο και μπορεί να παίξει 12 τραγούδια. Στην συνέχεια επεκτείνει την αρχική κατασκευή κατασκευάζοντας ένα ρομπότ που μπορούσε να παίξει φλάουτο και τύμπανο. Η πιο διάσημη όμως κατασκευή του ήταν μια ρομποτική πάπια που είχε τη δυνατότητα να κινείται, να κουνάει τα φτερά της ακόμα και να τρώει σπόρους. Η πάπια αποτελούσε ένα παράδειγμα στα πλαίσια της μελέτης του Vaucanson σε αυτό που αποκαλούσε κινούμενη ανατομία, την μοντελοποίηση δηλαδή της ανατομίας, ανθρώπων και ζώων, με χρήση μηχανισμών. Το 1898 ο Nikola Tesla κατασκευάζει και επιδεικνύει το πρώτο τηλεχειριζόμενο πλοίο. Το 1936 ο Alan Turing εισάγει την έννοια των μηχανών υπολογισμού, γνωστές ως μηχανές Turing. Αργότερα θα δημοσιεύσει το Υπολογιστικές Μηχανές και Νοημοσύνη (Computing Machinery and Intelligence), όπου θα προτείνει ένα πείραμα (Turing test) που θα καθορίζει πρότυπα για το πότε μια μηχανή μπορεί να καλείται νοήμων. Το 1942 ο συγγραφέας επιστημονικής φαντασίας Issac Asimov, στο χρονογράφημά του Runaround, εισάγει τη λέξη Robotics και ορίζει ως ρομπότ ένα αυτόματο με εμφάνιση ανθρώπου αλλά απαλλαγμένο από συναισθήματα. Η μεγαλύτερη συνεισφορά του Asimov, πέρα από την εισαγωγή της έννοιας της Ρομποτικής, είναι η δημιουργία των τριών βασικών νόμων των ρομπότ: Νόμος 1: Ένα ρομπότ δεν πρέπει ποτέ να βλάψει ένα άνθρωπο ή λόγω αδράνειάς του να αφήσει ένα άνθρωπο να πάθει κακό. Νόμος 2: Ένα ρομπότ πρέπει πάντοτε να υπακούει τις εντολές που δίνονται από τους ανθρώπους εκτός και αν συγκρούονται με ανώτερο νόμο. Νόμος 3: Ένα ρομπότ πρέπει να προστατέψει την ύπαρξη του εκτός και αν αυτό συγκρούεται με ένα ανώτερο νόμο. [10] Το 1948 κατασκευάζεται στο πανεπιστήμιο του Bristol το πρώτο αυτόνομο ρομπότ με το όνομα Elsie, το οποίο κινούνταν με βάση ερεθισμάτων που λάμβανε από αισθητήρες φωτός. Το 1962 ο George Devol κατασκευάζει το πρώτο σύγχρονο, ψηφιακά προγραμματιζόμενο ρομποτικό βραχίονα με το όνομα Unimate. Είναι σχεδιασμένο με σκοπό να φέρνει σε πέρας επικίνδυνες, δύσκολες ή επαναλαμβανόμενες και ανιαρές εργασίες. Το 1966 κατασκευάζεται στο Ινστιτούτο Έρευνας του πανεπιστημίου του Stanford, το Shakey, το πρώτο κινούμενο ρομπότ 12

με δυνατότητες Τεχνητής Νοημοσύνης. Οι αποστολές που μπορούσε να εκτελέσει περιελάμβαναν τον οπτικό εντοπισμό ενός αντικειμένου, την μετάβαση προς το αντικείμενο αυτό καθώς και την αλληλεπίδραση με το αντικείμενο, όπως για παράδειγμα να το σπρώξει. Το 1980 ο Seymour Papert δημοσιεύει το βιβλίο Mindstorms: Children, Computers, and Powerful Ideas όπου προτείνει για πρώτη φορά την χρήση εκπαιδευτικών ρομπότ και εισάγει την έννοια της εκμάθησης μέσα από την κατασκευή και το πείραμα. Το 1986 η συνεργασία της LEGO με το MIT οδηγεί στην κυκλοφορία του πρώτου εκπαιδευτικού προϊόντος βασισμένο σε Lego, το LEGO tc Logo. Ο προγραμματισμός του γινόταν σε Logo και χρησιμοποιήθηκε ευρέως στην εκπαιδευτική διαδικασία και ειδικά στην διδασκαλία εννοιών της επιστήμης των υπολογιστών. [01], [09] 2.3 Ορισμός του ρομπότ Ως ρομπότ μπορεί να οριστεί μια μηχανική ή/και ηλεκτρονική συσκευή η οποία μπορεί να υποκαθιστά τον άνθρωπο σε διάφορες εργασίες. Ένα ρομπότ μπορεί να δράσει κάτω από τον απ' ευθείας έλεγχο ενός ανθρώπου, αυτόνομα ή ημιαυτόνομα κάτω από τον έλεγχο ενός υπολογιστή. Η λέξη ρομπότ προέρχεται από το σλαβικό robota που σημαίνει εργασία. Καθιερώθηκε ως όρος με την σημερινή του έννοια το 1920 από τον Τσέχο θεατρικό συγγραφέα Karel Čapek στο έργο του "R.U.R." (Rossum's Universal Robots), όπου σατιρίζει την εξάρτηση της κοινωνίας από τους μηχανικούς εργάτες (ρομπότ) της τεχνολογικής εξέλιξης. [11] Για να θεωρείται ρομπότ μια μηχανή πρέπει: 1. Να μπορεί να αντιλαμβάνεται το περιβάλλον του. 2. Να μπορεί να εκτελεί διάφορες αποστολές, δηλαδή κίνηση ή χειρισμό. 3. Να είναι επαναπρογραμματιζόμενο, να μπορεί δηλαδή να εκτελεί διαφορετικές αποστολές. 4. Να είναι αυτόνομο ή/και να αλληλεπιδρά με τους ανθρώπους. Για να μπορέσει ένα ρομπότ να επιτελέσει τα έργα που του ανατίθενται, εφοδιάζεται με συσκευές δράσης όπως: πόδια, τροχοί, αρθρώσεις και λαβές. Ακόμη, εφοδιάζεται με αισθητήρες που του επιτρέπουν να αντιλαμβάνεται το εξωτερικό του περιβάλλον. Τα είδη των αισθητήρων που χρησιμοποιούνται στην σύγχρονη ρομποτική ποικίλουν και περιλαμβάνουν κάμερες, αισθητήρες υπερήχων, γυροσκόπια και επιταχυνσιόμετρα. Η πληροφορία που παρέχουν οι αισθητήρες, επεξεργάζεται από τον ελεγκτή, ο οποίος αναλόγως της λειτουργίας που του ανατίθεται οδηγεί τις συσκευές δράσης. 2.4 Είδη ρομπότ και εφαρμογές Τα είδη των ρομπότ θα μπορούσε εύκολα κανείς να πει πως είναι όσες και οι εφαρμογές για τις οποίες καλείται μια ομάδα μηχανικών να κατασκευάσει ένα ρομπότ. Ρομπότ συναντώνται σε αποστολές του στρατού για εξερεύνηση επικίνδυνων περιοχών, στην αστυνομία για εξουδετέρωση βομβών, στη βιομηχανία απαντώνται σε πολλές εφαρμογές πάνω στη γραμμή παραγωγής, στα διαστημικά προγράμματα για την εξερεύνηση του διαστήματος, στα μουσεία για την ξενάγηση των επισκεπτών, στην ιατρική χειρουργική, στην εκπαίδευση με τη χρήση εκπαιδευτικών ρομπότ όπως το ΝΧΤ της LEGO, αλλά και αλλού. Τα ρομπότ μπορούν να φτιαχτούν για να επιτελούν επαναλαμβανόμενες λειτουργίες είτε όχι. Μπορούν να φτιαχτούν ώστε να μοιάζουν με άνθρωπο (androids) ή με έντομα και να τα μιμούνται είτε να μοιάζουν με έναν βραχίονα και να επιτελούν μια μόνο εργασία πχ να κάνουν συγκόλληση 13

μετάλλων στη γραμμή παραγωγής αυτοκινήτων. Υπάρχουν ρομπότ αμαξίδια που δουλεία τους είναι η εξερεύνηση περιοχών. Και πολλά ακόμη. Η χρήση των ρομπότ γίνεται επιβεβλημένη όταν απαιτείται μεγάλη ακρίβεια, αυξημένη παραγωγικότητα και μακράς διάρκειας εργασία καθώς ο ανθρώπινος οργανισμός δε μπορεί να αντεπεξέλθει σε αυτές τις απαιτήσεις πέραν ενός σημείου. Επίσης θα ήταν ανήθικο και αντιδεοντολογικό. Πάντα όμως η ανθρώπινη νόηση (ακόμα τουλάχιστον) θα είναι απαραίτητη για την εύρωστη λειτουργία και έλεγχο των ρομποτικών μηχανών. 2.5 Τα ρομπότ στην εκπαίδευση Η αρχή του Seymour Papert, καθηγητή του MIT, λέει πως Μερικά από τα πιο κρίσιμα βήματα στην πνευματική ανάπτυξη βασίζονται όχι μόνο στην απόκτηση νέων δεξιοτήτων, αλλά και στην εύρεση μεθόδων για τη χρησιμοποίηση όσων έχουν ήδη αποκτηθεί ενώ η θεωρία του περί μαστορέματος της γνώσης (Constructionism) αναφέρει πως η γνώση οικοδομείται πιο αποτελεσματικά όταν κανείς εμπλέκεται ενεργά στη σχεδίαση και κατασκευή πραγματικών αντικειμένων που έχουν νόημα για τον ίδιο. [12], [13], [02] Η υλοποίηση των ιδεών αυτών επιτυγχάνεται με τη χρήση εκπαιδευτικών ρομπότ. Η χρήση τους οξύνει τη συνεργασία και τη δημιουργικότητα μέσα σε ένα πλαίσιο διασκέδασης. Η διασκέδαση και η αίσθηση της επίτευξης αποτελούν σημαντικά κίνητρα για την συμμετοχή σε οποιαδήποτε δραστηριότητα, έτσι η χρήση τους στη διδασκαλία είναι εξαιρετικά αποτελεσματική. Τα ρομπότ μπορούν να χρησιμοποιηθούν είτε ως μαθησιακά εργαλεία είτε ως αντικείμενα προς μελέτη. Στη πρώτη περίπτωση ο διδάσκοντας χρησιμοποιεί το ρομπότ για να κεντρίσει το ενδιαφέρον των μαθητών και να τους βοηθήσει να κατανοήσουν καλύτερα το προς μελέτη αντικείμενο. Στη δεύτερη περίπτωση το ρομπότ το ίδιο είναι αυτό που μελετάται. Οι μαθητές καλούνται να υλοποιήσουν ένα ρομπότ. [03] Έτσι, θα πρέπει να συνεργαστούν, να σκεφθούν, να αποτύχουν, να μάθουν από τα λάθη τους και εν τέλη να συνθέσουν μαζί τη λύση στο πρόβλημα που τους ανατέθηκε. Έτσι θα μάθουν να συνεργάζονται και κυρίως θα μάθουν πως να βρίσκουν τη γνώση που ψάχνουν. Οι ιδέες αυτές αποτέλεσαν και τον μοχλό για τη δημιουργία κατασκευών όπως αυτών που παρουσιάζονται στη συνέχεια. Στην εργασία των Ruben Mitnik, Miguel Nussbaum και Alvaro Soto με τίτλο An autonomous educational mobile robot mediator [04], παρουσιάζεται μια ρομποτική κατασκευή η οποία σχεδιάστηκε ώστε να χρησιμοποιηθεί στην δημοτική και γυμνασιακή εκπαίδευση. Όπως αναφέρουν οι συγγραφείς, στην εργασία τους παρουσιάζονται δύο κύριες καινοτομίες. Από τη μια πλευρά, εκμεταλλευόμενοι την κινητικότητα του ρομπότ τους, τονίζουν τις σχετικές έννοιες των σχολικών μαθημάτων, όπως η φυσική και η γεωμετρία, με στόχο να βοηθήσουν τους μαθητές στη διαδικασία δημιουργίας αφηρημένων μοντέλων της πραγματικότητας. Από την άλλη πλευρά, εκμεταλλευόμενοι την αυτονομία του ρομπότ τους, κατέστη δυνατή η μεσολάβησή του για την ανάπτυξη εκπαιδευτικών δραστηριοτήτων με στόχο τη βελτίωση των αλληλεπιδράσεων και την κοινωνική επαφή των μαθητών. Τα παιδιά αλληλεπιδρούν με το ρομπότ, το οποίο τους παρέχει πληροφορίες σχετικά με το πείραμα που θα εκτελέσουν και στη συνέχεια συνεργάζονται και παίζοντας μαθαίνουν. όπως και οι ίδιοι οι συγγραφείς λένε, ύστερα από δοκιμή του ρομπότ σε τρία σχολεία, παρατηρήθηκε αύξηση του ενδιαφέροντος αλλά και της συνεργασίας από πλευράς μαθητών. Στη δημοσίευση του Zoltán Istenesa και του Attila Pásztorb με τίτλο The use of programmable robots in the education of programming [05], οι συγγραφείς αναφέρονται στη δουλειά που έχει γίνει στα τμήματά τους πάνω στην χρήση της πλατφόρμας LEGO Mindstorms και των ρομπότ RXC και ΝΧΤ. Πιο συγκεκριμένα, αναφέρονται στις δυσκολίες που παρουσιάζουν οι νεοεισαχθέντες φοιτητές στην εκμάθηση γλωσσών και τεχνικών προγραμματισμού. Οι δυσκολίες αυτές σχετίζονται κυρίως με τα διαφορετικά επίπεδα εξοικείωσης που είχαν οι φοιτητές από τα σχολικά τους χρόνια. Αυτή η κατάσταση δημιουργούσε δυσκολίες στην ενιαία εκπαίδευση όλων 14

των φοιτητών με αποτέλεσμα πολλοί φοιτητές να είναι δυσαρεστημένοι ή ακόμα και να μισούν τον προγραμματισμό. Η χρήση όμως των ρομπότ παρότρυνε και βοήθησε τους φοιτητές βελτιώνοντας τις επιδόσεις και τα επίπεδα αρέσκειας τους προς τον προγραμματισμό. Οι εργασίες που λαμβάνουν χώρα στα τμήματά τους συμπεριλαμβάνουν την κατασκευή ενός ρομπότ που θα ακολουθεί μια μαύρη γραμμή πάνω σε λευκό επίπεδο, την κατασκευή ενός ρομπότ που ψάχνει και κατευθύνεται προς το πιο φωτεινό σημείο στο χώρο γύρο του, ένα ρομπότ που σκανάρει έναν χαρακτήρα, διάφορα διαδραστικά παιχνίδια, εργασίες με χρήση κάμερας και μια εφαρμογή παρουσίασης ενός σκληρού δίσκου. Στην εργασία των Ελευθέριου Καραπέτσα και Δημοσθένη Σταμάτη με τίτλο Teaching Ai Concepts Using A Robot As An Assistant [06] παρουσιάζεται ένα εκπαιδευτικό ρομπότ που χρησιμοποιεί το SRV-1της Surveyor Corporation το οποίο είναι ικανό να πλοηγείται σε λαβυρίνθους χρησιμοποιώντας αλγορίθμους που έχουν γράψει οι φοιτητές. Το εργαστήριο λειτουργεί έτσι ώστε οι φοιτητές να δουλέψουν πάνω στους αλγορίθμους που θα πρέπει να αναπτύξουν και όχι στη κατασκευή και ανάπτυξη ολόκληρου του λογισμικού του ρομπότ. Αυτή η επιλογή έγινε διότι η διαδικασία αυτή είναι χρονοβόρα και δύσκολη για φοιτητές μικρών ετών αλλά και διότι ο σκοπός του εργαστηρίου είναι να δώσει έμφαση στη συγγραφή και κατανόηση αλγορίθμων χρησιμοποιώντας το ρομπότ ως εργαλείο εκμάθησης και αποσφαλμάτωσης. Έτσι, οι εσωτερικές λειτουργίες πλοήγησης, αποφυγής εμποδίων κλπ κρύβονται από τους φοιτητές. Οι τελευταίοι μπορούν να χρησιμοποιήσουν κλήσεις συναρτήσεων που κάνουν τις δουλειές αυτές. Ακόμη, υπάρχει και μια αναπτυγμένη ψευδογλώσσα μαζί με τον διερμηνευτή της. Με τη χρήση της γλώσσας αυτής γίνεται και ο προγραμματισμός του ρομπότ από τους φοιτητές. Στην εργασία των R. Mark Meyer και Debra T. Burhans με τίτλο Robotran: A programming environment for novices using LEGO Mindstorms robots [07] παρουσιάζεται μια πλατφόρμα και η αντίστοιχη γλώσσα προγραμματισμού που ανέπτυξαν για τους σκοπούς ενός εργαστηρίου του τμήματός τους. Η γλώσσα αναπτύχθηκε διότι οι νεαροί φοιτητές δυσκολεύονται στον προγραμματισμό με τη χρήση γλώσσας υψηλού επιπέδου. Έτσι η γλώσσα τους είναι απλή και μπορεί εύκολα να χρησιμοποιηθεί αποτελεσματικά από άπειρους φοιτητές χωρίς να τη φοβούνται. Η πλατφόρμα τους αποτελείται από ένα απλό ρομπότ το οποίο μπορεί να ακολουθήσει μια δέσμη φωτός ή/και να γράφει με τη βοήθεια ενός στυλό την τροχιά που ακολούθησε. Η γλώσσα τους χαρακτηρίζεται ως block language και ο μεταφραστής της τη μετατρέπει σε κώδικα lejos. Ακόμη οι φοιτητές έχουν στη διάθεσή τους προσομοιωτή ώστε να μπορούν να ασχολούνται με τις εργασίες του εργαστηρίου εκτός αυτού. Τα αποτελέσματα της χρήσης του ρομπότ και του εργαστηρίου ήταν θετικά. Η πλειοψηφία των φοιτητών σε σχετικό ερωτηματολόγιο δήλωσε πως η χρήση του ρομπότ τους βοήθησε αρκετά εώς πολύ στον προγραμματισμό και στη κατανόηση των αλγορίθμων. Βλέπουμε λοιπόν πως, όπου έχουν χρησιμοποιηθεί ρομπότ στην εκπαίδευση, τα αποτελέσματα ήταν θετικά. Τα παιδιά, οι έφηβοι αλλά και οι ενήλικες δείχνουν ενδιαφέρον προς τα ρομπότ. Η χρήση και η αλληλεπίδραση μαζί τους, προκαλεί το ενδιαφέρον. Ασχολούμενοι λοιπόν με τα ρομπότ, μαθαίνουν γρηγορότερα. Αυτό γιατί επιθυμούν να ασχοληθούν και όχι επειδή νοιώθουν πως πρέπει να το κάνουν. 15

3. Η ΠΛΑΤΦΟΡΜΑ LEGO MINDSTORMS ΝΧΤ 3.1 Ιστορική αναδρομή της πλατφόρμας Lego Mindstorms Η πλατφόρμα Mindstorms οφείλει το όνομα της σε ένα βιβλίο του Seymour Papert με όνομα Mindstorms: Children, Computers and Powerful Ideas [14], στο οποίο ο συγγραφέας υποστηρίζει την χρήση υπολογιστών ως εκπαιδευτικό εργαλείο παροτρύνοντας έτσι την δημιουργικότητα των παιδιών και δίνοντας μια πιο ενδιαφέρουσα και πολλά υποσχόμενη μέθοδο διδασκαλίας για την εκμάθηση εννοιών όπως η επίλυση προβλημάτων. Τα Lego Mindstorms αποτελούν μια σειρά προϊόντων της Lego η οποία αποτελείται από προγραμματιζόμενα τούβλα (programmable bricks), κινητήρες, αισθητήρες, απλά τουβλάκια Lego και διάφορα άλλα μηχανικά μέρη, όπως άξονες, ακτίνες και λοιπά εργαλεία. Προσφέρει στον χρήστη τη δυνατότητα κατασκευής μοντέλων ενσωματωμένων συστημάτων, αποτελούμενων από ηλεκτρομηχανικά μέρη, τα οποία ο χρήστης ελέγχει μέσω υπολογιστή. Χρησιμοποιώντας τα Mindstorms, έχουμε τη δυνατότητα να διαμορφώσουμε πολλά είδη πραγματικών ενσωματωμένων συστημάτων, από ελεγκτές ανελκυστήρων έως βιομηχανικά ρομπότ. Η ιστορία της πλατφόρμας Mindstorms ξεκινά όταν η Lego χρηματοδότησε μέρος της έρευνάς του ΜΙΤ και έτσι αναπτύχθηκε στο Media Lab η πρώτη έκδοση του προγραμματιζόμενου τούβλου (programmable brick). [18] Η πρώτη έκδοση Lego Mindstorms κυκλοφόρησε από από την Lego το 1998 κάτω από την επωνυμία Robotics Invention System (RIS). [31] Αποτελούνταν από 717 κομμάτια τα οποία περιελάμβαναν απλά τουβλάκια Lego, κινητήρες, αισθητήρες καθώς και διάφορα άλλα μηχανικά μέρη, όπως άξονες, ακτίνες και ένα RCX Brick με ενσωματωμένο μικροεπεξεργαστή που προγραμματίζεται και αποτελεί τον εγκέφαλο του συστήματος. Η πρώτη αυτή έκδοση Lego Mindstorms έδωσε στους χρήστες τη δυνατότητα να κατασκευάσουν και να προγραμματίσουν μια μεγάλη ποικιλία από μοντέλα ενσωματωμένων συστημάτων. Το προϊόν, γνώρισε μεγάλη εμπορική επιτυχία με αποτέλεσμα να αναπτυχθούν και επιπλέον προγραμματιστικά περιβάλλοντα για το RCX brick όπως για παράδειγμα το LegoOS και το, βασισμένο σε Java, TinyVM. Η επόμενη έκδοση Lego Mindstorms κυκλοφόρησε στην αγορά το 2006 με το όνομα Lego Mindstorms NXT το οποίο βασίζεται στο επιτυχημένο Robotics System Invention της εταιρείας, το οποίο έχει βελτιωθεί με την πρόσθεση νέων τεχνολογιών και αισθητήρων αυξημένων ικανοτήτων, ενώ το 2009 κυκλοφόρησε και η δεύτερη έκδοση του ΝΧΤ, Lego Mindstorms NXT 2.0. Παράλληλα, κυκλοφορεί και εκπαιδευτική έκδοση, καλούμενη Lego Mindstorms for Schools η οποία χρησιμοποιεί το ROBOLAB, ένα περιβάλλον προγραμματισμού βασισμένο με γραφική διεπαφή, που αναπτύχθηκε στο Πανεπιστήμιο Tufts χρησιμοποιώντας ως μηχανή το National Instruments LabVIEW. [32], [33] 3.2 Η επεξεργαστική μονάδα Η επεξεργαστική μονάδα, το τούβλο, είναι ένα υπολογιστικό σύστημα το οποίο κάνει χρήση ενός 32-bit μικροεπεξεργαστή της Atmel, της σειράς ARM7 ο οποίος είναι χρονισμένος στα 48Mhz και έχει στη διάθεσή του 256KB Flash μνήμης και 64ΚΒ RAM. Πέραν αυτού του μικροεπεξεργαστή, διαθέτει ακόμη έναν 8-bit πάλι ης Atmel ο οποίος είναι επιφορτισμένος με τον έλεγχο των σερβοκινητήρων και έχει στη διάθεσή του 4ΚΒ flash μνήμης και 512Byte RAM. [15] Το τούβλο φαίνεται στην εικόνα 3.2. Το σύστημα διαθέτει τέσσερις εισόδους, αριθμημένες από το 1 μέχρι το 4, στις οποίες μπορούν να συνδεθούν αισθητήρες και άλλες 3 θύρες επικοινωνίας, από Α μέχρι C, στις οποίες μπορούν να συνδεθούν οι σερβοκινητήρες. Οι συνδέσεις αυτές γίνονται δια μέσου RJ12 καλωδίων τα οποία μοιάζουν πολύ με τα τηλεφωνικά καλώδια RJ11. 16

Το καλώδιο RJ12 φαίνεται στην εικόνα 3.3 ενώ το pinout του στη ΝΧΤ φαίνεται στον πίνακα 3.1. Εικόνα 3.2 το τούβλο Εικόνα 3.3 το καλώδιο RJ12 Pin Όνομα Λειτουργία Χρώμα 1 ANA Αναλογικό interface, τροφοδοσία +9Volt Άσπρο 2 GND Γείωση Μαύρο 3 GND Γείωση Κόκκινο 4 IPOWERA Τροφοδοσία +4,3Volt Πράσινο 5 DIGIAI0 I2C Clock Κίτρινο 6 DIGIAI1 I2C Data Πίνακας 3.1 Μπλε Τα πρώτα 2 pins έχουν την ίδια λειτουργικότητα με αυτά του RCX, οπότε με έναν αντάπτορα η χρήση παλιών αισθητήρων γίνεται εφικτή. Τα pins 5 και 6 χρησιμοποιούνται για επικοινωνία, δια μέσου του σειριακού I2C πρωτοκόλλου, το οποίο και χρησιμοποιούν οι περισσότεροι αισθητήρες για να επικοινωνήσουν με το τούβλο. [34] Το I2C είναι ένα πρωτόκολλο, που αναπτύχθηκε τη δεκαετία του '80, με σκοπό την σύνδεση περιφερικών χαμηλής ταχύτητας με κάποιο υπολογιστικό σύστημα. Μια σύντομη περιγραφή του πρωτοκόλλου στη περίπτωση της επικοινωνίας του NXT με κάποιον αισθητήρα είναι: 1. Το NXT που δρα πάντα ως ο master, ενημερώνει τους αισθητήρες (slaves) για μια επερχόμενη εντολή, ρυθμίζοντας κατάλληλα τις λογικές στάθμες στα pin 5 και 6 όλων των αισθητήρων. 2. To ΝΧΤ στη συνέχεια, στέλνει ένα μήνυμα που περιέχει τη διεύθυνση του αισθητήρα με τον οποίο θέλει να επικοινωνήσει, ακολουθούμενη από την εντολή που ο αισθητήρας πρέπει να εκτελέσει. 17

3. Στη συνέχεια το ΝΧΤ τροποποιεί ξανά της στάθμες των pins, ώστε να μπορέσει να λάβει επιβεβαίωση από τον αισθητήρα για την παραλαβή της εντολής και το αποτέλεσμα της εκτέλεσής της. 4. Το ΝΧΤ τροποποιεί τις στάθμες ξανά και στέλνει μήνυμα επιβεβαίωσης παραλαβής. Το τούβλο είναι εφοδιασμένο με μία μονοχρωματική LCD οθόνη ανάλυσης 100x64, κάθε pixel της οποίας μπορεί να ελεγχθεί αποκλειστικά και ο χρόνος ανανέωσης της είναι 17 milliseconds. Ακόμη, διαθέτει ένα ηχείο και είναι σε θέση να αναπαραγάγει ήχους κυματομορφών δοσμένης συχνότητας και διάρκειας, μουσικά αρχεία MIDI καθώς και αρχεία RSO, τα οποία αναπτύχθηκαν ειδικά για το NXT, τα οποία είναι WAV αρχεία συμπιεσμένα περίπου στο μισό μέγεθος, με σκοπό την εξοικονόμηση χώρου στη Flash. Ακόμη το τούβλο είναι ικανό για επικοινωνία μέσω Bluetooth. Έτσι μπορεί να αλληλεπιδράσει με άλλα NXT, με έναν υπολογιστή ή κινητό. Η επικοινωνία γίνεται βάση ενός μοντέλου master/slave. Έτσι, αν ρυθμιστεί το NXT ως master μπορεί να συνδεθεί με 3 το πολύ slaves. Φυσικά, υπάρχει και μια θύρα USB μέσω της οποίας, μπορεί να επικοινωνήσει με έναν υπολογιστή και έτσι να του φορτωθεί το εκτελέσιμο του προγράμματος που θέλουμε να εκτελεσθεί. Το ίδιο μπορούμε να κάνουμε και μέσω της σύνδεσης με Bluetooth. Στο μπροστινό του μέρος, μπορούμε να διακρίνουμε 4 πλήκτρα που χρησιμεύουν στη πλοήγηση του μενού, ενώ στο πίσω μέρος του βρίσκονται οι υποδοχές των μπαταριών. 3.3 Γλώσσες προγραμματισμού για το ΝΧΤ Υπάρχουν πολλά περιβάλλοντα και γλώσσες προγραμματισμού για τον προγραμματισμό του NXT. Ακολούθως, αναφέρονται σύντομα οι κυριότερες: NXT-G Είναι μια απλή γλώσσα που παρέχεται από το LabView, το λογισμικό με το οποίο η LEGO συνοδεύει το NXT. Έχει ένα ευχάριστο γραφικό περιβάλλον, που είναι ιδανικό για εκπαιδευτικούς σκοπούς, αλλά η απλότητά του, τα μεγάλα σε όγκο εκτελέσιμα που δημιουργεί, αλλά και το ότι το LabView είναι σαν περιβάλλον πολύ βαρύ, ακόμα και σε σύγχρονους υπολογιστές, το καθιστά ανεπαρκές, οπότε, προτείνονται άλλες γλώσσες. Not exactly C (NXC) Αν και όπως δηλώνει το όνομά της, παρουσιάζει πολλές ομοιότητες με την C, έχει κάποιες διαφορές αλλά και περιορισμούς. Για να τους κατανοήσουμε καλύτερα θα πρέπει να βρούμε την αιτία. Η αιτία λοιπόν είναι ο interpreter της LEGO ο οποίος και χρησιμοποιείται από το NXT, για να μπορέσει να εκτελέσει το δυαδικό εκτελέσιμο αρχείο του όποιου προγράμματος. Ο compiler της NXC από την άλλη, μετατρέπει τον κώδικα του προγραμματιστή σε εκτελέσιμο, για να το χρησιμοποιήσει ο interpreter. Έτσι, βλέπουμε πως οι περιορισμοί οφείλονται στη περιορισμένη δυναμική του interpreter. Δεν γίνεται περαιτέρω επέκταση, μιας και δεν είναι αυτό το θέμα της διπλωματικής αλλά ούτε και βοηθάει στην ανάπτυξη του κειμένου. Έμφαση θα δοθεί μονάχα στον περιορισμό που επέφερε δυσκολίες στη συγγραφή του κώδικα της παρούσης εργασίας, μιας και η NXC ήταν η επιλεχθείσα γλώσσα. Δεν υποστηρίζεται η αναδρομική κλήση συναρτήσεων παρά μόνο μέχρι 5 ή 10 επιπέδων, αναλόγως της έκδοσης του firmware. Αυτό οφείλεται στον περιορισμένου μεγέθους task stack του firmware του NXT. Αλλά και αυτό ακόμα έρχεται με τον περιορισμό, ότι υπάρχει μόνο ένα αντίγραφο κάθε μεταβλητής που χρησιμοποιείται από τη συνάρτηση, οπότε πρακτικά καθιστά την αναδρομή μη εφαρμόσιμη. Άλλο μειονέκτημα είναι, η μη υποστήριξη επικοινωνίας μέσω Bluetooth, ανάμεσα σε ένα NXT και κάποια άλλη συσκευή. Υποστηρίζεται μονάχα, επικοινωνία μεταξύ δύο ή περισσοτέρων ΝΧΤ. Πάντως, ως γλώσσα είναι πολύ απλή έχει καλή, υποστήριξη, δημιουργεί γρήγορα τα εκτελέσιμά 18

της και προτείνεται για σοβαρές υλοποιήσεις. [19] lejos NXJ Η lejos NXJ είναι μια υψηλού επιπέδου γλώσσα προγραμματισμού βασισμένη σε Java. Ο προγραμματισμός σε Java περιβάλλον για το ΝΧΤ παρουσιάζει αρκετά πλεονεκτήματα σε σχέση με τον προγραμματισμό σε NXT-G. Μερικά από αυτά είναι: (α) Πολύ γρηγορότερη από την NXT-G, (β) έχει υψηλού επιπέδου ανοιχτό κώδικα, (γ) υποστηρίζει πλήρως την σύνδεση μέσω bluetooth και (δ) χρησιμοποιεί την στάνταρ γλώσσα προγραμματισμού Java. [20] MATLAB and Simulink Η MATLAB χρησιμοποιείται ευρέως για επιστημονικούς υπολογισμούς και ανάλυση δεδομένων και μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο του ΝΧΤ χρησιμοποιώντας σύνδεση bluetooth ή usb. Το Simulink είναι ένα περιβάλλον που στηρίζεται σε MATLAB και χρησιμοποιείται για την προσομοίωση και μοντελοποίηση δυναμικών συστημάτων. Με το Simulink μπορούν να σχεδιαστούν αλγόριθμοι ελέγχου του ΝΧΤ χρησιμοποιώντας την γλώσσα προγραμματισμού C. [21] Microsoft Robotics Studio Το Microsoft Robotics Studio, αποτελεί ένα παραθυρικό προγραμματιστικό περιβάλλον για τον έλεγχο των Lego Mindstorms, ενώ παράλληλα έχει την δυνατότητα εξομοίωσης του ρομπότ μέσω 3D απεικόνισης. Οι γλώσσες προγραμματισμού που υποστηρίζει συμπεριλαμβάνουν τις Visual Programming Language, Microsoft Visual Basic Express (C#,VB.NET), Jscript και Iron Python. Η Visual Programming Language, αποτελεί έναν απλό και εύκολο τρόπο προγραμματισμού σε εικονικό περιβάλλον, που χρησιμοποιεί blocks για την αναπαράσταση του προγράμματος. Όσον αφορά την 3D απεικόνιση, χρησιμοποιεί τα εργαλεία AGEIA Phys Technologies για την εξομοίωση των διάφορων φυσικών νόμων που διέπουν τον πραγματικό κόσμο και Microsoft XNA frame για την δημιουργία του γραφικού περιβάλλοντος από τον χρήστη. Το μειονέκτημα της 3D εξομοίωσης, είναι το ότι αδυνατεί να αναπαραστήσει καλά το φυσικό περιβάλλον και να μοντελοποιήσει πλήρως τασυστήματα που εξομοιώνονται σε αυτήν. Παρόλα αυτά, το Microsoft Robotics Studio αποτελεί ένα εργαλείο με πολλές δυνατότητες για το ΝΧΤ και όχι μόνο.[22] Ruby-nxt Η ruby-nxt είναι μια βιβλιοθήκη για την γλώσσα προγραμματισμού Ruby με σκοπό τον προγραμματισμό του ΝΧΤ. Σε αντίθεση με όλες της υπόλοιπες γλώσσες, αντί ο κώδικας να μεταγλωττίζεται σε ένα δυαδικό αρχείο, μεταφέρεται απευθείας στο ΝΧΤ χρησιμοποιώντας την σύνδεση bluetooth. Παρόλα αυτά δεν είναι ιδιαίτερα γρήγορη. [23] RobotC H robotc είναι μία ακόμη γλώσσα προγραμματισμού του ΝΧΤ βασισμένη στην C. Με την χρήση της RobotC, η εκτέλεση των προγραμμάτων είναι πολύ γρήγορη και ο χώρος που αυτά καταλαμβάνουν στη μνήμη πολύ μικρός. Ενδείκνυται για εφαρμογές που απαιτούν μεγάλη ταχύτητα. [24] nxtosek Η nxtosek παρέχει τη δυνατότητα προγραμματισμού σε C και C++. [25] pblua H pblua είναι μια παραλλαγή της γλώσσας προγραμματισμού Lua, η οποία αποτελεί μια γλώσσα γενικού σκοπού που χρησιμοποιεί scripts, για το Lego Mindstorms. [26] 19

3.4 Δομικά στοιχεία Το εκπαιδευτικό πακέτο του ΝΧΤ, εκτός της μεγάλης γκάμας από τουβλάκια διαφόρων μεγεθών και λειτουργιών, γρανάζια και άξονες, έρχεται με μια συλλογή αισθητήρων. Αυτή αποτελείται από: Δύο αισθητήρες αφής. Ένας αισθητήρας φωτεινότητας ο οποίος μπορεί να λειτουργήσει και ως φακός. Ένας αισθητήρας ήχου. Ένας αισθητήρας υπερήχων. Ένας αισθητήρας χρώματος ικανός να διαχωρίσει 6 χρώματα. Ακόμη το πακέτο διαθέτει και 3 σερβοκινητήρες. Ξεχωριστά από το εμπόριο μπορεί κανείς να προμηθευθεί: Αισθητήρα χρώματος που μπορεί να διαχωρίσει 18 χρώματα. Πυξίδα Επιταχυνσιόμετρο Γυροσκόπιο κ.λπ. [30] Για τους σκοπούς της εργασίας, απαιτήθηκε η χρήση ενός αισθητήρα χρώματος της hitechnic, ενός αισθητήρα φωτός και τριών σερβοκινητήρων. Στις εικόνες 3.3 α-γ βλέπουμε τους αισθητήρες αυτούς και τον σερβοκινητήρα. (α) αισθητήρας χρώματος Εικόνα 3.3 (β) αισθητήρας φωτός (γ) σερβοκινητήρας Ο αισθητήρας φωτός, λειτουργεί εντοπίζοντας και μετρώντας την ένταση του φωτός που φτάνει σε αυτόν. Μπορεί επίσης να εκπέμψει φως μέσω ενός κόκκινου LED που διαθέτει. Έτσι, μπορεί να μετρήσει το ανακλούμενο φως από το LED του. Όπως και στον αισθητήρα χρώματος, έτσι και στον αισθητήρα φωτός, η απόσταση παίζει ρόλο. Αν απομακρύνουμε το αντικείμενο το οποίο φωτίζουμε για να πάρουμε μέτρηση του ανακλούμενου φωτός, τότε θα παίρνουμε τιμές που θα αντιπροσωπεύουν μαύρο. Αντίστοιχα, όσο πιο μακριά είναι ο αισθητήρας από μια πηγή φωτός, τόσο πιο λίγο φως θα φτάνει σε αυτόν και επομένως τόσο πιο μαύρη θα τη βλέπει. Οι τιμές που επιστρέφονται στο NXT μέσω -και εδώ- του πρωτοκόλλου I2C είναι ποσοστιαίες. Δηλαδή από μηδέν έως εκατό. Σημαίνοντας, πως όσο πιο μεγάλη η τιμή, τόσο πιο λαμπερό το φως. Μια άλλη δυνατότητα είναι οι τιμές να είναι raw, δηλαδή από 0 μέχρι 1023. Προσοχή χρειάζεται κατά τη χρήση του διότι, οι τιμές φωτός του περιβάλλοντος χώρου επηρεάζουν τις μετρήσεις του. [15] 20