Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Σχετικά έγγραφα
ΤΕΙ ΚΑΛΑΜΑΤΑΣ. ΑΡΓΥΡΗ ΔΗΜΗΤΡΑ Σχολής Διοίκησης και Οικονομίας Τμήμα Χρηματοοικονομικής και Ελεγκτικής Επιστήμης Εισηγητής :Λυγγίτσος Αλέξανδρος

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

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

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

ΣΤΗΝ ΤΡΟΙΖΗΝΙΑ ΑΠΟ ΑΓ.ΕΛΕΝΗ ΕΩΣ ΤΟΝ ΚΟΜΒΟ ΚΑΛΛΟΝΗΣ ΚΑΙ ΣΤΗΝ ΠΑΡΑΛΙΑ ΤΟΥ ΑΡΤΙΜΟΥ. ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ Τιμαριθμική 2012Α


ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ ΓΕΝΙΚΟΙ ΟΡΟΙ

Ο συγγραφέας χρησιμοποιεί συνδυασμό μεθόδων για την ανάπτυξη της έβδομης παραγράφου.

1 Επιμέλεια: Γράβαλος Βασίλειος, Χρυσανθάκης Ιωάννης

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων.

ΘΕΜΑ: Διευκρινίσεις και οδηγίες για την επιστροφή ΦΠΑ σύμφωνα με την ΑΥΟ ΠΟΛ.1003/

5 η Ενότητα Κουλτούρα και στρατηγική

Β) Ντάκουλας Κωνσταντίνος Παππάς Βασίλης Πάσχος Αλέξανδρος Τσούκος Ηρακλής. Γ) Γείτονα Ανθή Πάτση Συμέλα Σκινήτης Φίλιππος Χασκή Βασιλική

ΚΑΤΕΠΕΙΓΟΝ - ΕΚΛΟΓΙΚΟ

ΣΧΕΔΙΟ. ΝΟΜΟΣ. Δηµόσιες υπεραστικές οδικές µεταφορές επιβατών. Κεφ. Α - ΓΕΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ. Άρθρο 1 Σκοπός πεδίο εφαρµογής

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

ΑΠΑΝΤΗΣΕΙΣ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΔΙΔΑΓΜΕΝΟ ΚΕΙΜΕΝΟ

Επαρχιακός Γραμματέας Λ/κας-Αμ/στου ΠΟΑ Αγροτικής

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

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

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων

/ Απαντήσεις πανελληνίων εξετάσεων Επαγγελματικών λυκείων (ΕΠΑΛ) 2009

ΤΕΥΧΟΣ ΠΡΟΚΗΡΥΞΗΣ αριθμ /605/ ΔΗΜΟΣΙΟΥ ΑΝΟΙΚΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΑΝΑΚΗΡΥΞΗ ΑΝΑΔΟΧΟΥ ΓΙΑ ΤΗΝ ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΕΡΓΟΥ

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

Διπλωματική Εργασία. Έρευνα:

ΤΙΤΛΟΣ I ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ

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

ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ Τιµαριθµική 2012Γ

ΕΘΝΙΚΗ ΣΥΝΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΜΗΤΡΟΠΟΛΕΩΣ 42, ΑΘΗΝΑ ΙΝΕΜΥ - ΕΣΕΕ

ΠΑΣΚ ΓΕΩΠΟΝΩΝ ΛΑΡΙΣΑΣ Ο επικεφαλής Ντίνος Μακάς

ΣΩΜΑ ΠΡΟΣΚΟΠΩΝ ΚΥΠΡΟΥ. Εσωτερικός Κανονισμός. Προσκοπικού Πρατηρίου

ΚΕΦΑΛΑΙΟ 7 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΤΑΣΕΙΣ

Ο ΠΡΟΕΔΡΟΣ ΤΗΣ ΒΟΥΛΗΣ ΤΩΝ ΕΛΛΗΝΩΝ. Άρθρο πρώτο.

Ίδρυση και μετονομασία Υπουργείων, μεταφορά και κατάργηση υπηρεσιών

Αξιολόγηση Προγράμματος Αλφαβητισμού στο Γυμνάσιο Τρίτο Έτος Αξιολόγησης

Μια Ιστορία Πολλοί Συγγραφείς

ΙΣΤΟΡΙΑ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 30 ΜΑΪΟΥ 2012 ΑΠΑΝΤΗΣΕΙΣ ΟΜΑΔΑ ΠΡΩΤΗ ÁÍÉÁ

ΑΠΟΦΑΣΗ 34750/2006 (Αριθμός καταθέσεως πράξεως 43170/2006) ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από

Περίληψη. Περιεχόμενα

ΣΩΜΑ ΠΡΟΣΚΟΠΩΝ ΚΥΠΡΟΥ

ΘΕΜΑΤΑ ΓΙΑ ΑΣΕΠ ΝΗΠΙΑΓΩΓΩΝ

ΕΠΙΜΕΛΕΙΑ: ΞΗΡΟΣ ΑΝΤΩΝΙΟΣ: ΔΙΚΗΓΟΡΟΣ-ΝΟΜΙΚΟΣ ΣΥΜΒΟΥΛΟΣ ΔΕΥΑΜΒ ΠΑΝΑΓΙΩΤΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ: Δ/ΚΟΣ ΥΠΑΛΛΗΛΟΣ ΔΕΥΑΜΒ

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

ΕΠΟΝ. Ιστορία γραμμένη με αγώνες και αίμα

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

ΝΟΜΟΣ ΒΟΙΩΤΙΑΣ ΔΗΜΟΣ ΘΗΒΑΙΩΝ * * * * * * Αριθ. Πρωτ.16183

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ. Βαθμός Ασφαλείας: Να διατηρηθεί μέχρι: Βαθ. Προτεραιότητας:

ΚΟΡΙΝΘΟΥ 255, ΚΑΝΑΚΑΡΗ 101 ΤΗΛ , , FAX

Ασυντήρητες και επικίνδυνες οικοδομές

Πολιτική Πρόταση για μια Προοδευτική Διέξοδο Από την Κρίση

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

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

ΤΑ ΕΠΙΠΕΔΑ ΟΡΓΑΝΩΣΗΣ ΤΩΝ ΠΟΛΥΚΥΤΤΑΡΩΝ ΟΡΓΑΝΣΙΜΩΝ ΟΙ ΖΩΙΚΟΙ ΙΣΤΟΙ 2 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ

ΠΡΟΠΟΝΗΣΗ ΜΕΘΟΔΟΙ & ΣΥΣΤΗΜΑΤΑ

1. ΠΡΟΓΡΑΜΜΑ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ 2013 ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΓΕΝΙΚΩΝ ΛΥΚΕΙΩΝ (ΓΕΛ)

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

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΑΓΩΝΙΣΜΑ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ. Α. Να αποδώσετε την περίληψη του κειμένου ( λέξεις)

«Βαλκανικοί πόλεμοι Ανάπτυξη project στη Γ Λυκείου με τη χρήση του διαδικτύου και λογισμικού»

ΠΡΟΚΗΡΥΞΗ 11α ΤΣΙΤΕΙΑ 2012

1 ΓΕΝΙΚΟΙ ΟΡΟΙ. Έργο ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΤΤΙΚΗΣ ΔΗΜΟΣ ΔΙΟΝΥΣΟΥ. Προϋπ Ευρώ ( με Φ.Π.Α. 23 %) Πηγή ΙΔΙΟΙ ΠΟΡΟΙ Χρήση 2015

ΔΗΜΟΤΙΚΕΣ & ΤΟΠΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ

ΣΥΝΘΗΚΗ SCHENGEN (ΣΕΝΓΚΕΝ)

1. ΕΡΩΤΗΣΗ: Οι ρυθμίσεις του νόμου για το Ασφαλιστικό θα είναι μόνιμες; Οι περικοπές του σταθερές; ΑΠΑΝΤΗΣΗ:

Ο αναλφαβητισμός ως σύγχρονο πρόβλημα

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

Το ολοκαύτωμα της Κάσου

Η ΕΠΑΓΓΕΛΜΑΤΙΚΗ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΗ ΔΡΑΣΤΗΡΙΟΠΟΙΗΣΗ ΤΩΝ ΕΛΛΗΝΩΝ ΤΗΣ ΔΙΑΣΠΟΡΑΣ ΜΕΤΑ ΤΟΝ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΚΑΙ Η ΕΠΙΔΡΑΣΗ ΤΗΣ ΣΤΟ ΕΘΝΙΚΟ ΚΕΝΤΡΟ

ΧΡΗΜΑΤΟΔΟΤΗΣΗ 1 : ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

Αριθμός 9769/2014 TO ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΚΟΥΣΙΑΣ ΔΙΚΑΙΟΔΟΣΙΑΣ ΣΥΓΚΡΟΤΗΘΗΚΕ από τους Δικαστές Μυρσίνη Κοντογιάννη, Πρόεδρο

Οδηγός Εξετάσεων Λυκείου Με το Νέο Σύστημα

ΚΑΤΑΣΤΑΤΙΚΟ ΚΕΝΤΡΟΥ ΝΕΟΤΗΤΑΣ. ΙΔΡΥΣΗ Ιδρύεται Κέντρο Νεότητας µε την επωνυµία «Κέντρο Νεότητας... µε έδρα...

Κεφάλαιο Πέμπτο Εθνοπολιτισμική Ζωή και Εμπειρίες Ελληνικότητας των Ελληνοαυστραλών Εφήβων

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Η ΣΥΝΟΙΚΙΑ ΤΟΥ ΑΓΙΟΥ ΤΡΥΦΩΝΑ ΚΑΜΑΤΕΡΟΥ. 2 ο ΓΕΛ ΚΑΜΑΤΕΡΟΥ Α ΛΥΚΕΙΟΥ

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

ΚΑΤΕΠΕΙΓΟΝ-ΕΚΛΟΓΙΚΟ. Αλεξ/πολη Αριθ.πρωτ. οικ.τ.τ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ Α.Μ.Θ.

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΔΑΓΜΕΝΟ ΚΕΙΜΕΝΟ

ΕΚΘΕΣΗ ΕΣΩΤΕΡΙΚΗΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΠΕΡΙΗΓΗΣΕΙΣ ΣΤΟ ΦΥΣΙΚΟ ΠΑΡΚΟ ΨΗΛΟΡΕΙΤΗ

ΚΤΙΡΙΑΚΕΣ ΥΠΟΔΟΜΕΣ Α.Ε. ΓENIKH ΔΙΕΥΘΥΝΣΗ ΕΡΓΩΝ Διεύθυνση Κατασκευών Έργων Υποδομών Δικαιοσύνης ΠΑΡΑΡΤΗΜΑ III ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ

Το σχέδιο έχει ως βάση ένα ενιαίο σύστημα κλειστών αγωγών το οποίο εκτείνεται

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΘΡΗΣΚΕΙΑΣ ΣΤΟ ΟΥΔΕΤΕΡΟΘΡΗΣΚΟ ΣΧΟΛΕΙΟ (ΤΟΥ ΡΕΖΙΣ ΝΤΕΜΠΡΕ)

Αξιολόγηση του Εκπαιδευτικού Έργου. Διαδικασία Αυτοαξιολόγησης στη Σχολική Μονάδα

ΝΕΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΑ ΠΡΟΪΟΝΤΑ- ΕΦΑΡΜΟΓΗ ΣΕ ΑΣΦΑΛΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΗ

ΣΧΕΔΙΟ ΝΟΜΟΥ ΕΝΙΣΧΥΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΗΣ ΚΙΝΗΜΑΤΟΓΡΑΦΙΚΗΣ ΤΕΧΝΗΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ. Γενικές Αρχές και Ορισμοί. Άρθρο 1 Γενικές αρχές

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΙΣΜΩΝ» Θ.Ε. ΔΕΟ 10 Βασικές Αρχές Δικαίου και Διοίκησης

ΠΑΡΟΥΣΙΑΣΗ ΚΑΙ ΚΡΙΤΙΚΗ ΒΙΒΑΙΟΥ

ΑΡΧΙΤΕΚΤΟΝΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΚΑΤΑΣΚΕΥΩΝ. ΥΠΟΧΡΕΩΤΙΚΟ ΜΑΘΗΜΑ: Διδακτικές ώρες 8 ΘΕΩΡΙΑΣ - ΘΕΜΑΤΟΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΣΥΝΘΕΣΗΣ - ΕΙΔΙΚΗ ΚΤΙΡΙΟΛΟΓΙΑ ΙΙ

Γ. ΙΩΑΝΝΟΥ, «ΣΤΟΥ ΚΕΜΑΛ ΤΟ ΣΠΙΤΙ»

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

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

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

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

ΕΚΘΕΣΗ ΓΙΑ ΤΟ ΕΒΕΑ. Το Ασφαλιστικό του 21ο αιώνα; Ανάγκη αναστοχασμού για μια νέα αρχή

«Φιλολογικό» Φροντιστήριο Επαναληπτικό διαγώνισμα στη Νεοελληνική Γλώσσα. Ενδεικτικές απαντήσεις. Περιθωριοποίηση μαθητών από μαθητές!

ΔΙΑΚΗΡΥΞΗ ΠΡΟΧΕΙΡΟΥ ΔΙΑΓΩΝΙΣΜΟΥ

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ:ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Δημήτριου Αθανασίου Δημόπουλου Αριθμός Μητρώου: 5956 Θέμα «Μελέτη και Σχεδιασμός Συστήματος Εντοπισμού Αντικειμένου στο Χώρο με Χρήση Υπερήχων» Επιβλέπων Καλύβας Γρηγόριος, Αναπληρωτής Καθηγητής Αριθμός Διπλωματικής Εργασίας: Πάτρα, Οκτώβριος 2013 1

2

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Μελέτη και Σχεδιασμός Συστήματος Εντοπισμού Αντικειμένου στο Χώρο με Χρήση Υπερήχων» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Δημήτριου Αθανασίου Δημόπουλου Αριθμός Μητρώου: 5956 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Ο Διευθυντής του Τομέα 3

4

