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



Σχετικά έγγραφα
Εξοικείωση με το NXT-G

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

Πακέτο Lego Mindstorms

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

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

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

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

Ρύθμιση ενός Αισθητήρα

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

Φύλλο Εργασίας 4 Συνθετική εργασία

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

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

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

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

Φύλλο εργασίας 6. Αποφυγή εμποδίων. Χωριστείτε σε ομάδες 2-3 ατόμων και απαντήστε στις ερωτήσεις του φύλλου εργασίας.

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ EV3 Επίπεδο Ι

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

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

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

Φύλλο εργασίας 4. Η γάτα και τα ποντίκια

Εισαγωγή στη Ρομποτική και τον Προγραμματισμό με τη χρήση του ρομπότ Thymio & του λογισμικού Aseba

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΠΡΟΛΟΓΟΣ... 3 ΕΙΣΑΓΩΓΗ... 4 ΤΑ ΚΟΥΜΠΙΑ ΚΑΙ ΤΑ ΜΠΛΟΚ... 6 ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟΥΣ ΚΙΝΗΤΗΡΕΣ... 9 ΚΙΝΗΣΕΙΣ ΚΙΝΗΤΗΡΑ...

ΟΜΑΔΑ ΡΟΜΠΟΤΙΚΗΣ: ΦΟΙΒΟΣ ΓΚΟΥΜΑΣ ΠΑΡΗ ΚΥΡΙΑΚΙΔΗ ΒΑΣΙΛΗΣ ΣΑΚΕΛΛΑΡΙΟΥ ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ: κ. ΦΑΚΙΟΛΑΚΗΣ ΓΙΩΡΓΟΣ

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

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων

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

Πολυτεχνείο Κρήτης Τμήμα ΗΜΜΥ Χειμερινό Εξάμηνο Intelligence Lab. Αυτόνομοι Πράκτορες. Κουσανάκης Βασίλης

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

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

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

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

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

Μέρος Α Γνωριμία με το περιβάλλον προγραμματισμού του ρομπότ OTTO

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

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΠΛΗ 513

Εκπαιδευτική Ροµποτική µε τα LEGO MINDSTRORMS

Κατηγορία Γυμνασίου: Βυζαντινή Αυτοκρατορία και Επικοινωνίες (Φρυκτωρίες)

Συγκομιδή και ταξινόμηση φρούτων

x = r cos φ y = r sin φ

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

Εισαγωγή στην επανάληψη

Παράλληλη πιλοτική κατηγορία για αρχάριες ομάδες Γυμνασίου: Πρωτέας

Waste Sorting Ταξινόμηση Απορριμμάτων

Πρόκληση κατηγορίας Δημοτικού. Clean Road to School Καθαρίζω την διαδρομή προς το σχολείο μου

STEM Education via Educational Robotics

Εισαγωγή στο EV3 Μέρος 2

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

ΨΗΦΙΑΚΟΣ ΕΚΤΗΣ DVB-T MPEG-4 ReDi 100

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

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

Κατηγορία Γυμνασίου: Βυζαντινή Αυτοκρατορία και Επικοινωνίες (Φρυκτωρίες)

Αισθητήρας Χρώματος. By Sanjay and Arvind Seshan ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΑΡΙΩΝ

Το κύκλωμα σε breadboard

ΚΑΝΟΝΙΣΜΟΙ «CITY PASSING»

Τα ηλεκτρονικά μέρη του ρομπότ Επιλογή των μονάδων εισόδου εξόδου ανάλογα το μοντέλο που θέλουμε να κατασκευάσουμε

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro

CUBE ΗΧΕΙΟ ΜΕ BLUETOOTH. kitsound.co.uk. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ Christchurch, Dorset, BH23 4FL, Ηνωμ. Βασίλειο

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

ΡΟΜΠΟΤΙΚΗ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ LEGO MINDSTORMS NXT. ΚΕΦΑΛΑΙΟ 4ο. Ασκήσεις προγραμματισμού για το NXT-G

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

Οδηγίες Χρήσης Ασύρματης Φορητής WiFi Κάμερας

Εισαγωγή στην επανάληψη

Εγχειρίδιο χρήσης Εκπαιδευτικού λογισμικού «Αθηνά Core 4»