Αριθμός Διπλωματικής Εργασίας: Θέμα: «Μελέτη και Σχεδιασμός Συστήματος Εντοπισμού Αντικειμένου στο Χώρο με Χρήση Υπερήχων» Φοιτητής: Δημόπουλος Δημήτριος Επιβλέπων: Καλύβας Γρηγόριος, Αναπληρωτής καθηγητής Περίληψη Η παρούσα διπλωματική εργασία πραγματεύεται τον σχεδιασμό ενός πρωτότυπου μετρητικού συστήματος που έχει ως εφαρμογή τον εντοπισμού απόστασης ενός αντικειμένου από ένα ζεύγος πομπού/δέκτη αισθητήρων με χρήση υπερήχων. Ο πομπός εκπέμπει ένα σήμα δημιουργούμενο από έναν μικροελεγκτή, το οποίο ανακλάται πάνω στο δοθέν αντικείμενο και επιστρέφει στον δέκτη, από τον οποίο έπειτα από σχετική μορφοποίηση οδηγείται πίσω στον μικροελεγκτή προς επεξεργασία. Στην συνέχεια τα δεδομένα οδηγούνται σε έναν προσωπικό υπολογιστή, όπου και μπορούν να υποστούν οποιαδήποτε επεξεργασία και να τα εκμεταλλευτούμε με οποιονδήποτε τρόπο. Γι αυτόν τον λόγο σχεδιάστηκε μια απλή και εύχρηστη διεπαφή για το χειρισμό του συστήματος, η χρήση του οποίου βρίσκει μεγάλη εφαρμογή σε μετρητικές διατάξεις στις οποίες είναι επιθυμητή η ταχύτητα και η ακρίβεια. Η εργασία αυτή εκπονήθηκε στο Εργαστήριο Ηλεκτρονικών Εφαρμογών του τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών. Σκοπός, πέρα από την κατασκευή του συστήματος αυτού είναι η μελέτη του και η μαθηματική ανάλυση των αποτελεσμάτων του, ώστε να προσδιοριστεί η αξιοπιστία του. Στο κεφάλαιο 1 έχουμε μια εισαγωγή στις ιδιότητες του ήχου και τον ορισμό του υπέρηχου, όπως και αναφορά στα συστήματα εντοπισμού χρησιμοποιώντας το στοιχείο αυτό. Στο κεφάλαιο 2 έχουμε την ανάλυση της δομής του συστήματος στα βασικά του μέρη, όπως τον πομπό, τον δέκτη, τον μικροελεγκτή, τον αισθητήρα θερμοκρασίας και τον σειριακό αντάπτορα για την επικοινωνία του συστήματος με τον υπολογιστή. Στο κεφάλαιο 3 αναλύουμε το προγραμματιστικό κομμάτι της εργασίας στο οποίο περιλαμβάνεται ο κώδικας του μικροελεγκτή, όπως και της διεπαφής. Στο κεφάλαιο 4, παραθέτουμε τις πειραματικές μετρήσεις καθώς και τα μαθηματικά εργαλεία τα οποία αξιολογούν τα αποτελέσματα και στο κεφάλαιο 5 κλείνουμε με βελτιώσεις και προτάσεις προς συνέχιση. 5

Abstract The goal of this diploma thesis is to design a prototypical measuring system that has application in the location of an object by using a pair of ultrasound transceivers. The transmitter emits a signal that is generated by a microcontroller, which is reflected on the given object, returning to the receiver, though which is modified so as to be processed by said microcontroller again. After that, the results are sent to a personal computer to be used in any way possible. For that very reason a simple, yet handy, interface is developed so as to control the system, which can be used in measuring arrays that demand great speed and precision. This project was developed in the Applied Electronics Laboratory (APEL) of the Electrical and Computer Engineering Department of the University of Patrai. In Chapter 1, we will discuss the properties of sound, the definition of ultrasound and the types of echolocation systems that utilize that. In Chapter 2, the structure of the system s hardware is analyzed, from the transmitter to the receiver, the microcontroller, the temperature sensor and the serial adapter needed to communicate with the pc. In Chapter 3, there is an analysis on the software part of this project. This includes the microcontroller s firmware as well as the interface s code. In Chapter 4, there is an explanation on the experiment and all the results emanating from it. The mathematical tools to interpret them are also briefly mentioned. Chapter 5 ends with the synopsis of the whole endeavor and with propositions for improvement. 6

7

Περιεχόμενα 1. Εισαγωγή... 11 1.1 Υπέρηχος... 11 1.2 Συστήματα Εντοπισμού... 12 1.3 Ταχύτητα του Ήχου-Ιδιότητες... 13 1.4 Αρχή λειτουργίας... 14 2. Δομή Συστήματος Υλικό (Hardware)... 16 2.2 Αισθητήρες υπερήχων-πομπός... 17 2.3 Δέκτης... 18 2.4 Αξιολόγηση λειτουργίας πομπού-δέκτη... 29 2.5 Μικροελεγκτής... 30 2.5.1 Γενικά Χαρακτηριστικά... 30 2.5.2 Επιλογή κρυστάλλου... 34 2.5.3 Timers... 35 2.5.4 CCP Module... 37 2.5.5 Interrupts... 40 2.5.6 USART... 42 2.6 DS18B20... 43 2.7 FT232RL... 49 3. Δομή Συστήματος Λογισμικό (Software)... 54 3.1 Προγραμματισμός μικροελεγκτή-firmware... 54 3.2 Προγραμματισμός διεπαφής χρήστη... 56 4. Πειραματική Διάταξη- Μετρήσεις... 59 4.1 Μαθηματικά Εργαλεία... 59 4.2 Πείραμα 1... 61 4.3 Πείραμα 2... 64 4.4 Πείραμα 3... 68 4.5 Πείραμα 4... 73 5. Επίλογος... 74 5.1 Σύνοψη... 74 5.2 Εφαρμογές - Περαιτέρω ερεύνα... 76 5.3 Ευχαριστίες... 78 Παράρτημα Α... 80 Α1- Κώδικας Μικροελεγκτή... 80 Α2- Κώδικας Διεπαφής... 84 Παράρτημα Β... 86 Β1 - Προγράμματα που χρησιμοποιήθηκαν... 86 8

Β2 - Εργαλεία που χρησιμοποιήθηκαν... 86 Παράρτημα Γ - Διάταξη πλακέτας και εξαρτήματα... 87 Παράρτημα Δ Βιβλιογραφία/Πηγές... 91 9

10

1. Εισαγωγή 1.1 Υπέρηχος Ο υπέρηχος είναι μια μηχανική ταλάντωση με συχνότητα μεγαλύτερη από το ανώτερο όριο της ανθρώπινης ακοής. Αυτό σημαίνει ότι δεν διαχωρίζεται από τον «κανονικό» ήχο λόγω διαφορών στις φυσικές ιδιότητες, αλλά μόνο στο γεγονός ότι ο άνθρωπος δεν μπορεί να το ακούσει. Παρόλο που το όριο αυτό κυμαίνεται από άτομο σε άτομο, είναι περίπου 20kHz (20000 Hertz) στο μέσο ενήλικα[1]. Οι συσκευές υπερήχων λειτουργούν με συχνότητες που κυμαίνονται από 20kHz έως πολλά GHz. Στην συγκεκριμένη διπλωματική εργασία θα δουλέψουμε στα 40kHz. Σχήμα 1.1 Φάσμα του ήχου[2]. Μια κοινή χρήση του υπέρηχου είναι στην μέτρηση απόστασης, η οποία στο νερό ονομάζεται Sonar. Κατά την διάρκεια της διαδικασίας αυτής ένας παλμός δημιουργείται προς μια συγκεκριμένη κατεύθυνση. Εάν υπάρχει ένα αντικείμενο στο μονοπάτι του παλμού αυτού, τότε έχουμε μερική ή και ολική ανάκλασή του πίσω στον δέκτη με την μορφή αντήχησης. Μετρώντας την χρονική διαφορά μεταξύ της εκπομπής και λήψης του σήματος είναι δυνατόν να προσδιοριστεί η απόσταση. Συγκεκριμένα, εφαρμογή βρίσκει αυτή η μέθοδος σε όργανα μέτρησης, τα οποία μπορούν ταχύτατα να μετρήσουν τις διαστάσεις δωματίων. 11

Σχήμα 1.2 Μέτρηση της απόστασης r με βάση την ανάκλαση 1.2 Συστήματα Εντοπισμού Τα συστήματα εντοπισμού με βάση τον ήχο[3] χωρίζονται σε 2 κατηγορίες, τα παθητικά και τα ενεργητικά. Ενεργητικά είναι τα συστήματα που αναφέρθηκαν ήδη και η λειτουργία τους συμπεριλαμβάνει την δημιουργία του ηχητικού σήματος και την ανάλυση της ανακλώμενης αντήχησης. Από την άλλη παθητικά είναι τα συστήματα τα οποία αναλύουν το ηχητικό σήμα το οποίο προέρχεται από το αντικείμενο που θέλουμε να εντοπίσουμε, δηλαδή το εν λόγω αντικείμενο φέρει και τoν ηχητικό πομπό. Κάθε σύστημα έχει τα δικά του προτερήματα και μειονεκτήματα. Στα ενεργητικά συστήματα, παραδείγματος χάριν, έχουμε την ευχέρεια του εντοπισμού οποιουδήποτε αντικειμένου, χωρίς να χρειάζεται αυτό να φέρει ξεχωριστό πομπό πάνω του, όμως η ακρίβεια του συστήματος πάσχει διότι πρέπει να βρισκόμαστε στο οπτικό πεδίο της διάταξης για να έχουμε ένα σωστό αποτέλεσμα. Από την άλλη τα παθητικά συστήματα μπορεί να απαιτούν την ύπαρξη πομπού πάνω τους, κάτι που σημαίνει επιπλέον υλικό και επιπλέον κατανάλωση, αλλά τα αποτελέσματα είναι πολύ καλύτερα, διότι μπορούν να χρησιμοποιηθούν πιο πολύπλοκα μαθηματικά μοντέλα στην συγκεκριμένη περίπτωση. Τέτοια συστήματα έχουν αναπτυχτεί στο Εργαστήριο Ηλεκτρονικών Εφαρμογών APEL[4][17]. Η παρούσα εργασία έχει σαν σκοπό την ανάπτυξη ενός ενεργητικού συστήματος, όπως θα αναλυθεί παρακάτω. 12

1.3 Ταχύτητα του Ήχου-Ιδιότητες Πριν από την ανάλυση του συστήματος θα χρειαστεί να αναφερθούμε και στις ιδιότητες του ήχου, ώστε να καταλάβουμε το πώς επηρεάζεται από τους περιβαλλοντικούς παράγοντες και το πώς διαδίδεται στο κανάλι επικοινωνίας το οποίο είναι ο αέρας στην προκειμένη περίπτωση. Όπως αναφέρθηκε ήδη, ο ήχος είναι μια μηχανική ταλάντωση, κάτι το οποίο θα μπορούσε να εξομοιωθεί με ένα μοντέλο από μπάλες συνδεδεμένες με ελατήρια. Οι μπάλες αντιπροσωπεύουν τα μόρια, ενώ τα ελατήρια αντιπροσωπεύουν τους δεσμούς μεταξύ τους. Ο ήχος διαδίδεται μέσω του μοντέλου αυτού από την συμπίεση και εκτόνωση των ελατηρίων αυτών, μεταδίδοντας ενέργεια από την μία γειτονική μπάλα στην επόμενη και ούτω καθεξής. Η θερμοκρασία επηρεάζει την ελαστικότητα ή ακαμψία των ελατηρίων αυτών, δηλαδή την ευκολία διάδοσης της ενέργειας. Γι αυτό θεωρούμε πως για την μετάδοση στον αέρα η θερμοκρασία είναι ο κύριος παράγοντας που καθορίζει την ταχύτητα του ήχου. Ο προσεγγιστικός τύπος[5] υπολογισμού της ταχύτητας του ήχου σε ξηρό αέρα (0% υγρασία) είναι ο εξής (1.1) με θ την θερμοκρασία σε βαθμούς Κελσίου ( C). Η προσέγγιση ετούτη προκύπτει από τους δυο πρώτους όρους της σειράς Taylor της παρακάτω σχέσης. (1.2) Το μέγεθος 331.3 m/s αποτελεί την πρακτική τιμή της ταχύτητας του ήχου σε 0 βαθμούς Κελσίου. Για λόγους ευκολίας θα γίνει χρήση της απλοποιημένης σχέσης, διότι η διαφορά είναι αμελητέα, παίρνοντας υπόψη την ακρίβεια της διάταξης μας. 13

1.4 Αρχή λειτουργίας Η αρχή λειτουργίας του συστήματος βασίζεται στην ιδιότητα της ανάκλασης του ήχου. Βάσει αυτής, ένα αντικείμενο το οποίο βρίσκεται σε μια απόσταση από μια ηχητική πηγή, μπορεί να προκαλέσει ανάκλαση του παραγόμενου ηχητικού σήματος. Εάν λοιπόν, γίνει μέτρηση του χρόνου που έχει επέλθει από την στιγμή εκπομπής έως την στιγμή λήψης του ηχητικού σήματος, τότε μπορεί να υπολογιστεί η απόσταση του αντικειμένου από την πηγή χρησιμοποιώντας τον τύπο: (1.3) Σύμφωνα με τον παραπάνω τύπο, η απόσταση x της πηγής από το αντικείμενο που θέλουμε να εντοπίσουμε ισούται με το γινόμενο της ταχύτητας u του ήχου στο μέσο που διαδίδεται επί τον μισό χρόνο t που έχει μετρηθεί. Αυτό συμβαίνει διότι το σήμα διανύει 2 φορές την αντίστοιχη απόσταση. Σχήμα 1.3 Αρχή Λειτουργίας Συστήματος 14

Στην εικόνα 1.3 φαίνεται η αποστολή σήματος από τον πομπό υπερήχων, η ανάκλαση σε εμπόδιο και η επιστροφή του σήματος στον δέκτη υπερήχων. 15

2. Δομή Συστήματος Υλικό (Hardware) 2.1 Γενική Ανασκόπηση Συστήματος Το σύστημα εντοπισμού έχει την εξής δομή: Σχήμα 2.1 Συνοπτική δομή του συστήματος Ο κεντρικός εγκέφαλος του συστήματος αποτελείται από έναν μικροελεγκτή (PIC16F877A), ο οποίος διεγείρει τον πομπό (US Tx) για ένα πολύ μικρό χρονικό διάστημα (burst) και αντιστοίχως λαμβάνει το ανακλώμενο σήμα μέσω του δέκτη(us Rx), το οποίο διέρχεται από μια ενισχυτική διάταξη (US Amp) ώστε να είναι σε αντιληπτά και ανεκτά επίπεδα τάσης. Επίσης λαμβάνει και την θερμοκρασία μέσω ενός αισθητήρα θερμοκρασίας (DS18B20) ούτος ώστε να έχουμε σωστό υπολογισμό της ταχύτητας του ήχου στον αέρα. Τα δεδομένα της θερμοκρασίας, όπως και του χρόνου διέλευσης στέλνονται μέσω ενός σειριακού αντάπτορα (FT232RL) από την UART του μικροελεγκτή σε έναν υπολογιστή, όπου και μπορούν να υποβληθούν σε οποιαδήποτε επεξεργασία. Το κάθε εξάρτημα και υποσύστημα θα αναλυθεί ξεχωριστά στην συνέχεια. 16

2.2 Αισθητήρες υπερήχων-πομπός Οι αισθητήρες[6] αυτοί είναι στοιχεία τα οποία μπορούν να εκπέμψουν και να λάβουν σήματα υπερήχων. Η αρχή λειτουργίας τους είναι το πιεζοηλεκτρικό φαινόμενο, κατά το οποίο όταν εφαρμοστεί τάση στους ακροδέκτες του αισθητήρα, δημιουργεί δονήσεις οι οποίες ταξιδεύουν στον αέρα, δηλαδή τα σήματα υπερήχων στην προκειμένη περίπτωση. Αντίστοιχα, όταν δεχτεί ο αισθητήρας ένα σήμα το οποίο προκαλεί δόνηση στο πιεζοηλεκτρικό κεραμικό υλικό του, τότε εμφανίζει στα άκρα του μια διαφορά τάσης. Στην παρούσα διπλωματική χρησιμοποιήθηκε το μοντέλο MA40S4R, το οποίο είναι ένας αισθητήρας ανοικτού τύπου της εταιρείας Murata. Η δομή του, καθώς και τα τεχνικά του χαρακτηριστικά είναι τα εξής. Σχήμα 2.2 Δομή του αισθητήρα Σχήμα 2.3 Χαρακτηριστικά του αισθητήρα Ο τρόπος διέγερσης όπως φαίνεται είναι εξαιρετικά απλός. Αρκεί να δημιουργηθεί ένας τετραγωνικός παλμός συχνότητας 40kHz με πλάτος έως 20 Vp-p και να εφαρμοστεί στους ακροδέκτες του αισθητήρα. Στην παρούσα εργασία έγινε χρήση της ικανότητας του μικροελεγκτή να παράγει τετραγωνικούς παλμούς οι οποίοι έχουν εύρος τάσης ίδιο με αυτό της τροφοδοσίας (δηλαδή από 0-5V). Η μορφή του, όπως μετρήθηκε με τον παλμογράφο είναι η παρακάτω. 17

Σχήμα 2.4 Κυματομορφή διέγερσης Σχήμα 2.5 Συνδεσμολογία με μικροελεγκτή 2.3 Δέκτης Καθώς το σήμα που λαμβάνει ο δέκτης παράγει μια διαφορά τάσης της τάξης του 1 mv, θεωρείται επιτακτική η ενίσχυση του. Αυτό επιτυγχάνεται μέσω ενός αναλογικού ενισχυτή 3 βαθμίδων, το κύκλωμα του οποίου φαίνεται παρακάτω. Σχήμα 2.5 Εξομοίωση ενισχυτικής διάταξης δέκτη Αρχικά, θα πρέπει να γίνει μια επεξήγηση για την εξομοίωση του ληφθέντος σήματος. 18

Σχήμα 2.6 Κύκλωμα εξομοίωσης ληφθέντος σήματος Η πηγή V4 παράγει ένα ημιτονοειδές σήμα με εύρος τάσης 1mVp-p και συχνότητα 40kHz. Όμως δεν είναι θεμιτό να έχουμε συνεχή λήψη του σήματος αυτού, διότι όπως αναφέρθηκε και πιο πάνω, η διέγερση του πομπού είναι πολύ σύντομη, άρα και το ληφθέν σήμα θα έχει εξίσου σύντομη διάρκεια. Γι αυτόν τον λόγο υπάρχει η ανάγκη του περιορισμού του σήματος ανά τακτά χρονικά διαστήματα. Αυτό τον ρόλο αναλαμβάνει η διακοπτική διάταξη S1 με την πηγή V9. Αυτό που κάνουν ουσιαστικά είναι να αφήνουν την πηγή V4 να λειτουργεί για 250 us σε μια συνολική περίοδο λειτουργίας 500 us. Αξίζει να σημειωθεί πως αυτά τα νούμερα είναι ενδεικτικά και σκοπός τους είναι να βοηθήσουν στην εξομοίωση. Τα πραγματικά νούμερα θα φανεί πως είναι διαφορετικά. Έπειτα από την δημιουργία του σήματος έχει σειρά η ενισχυτική διάταξη. Η ονομασία της διάταξης αυτής είναι direct coupled amplifier ή ενισχυτής κοινής σύζευξης[7]. Σε αυτήν την διάταξη κάθε βαθμίδα στέλνει την έξοδό της στην είσοδο της επόμενης βαθμίδας. Αξίζει να σημειωθεί ότι αυτή η διάταξη αποτελεί την βασική δομική μονάδα για τον τελεστικό ενισχυτή. Ο λόγος για τον οποίο επιλέχθηκε η δομή αυτή είναι η απλότητά της, η ανάγκη της για λίγα στοιχεία, άρα και η οικονομικότητά της αλλά και η ικανότητα για ενίσχυση σημάτων χαμηλών συχνοτήτων (40kHz). Τα στοιχεία που αποτελούν την διάταξη αυτής είναι οι βασικές 19

ενισχυτικές τοπολογίες με ένα transistor (κοινή βάση, κοινός συλλέκτης, κοινός εκπομπός).το κύκλωμα φαίνεται στην επόμενη εικόνα. Σχήμα 2.7 Λεπτομέρεια ενισχυτικής διάταξης Όπως φαίνεται στο παραπάνω σχήμα, το σήμα εισόδου αφού περάσει από έναν πυκνωτή ζεύξης, εισέρχεται σε μια τοπολογία κοινού εκπομπού στην οποία βρίσκεται το Q1. Οι αντιστάσεις R1 και R2 φροντίζουν να ρυθμίζουν την τάση στην βάση του Q1 ώστε να είναι συνεχώς πολωμένο στην ενεργό περιοχή. Η έξοδος είναι ένα ανεστραμμένο είδωλο της κυματομορφής εισόδου πολλαπλασιασμένης με το γινόμενο της διαγωγιμότητας επί την αντίσταση στον συλλέκτη (R3). Η ίδια βαθμίδα, αλλά με pnp transistor βρίσκεται στο δεύτερο στάδιο και έχουμε την ίδια ακριβώς διαδικασία, κάτι που γίνεται και στο τρίτο στάδιο αλλά με npn transistor αυτήν την φορά. Αυτό που επιτυγχάνεται σε κάθε βαθμίδα είναι να «ενσωματώνεται» αυτή η ac ταλάντωση πάνω στην dc πόλωση. Οι παρακάτω κυματομορφές επιβεβαιώνουν το όσα ειπώθηκαν έως τώρα. 20

Σχήμα 2.8 Κυματομορφή εισόδου Q1 Σχήμα 2.9 Κυματομορφή εξόδουq1/εισόδου Q4 21

Σχήμα 2.10 Κυματομορφή Εξόδου Q4/εισόδου Q2 Σχήμα 2.11 Κυματομορφή εξόδου Q2 22

Το τελευταίο αποτέλεσμα φαίνεται πάρα πολύ ικανοποιητικό, όμως δεν θα πρέπει να παραληφθεί ένα πολύ σημαντικό στοιχείο του ενισχυτή, το οποίο είναι το φίλτρο. Σε όλες τις διατάξεις κοινού εκπομπού υπάρχουν πυκνωτές οι οποίοι σαν ρόλο έχουν την ρύθμιση της συχνότητας λειτουργίας του συστήματος. Θα χρειαστεί ένα κατωδιαβατό φίλτρο ώστε να μην ενισχύονται αρμονικές σε υψηλότερες συχνότητες και να έχουμε πρόβλημα. Το κύκλωμα του φίλτρου φαίνεται παρακάτω. Σχήμα 2.12 Κατωδιαβατό φίλτρο Η αντίσταση R15 με τον πυκνωτή C11 δημιουργούν ένα κατωδιαβατό (Low pass) φίλτρο με συχνότητα αποκοπής 33kHz. Πειραματικά φάνηκε ότι στα 40kHz θα υπάρχει αρκετή ενίσχυση ακόμα, οπότε δεν υπάρχει πρόβλημα. Η αντίσταση R14 μπήκε για να εξομαλύνει την κυματομορφή, η οποία αλλοιώθηκε λόγο του φίλτρου. Η τελική κυματομορφή του ενισχυτή καθώς και οι υπολογισμοί για το φίλτρο παρατίθενται παρακάτω. (2.1) (2.2) Τύπος υπολογισμού συχνότητας αποκοπής κατωδιαβατού φίλτρου 23

Σχήμα 2.13 Bode Diagram στην έξοδο του φίλτρου Σχήμα 2.14 Έξοδος ενισχυτή 24

Σχήμα 2.15 Πραγματική έξοδος ενισχυτή Κοιτώντας τις παραπάνω κυματομορφές μπορεί να διαπιστωθεί ένα πρόβλημα. Οι τάσεις αυτές δεν είναι σε «κατανοητά» επίπεδα για έναν μικροελεγκτή. Όταν το σήμα αυτό δοθεί σαν είσοδος, θα θεωρηθεί σαν μηδενικό λογικό τάσης, λόγω του ότι η τάση αυτή είναι αρκετά μικρή. Αυτό που χρειάζεται είναι ένα ακόμη κύκλωμα το οποίο θα «κβαντώσει» την κυματομορφή σε δυο επίπεδα τάσης, το 0 και τα 5V. Η αρχική προσέγγιση έγινε με έναν τελεστικό ενισχυτή, το LM358[8] το οποίο χρησιμοποιήθηκε σαν συγκριτής τάσης(σχήμα 2.17). Το αποτέλεσμα όμως, πειραματικά και κατά την διάρκεια της εξομοίωσης ήταν διαφορετικό (σχήμα 2.16). Γι αυτό τον λόγο χρησιμοποιήθηκε το ολοκληρωμένο LM393[9], το οποίο είναι ένας συγκριτής τάσης ακριβείας (High Precision Comparator) χαμηλού θορύβου και υψηλής ταχύτητας, ιδανικού για την συγκεκριμένη περίπτωση. Το κύκλωμα το οποίο δημιουργήθηκε με το συγκεκριμένο ολοκληρωμένο φαίνεται στο σχήμα 2.18. 25

Σχήμα 2.16 Απόκριση κυκλώματος με το LM358 Σχήμα 2.17 Συνδεσμολογία κυκλώματος με το LM358 26

Σχήμα 2.18 Συνδεσμολογία κυκλώματος με το LM393 Η λειτουργία του κυκλώματος είναι η εξής. Όταν η είσοδος στην μη αναστρέφουσα είσοδο (3) γίνει μεγαλύτερη από ένα κατώφλι τάσης που έχει οριστεί στην αναστρέφουσα είσοδο (2) μέσω ενός διαιρέτη τάσης που σχηματίζουν οι αντιστάσεις R9 και R10, τότε η έξοδος θα γίνει ίση με την τάση θετικής τροφοδοσίας. Εάν πέσει κάτω από το κατώφλι αυτό, τότε η έξοδός θα είναι μηδενική. Η αντίσταση R11 είναι μια pull-up αντίσταση, διότι η έξοδος του ολοκληρωμένου είναι ανοικτού συλλέκτη. Τα αποτελέσματα της εξομοίωσης, όπως και μετρήσεων δίνονται παρακάτω. Σχήμα 2.19 Pin layout του LM393 27

Σχήμα 2.20 Είσοδος συγκριτή τάσης σε σχέση με την έξοδό του Σχήμα 2.21 Πραγματική έξοδος ενισχυτή μαζί με έξοδο του συγκριτή τάσης 28

Σχήμα 2.22 Ολοκληρωμένο κύκλωμα του δέκτη 2.4 Αξιολόγηση λειτουργίας πομπού-δέκτη Θέτοντας σε λειτουργία τον πομπό και δέκτη, παίρνουμε το εξής στιγμιότυπο από τον παλμογράφο, στο οποίο απεικονίζονται αντίστοιχα τα σήματα εκπομπής και λήψης (σχήμα 2.23). Το κανάλι 1 (CH1) απεικονίζει το σήμα το οποίο διεγείρει τον πομπό και το κανάλι 2 (CH2) απεικονίζει το ληφθέν σήμα (πριν την μετατροπή του σε τετραγωνικό παλμό 0-5 V). Σχήμα 2.23 Στιγμιότυπο σήματος εκπομπής και λήψης 29

Παρατηρούμε πως το CH2 δείχνει να υπάρχει σήμα στον δέκτη κατά την διάρκεια της εκπομπής του burst. Αυτό οφείλεται σε θόρυβο που δημιουργείται κατά την διέγερση του πομπού και είναι ανεπιθύμητος καθώς μπορεί να μας δώσει λανθασμένες τιμές. Μελετώντας τα παραπάνω δεδομένα, μπορούμε να βγάλουμε το συμπέρασμα ότι ο θόρυβος αυτός διαρκεί για λιγότερο του 1ms. Η επίλυση του προβλήματος αυτού δίνεται με την «απενεργοποίηση» του συστήματος αναγνώρισης του εξωτερικού σήματος για αυτό το χρονικό διάστημα. Περισσότερα γι αυτό στο επόμενο κεφάλαιο που θα αναλυθεί η λειτουργία του μικροελεγκτή και ο ρόλος που θα διατελέσει στην όλη εργασία. 2.5 Μικροελεγκτής 2.5.1 Γενικά Χαρακτηριστικά Όπως αναφέρθηκε ήδη, ο εγκέφαλος της όλης εργασίας αποτελείται από τον PIC 16F877A[10]. Ο PIC 16F877A είναι ένας 8-bit RISC μικροελεγκτής γενικού σκοπού με flash μνήμη 8K λέξεων, 256 byte EEPROM, 5 I/O ports, δυνατότητα σύνδεσης εξωτερικού κρυστάλλου έως 20MHz, 2 συγκριτές τάσης, μια USART, δυνατότητα για spi/i2c επικοινωνία, τάση τροφοδοσίας έως 5.5V, 8 DAC των 10 bit, 3 Timers (1x 16 bit, 2x8 bit) και δυνατότητα εξωτερικών interrupt, κάτι το οποίο θα αναλυθεί αργότερα. Στην παρούσα διπλωματική εργασία έγινε χρήση του 40-pin DIP (Dual Inline Package) πακέτου με εξωτερικό κρύσταλλο στα 16MHz και τάση τροφοδοσίας στα 5V. Η χρήση του έγινε όχι μόνο λόγω του χαμηλού κόστους και της πληθώρας των περιφερειακών του, αλλά επίσης για τον λόγο ότι η μνήμη που είναι διαθέσιμη είναι αρκετή όχι μονό για την ανάπτυξη του απαιτούμενου firmware, αλλά και για περαιτέρω βελτιώσεις και προσθήκες. παρακάτω. Τα χαρακτηριστικά του μικροελεγκτή παρατίθεται 30