ΚΑΝΟΝΙΣΜΟΙ «ENHANCED LINE FOLLOWING»

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία ΡομποΚαθαριστής Μέρος Β : Το Πρόγραμμα. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

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

ΚΑΝΟΝΙΣΜΟΙ «CITY PASSING»

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

BeoSound 3000 Οδηγ ς

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών

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

Εξωτερικές συσκευές Οδηγός χρήσης

Τηλεχειριστήριο μέσων HP (Μόνο σε επιλεγμένα μοντέλα) Οδηγός χρήσης

ΕΚΠΑΙΔΕΥΤΙΚΉ ΡΟΜΠΟΤΙΚΉ & STEM. Δημήτριος Κράββαρης Καθηγητής Πληροφορικής Α/θμιας Εκπ/σης MSc. BSc. Πληροφορικής

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

Καροτοκυνηγός. Αντικείμενα

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Σχεδιαστικές προδιαγραφές

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

α) Πώς παίρνουμε αποφάσεις στην καθημερινή μας ζωή; Συμπληρώσετε τον παρακάτω πίνακα: τότε

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

BeoSound 9000 Οδηγ ς

Ποιές εντολές του Scratch πρέπει να ξέρω;

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος Εκπαιδευτικός: Παπαδάκης Σταµάτης

Εργοστάσιο Ανακύκλωσης

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

ΕΧΕΙ ΤΑΞΙΝΟΜΗΘΕΙ ΑΝΑ ΕΝΟΤΗΤΑ ΚΑΙ ΑΝΑ ΤΥΠΟ ΓΙΑ ΔΙΕΥΚΟΛΥΝΣΗ ΤΗΣ ΜΕΛΕΤΗΣ ΣΑΣ ΚΑΛΗ ΕΠΙΤΥΧΙΑ ΣΤΗ ΠΡΟΣΠΑΘΕΙΑ ΣΑΣ ΚΙ 2014

Εξωτερικές συσκευές Οδηγός χρήσης

Τηλεχειριστήριο (µόνο σε επιλεγµένα µοντέλα)

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

Εφαρμογή δημιουργίας σεναρίων Sctatch

ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΕΛΕΓΧΟΥ. Εγχειρίδιο χρήσης

στκ στκ μπροστά 100 μπροστά 100 δεξιά 90 δεξιά 90 μπροστά 100 μπροστά 100 αριστερά 90 αριστερά 90 μπροστά 100 μπροστά 100 δεξιά 90 δεξιά 80

Η εντολή «επανέλαβε Χ»

Transcript:

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΚΠ 413 / ΕΚΠ 606 ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ Εργασία Εξαµήνου Προγραµµατισµός του LEGO Mindstorm NXT για το διαγωνισµό "Move the Ball!" Ζαµπετάκης Μιχαήλ 2002030012 zampetakis@mhl.tuc.gr Παρακάτω ακολουθεί παρουσίαση της εργασίας εξαµήνου µε τίτλο «Προγραµµατισµός του LEGO Mindstorm NXT για το διαγωνισµό "Move the Ball!"» για το µάθηµα Αυτόνοµοι Πράκτορες ΕΚΠ 413. Η παρουσίαση χωρίζεται στις εξής ενότητες: 1. Το LEGO Mindstorms NXT 2. Τα ζητούµενα της Εργασίας 3. Το Robot που κατασκευάστηκε 4. Ο κώδικας που αναπτύχθηκε 5. Τα Αποτελέσµατα της εργασίας 6. Μελλοντικές Βελτιώσεις 7. Αναφορές 1.Το LEGO Mindstorms NXT Το LEGO Mindstorms NXT [1] είναι ένα ροµποτικό σετ το οποίο παράγεται από τη LEGO. Συγκεκριµένα είναι η δεύτερη γενιά ροµποτικού σετ µετά από το επιτυχηµένο RIS[2]. Το LEGO Mindstorms NXT έρχεται µε µια πληθώρα από διάφορα «τουβλάκια» της LEGO[4] και κάποια ειδικά κοµµάτια τα οποία συµβάλουν στη δηµιουργία του ροµπότ. Συγκεκριµένα αυτά είναι: Tο NXT Brick Το NXT Brick[4] είναι το υλικό το οποίο δίνει τη λογική στο ροµπότ και σε αυτό συνδέεται ότι χρειάζεται. Έχει 3 θύρες για τα servos, 4 για τους αισθητήρες, µια USB θύρα για την επικοινωνία µε τον υπολογιστή, ένα ηχείο, 4 κουµπιά, dot-matrix οθόνη, ενσωµατωµένη σύνδεση Bluetooth για επικοινωνία µε τον υπολογιστή αλλά και µε άλλα NXT. Τα NXT Servos Το ροµποτικό σετ έρχεται µαζί µε 3 servo[5] τα οποία έχουν δυνατότητα να µεταβάλουν την ταχύτητα και τη δύναµη περιστροφής τους καθώς και άλλες επιλογές οι οποίες αφήνουν το χρήστη να τα χρησιµοποιήσει όπως επιθυµεί. Επίσης διαθέτουν ενσωµατωµένο αισθητήρα περιστροφής µε ακρίβεια µίας µοίρας.