Σχήμα 2.24 Pin layout του PIC16F877A Σχήμα 2.25 Τεχνικά χαρακτηριστικά του μικροελεγκτή 31

Σχήμα 2.26 Block diagram του PIC 16F877A 32

Σχήμα 2.27 Επεξήγηση των pin του PIC16F877A 33

Σχήμα 2.28 Επεξήγηση των pin του PIC16F877A (Συνέχεια) 2.5.2 Επιλογή κρυστάλλου Ο PIC16F877A έχει 4 τρόπους λειτουργίας ταλαντωτή LP Low-Power Crystal XT Crystal/Resonator HS High-Speed Crystal/Resonator RC Resistor/Capacitor Λόγω του ότι χρησιμοποιείται ένας κρύσταλλος των 16MHz, ο τρόπος λειτουργίας θα είναι ο HS και η συνδεσμολογία φαίνεται στην εικόνα 2.29. Οι πυκνωτές C1,C2 που χρησιμοποιήθηκαν είχαν τιμή 18pF σύμφωνα με τον πίνακα 2.30. Σχήμα 2.29 Συνδεσμολογία ταλαντωτή Σχήμα 2.30 Πίνακας επιλογής πυκνωτών 34

2.5.3 Timers Timer1 Ο Timer1 είναι ένας 16-bit timer/counter αποτελούμενος από 2 8-bit καταχωρητές (TMR1H and TMR1L) οι οποίοι μπορούν να γραφούν και να διαβαστούν. Το ζευγάρι αυτό των καταχωρητών αυξάνεται από την τιμή 0000h έως FFFFh (65536) και ξανά επιστρέφει στην τιμή 0000h. To interrupt του Timer1, εάν ενεργοποιηθεί, δημιουργείται κατά την μετάβαση από την τιμή FFFFh στην 0000h (overflow) και κάνει latch το interrupt flag bit TMR1IF. Αυτό το interrupt μπορεί να ενεργοποιηθεί/απενεργοποιηθεί με το interrupt enable bit TMR1IE. Περισσότερα για τα interrupts στην σχετική υποενότητα. Ο Timer1 μπορεί να λειτουργήσει σαν timer η counter. Ένα από τα χαρακτηριστικά του είναι ότι διαθέτει prescaler, που σημαίνει ότι μπορεί να ρυθμιστεί το πόσο «γρήγορα» η «αργά» θα αυξάνεται ο μετρητής. Στην προκειμένη περίπτωση η συχνότητα λειτουργίας του μικροελεγκτή είναι 4MHz για κρύσταλλο 16MHz (στους PIC μικροελεγκτές υπολογίζουμε την συχνότητα λειτουργίας ως το ένα τέταρτο της ονομαστικής). Αυτό σημαίνει ότι με prescaler 1:1 ο Timer1 θα αυξάνει κατά μια μονάδα κάθε 250ns (1 κύκλος ρολογιού). Δηλαδή θα κάνει overflow (65536 επαναλήψεις) κάθε 16.385ms. Εάν ο prescaler γίνει 1:4 τότε θα έχουμε 1 αύξηση κάθε 4 κύκλους ρολογιού, άρα κάθε 1 μs. Αυτό σημαίνει ότι το overflow θα γίνει σε περίπου 65ms. Timer2 Ένας άλλος Timer που θα χρησιμοποιηθεί είναι ο Timer2. Αποτελείται από έναν 8-bit Timer με prescaler και postscaler. Λόγω της τελευταία ιδιότητας είναι ιδανικός για την χρήση του στην PWM (Pulse width Modulation) λειτουργία του CCP περιφερειακού (Capture/Compare/PWM Module). Ο Timer2 έχει έναν 8-bit καταχωρητή για την περίοδο, τον PR2 και αυξάνει από την τιμή 00h έως την τιμή του PR2 που έχει οριστεί και έπειτα ξαναμηδενίζεται. 35

Σχήμα 2.31 Καταχωρητής ελέγχου του Timer1 Σχήμα 2.32 Καταχωρητής ελέγχου του Timer2 36

Σχήμα 2.33 Block diagram του Timer2 2.5.4 CCP Module Κάθε Capture/Compare/PWM module περιέχει ένα 16-bit καταχωρητή, ο οποίος μπορεί να λειτουργήσει σαν: 16-bit Capture καταχωρητής. 16-bit Compare καταχωρητής. PWM Master/Slave Duty Cycle καταχωρητής. Το CCP1 module είναι παρόμοιο στην λειτουργία με το CCP2. Για τις ανάγκες της δημιουργίας ενός τετραγωνικού παλμού συχνότητας 40kHz, ο οποίος θα διεγείρει τον πομπό υπερήχων, χρησιμοποιήθηκε το CCP1 module (και αντιστοίχως το CCP1 pin σαν έξοδος για το σήμα αυτό) σε PWM λειτουργία, το οποίο αξιοποιεί τον Timer2 όπως φαίνεται από τον παρακάτω πίνακα. Σχήμα 2.34 Αντιστοίχηση timer για την ανάλογη χρήση PWM λειτουργία Κατά την PWM λειτουργία, το CCP1 pin παράγει μια PWM έξοδο, η οποία έχει ανάλυση έως και 10 bit. Η έξοδος αυτή χαρακτηρίζεται από μια περίοδο, όπως επίσης και από το duty cycle, τον χρόνο κατά τον οποίο είναι on, όπως φαίνεται και από την επόμενη εικόνα. 37

Σχήμα 2.35 Επεξήγηση του PWM Σχήμα 2.36 Block diagram του CCP1 Σχήμα 2.37 Καταχωρητής ελέγχου του CCP1 38

Η περίοδος της PWM εξόδου εξαρτάται από τον PR2 καταχωρητή και μπορεί να υπολογιστεί από την σχέση 2.3, με την συχνότητα PWM να ορίζεται ως το ανάστροφο της περιόδου. (2.3) Όταν ο TMR2 γίνει ίδιος με την τιμή του PR2 τότε συμβαίνουν τα εξής τρία γεγονότα Ο TMR2 γίνεται clear To CCP1 pin γίνεται set Το PWM duty cycle κάνει latch από τον καταχωρητή CCPR1L στον CCPR1H Το duty cycle καθορίζεται γράφοντας στον CCPR1L καταχωρητή και στα bit 4 και 5 του CCP1CON. Η μέγιστη ανάλυση(resolution) του σήματος είναι 10 bit. O CCPR1L περιέχει τα οκτώ πιο σημαντικά ψηφία (MSB-Most Significant Bits), ενώ στα bit 4 και 5 του CCP1CON περιέχει τα 2 λιγότερο σημαντικά ψηφία (LSB- Least Significant Bit). Αυτή η 10 bit τιμή παριστάνεται από το CCPR1L:CCP1CON<5:4>. Η παρακάτω εξίσωση χρησιμοποιείται για να υπολογιστεί το duty cycle του PWM. (2.4) Τέλος, η μέγιστη ανάλυση (bits) δοθείσας συχνότητας PWM δίνεται από την παρακάτω μαθηματική φόρμουλα. Όλα τα παραπάνω δεδομένα μπορούν να συνοψιστούν στην παρακάτω λίστα, η οποία αφορά το πώς θα οριστεί και θα λειτουργήσει το PWM module. (2.5) Τίθεται η συχνότητα του σήματος, γράφοντας τον PR2 καταχωρητή Τίθεται το duty cycle του σήματος γράφοντας στον καταχωρητή CCPR1L καθώς και στα bit 4 και 5 του CCP1CON Τίθεται το CCP1 pin σαν έξοδος Τίθεται o prescaler του TMR2 και ενεργοποιείται ο Timer2 Ορίζεται το CCP1 module σε λειτουργία PWM 39

2.5.5 Interrupts Τα interrupts είναι διαδικασίες οι οποίες σταματούν την κανονική ροή του προγράμματος που τρέχει ο μικροελεγκτής για να ικανοποιήσουν συνθήκες μεγαλύτερης προτεραιότητας. Αφού ικανοποιηθούν οι συνθήκες αυτές, μέσω μιας ρουτίνας εξυπηρέτησης- ISR: Interrupt Service Routine, το πρόγραμμα επιστρέφει στην κανονική λειτουργία του. Ζωτικής σημασίας ρόλο στην όλη εργασία έχει το εξωτερικό interrupt ΙΝΤ, το οποίο θα αναλυθεί στην συνέχεια. Το interrupt στο RB0/INT pin του μικροελεγκτή είναι edge triggered, που σημαίνει ότι ενεργοποιείται είτε με ανερχόμενη ή πίπτουσα παρυφή, ανάλογα με την τιμή του INTEDG bit του OPTION_REG καταχωρητή. Σχήμα 2.38 Καταχωρητής επιλογής-option Register Όταν μια έγκυρη παρυφή εμφανιστεί στο RB0/INT pin, τότε το interrupt flag INTF (INTCON<1>) γίνεται set. Το interrupt αυτό μπορεί να απενεργοποιηθεί με το να γίνει clear το enable bit, INTE (INTCON<4>). Σημαντική παρατήρηση: Το INTF πρέπει να γίνει clear στην Interrupt Service Routine πριν ξανά ενεργοποιηθεί το συγκεκριμένο interrupt. 40

Σχήμα 2.39 Προτεραιότητα των Interrupt στον PIC16F877A Σχήμα 2.40 Καταχωρητής ελέγχου Interrupt 41

Σχήμα 2.41 Καταχωρητής ελέγχου Interrupt (συνέχεια) 2.5.6 USART Το τελευταίο περιφερειακό το οποίο χρησιμοποιήθηκε για τις ανάγκες της διπλωματικής αυτής είναι το USART- Universal Synchronous Asynchronous Receiver Transmitter, ένα από τα 2 σειριακά περιφερειακά του PIC16F877A. Το USART μπορεί να ρυθμιστεί σαν ένα full-duplex ασύγχρονο σύστημα το οποίο είναι ικανό να επικοινωνήσει με περιφερειακές συσκευές, όπως ο προσωπικός υπολογιστής στην συγκεκριμένη περίπτωση. Στον ασύγχρονο τρόπο λειτουργίας, το USART χρησιμοποιεί ένα συγκεκριμένο πρότυπο επικοινωνίας το οποίο αποτελείται από ένα start bit, 8 bit δεδομένων και ένα stop bit. Ο ρυθμός αποστολής -baud rate- ρυθμίζεται από εσωτερική γεννήτρια η οποία είναι ειδικά ρυθμισμένη να παράγει μια τυποποιημένη γκάμα ρυθμών αποστολής. Στην παρακάτω εικόνα φαίνεται πως στέλνονται 2 λέξεις η μια μετά της άλλη από τον σειριακό transmitter του μικροελεγκτή. Σχήμα 2.42 Ασύγχρονη αποστολή δεδομένων (back to back) 42

2.6 DS18B20 Το DS18B20 είναι ένας αισθητήρας θερμοκρασίας[11] που παρέχει 9-bit έως 12-bit μετρήσεις στην κλίμακα Κελσίου και επικοινωνεί μέσω του 1-Wire διαύλου, ο οποίος εξ ορισμού απαιτεί μόνο μια γραμμή, με ένα κεντρικό μικροελεγκτή. Έχει εύρος τιμών από τους - 55 έως +125 C και ακρίβεια ±0.5 C όταν βρίσκεται ανάμεσα στους -10 έως +85 C. Μπορεί, επιπλέον, να λειτουργήσει παρασιτικά στο κύκλωμα, τροφοδοτούμενο από την γραμμή δεδομένων, με αποτέλεσμα να μην χρειαστεί εξωτερική τροφοδοσία. Σχήμα 2.43 Pin layout του DS18B20 Σχήμα 2.44 Block diagram του DS18B20 43

Η κύρια λειτουργία του DS18B20 είναι ο ψηφιακός αισθητήρας μέτρησης θερμοκρασίας. Η ανάλυση του ρυθμίζεται από τον χρήστη σε 9, 10, 11, 12 bit και βήμα που αντιστοιχεί σε μεταβολές 0.5 C, 0.25 C, 0.125 C, 0.0625 C. Η προκαθορισμένη ανάλυση είναι 12 bit. Όταν τροφοδοτηθεί ο αισθητήρας, βρίσκεται σε κατάσταση αναμονής. Για να ξεκινήσει μια μέτρηση θερμοκρασίας και να γίνει η μετατροπή της σε ψηφιακή τιμή, χρειάζεται να του σταλθεί το 44h (44 HEX) το οποίο είναι η Convert T εντολή. Μετά την μετατροπή, τα δεδομένα αποθηκεύονται σε έναν καταχωρητή 2 byte και το DS18B20 επιστρέφει στην κατάσταση αναμονής. Σχήμα 2.45 Καταχωρητής θερμοκρασίας Τα sign bits (S) υποδηλώνουν αν η θερμοκρασία είναι θετική ή αρνητική. Για θετικούς αριθμούς S=0 και για αρνητικούς S=1. Εάν το DS18B20 έχει ρυθμιστεί για 12 bit ανάλυση τότε όλα τα bit στον καταχωρητή θερμοκρασίας θα περιέχουν έγκυρα δεδομένα. Για 11 bit ανάλυση το bit 0 μένει απροσδιόριστο. Για 10 bit ανάλυση, τα bit 0 και 1 είναι απροσδιόριστα και για 9 bit ανάλυση απροσδιόριστα θα μείνουν τα bit 0, 1 και 2. Η μνήμη του DS18B20 είναι οργανωμένη όπως στην εικόνα (τάδε). Αποτελείται από ένα SRAM sketchpad (Static Ram) με μη πτητική (nonvolatile) EEPROM μνήμη, η οποία περιέχει τους TH και TL καταχωρητές που λειτουργούν σαν καταχωρητές γενικού σκοπού στην περίπτωση μας, όπως και τον καταχωρητή ρύθμισης (configuration register). Τα byte 0 και 1 περιέχουν το LSB και το MSB του καταχωρητή θερμοκρασίας και είναι για ανάγνωση μόνο. Τα byte 2 και 3 παρέχουν πρόσβαση στους TH και TL καταχωρητές. Το byte 4 περιέχει τα δεδομένα του configuration register. Τα bytes 5,6 και 7 είναι για εσωτερική χρήση και δεν μπορούν να αντικατασταθούν. Τέλος το byte 8 είναι μόνο για ανάγνωση και περιέχει τον CRC κωδικό, έναν κωδικό που δίνει μοναδική ταυτότητα στην συγκεκριμένη συσκευή που χρησιμοποιείται, μια λειτουργία που εμείς δεν θα χρησιμοποιήσουμε και δεν θα αναλύσουμε. 44

Σχήμα 2.46 Δομή της μνήμης Το σύστημα επικοινωνίας του αισθητήρα ονομάζεται 1-Wire, λόγω της μίας γραμμής που χρειάζεται για τον έλεγχό του και αποστολή των δεδομένων του όπως αναφέρθηκε πιο πάνω. Η αποστολή των δεδομένων γίνεται με το LSB πρώτο. Αυτό συμβαίνει μέσω μιας θύρας 3-state η open-drain, η οποία απαιτεί μια εξωτερική pull- up αντίσταση περίπου 5kΩ και επιτρέπει την συσκευή να αποδεσμεύσει την γραμμή όταν δεν αποστέλλει δεδομένα για να είναι διαθέσιμη προς χρήση από κάποια άλλη. Η 1-Wire θύρα του DS18B20 είναι open drain με το ισοδύναμο κύκλωμα να φαίνεται στην εικόνα 2.47. Σχήμα 2.47 Τρόπος διασύνδεσης Η όλη διαδικασία για την πρόσβαση και απόκτηση των δεδομένων του αισθητήρα μπορεί να συνοψισθεί στα παρακάτω βήματα: 45

Αρχικοποίηση Εντολή προς την ROM Λειτουργία του DS18B20 Όλες οι διαδικασίες στον 1-Wire δίαυλο ξεκινούν με μια ακολουθία αρχικοποίησης. Η ακολουθία αυτή αποτελείται από έναν παλμό επανεκκίνησης που αποστέλλεται από τον κύριο (master) ακολουθούμενο από παλμούς επιβεβαίωσης από τον σκλάβο (slave). Η παρουσία του παλμού γνωστοποιεί τον master ότι υπάρχουν slave συσκευές έτοιμες για χρήση. Σχήμα 2.48 Διάγραμμα χρονισμού αρχικοποίησης Αφού εντοπιστεί η συσκευή, τότε δίνονται μια σειρά από εντολές στην ROM ώστε να δημιουργηθεί μια μοναδική 64-bit ταυτότητα της συσκευής για να ξεχωρίζει από τις υπόλοιπες οι οποίες είναι πιθανόν να είναι συνδεδεμένες. Καθώς θα χρησιμοποιήσουμε μόνο μια συσκευή, η πλειονότητα των εντολών για την ROM δεν μας είναι χρήσιμες. Γι αυτό τον λόγο χρησιμοποιούμε την εντολή [CCh] η οποία εκείνο που κάνει είναι να παραβλέψει όλη την διαδικασία αναγνώρισης της ROM και να προχωρήσουμε στις εντολές λειτουργίας του αισθητήρα. Εφόσον δοθούν οι εντολές προς την ROM, έρχεται η σειρά των εντολών λειτουργίας του DS18B20. Αυτές οι εντολές επιτρέπουν την εγγραφή στο scratchpad, την εκκίνηση μετατροπής θερμοκρασίας, ακόμα και τον προσδιορισμό του τρόπου τροφοδοσίας. Από το σύνολο όλων των εντολών χρησιμοποιούμε τις ακόλουθες: Μετατροπή θερμοκρασίας (Convert T) [44h] και 46

ανάγνωση του scratchpad (Read scratchpad) [Beh]. Η Convert T ξεκινά την μετατροπή θερμοκρασίας, κατά την οποία τα δεδομένα αποθηκεύονται στα 2 byte του καταχωρητή θερμοκρασίας στην scratchpad μνήμη και το DS18B20 σε κατάσταση αναμονής. Η Read scratchpad επιτρέπει στον master να διαβάσει τα δεδομένα του scratchpad. Η μεταφορά δεδομένων ξεκινά με το LSB του byte 0 και συνεχίζει μέχρι να φτάσει και να διαβάσει το 9 ο byte του scratchpad. Συνοψίζοντας τα παραπάνω, η διαδικασία που θα ακολουθήσουμε για να πάρουμε την θερμοκρασία είναι η εξής Ανίχνευση της συσκευής σύμφωνα με την εικόνα 2.48 Αποστολή της εντολής [CCh] προς την συσκευή διότι δεν μας ενδιαφέρει η μοναδική id της Αποστολή της εντολής [44h] για την μετατροπή της θερμοκρασίας Αποστολή της εντολής [Beh] για την ανάγνωση της θερμοκρασίας Οι χρονισμοί της αποστολή εντολών, όπως και λήψης δεδομένων φαίνονται στο σχήμα 2.49. Τα δεδομένα μεταφέρονται ανά ένα bit σε χρονικές περιόδους που ονομάζονται time slots. Οι time slots εγγραφής, όπως και ανάγνωσης πρέπει να έχουν διάρκεια τουλάχιστον 60 μs με τουλάχιστον 1μs διάστημα αναμονής ανάμεσα σε διαδοχικά slots. Η συνδεσμολογία του αισθητήρα φαίνεται στο σχήμα 2.50. Συνδέουμε τα pin 1 και 3 με την γη και την τροφοδοσία αντίστοιχα, ενώ το data/control pin 2 το συνδέουμε με το RA0 pin του μικροελεγκτή μέσω του οποίου θα στείλουμε τις εντολές ελέγχου, όπως και θα λάβουμε τις αντίστοιχες τιμές της θερμοκρασίας. Ο ολοκληρωμένος κώδικας φαίνεται στο παράρτημα Α1. 47

Σχήμα 2.49 Διαγράμματα χρονισμού εγγραφής και ανάγνωσης από το DS18B20 Σχήμα 2.50 Συνδεσμολογία του DS18B20 με τον μικροελεγκτή. 48

2.7 FT232RL Για την επικοινωνία μεταξύ της πλακέτας και του υπολογιστή, χρησιμοποιήθηκε το ολοκληρωμένο FT232RL της FTDI. Αποτελεί έναν σειριακό σε usb μετατροπέα[12] ο οποίος έχει αρκετά χαρακτηριστικά που τον κάνουν ελκυστικό για χρήση όπως: Ολοκληρωμένη διεπαφή για την μεταφορά δεδομένων σειριακά μέσω usb Τα ολοκληρωμένο χειρίζεται όλο το usb πρωτόκολλο εσωτερικά, χωρίς την ανάγκη για ειδικό προγραμματισμό του Μεγάλη γκάμα υποστηριζόμενων ρυθμών μεταφοράς από 300 baud έως 3M baud σε TTL επίπεδα Οι Virtual Com Port (VCP) drivers που δίνονται από την FTDI εξαλείφουν την ανάγκη για ανάπτυξη εκ νέου usb drivers Υποστήριξη της UART για 7 ή 8 data bits, 1 ή2 stop bits και odd ή even ή space ή no parity Χαμηλή κατανάλωση ρεύματος, όπως και εύρος ζώνης (bandwidth) του usb Σχήμα 2.51 Pin layout του ολοκληρωμένου 49

Σχήμα 2.52 Block diagram του FT232RL Σχήμα 2.53 Συνδεσμολογία ολοκληρωμένου 50

Στην παραπάνω εικόνα φαίνεται ο τρόπος σύνδεσης του ολοκληρωμένου με το usb βύσμα. Οι αριθμοί 1-4 δείχνουν την αντιστοιχία του κάθε pin, με 1 τα 5V τροφοδοσίας από την θύρα usb και 4 την γείωση (τα 2 και 3 αποτελούν pin μεταφοράς δεδομένων). Η σχεδίαση έγινε με βάση παράδειγμα το οποίο προσφέρει η ίδια η εταιρία για το προϊόν της, όσον αφορά την συγκεκριμένη περίπτωση. Μια λεπτομέρεια που αξίζει να σημειωθεί, είναι πως την θέση του στοιχείου Ferrite bead στο παρακάτω σχέδιο πήρε ένα απλό τυπωμένο πηνίο το οποίο σχεδιάστηκε πάνω στην πλακέτα και έχει τον ίδιο ρόλο (σχήμα 2.55). Σχήμα 2.54 Τρόπος σύνδεσης με μικροελεγκτή Σχήμα 2.55 Τυπωμένο πηνίο 51

Η σύνδεση του ολοκληρωμένου με τον μικροελεγκτή έγινε με βάση το παραπάνω σχέδιο (σχήμα 2.54). Πιο συγκεκριμένα, τα TX και RX pin του ολοκληρωμένου συνδέθηκαν με τα RX και TX pin του μικροελεγκτή αντίστοιχα, μέσω μια αντίστασης 1k Ohm. Σχήμα 2.56 Σύνδεση ολοκληρωμένου με τον PIC16F877A Εφόσον αναφέρθηκε ήδη ότι το ολοκληρωμένο αναλαμβάνει να κάνει όλη την δουλειά χωρίς να χρειάζεται ο χρήστης να αναπτύξει drivers η ειδικό λογισμικό, η επικοινωνία έχει σχεδόν επιτευχτεί. Με την σύνδεση του κυκλώματος στον υπολογιστή θα εμφανιστεί ένδειξη για ύπαρξη νέας σειριακής θύρας και ανοίγοντας την θύρα αυτή θα μπορέσουμε να πάρουμε τα δεδομένα που στέλνει ο μικροελεγκτής χωρίς περαιτέρω δυσκολία. Αξίζει να σημειωθεί ότι δεν χρησιμοποιήθηκε κάποια μέθοδος για τον έλεγχο ροής (flow control) οπότε ο συγχρονισμός και η σταθερή λειτουργία του μικροελεγκτή πρέπει να ικανοποιούν τις συνθήκες αυτές. Ένα πρόβλημα το οποίο παρουσιάστηκε κατά τον έλεγχο της σειριακής επικοινωνίας με τον υπολογιστή ήταν πως το MCLR pin του μικροελεγκτή ήταν στον αέρα (floating) και προκαλούσε reset σε άτακτα χρονικά διαστήματα. Αποτέλεσμα τούτου ήταν να έρχονται δεδομένα τα οποία δεν καταλάβαινε ο υπολογιστής με αποτέλεσμα να μην απεικονίζονται σωστά δεδομένα (σχήμα 2.57). 52

Σχήμα 2.57 Πρόβλημα στην επικοινωνία Η λύση δόθηκε από την εξής συνδεσμολογία, η οποία διασφάλισε την ομαλή λειτουργία του συστήματος. Συνδέοντας το MCLR pin με την τάση τροφοδοσίας μέσω μιας αντίστασης R, η τιμή της οποίας κυμαίνεται από 1k - 10k Ohm, θέτουμε το σύστημά μας σε μια κατάσταση συνεχούς λειτουργίας, διότι απαλείψαμε το reset με αυτόν τον τρόπο. Σχήμα 2.58 Διόρθωση προβλήματος 53

3. Δομή Συστήματος Λογισμικό (Software) 3.1 Προγραμματισμός μικροελεγκτή-firmware Όλες οι ανωτέρω λειτουργίες που αναφέρθηκαν συνδυάζονται με το firmware του μικροελεγκτή. Ο προγραμματισμός έγινε σε γλώσσα C στον compiler της CCS. Το παρακάτω διάγραμμα δείχνει τα διαφορετικά στάδια του αλγορίθμου που εκτελούνται από την στιγμή που τροφοδοτείται ο μικροελεγκτής. Σχήμα 3.1 Block diagram δομής του firmware Αρχικά έχουμε την παραμετροποίηση της λειτουργίας του ταλαντωτή, η οποία είναι 16MHz σε HS τρόπο λειτουργίας. Έπειτα τον καθορισμό της RS-232 επικοινωνίας, δηλαδή ορίζουμε το baud rate, τον αριθμό των μεταφερόμενων bit, τα transmit και receive pin του μικροελεγκτή, το parity και το flow control. Σειρά έχει ο ορισμός του PWM, δηλαδή καθορισμός του CCP1 module που θα χρησιμοποιηθεί καθώς και το pin εξόδου, του Timer2 που θα χρησιμοποιηθεί σε αυτό και τελικά την συχνότητα και το duty cycle της κυματομορφής. Μετά από αυτές τις αρχικές συνθήκες είναι επόμενο να καθορίσουμε τις Interrupt Service Routines για τα Interrupt του Timer1 και του External Interrupt. 54