Ο αισθητήρας υπερήχων Ο αισθητήρας υπερήχων[6] (Ultrasonic sensor) είναι αισθητήρας µέτρησης απόστασης ο οποίος χρησιµοποιεί υπερήχους για τον εντοπισµό κάποιου αντικειµένου. Είναι ένας ενεργητικός αισθητήρας µιας και ο ίδιος παράγει του υπερήχους και τους λαµβάνει έπειτα για να µετρήσει την απόσταση. Μετράει αποστάσεις από 0 έως 255 εκατοστά µε ακρίβεια 3 εκατοστά. Ο αισθητήρας φωτός Ο αισθητήρας φωτός[7] (light sensor) µετράει την ένταση του φωτός. Αυτός λειτουργεί είτε ω παθητικός (απλά λαµβάνοντας το περιβάλλοντα φως) είτε ως ενεργητικός οπού ο ίδιος παράγει φως και µετράει την αντανάκλαση. Ο αισθητήρας ήχου Ο αισθητήρας ήχου[8] (sound sensor) µπορεί να µετράει ήχους οι οποίοι προέρχονται από το περιβάλλον του σε decibel και adjusted decibel το οποίο έχει παρόµοια κλίµακα µε αυτή της ανθρώπινης ακοής. Ο αισθητήρας αφής Ο αισθητήρας αφής[10] (touch sensor) αντιλαµβάνεται αν πιέζεται ή όχι καθώς και αν πιέστηκε και αφέθηκε στιγµιαία. Το LEGO Mindstorms NXT µπορεί να προγραµµατιστεί από ένα µεγάλο πλήθος εφαρµογών. Κυριότερο από αυτά είναι το ίδιο το λογισµικό που έχει δηµιουργηθεί από την LEGO σε συνεργασία µε την εταιρία National Instruments το οποίο δεν απαιτεί καν γνώσεις προγραµµατισµού. Επίσης υπάρχουν πολλά ακόµη περιβάλλοντα ανάπτυξης κώδικα για το NXT τα οποία βασίζονται σε διαφορετικές αρχές και έχουν διαφορετικές ικανότητες. Κάποια από αυτά είναι η NBC[10], η NXC[11], το RoboLab[12], η RobotC[13], το NI LabView[14], η Pyro[15], η URBI[16] κ.α. Μερικά από τα προτεινόµενα µοντέλα της LEGO για το NXT παρουσιάζονται εδώ:

2.Τα ζητούµενα της Εργασίας Η εργασία είχε ως σκοπό την κατασκευή και τον προγραµµατισµό για τον διαγωνισµό του NXTasy.org[17] Move the Ball [18]. Οι κανόνες είναι οι εξής: 1) Το ροµπότ θα πρέπει να κατασκευαστεί αποκλειστικά από κοµµάτια του NXT Retail Set #8527-1[3]. 2) Μια πλαστική µπάλα (είτε η µπλε είτε η κόκκινη)[20] θα πρέπει να τοποθετηθεί σε κάποιο αρχικό σηµείο πάνω σε κάποια βάση (η οποία θα αποτελείτε επίσης αποκλειστικά κοµµάτια του NXT Retail Set #8527-1) και µέσα στον οβάλ µαύρο κύκλο της πίστας[21] σε µη γνωστό σηµείο. 3) Το ροµπότ θα πρέπει να τοποθετηθεί οπουδήποτε έξω από τον οβάλ κύκλο σε κάποιο καθορισµένο σηµείο. Σε αυτό θα πρέπει να τοποθετείται ανεξαρτήτως που βρίσκεται η µπάλα και θα είναι το ίδιο πάντα. 4) 10 δευτερόλεπτα αφού ο χρήστης εκκινήσει το πρόγραµµα το ροµπότ θα ξεκινήσει ένα µετρητή και όταν τελειώσει την αποστολή του θα δείξει την τιµή του µετρητή και θα παράγει κάποιο ήχο. Κατά τα 10 δευτερόλεπτα ο χρήστης θα µπορεί να αποµακρυνθεί και να θέσει σε λειτουργία κάποια κάµερα ενώ το ροµπότ δεν θα πρέπει να κάνει τίποτα 5) Όταν το ροµπότ ξεκινήσει την αποστολή του θα πρέπει να εντοπίσει την µπάλα, να την πιάσει (µε οποιοδήποτε τρόπο), να βγει έξω από τον µαύρο κύκλο, να κάνει δυο πλήρης περιφορές γύρω από αυτόν (χρησιµοποιώντας πρόγραµµα που ακολουθεί την µαύρη γραµµή και όχι τεχνικές dead-reckoning) και τέλος να τοποθετήσει την µπάλα πίσω στην αρχική της βάση. 6) Αρχικά δεν θα πρέπει να υπάρχει τίποτε άλλο εκτός από την µπάλα και τη βάση της, ενώ εκτός µπορεί να τοποθετηθεί οτιδήποτε (έστω και µέρη τα οποία δεν ανήκουν στο set #8527) τα οποία όµως δεν θα µετακινούνται, δεν θα είναι µέρη του ροµπότ και θα είναι ανεξάρτητα από την αρχική θέση της µπάλας. Σηµειώσεις: 1) Για έλεγχο θα αποσταλούν 3 βίντεο στο κάθε ένα από τα οποία η µπάλα θα τοποθετείται σε ένα από τα τρία προσηµειωµένα σηµεία και µια φωτογραφία µε το αποτέλεσµα του µετρητή καθώς και ο κώδικας ο οποίος θα ελεγχθεί για ορθότητα. Ο µέσος όρος των τριών βίντεο θα είναι το επίσηµο αποτέλεσµα. Η λειτουργία του ροµπότ δεν θα πρέπει σε καµία περίπτωση να γνωρίζει που θα τοποθετηθεί η µπάλα και θα πρέπει να µπορεί να εκτελεί την αποστολή του σε οποιοδήποτε σηµείο τοποθετηθεί η µπάλα µέσα στον οβάλ κύκλο.

2) Τα ροµπότ θα διαγωνισθούν σε δυο κατηγορίες. Η µια θα περιλαµβάνει τα ροµπότ των οποίων το πρόγραµµα θα έχει αναπτυχθεί στο περιβάλλον ανάπτυξης NXT-G της LEGO και η άλλη θα περιλαµβάνει όλα τα υπόλοιπα περιβάλλοντα ανάπτυξης. Λεπτοµέρειες για το διαγωνισµό και ερωτήσεις υπάρχουν εδώ http://nxtasy.org/2007/03/14/official-nxtasy-challenge-no-2/. 3.Το Robot που κατασκευάστηκε Κατασκευάστηκε ένα ροµπότ από το LEGO Mindstorms NXΤ σετ το οποίο θα µπορεί να βάλει εις πέρας τη ζητούµενα του διαγωνισµού. Έτσι θα πρέπει να µπορεί να κινείται προς τα εµπρός, πίσω αλλά και να στρίβει µε κάποιο τρόπο. Επίσης θα πρέπει να διαθέτει µηχανισµό για να πιάνει την µπάλα να την κρατάει αλλά και να την αφήνει στη βάση της. Ακόµη θα πρέπει να µπορεί να εντοπίζει τη µπάλα και τη βάση της, το αν είναι σε κατάλληλη θέση για να πιάσει η να αφήσει την µπάλα στη βάση της και ακόµα να γνωρίζει αν κάτω από αυτό υπάρχει η µαύρη γραµµή προκειµένου να µπορεί να ακολουθεί τη µαύρη γραµµή. Έτσι κατασκευάστηκε το παρακάτω ροµπότ:

Το ροµπότ που κατασκευάστηκε χρησιµοποιεί διαφορική οδήγηση η οποία επιτρέπει επιτόπιους ελιγµούς και πιο άµεση απόκριση. Χρησιµοποιεί µια «δαγκάνα», η οποία οδηγείται από ένα servo, στην µπροστά µεριά προκειµένου να πιάνει την µπάλα. Επίσης χρησιµοποιεί τον αισθητήρα υπερήχων σε κατάλληλη θέση ώστε να εντοπίζει την µπάλα ή τη βάση της. Ο αισθητήρας φωτός τοποθετήθηκε µε κατεύθυνση προς τα κάτω προκειµένου να εντοπίζει τη µαύρη γραµµή και ο αισθητήρας αφής προεκτάθηκε έτσι ώστε να µεταφέρεται η αίσθηση της αφής από τη βάση της µπάλας στον αισθητήρα. 4.Ο κώδικας που αναπτύχθηκε Ο κώδικας γράφτηκε σε NBC[10] η οποία είναι γλώσσα παρόµοια µε Assembly. Ο κώδικας χωρίζεται σε διακριτά κοµµάτια το οποία συνθέτονται προκειµένου να επιτύχουν το σκοπό του ροµπότ. Ακολουθεί ένα flowchart του κώδικα και επεξήγησή του:

Αρχικά το ροµπότ θα πρέπει να τοποθετηθεί στο σηµείο εκκίνησης της πίστας. Αφού εκκινήσει το πρόγραµµα, µετά από 10 θα αποθηκευτούν τα ticks του επεξεργαστή τα οποία αυξάνονται κατά ένα κάθε δευτερόλεπτο, και έτσι θα µπορέσω να µετρήσω τη διάρκεια εκτέλεσης του προγράµµατος. Έπειτα θα ξεκινήσει την αναζήτηση της µπάλας µέσα στον κύκλο. Έτσι θα στρέφει προς τα δεξιά και έπειτα προς τ αριστερά ψάχνοντας για κάποιο εµπόδιο (τη µπάλα) χρησιµοποιώντας τον αισθητήρα υπερήχων, και αν την εντοπίσει θα σταµατάει σε εκείνο το σηµείο. Αν όχι, τότε θα στρέφεται σε ευθεία και θα προχωράει µπροστά για λίγο. Εκεί θα αρχίζει πάλι την αναζήτηση όπως πριν. Αν φτάσει στο άκρο της πίστας θα κάνει στροφή 180º και θα συνεχίζει να ψάχνει προς τα πίσω. Κάθε φορά θα γνωρίζει προς τα ποια κατεύθυνση έχει στραφεί και το πόσο µπροστά έχει προχωρήσει προκειµένου αργότερα να χρησιµοποιήσει αυτή την πληροφορία. Αν οποιαδήποτε στιγµή την εντοπίσει θα κάνει κάποιες διορθωτικές κινήσεις και θα κινηθεί ευθεία µέχρι να την φτάσει. Όταν δηλαδή ο αισθητήρας επαφής ενεργοποιηθεί θα την έχει φτάσει και τότε θα την πιάσει. Αν είναι πολύ µακριά από το σηµείο που την εντόπισε θα το αποθηκεύσει προκειµένου να µπορεί να ξέρει το πόσο «βαθιά» έχει προχωρήσει. Αν πάλι προχωρήσει πολύ θα αρχίσει να την ψάχνει πάλι. Έπειτα, θα αναζητήσει τη µαύρη γραµµή προκειµένου να την ακολουθήσει για 2 περιφορές χρησιµοποιώντας την εσωτερική λογική και τον αισθητήρα φωτεινότητας. Ανάλογα µε το πόσο έχει προχωρήσει και προς τα ποια µεριά βρίσκεται θα εντοπίσει τη µαύρη γραµµή µε το συντοµότερο δρόµο και θα ευθυγραµµιστεί έτσι ώστε να ξεκινήσει µε τις καλύτερες δυνατές συνθήκες. Γνωρίζοντας αν ακολουθείται η γραµµή µε τη φορά του ρολογιού ή όχι σε περίπτωση που χαθεί η γραµµή, θα γνωρίζει σε ποια κατεύθυνση θα τη βρει σε περίπτωση που την χάσει. Αφού κάνει τις δυο πλήρης περιστροφές θα στραφεί προς το εσωτερικό του κύκλου ανάλογα µε τη φορά περιφοράς και θα αναζητήσει τη βάση της µπάλας όπως ακριβώς αναζήτησε την µπάλα αρχικά. Αφού την εντοπίσει θα πάει να αφήσει την µπάλα στη βάση όπως κινήθηκε προηγουµένως για να πιάσει την µπάλα. Τέλος Θα κινηθεί προς τα πίσω προκειµένου να βγει έξω από τον κύκλο και να τερµατίσει. Έτσι θα µετρήσει πάλι τα ticks του επεξεργαστή, θα αφαιρέσει από αυτά τα αρχικά ticks και θα προβάλει τον χρόνο που χρειάστηκε σε milliseconds. Θα αναπαράγει ένα ήχο και θα περιµένει για 10 (για να διαβαστεί ο χρόνος) και έπειτα θα τερµατίσει το πρόγραµµα.