Προχωρώντας στην κύρια (ΜΑΙΝ) λειτουργία του προγράμματος, έχουμε καθορισμό του External Interrupt να είναι σε ανερχόμενη παρυφή, ενώ αρχικοποιούμε τον Timer1 να ξεκινά από το 0. Έπειτα μπαίνουμε σε έναν ατέρμονα βρόχο στον οποίο γίνεται η εξής ακολουθία βημάτων: Διάβασμα θερμοκρασίας και αποθήκευσή της τιμής σε μια μεταβλητή θερμοκρασίας Ενεργοποίηση PWM Αναμονή 0.5 ms για να γίνει η εκπομπή. Απενεργοποίηση PWM Αναμονή 1ms για την αποφυγή λάθους λόγω θορύβου Αρχικοποίηση μεταβλητής που αποθηκεύει τον χρόνο Καθαρισμός και ενεργοποίηση των Interrupt Εάν περάσουν παραπάνω από 65 ms χωρίς εξωτερικό σήμα, έχουμε απενεργοποίηση των Interrupt Εάν έχουμε εξωτερικό Interrupt μέσα στο χρονικό διάστημα αυτό, τότε αποθηκεύουμε την τιμή του Timer1 στην μεταβλητή χρόνου, επίσης έχουμε πάλι απενεργοποίηση των Interrupt Σειριακή μεταφορά της μεταβλητής που έχει μέσα την τιμή της θερμοκρασίας και αυτή που έχει αποθηκευμένη την τιμή του χρόνου Επιστροφή στο πρώτο βήμα Επεξήγηση[13] των επιμέρους εντολών του κώδικα: #FUSES HS #use delay(clock = 16000000) Ρύθμιση σε HS Mode και ορισμός συχνότητας στα 16MHz. #use rs232 (baud=9600, parity=n, xmit=pin_c6, rcv=pin_c7, bits=8) Ορισμός παραμέτρων RS232 επικοινωνίας (9600 baud, No parity, 8 data bits), όπως και ορισμός του transmit και receive pin του μικροελεγκτή. #use PWM (ccp1, frequency=40 khz, duty=50) Ορισμός του CCP1 module για PWM χρήση με 40 KHz συχνότητα και 50% duty cycle 55

enable_interrupts(); Σαν όρισμα παίρνει το interrupt που θέλουμε να ενεργοποιήσουμε disable_interrupts(); Αντίστοιχα, απενεργοποιείται το αντίστοιχο interrupt clear_interrupt (); Κάνει clear το interrupt που έχουμε σαν όρισμα. Κύρια χρήση του για το εξωτερικό interrupt ext_int_edge (L_TO_H); Θέτει το εξωτερικό interrupt να διεγείρεται με ανερχόμενη παρυφή setup_timer_1 (T1_INTERNAL T1_DIV_BY_4); Θέτει τον Timer1 να έχει εσωτερική διέγερση και prescaler 1:4 pwm_on();/pwm_off(); Ενεργοποιεί/απενεργοποιεί το PWM delay_ms (); / delay_us (); Delay σε ms/us Printf (); Σειριακή αποστολή του ορίσματος Ο ολοκληρωμένος κώδικας βρίσκεται στο παράρτημα A1. 3.2 Προγραμματισμός διεπαφής χρήστη Για την δημιουργία διεπαφής (interface) χρησιμοποιήθηκε το Visual Studio λόγω της ευκολίας χρήσης και του απλού περιβάλλοντος. Η εφαρμογή προγραμματίστηκε στην c#, η οποία είναι μια αρκετά απλή, αντικειμενοστρεφής γλώσσα. Κατά την φόρτωση της φόρμας, έχουμε αρχικοποίηση των RS232 μεταβλητών όπως τη σειριακή θύρα με την ποία θα επικοινωνήσουμε, το baud rate, το parity, ο αριθμός των data bits καθώς και το stop bit με τον εξής τρόπο: myserialport = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One); 56

Κάθε φορά που έχουμε σειριακή λήψη δεδομένων (Data Received Event), αυτό που κάνει το πρόγραμμα είναι το εξής: Διαβάζει τον σειριακό buffer, ο οποίος έχει αποθηκευμένα τα δεδομένα που έχουν σταλεί από τον μικροελεγκτή και έχουν την δομή που φαίνεται στην εικόνα 3.2. Temperature \t Time \n Σχήμα 3.2 Δομή buffer Η ανάγνωση του buffer γίνεται μέχρι τον χαρακτήρα \n ο οποίος υποδηλώνει new line και έπειτα το string που έχει ληφθεί σπάει σε 2 μικρότερα string τα οποία χωρίζονται με τον χαρακτήρα tab (\t) μεταξύ τους. Το πρώτο δείχνει της θερμοκρασία, ενώ το δεύτερο δείχνει τον χρόνο που υπολογίστηκε από τον Timer1 του μικροελεγκτή. Η διάσπαση γίνεται με την μέθοδο Split() και φαίνεται παρακάτω. SerialPort sp = (SerialPort)sender; string s = sp.readline(); string[] s1= s.split('\t'); Αφού έχουμε πάρει τις τιμές των μεταβλητών αυτών, το μόνο που απομένει είναι να υπολογιστεί η ταχύτητα του ήχου ανάλογα με τη θερμοκρασία σύμφωνα με τον τύπο 1.1 και η απόσταση σύμφωνα με τον τύπο 1.3. Ο ολοκληρωμένος κώδικας βρίσκεται στο παράρτημα Α2. Στην εικόνα τάδε φαίνεται ένα στιγμιότυπο από το πρόγραμμα κατά την εκτέλεσή του καθώς και τα δομικά στοιχεία της εφαρμογής. 1. Πλήκτρο για άνοιγμα της θύρας 2. Πλήκτρο για κλείσιμο της θύρας 3. Πλήκτρο για εκκαθάριση των δεδομένων 4. Πλήκτρο για επανεκκίνηση 5. Επιλογή αλλαγής γλώσσας 6. Εμφάνιση θερμοκρασίας 7. Εμφάνιση ταχύτητας που υπολογίστηκε 8. Εμφάνιση χρόνου που μέτρησε ο Timer1 του μικροελεγκτή 9. Εμφάνιση της απόστασης 57

Σχήμα 3.3 Στιγμιότυπο προγράμματος 58

4. Πειραματική Διάταξη- Μετρήσεις 4.1 Μαθηματικά Εργαλεία Για την πειραματική διάταξη χρησιμοποιήθηκε ένας πάγκος του εργαστηρίου, στον οποίο τοποθετήθηκε μετρητική διάταξη (μετροταινία). Στην μια άκρη της μετροταινίας τοποθετήθηκε ο πομπός και ο δέκτης ενώ αντικείμενο του οποίου θέλαμε να βρούμε την απόσταση τοποθετήθηκε σε διάφορα σημεία της. Έγιναν 4 ειδών πειράματα: 1 για ακρίβεια, 1 για απόσταση, 1 για απόκλιση ακτίνας και 1 για αξιολόγηση υλικού. Τα μαθηματικά εργαλεία[14] που θα χρησιμοποιηθούν για την αξιολόγηση των μετρήσεων είναι τα εξής: Μέσος αριθμητικός όρος. Το πηλίκο του αθροίσματος όλων των επιμέρους τιμών δια το σύνολο τους. (4.1) Διακύμανση. Διακύμανση είναι ο μέσος όρος των τετραγωνικών αποκλίσεων των τιμών από το μέσο αριθμητικό. Συμβολίζεται με s 2. Αντίθετα με το Εύρος (max min τιμή), που δε λαμβάνει υπόψη τη συμπεριφορά όλων των τιμών του δείγματος, χρησιμοποιούμε τη διακύμανση ως τρόπο μέτρησης που βασίζεται σε όλες τις τιμές των δεδομένων και στον τρόπο που κατανέμονται. Επιπλέον, είναι ο πιο συνηθέστερος μέτρησης της διασποράς που βασίζεται σε όλες τις παρατηρήσεις και ταυτόχρονα μετράει τη συγκέντρωση των τιμών γύρω από το μέσο αριθμητικό. (4.2) Τυπική απόκλιση. Η διακύμανση μετρά τη διασπορά γύρω από τον μέσο σε όρους των τετραγώνων των αποκλίσεων των επιμέρους τιμών. Με άλλα λόγια η διακύμανση δεν εκφράζεται στις ίδιες μονάδες στις οποίες μετριούνται οι αποκλίσεις και ως εκ τούτου δεν μπορεί να χρησιμοποιηθεί ως μέτρο σύγκρισης αυτών. Ωστόσο αν πάρουμε τη θετική τετραγωνική ρίζα της διακύμανσης θα έχουμε τις αποκλίσεις στις ίδιες μονάδες 59

στις οποίες μετριούνται οι τιμές της μεταβλητής. Το μέγεθος αυτό ονομάζεται τυπική απόκλιση και αποτελεί την πιο σημαντική παράμετρο μιας κατανομής. Τυπική απόκλιση είναι η θετική τετραγωνική ρίζα της διακύμανσης και συμβολίζεται με s. (4.3) Μια από τις σπουδαιότερες πληροφορίες που παίρνουμε από την τυπική απόκλιση είναι τα ποσοστά συγκέντρωσης γύρω από το μέσο. Για παράδειγμα εάν μια μεταβλητή Χ έχει μέσο και τυπική απόκλιση s, τότε στο -s και +s συγκεντρώνεται το 68% καθώς και στο -2s και +2s περίπου το 95%. Τέλος σχεδόν το 100% συγκεντρώνεται στο διάστημα -3s και +3s. Ιδιαίτερα σημαντικό στα παραπάνω είναι ότι τα ποσοστά ισχύουν ανεξαρτήτως μονάδας μέτρησης, για όλα τα ποσοτικά χαρακτηριστικά. Σχήμα 4.1 Κανονική Κατανομή Εκατοστιαίο Σφάλμα. Το πηλίκο της διαφοράς της πραγματικής από την θεωρητική τιμή, προς τη θεωρητική τιμή. Πολλαπλασιάζεται με το 100 για να δώσει εκατοστιαίο σφάλμα. (4.4) 60

Εκατοστά 4.2 Πείραμα 1 Κατά το πρώτο πείραμα, τοποθετήθηκε ένα μεταλλικό κουτί μπροστά από το ζεύγος του πομπού και δέκτη, με ενεργή επιφάνεια ανάκλασης 18,8cm * 21,2cm. Το αντικείμενο τοποθετήθηκε αρχικά στα 30cm απόσταση από την διάταξη και η απόσταση του από αυτήν αυξάνονταν κατά 1cm την φορά, μέχρι να φτάσουμε στα 165cm. Σε κάθε σημείο πάρθηκαν τουλάχιστον 300 μετρήσεις. Τα αποτελέσματα των μετρήσεων αντικατοπτρίζονται στις παρακάτω γραφικές παραστάσεις. Μέσος Όρος 190 180 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Εκατοστά Σχήμα 4.2 Μέσος όρος 100 105 110 115 120 125 130 135 140 145 150 155 160 165 Υπολογισμένη Αναφοράς Γραφική παράσταση του μέσου όρου των τιμών σε κάθε σημείο. Στον άξονα x απεικονίζονται τα σημεία στα οποία έγινε μέτρηση και στον άξονα y είναι οι αντίστοιχες μετρήσεις που έγιναν. Ο στόχος μας είναι η καμπύλη που θα σχηματιστεί από τις μετρήσεις να πλησιάζει όσο το δυνατόν περισσότερο σε μια καμπύλη του τύπου y=x, η οποία είναι στο παράρτημα και ως καμπύλη αναφοράς. Φαίνεται ότι υπάρχει μια καλή προσέγγιση της καμπύλης αυτής, τουλάχιστον μέχρι τα 135cm. 61

30 34 38 42 46 50 54 58 62 66 70 74 78 82 86 90 94 98 102 106 110 114 118 122 126 130 134 138 142 146 150 154 158 162 Διακύμανση 16 14 12 10 8 6 4 2 0 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 Εκατοστά Σχήμα 4.3 Διακύμανση των μετρήσεων Τυπική Απόκλιση 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0 Εκατοστά Σχήμα 4.4 Τυπική απόκλιση των μετρήσεων 62

Αντιστοίχως, βλέπουμε ότι μέχρι τα 135cm υπάρχει μια τυπική απόκλιση έως 0,3. Αυτό μπορεί να ερμηνευτεί ότι το 95% των τιμών θα βρίσκονται στο ±0,6cm του μέσου όρου, κάτι το πολύ ενθαρρυντικό. Φαίνεται επίσης ότι μετά το σημείο εκείνο αρχίζει και χαλάει η συνοχή των τιμών, με την τυπική απόκλιση να τριπλασιάζεται. Απώλεια Δεδομένων (%) 60 50 40 30 35 40 45 50 55 60 65 70 75 80 85 90 95 30 20 10 0 Εκατοστά Σχήμα 4.5 Απώλεια δεδομένων 100 105 110 115 120 125 130 135 140 145 150 155 160 165 Κάτι το οποίο ήταν αναμενόμενο, δεν επέστρεφαν όλα τα σήματα τα οποία αποστέλλονταν. Αποτέλεσμα ήταν η απώλεια πακέτων και αντίστοιχη αλλοίωση της αξιοπιστίας των μετρήσεων. Από τα 145cm φαίνεται ότι υπάρχει μια αμυδρή απώλεια πακέτων, η οποία μεγαλώνει με την αύξηση της απόστασης. Οι μετρήσεις σταμάτησαν στα 165cm, όπου και η απώλεια δεδομένων ξεπέρασε το 50%. Εκατοστιαίο σφάλμα. Παρατηρείται ότι για ακραίες τιμές απόστασης, το σφάλμα τείνει να μεγαλώνει, ενώ για μέσες τιμές (70-135cm) το σφάλμα παραμένει κάτω του 3%. Αυτό συμβαίνει αφενός διότι σε μικρές αποστάσεις υπάρχει πάντα το ενδεχόμενο των ανεπιθύμητων ανακλάσεων, αφετέρου στις μεγάλες αποστάσεις έχουμε την εξασθένηση του σήματος και την ανικανότητα του voltage comparator να μας δώσει μια ανεκτή κυματομορφή. 63

Εκατοστιαίο Σφάλμα 8 7 6 5 30 35 40 45 50 55 60 65 70 75 80 85 90 95 4 3 2 1 0 Εκατοστά Σχήμα 4.6 Εκατοστιαίο σφάλμα 100 105 110 115 120 125 130 135 140 145 150 155 160 165 Συμπέρασμα των παραπάνω μετρήσεων είναι πως δεν υπάρχει η ακρίβεια του εκατοστού που είχε αρχικά οριστεί σαν στόχος, όμως βλέπουμε πως υπάρχει σίγουρα μια διαφοροποίηση των τιμών σε λίγο μεγαλύτερη κλίμακα (5cm). Η διακύμανση όπως και η τυπική απόκλιση των τιμών παραμένουν αρκετά μικρές, κάτι που σημαίνει ότι μπορεί να μην έχουμε απόλυτη ακρίβεια (λόγω του 3-5% σφάλματος) αλλά έχουμε αρκετά καλή συνοχή τιμών. 4.3 Πείραμα 2 Κατά το δεύτερο πείραμα, τοποθετήθηκε ένα ξύλινο πλαίσιο μπροστά από το ζεύγος του πομπού και δέκτη, με ενεργή επιφάνεια ανάκλασης 55cm * 87.5cm. Το αντικείμενο τοποθετήθηκε αρχικά στα 35cm απόσταση από την διάταξη και η απόσταση του από αυτήν αυξάνονταν κατά 20cm την φορά, μέχρι να φτάσουμε στα 295cm. Σε κάθε σημείο πάρθηκαν τουλάχιστον 500 μετρήσεις. Τα αποτελέσματα των μετρήσεων αντικατοπτρίζονται στις παρακάτω γραφικές παραστάσεις. 64

Εκατοστά Μέσος Όρος 350 300 250 200 150 Υπολογισμένη Αναφοράς 100 50 0 35 55 75 95 115 135 155 175 195 215 235 255 275 295 Εκατοστά Σχήμα 4.7 Μέσος όρος Όπως και στο πρώτο πείραμα, βλέπουμε τις τιμές που υπολογίσαμε σε σχέση με τις τιμές που θα έπρεπε να είναι. Παρατηρούμε ότι παρόλο που έχουμε μια γενική ομοιότητα των δυο κυματομορφών, διακρίνουμε μια σχετική ανομοιομορφία η οποία ξεκινά από τα 150cm και μεγαλώνει. Διασπορά 0,4 0,35 0,3 0,25 0,2 0,15 0,1 0,05 0 35 55 75 95 115 135 155 175 195 215 235 255 275 295 Εκατοστά Σχήμα 4.8 Διασπορά 65

Τυπική Απόκλιση 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 35 55 75 95 115 135 155 175 195 215 235 255 275 295 Εκατοστά Σχήμα 4.9 Τυπική απόκλιση Η επεξεργασία των μετρήσεων και ο υπολογισμός της διασποράς και επομένως της τυπικής απόκλισης δίνει αφοπλιστικά δεδομένα. Μέχρι τα 235cm έχουμε αρκετά συνεκτικές μετρήσεις οι οποίες (το 95%) αποκλίνουν σύμφωνα με τις παραπάνω παραδοχές από τον μέσο όρο με μια τιμή λιγότερη του ± 0.6cm. Απώλεια Δεδομένων (%) 16 14 12 10 8 6 4 2 0 35 55 75 95 115 135 155 175 195 215 235 255 275 295 Εκατοστά Σχήμα 4.10 Απώλεια δεδομένων 66

Η απώλεια των σημάτων μας δείχνει, όπως και στο πρώτο πείραμα, μέχρι ποιο σημείο έχουμε εμβέλεια. Στην συγκεκριμένη περίπτωση υπάρχει απότομη απώλεια σήματος στα 295cm. Στο επόμενο βήμα που είχε προγραμματιστεί, δηλαδή στα 315cm, η απώλεια του σήματος ήταν απόλυτη. Πειραματικά, φάνηκε ότι πάνω από 300cm δεν μπορούσαν να μετρηθούν από την διάταξη. Εκατοστιαίο Σφάλμα 5 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0 35 55 75 95 115 135 155 175 195 215 235 255 275 295 Εκατοστά Σχήμα 4.11 Εκατοστιαίο σφάλμα Όπως και στην προηγούμενη περίπτωση, βλέπουμε ότι το σφάλμα έχει μεγάλες τιμές στα άκρα. Βέβαια στην συγκεκριμένη περίπτωση δεν βλέπουμε ένα συγκεκριμένο μοτίβο να ακολουθείται. Είναι πιθανό σφάλματα κατά την μέτρηση να συνέβαλαν σε αυτό. Από τα παραπάνω στοιχεία μπορεί να βγει το συμπέρασμα ότι η διάταξη που αναπτύχθηκε μπορεί να έχει εμβέλεια έως και 300cm με αρκετά καλή αξιοπιστία. Όμως εκεί που υποφέρει το όλο σύστημα είναι ότι υπάρχει αστάθεια του σφάλματος και πιέζοντας το σύστημα στα όρια του μπορεί να φέρει μετρήσεις οι οποίες να μην μοιάζουν με αυτές που θα έπρεπε να είναι. Χαρακτηριστικό παράδειγμα είναι ότι στις τελευταίες μετρήσεις (295cm) υπήρχε μια διαφορά μέχρι και 10cm από αυτό που περιμέναμε! 67

4.4 Πείραμα 3 Αφού μετρήθηκε η ακρίβεια όπως και η εμβέλεια της διάταξης, ήρθε η σειρά της ικανότητας μέτρησης της διάταξης με αυξανόμενη απόσταση μεταξύ του πομπού και δέκτη. Οι μετρήσεις, γίνονται με τον πομπό να έχει μια απόσταση από τον δέκτη x=2.3cm, όπως φαίνεται από την εικόνα 4.12. Σχήμα 4.12 Πρόσοψη του module με τον πομπό και δέκτη Αφού έγιναν μετρήσεις για απόσταση πομπού/δέκτη x = 2.3cm, η διαδικασία επαναλήφθηκε για 1.5x απόσταση και τέλος για 2x για την μεταλλική επιφάνεια και την ξύλινη αντίστοιχα. Το όλο σκεπτικό βασίζεται στη παραδοχή που παρουσιάζεται στην εικόνα (τάδε). Σε αυτήν απεικονίζεται η κάτοψη την διάταξης του πομπού/δέκτη και ο τρόπος με τον οποίο απεικονίζουμε το «οπτικό πεδίο» των αισθητήρων. Θεωρούμε ότι είναι κωνικό, άρα και η τομή του κώνου θα είναι ένα τρίγωνο. Το άνοιγμα της γωνίας θ είναι 80 μοίρες, καθώς η κατευθυντικότητα του αισθητήρα αναφέρεται στο datasheet του εξαρτήματος. Ο χώρος για τον οποία τα 2 οπτικά πεδία θα συμπίπτουν αποτελεί τον χώρο εστίασης της διάταξης, άρα για να εντοπίσουμε το δοθέν αντικείμενο, αυτό πρέπει να βρίσκεται στον συγκεκριμένο χώρο. 68

Σχήμα 4.13 Κάτοψη της διάταξης Με βάση απλές γεωμετρικές σχέσεις μπορούμε να υπολογίσουμε τα x1,x2,x3. Το x1=x3= x και (4.5) 69

Εκατοστά Σύμφωνα με τις παραπάνω παραδοχές, για μικρές τιμές και μεταβολές του x, το αποτέλεσμα θα πρέπει να μην αλλάζει, τουλάχιστον όχι ριζικά. Για το μεταλλικό κουτί το οποίο τοποθετήθηκε έχουμε τα εξής αποτελέσματα (όπως και στα 2 πρώτα πειράματα) Μέσος Όρος (Μέταλλο) 110 105 100 95 90 85 80 75 70 65 60 55 50 45 40 50 75 100 Εκατοστά 1x 1.5x 2x Αναφοράς Σχήμα 4.14 Μέσος όρος Απόκλιση 0,25 0,2 0,15 0,1 1x 1.5x 2x 0,05 0 50 75 100 Εκατοστά Σχήμα 4.15 Απόκλιση 70

Εκατοστά Εκατοστιαίο Σφάλμα 7 6 5 4 3 1x 1.5x 2x 2 1 0 50 75 100 Εκατοστά Σχήμα 4.16 Εκατοστιαίο Σφάλμα Παρατηρούμε ότι όντως δεν παρουσιάζεται σημαντική διαφορά, όπως υποτέθηκε εξ αρχής. Αντίστοιχα θα είναι και τα αποτελέσματα του ξύλινου πλαισίου Μέσος Όρος (Ξύλο) 120 100 80 60 40 1x 1.5x 2x Αναφοράς 20 0 50 75 100 Εκατοστά Σχήμα 4.18 Μέσος όρος 71

Τυπική Απόκλιση 0,3 0,25 0,2 0,15 0,1 1x 1.5x 2x 0,05 0 50 75 100 Εκατοστά Σχήμα 4.19 Τυπική απόκλιση Εκατοστιαίο Σφάλμα 8 7 6 5 4 3 1x 1.5x 2x 2 1 0 50 75 100 Εκατοστά Σχήμα 4.20 Εκατοστιαίο σφάλμα 72

4.5 Πείραμα 4 Κατά την διάρκεια του τελευταίου πειράματος έγινε μέτρηση της απόστασης διαφόρων υλικών από την διάταξη σε ένα συγκεκριμένο σημείο για να συγκριθούν τυχόν διαφορές στην ανακλαστικότητα του υλικού. Η μέτρηση έγινε στα 100cm και τα υλικά ήταν χαρτόνι, μέταλλο και ξύλο. Τα αποτελέσματα αποτυπώνονται συνοπτικά στο επόμενο πίνακα. AVERAGE VAR DEV % ERROR metal 103,6 0,0681 0,1327 3,61 wood 100,3 0,0625 0,2498 0,32 cardboard 102,8 0,0491 0,1310 2,84 Σχήμα 4.21 Συνοπτικός πίνακας αποτελεσμάτων Από τις παραπάνω μετρήσεις φαίνεται ότι δεν υπάρχει ιδιαίτερη διαφορά στην ανακλαστικότητα των υλικών αυτών, καθώς η απόσταση που μετρήθηκε είναι σχεδόν η ίδια. 73

5. Επίλογος 5.1 Σύνοψη Αξιολογώντας τα παραπάνω δεδομένα και βγάζοντας ένα γενικό συμπέρασμα μπορούν να ειπωθούν τα εξής για την όλη κατασκευή: Ενώ η αξιοπιστία του (μικρή διασπορά τιμών) είναι ικανοποιητική, η ακρίβεια του δεν είναι, τουλάχιστον για μετρήσεις μικρής κλίμακας Υπάρχουν προβλήματα τα οποία αφορούν μετρήσεις σε πολύ κοντινή και πολύ μακρινή απόσταση Κατά γενική ομολογία θα λειτουργήσει το ίδιο ικανοποιητικά με συμπαγή υλικά όπως πλαστικό, ξύλο, χαρτόνι, μέταλλο Υπάρχει θέμα με ανεπιθύμητες ανακλάσεις, οπότε θα πρέπει να είμαστε προσεκτικοί να μην χρησιμοποιήσουμε την συσκευή σε πολύ κλειστούς χώρους, διότι υπάρχει το πρόβλημα οι μετρήσεις να αποκλίνουν πάρα πολύ από το αναμενόμενο Όλα αυτά τα προβλήματα έχουν σαν αποτέλεσμα την ανάγκη για βελτίωση της όλης διάταξης. Μπορούμε να τα κατηγοριοποιήσουμε σαν προβλήματα κατασκευαστικά, σχεδιαστικά και προγραμματιστικά. Κατασκευαστικά : Η αποχάλκωση της πλακέτας έγινε με την φωτογραφική μέθοδο, χρησιμοποιώντας χημικά του εμπορίου (Sodium Persulfate- Na₂S₂O₈). Λόγω της έλλειψης επαγγελματικών εργαλείων για την διαδικασία αυτή, όπως και έλλειψης ειδικών ουσιών για την προστασία των χάλκινων διαδρόμων της πλακέτας, επήλθε διάβρωση σε πολύ γρήγορο ρυθμό, με αποτέλεσμα συσσώρευση οξειδίου χαλκού το οποίο είναι επιβλαβές για την λειτουργία της συσκευής. Ένας επαγγελματικός σχεδιασμός και υλοποίηση με προστατευτική μάσκα της πλακέτας θα έλυνε το πρόβλημα. Προγραμματιστικά : Η όλη σχεδίαση του firmware του μικροελεγκτή έγινε σε γλώσσα C. Επειδή η γλώσσα αυτή είναι υψηλού επιπέδου και πολλές διεργασίες 74

εξαρτώνται από τον αντίστοιχο compiler, δεν μπορούμε να είμαστε σίγουροι για το πόσους κύκλους χρειάζονται για να εκτελεστεί μια εντολή. Αυτό σημαίνει ότι μπορεί να διακυμαίνεται ο χρόνος εκτέλεσης του όλου αλγορίθμου με αποτέλεσμα σφάλματα στις μετρήσεις. Κάτι το οποίο θα μπορούσε να γίνει είναι ο εξολοκλήρου προγραμματισμός σε assembly, καθώς τότε και μόνο θα έχουμε πλήρη έλεγχο του τι γίνεται μέσα στον μικροελεγκτή ανα πάσα στιγμή. Το μόνο πρόβλημα είναι πως θα θυσιάσουμε την ευχρηστία και καθολικότητα του κώδικα για την απόδοση, μιας και η assembly στους PIC μικροελεγκτές παρουσιάζει διαφορές από οικογένεια σε οικογένεια. Σχεδιαστικά : Το κύκλωμα του δέκτη πάσχει σε διάφορα σημεία. Καταρχήν η ενισχυτική διάταξη με transistor δεν αποδίδει τόσο όσο περιμέναμε. Ένας καλός τελεστικός ενισχυτής θα μπορούσε να κάνει την ίδια δουλειά με μικρότερο συνολικό κόστος, μικρότερη επιφάνεια στην πλακέτα και λιγότερα στοιχεία συνολικά. Το παθητικό φίλτρο επίσης θα μπορούσε να αντικατασταθεί από ενεργητικό φίλτρο Butterworth[4] για καλύτερη απόκριση. Το δε κύκλωμα τετραγωνισμού της κυματομορφής πάσχει από την πιθανότητα εξασθένησης του εισερχόμενου σήματος. Εάν το επιστρεφόμενο σήμα είναι μικρότερο από το threshold το οποίο είχε οριστεί στον voltage comparator, τότε η έξοδος του κυκλώματος ήταν μηδενική. Αυτό θα μπορούσε να διορθωθεί με ένα κύκλωμα AGC-Automatic Gain Control, το οποίο είναι ένα κύκλωμα ανάδρασης που διορθώνει το κέρδος μιας διάταξης σε περίπτωση που η έξοδος είναι πολύ χαμηλή ή πολύ υψηλή. 75