5.Τα Αποτελέσµατα της εργασίας Εδώ βρίσκονται τα αποτελέσµατα που προέκυψαν µετά την εργασία αυτή. Ακολουθούν τρία ενδεικτικά video µε το ροµπότ εν «δράσει» και τα αποτελέσµατά τους: Η µπάλα αριστερά: Χρόνος 31944ms left_video.avi Η µπάλα δεξιά: Χρόνος 31583ms right_video.avi Η µπάλα µπροστά: Χρόνος 30546ms ahead_video.avi Μέσος χρόνος: 31357,66ms

Αυτά έδωσαν την δεύτερη θέση στο διαγωνισµό Move the Ball του NXTasy.org στην κατηγορία «άλλες γλώσσες προγραµµατισµού». Στη σελίδα του NXTasy.org υπάρχουν τα πλήρη αποτελέσµατα[21]. 6.Μελλοντικές Βελτιώσεις Παρατηρώντας τις συµµετοχές των διαγωνιζοµένων αλλά και τη δικιά µου φάνηκε πως θα µπορούσα να πετύχω µικρότερο χρόνο αν η βάση της µπάλας είχε ανάποδο κωνοειδές σχήµα, ώστε το ροµπότ να µην χρειάζεται να εντοπίζει τη βάση µε µεγάλη ακρίβεια. Επίσης θα µπορούσε το ροµπότ να ξεκινάει από την µεγάλη πλευρά του οβάλ κύκλου ώστε να βρίσκει πιο γρήγορα την µπάλα µέσα σε αυτόν. 7.Αναφορές [1] LEGO Mindstorms NXT http://mindstorms.lego.com/eng/default.aspx [2] LEGO RIS http://mindstorms.lego.com/eng/products/ris/index.aspx [3] LEGO Mindstorms NXT Pieces http://www.peeron.com/inv/sets/8527-1 [4] Το NXT Brick http://mindstorms.lego.com/eng/overview/the_nxt.aspx [5] Το NXT Servo http://mindstorms.lego.com/eng/overview/interactive_servo_motors.aspx [6] Ο αισθητήρας υπερήχων http://mindstorms.lego.com/eng/overview/ultrasonic_sensor.aspx [7] Ο αισθητήρας φωτός http://mindstorms.lego.com/eng/overview/light_sensor.aspx [8] Ο αισθητήρας ήχου http://mindstorms.lego.com/eng/overview/sound_sensor.aspx [9] Ο αισθητήρας αφής http://mindstorms.lego.com/eng/overview/touch_sensor.aspx [10] NBC http://bricxcc.sourceforge.net/nbc/ [11] NXC http://bricxcc.sourceforge.net/nxc/ [12] RoboLab http://www.legoeducation.com/store/detail.aspx?keywords=nxt&by=20&id=1273&bhcp=1 [13] RobotC http://www.robotc.net/ [14] NI LabView http://www.ni.com/academic/mindstorms/ [15] Pyro http://pyro.sourceforge.net/features.html [16] URBI http://www.gostai.com/lego.html [17] NXTasy.org site http://nxtasy.org/ [18] Move the Ball challenge http://nxtasy.org/2007/03/14/official-nxtasy-challenge-no-2/ [19] Πλαστική µπάλα http://www.peeron.com/pics/inv/custpics/x1624.1155355507.jpg [20] Η Πίστα http://www.peeron.com/pics/inv/custpics/x1624.1156227102.jpg [21] Move the Ball challenge Results http://nxtasy.org/2007/06/06/challenge-2-winners/