5.2 Εφαρμογές - Περαιτέρω ερεύνα Όπως είδαμε, παρά τα προβλήματα που έχει η διάταξη που αναπτύχθηκε, έχει και προοπτικές εξέλιξης. Μια από τις κλασσικές χρήσεις της παρούσας κατασκευής είναι προφανώς η μέτρηση απόστασης αντικειμένων από ένα ορισμένο σημείο, κάτι που βρίσκει άμεση εφαρμογή σε μετρητικά συστήματα, συστήματα ρύθμισης στάθμευσης και σε συστήματα ρύθμισης των φωτεινών σηματοδοτών ανάλογα με την ύπαρξη ή όχι διερχόμενων οχημάτων. Μια άλλη διαδεδομένη χρήση είναι η μέτρηση στάθμης υγρών σε δεξαμενές, καθώς λόγω της διαφορετικής δομής των υλικών (αέρας-υγρό) καταλήγουμε να έχουμε ολική ανάκλαση του ηχητικού σήματος από την πρόσπτωσή του σε μια επιφάνεια. Μια πολύ ενδιαφέρουσα εφαρμογή θα ήταν ακριβώς το αντίστροφο στην προκειμένη περίπτωση: Σε μια δεξαμενή με γνωστό όγκο υγρού να τοποθετηθεί στην επιφάνεια του ένα ζεύγος κλειστού τύπου αισθητήρων και να μετρηθεί ο χρόνος που χρειάζεται να ταξιδέψει ο ήχος μέσα του. Το αποτέλεσμα θα είναι να υπολογίσουμε την ταχύτητα του ήχου μέσα στο υλικό αυτό και καθώς ο ήχος σε κάθε υλικό είναι μοναδικός, να μπορέσουμε να προσδιορίσουμε το υλικό αυτό. Προχωρώντας από τις συμβατικές εφαρμογές, αξίζει να αναφέρουμε την προοπτική εξέλιξης του συστήματος σε κάτι πιο πολύπλοκο. Η αναφορά αυτή αφορά μια δομή με πολλούς πομπούς οι οποίοι εκπέμπουν με φασική διαφορά ο ένας από τον άλλο. Άμεσο αποτέλεσμα είναι να έχουμε υπέρθεση των σημάτων (σχήμα 5.1) με αποτέλεσμα να δημιουργείται μια αχτίδα η οποία είναι πλήρως κατευθυνόμενη και ταχύτατα δημιουργούμενη. Η δομή αυτή δεν άλλη παρά η Ultrasonic Phased Array[15], μια διάταξη η οποία κατέχει εξέχοντα ρόλο σε Non Destructive Testing (NDT), σε βιομηχανικές εφαρμογές και στην ιατρική (βασική δομή των υπερηχογράφων). Σύμφωνα με την ερευνά[16] που έχει διεξαχθεί στο Massachusetts Institute of Technology, φάνηκε ότι είναι δυνατό να δημιουργηθεί μια απλή διάταξη (Phased Array Sonar) χρησιμοποιώντας τον ίδιο τύπο αισθητήρων που χρησιμοποιήθηκαν και στην παρούσα διπλωματική εργασία και να έχει εξαιρετική απόδοση. 76

Σχήμα 5.1 Υπέρθεση κυμάτων[16] Σχήμα 5.2 Αρχή λειτουργίας των Phased Arrays[15] 77

5.3 Ευχαριστίες Ένα δύσκολο ταξίδι έφτασε στο τέλος του. Ένα ταξίδι με λύπες, χαρές και προπαντός πολύ γνώση. Συνοδοιπόροι μου στο ταξίδι αυτό υπήρξαν οι οικογένειά μου που με στήριξε οικονομικά όπως και ψυχικά και που πίστεψε σε μένα. Άτομα άξιας αναφοράς, χωρίς ιδιαίτερη προτεραιότητα είναι οι: Γιάννης Κωνσταντινίδης για τις πολύτιμες συμβουλές του γύρω από τους μικροελεγκτές, Γιάννης Τζουράς και Θανάσης Μητρόπουλος για την ακούραστη τεχνική υποστήριξη, Χρήστος Θώμος για την πολύτιμη συμβολή κατά την διάρκεια όχι μόνο της διπλωματικής αλλά και των προπτυχιακών μου σπουδών, Γαβριήλ Καμάρης για την υλική και ψυχική βοήθεια που προσέφερε, Άγγελος Μουζάκης για τις διορθώσεις κατά την συγγραφή του κειμένου. Ένα ιδιαίτερο ευχαριστώ οφείλω στον επιβλέποντα μου, Γρηγόριο Καλύβα για την υποστήριξη και καθοδήγηση που μου έδωσε κατά την διάρκεια αυτού του επίπονου έργου. Τέλος, θα ήθελα να αφιερώσω την διπλωματική αυτή εργασία στον Κώστα Ευσταθίου, ο οποίος υπήρξε πνευματικός πατέρας και αληθινός δάσκαλος και ίσως το μοναδικό άτομο στο οποίο οφείλω την αγάπη στα ηλεκτρονικά και την συνεχή αισιοδοξία, παρά τα αρνητικά σημάδια των καιρών. Δημόπουλος Δημήτρης 78

79

Παράρτημα Α Α1- Κώδικας Μικροελεγκτή //Author: Dimopoulos Dimitrios // 1-wire library by j.d.sandoz/jds-pic!at! losdos.dyndns.org (C) copyright2003 // released under the GNU GENERAL PUBLIC LICENSE (GPL) #include <16F877A.h> #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz) #FUSES NOPROTECT //Code not protected from reading #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOBROWNOUT #include <stdio.h> #include <stdlib.h> #use delay(clock = 16000000) #use rs232(baud=9600,parity=n,xmit=pin_c6,rcv=pin_c7,bits=8) #use fast_io(c) // fast io for port C #use PWM(ccp1,frequency=40kHz,duty=50) long time; float temperature; /***********************1Wire Class***********************/ /*Description: This class handles all communication */ /* between the processor and the 1wire */ /* sensors. /*********************************************************/ /*-------1-wire definitions-------*/ #define ONE_WIRE_PIN PIN_A0 /*******************1-wire communication functions********************/ /************onewire_reset*************************************************/ /*This function initiates the 1wire bus */ 80

/* */ /*PARAMETERS: */ /*RETURNS: */ /*********************************************************************/ void onewire_reset() // OK if just using a single permanently connected device { output_low(one_wire_pin); delay_us( 500 ); // pull 1-wire low for reset pulse output_float(one_wire_pin); // float 1-wire high delay_us( 500 ); // wait-out remaining initialisation window. output_float(one_wire_pin); } /*********************** onewire_write() ********************************/ /*This function writes a byte to the sensor.*/ /* */ /*Parameters: byte - the byte to be written to the 1-wire */ /*Returns: */ /*********************************************************************/ void onewire_write(int data) { int count; for (count=0; count<8; ++count) { output_low(one_wire_pin); delay_us( 2 ); // pull 1-wire low to initiate write time-slot. output_bit(one_wire_pin, shift_right(&data,1,0)); // set output bit on 1-wire delay_us( 60 ); // wait until end of write slot. output_float(one_wire_pin); // set 1-wire high again, delay_us( 2 ); // for more than 1us minimum. } } /*********************** read1wire() *********************************/ /*This function reads the 8 -bit data via the 1-wire sensor. */ /* */ /*Parameters: */ /*Returns: 8-bit (1-byte) data from sensor */ /*********************************************************************/ int onewire_read() 81

{ int count, data; for (count=0; count<8; ++count) { output_low(one_wire_pin); delay_us( 2 ); // pull 1-wire low to initiate read time-slot. output_float(one_wire_pin); // now let 1-wire float high, delay_us( 8 ); // let device state stabilise, shift_right(&data,1,input(one_wire_pin)); // and load result. delay_us( 120 ); // wait until end of read slot. } return( data ); } float ds1820_read() { int8 busy=0, temp1, temp2; signed int16 temp3; float result; onewire_reset(); onewire_write(0xcc); onewire_write(0x44); while (busy == 0) busy = onewire_read(); onewire_reset(); onewire_write(0xcc); onewire_write(0xbe); temp1 = onewire_read(); temp2 = onewire_read(); temp3 = make16(temp2, temp1); result = (float) temp3 / 16.0; //Calculation for DS18B20 with 0.1 deg C resolution delay_ms(200); return(result); } #int_ext void EXT_isr() { 82

} disable_interrupts(int_ext); disable_interrupts(int_timer1); time = get_timer1(); #int_timer1 void TIMER1_isr() { } disable_interrupts(int_ext); disable_interrupts(int_timer1); void main() { setup_psp(psp_disabled); set_tris_c(0b10000000); enable_interrupts(global); ext_int_edge(l_to_h); setup_timer_1(t1_internal T1_DIV_BY_4); output_low(pin_c3); // Enables all interrupts // Makes an interrupt when it goes form Low to high while(true) { temperature = ds1820_read(); pwm_on(); delay_us(500); pwm_off(); delay_ms(1); time = 0; // time reset set_timer1(0); // reset timer1 clear_interrupt(int_ext); clear_interrupt(int_timer1); enable_interrupts(int_timer1); // enables timer1 for counting the time enable_interrupts(int_ext); // Enables the external interrupt on port B0 delay_ms(100); printf("%3.1f\t",temperature); printf("%5lu\n",time); } } 83

Α2- Κώδικας Διεπαφής using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.Threading; namespace TempSerial { public partial class TempSer : Form { SerialPort myserialport; double inputv,inputt,output; public delegate void AddDataDelegate(String mystring); public delegate void AddDataDelegate2(String mystring2); public AddDataDelegate mydelegate; public AddDataDelegate2 mydelegate2; public TempSer() { InitializeComponent(); } private void lang_eng_checkedchanged(object sender, EventArgs e) { open_btn.text = "Open Port"; close_btn.text = "Close Port"; clr_btn.text = "Clear"; temp_label.text = "Temperature"; vel_label.text = "Velocity"; res_btn.text = "Reset"; dst_label.text = "Distance"; time_label.text = "Time"; } private void lang_gr_checkedchanged(object sender, EventArgs e) { open_btn.text = "Ανοιγμα Θύρας"; close_btn.text = "Κλείσιμο Θύρας"; clr_btn.text = "Εκκαθάριση"; temp_label.text = "Θερμοκρασία"; vel_label.text = "Ταχύτητα"; res_btn.text = "Επανεκίνηση"; dst_label.text = "Απόσταση"; time_label.text = "Χρόνος"; } 84

public void AddDataMethod(String mystring) { temp_box.text = mystring; inputv = Convert.ToSingle(myString); vel_box.text = Convert.ToString(Math.Round ((331.3 + (0.606*inputV)/10),2)); output = Convert.ToSingle(vel_box.Text); } public void AddDataMethod2(String mystring2) { time_box.text = mystring2; inputt = Convert.ToSingle(myString2); dst_label2.text = Convert.ToString(Math.Round(((0.5) * (output * ((inputt + 1500) / 1000) / 1000) * 100),1)); } private void TempSer_Load(object sender, EventArgs e) { close_btn.enabled = false; res_btn.enabled = false; myserialport = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One); myserialport.handshake = Handshake.None; myserialport.datareceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived); this.mydelegate = new AddDataDelegate(AddDataMethod); this.mydelegate2 = new AddDataDelegate2(AddDataMethod2); } private void myserialport_datareceived(object sender, SerialDataReceivedEventArgs e) { } SerialPort sp = (SerialPort)sender; string s = sp.readline(); string[] s1= s.split('\t'); temp_box.invoke(this.mydelegate, new Object[] { s1[0] }); time_box.invoke(this.mydelegate2, new Object[] { s1[1] }); private void open_btn_click(object sender, EventArgs e) { open_btn.enabled = false; close_btn.enabled = true; res_btn.enabled = true; myserialport.open(); } private void close_btn_click(object sender, EventArgs e) { open_btn.enabled = true; close_btn.enabled = false; res_btn.enabled = false; 85

} myserialport.close(); private void clr_btn_click(object sender, EventArgs e) { temp_box.text = ""; vel_box.text = ""; dst_label2.text = ""; time_box.text = ""; } private void res_btn_click(object sender, EventArgs e) { myserialport.close(); myserialport.open(); } } } Παράρτημα Β Β1 - Προγράμματα που χρησιμοποιήθηκαν Microsoft Visual C# 2010 Express Paint.Net MPLAB v8.50 Microsoft Office 2003 OrCad Pspice v9.2 DesignSpark PCB Eagle 6.4 PuTTY 0.6 Β2 - Εργαλεία που χρησιμοποιήθηκαν Programmer PicKit 3 Παλμογράφος Tektronix TDS1002 Παλμογράφος Agilent DSO3062A Function Generator TTi TG330 Power Supply Unit TTi EL302T Πολύμετρο Mastech M266F 86

Παράρτημα Γ - Διάταξη πλακέτας και εξαρτήματα Σχήμα Γ.1 Εμπρόσθια όψη κατασκευής 1. Υποδοχή του δέκτη 2. Ενισχυτική διάταξη 3. LM393 4. Jumper σύνδεσης της εξόδου του LM393 με τον μικροελεγκτή 5. Υποδοχή μικροελεγκτή 6. Υποδοχή πομπού 7. DS18B20 8. Κρύσταλλος 9. Βύσμα USB 10. FT232RL 11. Τυπωμένο πηνίο 12. Διόρθωση MCLR 87

Σχήμα Γ.2 Οπίσθια όψη κατασκευής Σχήμα Γ.3 Κύκλωμα μικροελεγκτή και περιφερειακών 88

Σχήμα Γ.4 Κύκλωμα μικροελεγκτή και περιφερειακών (συνέχεια) Σχήμα Γ.5 PCB layout του κυκλώματος 89

Σχήμα Γ.6 Κύκλωμα ενισχυτή δέκτη Σχήμα Γ.7 Κύκλωμα ενισχυτή δέκτη (συνέχεια) 90

Σχήμα Γ.8 PCB layout του δέκτη Παράρτημα Δ Βιβλιογραφία/Πηγές Πηγές που χρησιμοποιήθηκαν στην διπλωματική [1] Emmanuel P. Papadakis Ultrasonic Instruments & Devices [2] http://en.wikipedia.org/wiki/ultrasound [3] http://en.wikipedia.org/wiki/acoustic_location [4] Κεττένης, Χρίστος - Σύστημα εντοπισμού ηχητικής πηγής (2011) [5] en.wikipedia.org/wiki/speed_of_sound [6] Murata Ultrasonic Sensor Application Manual [7] Μικροηλεκτρονική Richard C. Jaeger ΤΟΜΟΣ Β 91