Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download ""

Transcript

1 0 Σελίδα

2

3 Περίληψη Με την συνεχόμενη εξέλιξη των αισθητήρων MEMS, είμαστε σε θέση να εξάγουμε ακριβείς μετρήσεις κίνησης και να μελετήσουμε διεξοδικά την κίνηση σωμάτων. Στα πλαίσια αυτής της πτυχιακής εργασίας υλοποιείται αρχικά μια ηλεκτρονική διάταξη, η οποία αποτελείται από έναν αισθητήρα μέτρησης γραμμικής επιτάχυνσης και έναν αισθητήρα μέτρησης γωνιακής ταχύτητας, και προγραμματίζεται έτσι ώστε να αποστέλλει τις μετρήσεις στον Η/Υ. Εκεί έχει αναπτυχθεί ένα γραφικό περιβάλλον για την απεικόνιση των μετρήσεων και κατ επέκταση της κίνησης του σώματος. Σκοπός αυτής της πτυχιακής εργασίας είναι η ανάδειξη της αξιοπιστίας τέτοιων μετρητικών οργάνων και ο συνδυασμός τους με γραφικό περιβάλλον για την εποπτεία κινήσεων και την εισαγωγή διαφορετικών μεθόδων αλληλεπίδρασης μεταξύ ανθρώπου Η/Υ.

4 ABSTRACT With the continuous evolution of MEMS sensors, we are able to extract more accurate kinematics measurements and study thoroughly the body movement. As far as this thesis go, an electronic device, which consists of a pair of 3D accelerometer and 3D gyroscope sensors, is programmed to send measurements to a computer. Also, a graphical user interface has been developed in order to display the measurements and hence the motion of the body. The aim of this thesis is to highlight the credibility of such measuring systems and their combination with a graphical user interface for monitoring movement and introducing different methods of interaction between human and computer.

5 Ευχαριστίες Με την ολοκλήρωση αυτής της πτυχιακής εργασίας θα ήθελα να ευχαριστήσω τους επιβλέποντες καθηγητές, κ. Κωνσταντάκο Βασίλειο (Λέκτορας ΠΔ407) και κ. Λαόπουλο Θεόδωρο (Αναπληρωτής καθηγητής), για την πολύτιμη καθοδήγηση τους, τόσο στην επιλογή θέματος πτυχιακής εργασίας αλλά και στα διάφορα προβλήματα που προέκυψαν καθ όλη την διάρκεια ολοκλήρωσης της εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τον φίλο και μεταπτυχιακό φοιτητή ραδιοηλεκτρολογίας του τμήματος Φυσικής του πανεπιστημίου ΑΠΘ, κ. Νερούτσο Πάνο για την άψογη συνεργασία μας. Τέλος θα ήθελα να ευχαριστήσω την οικογένειά μου για την πολύτιμη υποστήριξή τους σε όλη την ακαδημαϊκή μου πορεία.

6 Περιεχόμενα Κεφάλαιο 1: Ηλεκτρονικές μετρήσεις σε συστήματα κίνησης : Λήψη και επεξεργασία δεδομένων από ηλεκτρονικές διατάξεις : Φυσική σημασία δεδομένων : Στόχος και σκοπός εργασίας... 6 Κεφάλαιο 2: Βιβλιογραφία : Τρισδιάστατος διαδραστικός πίνακας μαρκαδόρων με σκοπό την επιστημονική συνεργασία [4] : Δημιουργία πλατφόρμας χαμηλού κόστους για την δημιουργία τρισδιάστατων χωρικών διεπαφών σε βιντεοπαιχνίδια. [5] : Δημιουργία εικονικού χεριού για την εκμάθηση χρήσης προσθετική μέλους [6] : Δημιουργία διεπαφής χρήστη για αισθητήρια όργανα ρομπότ [7] : Καθρεφτισμός: Εγγραφή κίνησης σώματος με την χρήση ασύρματων αισθητήρων [8] : Σύστημα αυτοματοποιημένης μέτρησης βασιζόμενο σε ψηφιακούς αισθητήρες αδράνειας για την μελέτη της ανθρώπινης κίνησης [9] Κεφάλαιο 3: Επίπεδο Hardware : Μικροελεγκτής : External Interrupts (Εξωτερικά συμβάντα) : Πρωτόκολλο UART & UART Interrupts : Πρωτόκολλο I2C (TWI two wire interface) : Αισθητήρες MEMS (Microelectromechanical systems) : ITG3200 Gyroscope (Αισθητήρας Γωνιακής Ταχύτητας) : ADXL345 Accelerometer (Αισθητήρας Γραμμικής Επιτάχυνσης) Κεφάλαιο 4: Προγραμματισμός σε περιβάλλον Windows : Εισαγωγή : Σχεδιάζοντας ένα Πρόγραμμα : Αναφορά και ανάλυση κατηγοριών εργαλείων.net Framework : Σύνδεση αντικειμένων με βάσεις δεδομένων (Data-Binding) : Γραφικά σε υπολογιστικό περιβάλλον (DirectX) : Εισαγωγή : Προγραμματίζοντας με την τεχνολογία Direct3D : Σχεδιάζοντας γραφικά σε Direct3D Κεφάλαιο 5: Υλοποίηση... 57

7 5.1: Ανάπτυξη της ηλεκτρονικής διάταξης : Υλοποίηση περιβάλλοντος απεικόνισης στον Η/Υ Κεφάλαιο 6: Συμπεράσματα και μελλοντική έρευνα... 75

8 Κεφάλαιο 1: Ηλεκτρονικές μετρήσεις σε συστήματα κίνησης 1.1: Λήψη και επεξεργασία δεδομένων από ηλεκτρονικές διατάξεις Η ικανότητα να είμαστε σε θέση να μετρήσουμε μια οποιαδήποτε ποσότητα αποτελεί ρόλο κλειδί σε διάφορους κλάδους της επιστήμης και μη, όπως στη φυσική (μηχανική), στη φαρμακευτική και γενικότερα στην καθημερινότητα κάθε ανθρώπου. Ένας από τους ρόλους της επιστήμης της φυσικής είναι η ανακάλυψη νέων φαινομένων και σχέσεων μεταξύ των νόμων που ορίζουν την φυσική, έτσι όπως την γνωρίζουμε σήμερα. Με τον όρο μέτρηση εννοούμε την παρακολούθηση μιας ποσότητας, κάνοντας χρήση ενός οργάνου, ερμηνεύοντας έτσι τις τυχόν αλλαγές της, με μεγέθη τα οποία μπορούμε εύκολα να διαχειριστούμε. Η μέτρηση μια ποσότητας [1] είναι η σύγκριση μεταξύ ενός προκαθορισμένου πρότυπου με άγνωστη ποσότητα που θέλουμε να μετρήσουμε. Για να είναι έγκυρο και αξιοποιήσιμο το αποτέλεσμα αυτής της σύγκρισης πρέπει Το πρότυπο σύγκρισης να είναι με ακρίβεια ορισμένο και γενικώς αποδεκτό. Η διαδικασία η οποία χρησιμοποιήθηκε από το μετρητικό όργανο να είναι εύκολα αποδείξιμη και αποδεκτή. Η διαδικασία μιας μέτρησης μπορεί να κρύβει αρκετά και σημαντικά σφάλματα όπως π.χ. το λανθασμένο πρότυπο σύγκρισης, την άμεση εξάρτηση του μετρητικού οργάνου από της συνθήκες του περιβάλλοντος εργασίας και από την μετάδοση όλων των προηγούμενων στη τελική μέτρηση. Έτσι κάθε φορά αναλόγως την ποσότητα που θέλουμε να μετρήσουμε πρέπει να διαλέγουμε το κατάλληλο μετρητικό μα και διαδικασία για την μικρότερη δυνατή μετάδοση σφάλματος. Ένα μετρητικό όργανο μπορεί να αποτελείται από μια ηλεκτρονική διάταξη. Αυτές είναι πολύ διαδομένες και η χρήση τους συναντάται σχεδόν παντού τριγύρω μας. Μια από τις πιο ενδιαφέρουσες σκοπιές κατά την χρήση τους είναι η αντιστοιχία κάποιου φυσικού μεγέθους με κάποια από τις εσωτερικές λειτουργίες τους, η οποία έχει ως αποτέλεσμα την εξαγωγή κάποιας μέτρησης για να αξιοποιήσουμε καταλλήλως. Σαν πρώτο παράδειγμα, του οποίου η λογική που το διέπει θα αναλυθεί εκτενέστερα παρακάτω, είναι ένα ηλεκτρονικό σύστημα μέτρησης που συναντάμε πολύ συχνά, καθώς είναι σχεδόν σε κάθε κινητό της αγοράς. Πρόκειται για ένα σύστημα μέτρησης επιτάχυνσης το οποίο αντιστοιχεί το φαινόμενο της βαρυτικής επιτάχυνσης σε κάποια εσωτερική λειτουργία του και αναλόγως την μέτρηση που προκύπτει προσαρμόζει τον προσανατολισμό της οθόνης του κινητού μας, αν το κρατάμε οριζόντια ή κάθετα για παράδειγμα. Όπως προαναφέραμε οι συγκεκριμένες ηλεκτρονικές διατάξεις ονομάζονται ηλεκτρονικά συστήματα μετρήσεων και η λειτουργία τους είναι η αντιστοίχηση μιας φυσικής μεταβολής με μια μεταβολή στις ήδη γνωστές ηλεκτρικές παραμέτρους (π.χ. Τάση, Ένταση ηλεκτρικού ρεύματος). Έτσι για τη διαδικασία σύγκρισης τα ηλεκτρονικά συστήματα μετρήσεων βασίζονται στις βασικές ηλεκτρονικές φυσικές αρχές. Επίσης τα συστήματα μετρήσεων χωρίζονται σε δύο κατηγορίες, εκείνες των αναλογικών μα και ψηφιακών 1 Σ ε λ ί δ α

9 Ηλεκτρονικές μετρήσεις σε συστήματα κίνησης συστημάτων. Παρ όλη την άνθιση των ψηφιακών συστημάτων μετρήσεων στις μέρες μας τα αναλογικά βρίσκουν ακόμη πληθώρα εφαρμογών. Τα βασικότερα πλεονεκτήματα [1] της χρήσης ηλεκτρονικών συστημάτων μέτρησης είναι τα εξής: 1. Οι περισσότερες φυσικές ποσότητες μπορούν να μετατραπούν από ηλεκτρονικά αισθητήρια σε ηλεκτρικά σήματα. 2. Ένα ηλεκτρικό μπορεί να υποστεί ενίσχυση, φιλτράρισμα, πολυπλεξία, δειγματοληψία και μέτρηση. 3. Η μέτρηση μπορεί με ευκολία να αποκτηθεί ή να μετατραπεί σε ψηφιακή πληροφορία για περαιτέρω ανάλυση και αποθήκευση. 4. Πολλές μετρήσεις μπορούν να διεξαχθούν σε ακαριαία διαδοχή η μία μετά την άλλη. 5. Τα μετρούμενα σήματα μπορούν να μεταφερθούν σε μακρινές αποστάσεις είτε με την χρήση καλωδίων είτε με ασύρματες συνδέσεις, χωρίς καμία απώλεια πληροφορίας. 6. Τα ηλεκτρονικά συστήματα μετρήσεων είναι σε θέση να ανιχνεύσουν και να ενισχύσουν σχετικά αδύναμα σήματα και μπορούν να οριοθετήσουν την διάρκεια λήψης των μετρήσεων είτε σε πολύ μικρά είτε σε πολύ μεγάλα χρονικά διαστήματα. 7. Τα ηλεκτρονικά συστήματα μετρήσεων είναι σε θέση να αναπαράγουν είτε αναλογικά είτε ψηφιακά τις μετρήσεις. Τα ψηφιακά σήματα αποτελούν το θεμέλιο την τεχνολογίας των Η/Υ και είναι επιτακτική η ύπαρξη τους. 8. Τα βασικά χαρακτηριστικά ενός ηλεκτρονικού συστήματος μετρήσεων είναι η υψηλή ευαισθησία, χαμηλή κατανάλωση ισχύος, υψηλά επίπεδα αξιοπιστίας. Οι βαθμίδες λειτουργίας ενός ηλεκτρονικού συστήματος μετρήσεων στην παρακάτω εικόνα. Εικόνα 1: Βαθμίδες λειτουργίας ενός ηλεκτρονικού συστήματος μετρήσεων [1]. 2 Σ ε λ ί δ α

10 Πτυχιακή εργασία Βαθμίδα βασικής αίσθησης Θεωρείται η βαθμίδα που γίνεται ο συσχετισμός της ποσότητας που επρόκειτο να μετρηθεί. Έτσι η πρώτη ανίχνευση του μετρούμενου γίνεται από την συγκεκριμένη βαθμίδα. Βαθμίδα μετατροπής μεταβλητής Η έξοδος της βαθμίδα βασικής αίσθησης είναι σε ηλεκτρική μορφή, όπως είναι η τάση, συχνότητα ή οποιαδήποτε άλλη ηλεκτρική μεταβλητή. Αυτή όμως η μορφή εξόδου δεν είναι αξιοποιήσιμη από το ηλεκτρονικό σύστημα μετρήσεων και έτσι πρέπει να μετατραπεί. Για παράδειγμα όταν ένα ηλεκτρονικό σύστημα μετρήσεων ανήκει στην κατηγορία των ψηφιακών συστημάτων μετρήσεων, το σήμα που έρχεται από τη βαθμίδα βασικής αίσθησης δεν είναι κατάλληλο. Έτσι είναι επιτακτική η χρήση ενός ψηφιακού μετατροπέα που στην προκειμένη περίπτωση παίζει το ρόλο του στοιχείου μετατροπής μεταβλητής. Βαθμίδα διαχείρισης μεταβλητής Η συγκεκριμένη βαθμίδα διαχειρίζεται το σήμα που προέκυψε από την έξοδο του προηγούμενου στοιχείου και διατηρεί την αρχική φύση του σήματος. Αρκετές φορές η έξοδος ενός ηλεκτρονικού συστήματος μετρήσεων επηρεάζεται από ανεπιθύμητα σήματα όπως είναι η ύπαρξη θορύβου. Έτσι τα συγκεκριμένα σήματα πρέπει να υποστούν επεξεργασία ώστε να γίνει λήψη του αρχικού σήματος σε καθαρή από θόρυβο μορφή. Τέτοιες διαδικασίες ονομάζονται προσαρμογή σήματος. Βαθμίδα μετάδοσης δεδομένων Όταν οι βαθμίδες του συστήματος είναι υλικά χωρισμένες είναι απαραίτητη η μετάδοση δεδομένων από την μία βαθμίδα στην άλλη. Αυτό επιτυγχάνεται από την βαθμίδα μετάδοσης δεδομένων. Βαθμίδα παρουσίασης δεδομένων Η προκειμένη βαθμίδα είναι υπεύθυνη για την συλλογή της τελικής πληροφορίας από τον χρήστη ή από το σύστημα που εκμεταλλεύεται το σύστημα μετρήσεων. Για περαιτέρω έλεγχο και ανάλυση της πληροφορίας μπορούν να χρησιμοποιηθούν για παράδειγμα μικροελεγκτές, μικροεπεξεργαστές, οι οποίοι θα αποτελούν την βαθμίδα παρουσίασης δεδομένων. Μια από τις βασικότερες κατηγορίες των ηλεκτρονικών συστημάτων μέτρησης αποτελούν οι αισθητήρες. Στις μέρες μας υπάρχουν χιλιάδες είδη αισθητήρων με τους οποίους είμαστε σε θέση να παρακολουθήσουμε και να μετρήσουμε την μεταβολή μιας ποσότητας. Οι αισθητήρες χωρίζονται σε δύο κατηγορίες σε εκείνους που μετατρέπουν μια μη ηλεκτρική ποσότητα σε ηλεκτρική, όπως το μικρόφωνο που μετατρέπει τον ήχο σε ηλεκτρικό σήμα, και σε εκείνους που μετατρέπουν μια ηλεκτρική ποσότητα σε μια μη 3 Σ ε λ ί δ α

11 Ηλεκτρονικές μετρήσεις σε συστήματα κίνησης ηλεκτρική, όπως είναι τα ηχεία [2]που μετατρέπουν ένα ηλεκτρικό σήμα σε ήχο. Τα βασικά χαρακτηριστικά ενός αισθητήρα είναι τα παρακάτω: 1. Ακρίβεια: Ορίζεται ως η εγγύτητα με την οποία η μέτρηση προσεγγίζει μια ιδανική τιμή της μεταβλητής η οποία μετράται. 2. Ανθεκτικότητα: Ο αισθητήρας θα πρέπει να είναι μηχανικά κατασκευασμένος ώστε να αντέξει υπερφορτώσεις και θα πρέπει να περιέχει προστασία υπερφόρτωσης 3. Γραμμικότητα: Η έξοδος ενός αισθητήρα θα πρέπει να είναι γραμμικώς ανάλογη με την είσοδο του κατά την διάρκεια της μέτρησης. 4. Επαναληπτικότητα: Η έξοδος του αισθητήρα θα πρέπει να είναι ακριβώς η ίδια, κάτω από τις ίδιες συνθήκες εργασίας, όταν η ίδια μεταβολή ποσότητας μετράται επαναληπτικά. 5. Υψηλή έξοδος: Ο αισθητήρας θα πρέπει να παρέχει αρκετά μεγάλη έξοδο σήματος ώστε να μπορεί εύκολα να επεξεργασθεί και να μετρηθεί. 6. Υψηλή σταθερότητα και αξιοπιστία: Η έξοδος του αισθητήρα θα πρέπει να είναι όσο το δυνατόν σταθερότερη και αξιόπιστη ώστε να ελαχιστοποιηθούν μετρούμενο σφάλμα. Επίσης η έξοδος θα πρέπει να παραμένει αναλλοίωτη από αλλαγές στης συνθήκες εργασίας περιβάλλοντος όπως η θερμοκρασία, πίεση κτλ 7. Ευαισθησία: Ο αισθητήρας θα πρέπει να προσφέρει υψηλή ευαισθησία στις μετρήσεις. Σαν ευαισθησία ορίζεται η μεταβολή της ηλεκτρικής παραμέτρου ανά μονάδα μεταβολής της φυσική ποσότητας που μετράται. 8. Δυναμικό εύρος: Ο αισθητήρας θα πρέπει να προσφέρει μεγάλο εύρος λειτουργίας ώστε να μπορεί να χρησιμοποιηθεί σε μεγάλη περιοχή μετρητικών συνθηκών. 9. Μικρό μέγεθος: Οι αισθητήρες θα πρέπει να έχουν όσο το δυνατόν μικρότερο μέγεθος. 10. Υψηλή ταχύτητα: Ο χρόνος απόκρισης του αισθητήρα σε τυχόν μεταβολές της μετρούμενης ποσότητας θα πρέπει να είναι όσο το δυνατόν μικρότερος. Κατά την συνεχόμενη εξέλιξη της τεχνολογίας επιτυγχάνεται η κατασκευή αισθητήρων που συναντούν όλο και περισσότερο τα παραπάνω ιδανικά χαρακτηριστικά και λόγω του χαμηλού κόστους βλέπουμε πως ενσωματώνονται όλο και περισσότερο στην καθημερινότητα μας προσφέροντας μας την ικανότητα άμεσης μέτρησης αρκετών φυσικών ποσοτήτων. 1.2: Φυσική σημασία δεδομένων Στα πλαίσια αυτής της πτυχιακής εργασίας θα μας απασχολήσουν αισθητήρες που είναι σε θέση να μετράνε φυσικές ποσότητες που ανήκουν στον κλάδο της φυσικής, τη μηχανική, και πιο συγκεκριμένα στο χώρο της κινηματικής. Η κινηματική περιλαμβάνει εξισώσεις [2], [3] που περιγράφουν την κίνηση υλικών σημείων, σωμάτων στον χώρο. Θεμέλιο της κινηματικής αποτελεί η Νευτώνεια Μηχανική η οποία στηρίζεται στην σχέση ΣF = ma 4 Σ ε λ ί δ α

12 Πτυχιακή εργασία η οποία ορίζει πως το αλγεβρικό άθροισμα των δυνάμεων που δρουν επάνω σε ένα σώμα το οποίο κινείται επιταχυνόμενα είναι ίσο με το γινόμενο της μάζας του με την επιτάχυνση του. Έτσι όπως φαίνεται και στο παρακάτω σχήμα όταν έχουμε ένα σώμα που εκτελεί μια κυκλική κίνηση στο χώρο τα βασικά μεγέθη που το διέπουν είναι το διάνυσμα θέσης r, η ταχύτητά του ν, και η γωνιακή ταχύτητα ω. Εικόνα 2: κυκλική κίνηση στο καρτεσιανό και στο πολικό σύστημα συντεταγμένων. Η γωνιακή ταχύτητα δίνεται από τον τύπο ω = dθ dt z και συνδέεται με την συχνότητα κυκλικής περιστροφής από τον τύπο ω = 2πf. Όμως f = 1 όπου Τ η περίοδος περιστροφής προκύπτει ότι ω = 2π. Η κυκλική συχνότητα T Τ μετριέται σε Hz και εκφράζει των αριθμό των περιστροφών ανά μονάδα χρόνου ενώ η κυκλική ταχύτητα μετριέται σε rad ανά μονάδα χρόνου (sec). Το διάνυσμα της ταχύτητας ορίζεται ν = dr = ω r dt Όμως στην περίπτωση μη αδρανειακού σύστημα υπεισέρχονται οι δυνάμεις αδράνειας και έτσι η ταχύτητα προκύπτει να είναι ν α = ν σ + ν 0 + ω r 5 Σ ε λ ί δ α

13 Ηλεκτρονικές μετρήσεις σε συστήματα κίνησης Όπου r η θέση αναφοράς από το αδρανειακό σύστημα, ν α η απόλυτη ταχύτητα σε αδρανειακό σύστημα, ν σ σχετική ταχύτητα ως προς το μη αδρανειακό σύστημα, ν 0 + ω r η μετοχική ταχύτητα. Έτσι η επιτάχυνση προκύπτει να είναι α α = α 0 + a σ + 2ω ν σ + ω (ω r ) αν πολλαπλασιάσουμε την παραπάνω σχέση με την μάζα του σώματος προκύπτει mα σ = mα a ma 0 2mω ν σ m ω (ω r ) ΣF σ = ΣF a + F 0 + F c + F φ Όπου F c αποτελεί την δύναμη Coriolis και F φ την φυγόκεντρο δύναμη. Τα παραπάνω μεγέθη αποτελούν θεμελιώδης ποσότητες στην κινηματική και οι αισθητήρες που θα μελετηθούν στα πλαίσια αυτής της πτυχιακής εργασίας συσχετίζονται με μία από τις παραπάνω ποσότητες για την εξαγωγή μέτρησης. Επίσης τέτοιοι αισθητήρες που μετατρέπουν φαινόμενα μηχανικής σε ηλεκτρικά ανήκουν στην κατηγορία MEMS (microelectromechanical sensors). Ένα χαρακτηριστικό παράδειγμα είναι ένας αισθητήρας γυροσκοπίου ο οποίος συσχετίζει την δράση της δύναμης Coriolis με την έξοδο του και έτσι προσφέρει μετρήσεις της γωνιακής ταχύτητας. 1.3: Στόχος και σκοπός εργασίας Σε αυτή την πτυχιακή εργασία θα αναπτυχθούν τεχνικές σχεδιασμού μιας ηλεκτρονικής διάταξης, η οποία περιλαμβάνει δυο αισθητήρια όργανα για την εξαγωγή μετρήσεων επιτάχυνσης και περιστροφικής ταχύτητας. Επιπρόσθετα θα αναπτυχθούν και διάφορες τεχνικές που περιλαμβάνουν την αξιοποίηση των παραπάνω μετρήσεων από έναν Η/Υ σε πραγματικό χρόνο. Ειδικότερα οι τεχνικές περιλαμβάνουν την αναπαράσταση των μετρήσεων σε πραγματικό χρόνο με γραφικά υπολογιστή. Έτσι, στα πλαίσια αυτής της πτυχιακής εργασίας υλοποιήθηκε μια ηλεκτρονική διάταξη και ένα πρόγραμμα σε Η/Υ με τις τεχνικές ανάπτυξης που θα συζητηθούν ώστε να είμαστε σε θέση να αναπαριστούμε την κίνηση ενός σώματος με τις μετρήσεις που λαμβάνουμε από τα αισθητήρια, αρχικά για εποπτικούς λόγους ώστε να μπορούμε να συγκρίνουμε την απόκλιση που έχει η πραγματική κίνηση του σώματος με την κίνηση που προκύπτει από τις μετρήσεις. Σαν δευτερεύουσα προσέγγιση θα προσπαθήσουμε να δημιουργήσουμε έναν διαφορετικό τρόπο αλληλεπίδρασης ανθρώπου-μηχανής ο οποίος βασίζεται στις μετρήσεις που λαμβάνει από κινήσεις ανθρώπων για την διεκπεραίωση και επιλογή διαφόρων διεργασιών. Στα πλαίσια της υλοποίησης και προγραμματισμού της ηλεκτρονικής διάταξης υπήρξε συνεργασία με τον συμφοιτητή Νερούτσο Παναγιώτη του τμήματος Φυσικής ΑΠΘ, ο οποίος ασχολήθηκε περισσότερο με την μετάδοση σφαλμάτων, την μέτρηση δονήσεων επιφανειών και την περαιτέρω ανάλυση τους σε μη πραγματικό χρόνο. 6 Σ ε λ ί δ α

14 Κεφάλαιο 2: Βιβλιογραφία Τα ηλεκτρονικά συστήματα μέτρησης τα οποία είναι σε θέση να προσφέρουν μετρήσεις για διάφορες ποσότητες κινηματικής βρίσκουν εφαρμογή σε αρκετούς επιστημονικούς κλάδους όπως η ιατρική, ρομποτική, μηχανολογία και φυσική. Η συνεισφορά τους είναι σημαντική στην ενσωμάτωση καινούργιων καινοτομιών, στην συντήρηση και αναβάθμιση της ήδη υπάρχουσας τεχνολογίας, στην αυτοματοποίηση αρκετών λειτουργιών και γενικώς στην παρακολούθηση συστημάτων που χρήζουν ανάγκη γνώσης μεγεθών της κινηματικής. Παρακάτω θα αναφερθούν και θα αναλυθούν ενδεικτικές επιστημονικές έρευνες που αναδεικνύουν την συνεισφορά των ηλεκτρονικών συστημάτων μετρήσεων κινηματικών ποσοτήτων, καθώς επίσης και το συνδυασμό τους με τρισδιάστατα γραφικά περιβάλλοντα, σε διαφόρους επιστημονικούς τομείς. 2.1: Τρισδιάστατος διαδραστικός πίνακας μαρκαδόρων με σκοπό την επιστημονική συνεργασία (3D Interactive Whiteboard for Scientific Collaboration) [4] Σκοπός αυτής της εργασίας είναι η δημιουργία ενός εικονικού πίνακα μαρκοδόρων τον οποίο θα μπορεί να χρησιμοποιηθεί από πολλούς χρήστες ταυτόχρονα και θα επιτυγχάνει την επικοινωνία από απόσταση με την βοήθεια τρισδιάστατων οπτικών βοηθημάτων. Με την χρήση του προκείμενου συστήματος ερευνητές ανά τον κόσμο μπορούν να διεξάγουν τρόπους επικοινωνίας σαν να βρίσκονται στο ίδιο δωμάτιο και να συνδυάζουν την ερευνητική του δραστηριότητα. Εικόνα 3: Λογικό διάγραμμα υλοποίησης διαδραστικού πίνακα. 7 Σ ε λ ί δ α

15 Βιβλιογραφία Όπως φαίνεται και στην παραπάνω εικόνα τα βασικά χαρακτηριστικά για την επίτευξη αυτής της επιστημονικής έρευνας είναι: Διαδίκτυο Αισθητήριο όργανο χειριστήριο κονσόλας Wii Σχεδιαστικό πρόγραμμα Blender GlovePIE Το ρόλο του ηλεκτρονικού συστήματος μέτρησης τον παίζει το χειριστήριο της κονσόλας Wii, το οποίο είναι σε θέση να παρέχει μετρήσεις μεταβολής επιτάχυνσης. Μέσω του GlovePIE οι συγκεκριμένες μετρήσεις μεταφράζονται σαν παράμετροι εισόδου στον Η/Υ και έτσι το χειριστήριο είναι σε θέση να ελέγξει τον κέρσορα του Η/Υ. Το σχεδιαστικό πρόγραμμα Blender αποτελεί το ρόλο του πίνακα διάδρασης το οποίο κάνοντας χρήση της τεχνολογίας OpenGL ή Direct3D είναι σε θέση να απεικονίζει γραφικά της επιλογής του χρήστη. Η παραπάνω διάταξη είναι σχεδιασμένη να αλληλεπιδρά και με άλλες παρόμοιες διατάξεις μέσω του διαδικτύου μεταφέροντας τις μετρήσεις του ενός χρήστη στο Blender του άλλου και έτσι επιτυγχάνεται μια κοινή παρουσίαση των γραφικών και στους δύο ή περισσότερους χρήστες. Αξίζει να σημειωθεί πως λόγω της μειωμένης ταχύτητας επικοινωνίας μέσω διαδικτύου η επικοινωνία μεταξύ των διατάξεων έχει σχεδιαστεί με τέτοιο τρόπο ώστε μόνο οι αλλαγές στα γραφικά να αποστέλλονται και έτσι να επιτευχθούν πιο γρήγορα και άμεσα περιβάλλοντα συνεργασίας. 8 Σ ε λ ί δ α

16 Πτυχιακή εργασία 2.2: Δημιουργία πλατφόρμας χαμηλού κόστους για την δημιουργία τρισδιάστατων χωρικών διεπαφών σε βιντεοπαιχνίδια. (The Bespoke 3DUI XNA Framework: A Low-Cost Platform for Prototyping 3D Spatial Interfaces in Video Games) [5] Αυτή η διπλωματική εργασία έχει ως αντικείμενο την δημιουργία μια μηχανής γραφικών η οποία είναι σε θέση να εκμεταλλεύεται ηλεκτρονικά συστήματα μετρήσεων με σκοπό την δημιουργία μιας τρισδιάστατης διεπαφής μεταξύ χρηστών και βιντεοπαιχνιδιών. Στα πλαίσια της δημιουργίας της αναπτύχθηκε ένα πλαίσιο γραφικών τεχνολογίας XNA σε συνδυασμό από μια ποικιλία υλικών διατάξεων για την στερεοσκοπική απόδοση γραφικών. Εικόνα 4: Διάταξη που χρησιμοποιήθηκε για την ολοκλήρωση της εργασίας Την στερεοσκοπική απεικόνιση γραφικών την αναλαμβάνει μια 3D DLP HDTV οθόνη που χρησιμοποιεί μια τεχνική τρισδιάστατης απεικόνισης η οποία αναπτύχθηκε από την εταιρεία Texas Instruments. Η μηχανή γραφικών που αναπτύχθηκε είναι σε θέση να τροφοδοτεί την οθόνη με την κατάλληλη κωδικοποίηση εικόνας μέσω μιας στερεοσκοπικής κάμερας η οποία με την σειρά της τροφοδοτεί την μηχανή γραφικών με την σωστή διαχώριση του δεξιού και αριστερού ματιού ώστε να γίνει η σωστή αναπαράσταση υπό τις σωστές συνθήκες από την οθόνη. Για την σωστή γωνία θέασης της αναπαράστασης γραφικών από την οθόνη η μηχανή γραφικών λαμβάνει μετρήσεις από μια συσκευή εντοπισμού κεφαλιού την οποία ο χρήστης φοράει. Επίσης για τον χειρισμό των γραφικών έχει ενσωματωθεί το χειριστήριο της κονσόλας Wii το οποίο παρέχει μετρήσεις επιτάχυνσης ανά άξονα και έτσι αναλόγως την κίνηση του χειριστηρίου από τον χρήστη ο μηχανή 9 Σ ε λ ί δ α

17 Βιβλιογραφία γραφικών είναι σε θέση να καταλάβει μέσω της διπλής ολοκλήρωσης της μεταβολής επιτάχυνσης που ο χρήστης "στοχεύει". Εικόνα 5: Εφαρμογές μηχανής γραφικών. Στην παραπάνω εικόνα φαίνονται δύο εφαρμογές οι οποίες αξιοποιούν την μηχανή γραφικών που αναπτύχθηκε. Στο δεξί μέρος της εικόνας ο χρήστης παίζει ένα παιχνίδι το οποίο αναλόγως με τα γραφικά που εμφανίζονται στην οθόνη ο χρήστης πρέπει να κάνει κάποιες συγκεκριμένες κινήσεις ώστε να κερδίσει πόντους. Οι κινήσεις όπως φαίνεται και στην εικόνα μεταφράζονται από δύο χειριστήρια της κονσόλας Wii τα οποία είναι προσαρτημένα στα χέρια του χρήστη και αναλόγως την μέτρηση η μηχανή γραφικών αναπαριστά τα αντίστοιχα γραφικά. Στο αριστερό μέρος της εικόνας αναπαρίσταται μια εφαρμογή στην οποία η μηχανή γραφικών αξιοποιήθηκε για την δημιουργία κυκλικών μενού επιλογών. Μάλιστα αποτελεί μέρος έρευνας για την σύγκριση μεταξύ κυκλικών και γραμμικών επιλογών μενού. Και σε αυτή την εφαρμογή ο χρήστης επικοινωνούσε με την μηχανή γραφικών μέσω του χειριστηρίου της κονσόλας Wii. 10 Σ ε λ ί δ α

18 Πτυχιακή εργασία 2.3: Δημιουργία εικονικού χεριού για την εκμάθηση χρήσης προσθετική μέλους (A virtual hand for prosthetic training) [6] Σαν αντικείμενο αυτής της εργασίας ήταν η ανάπτυξη ενός συστήματος εικονικής πραγματικότητας μέσω του οποίου θα επιτυγχάνεται ο έλεγχος προσθετικών συσκευών και το οποίο βασίζεται σε αλγόριθμους αναγνώρισης μοτίβων. Η αναγνώριση των μοτίβων γίνεται με τη βοήθεια ενός γαντιού που ο ασθενής φοράει στο υγιές χέρι του το οποίο είναι εξοπλισμένο με αισθητήρες που μετρούν επιταχύνσεις στο εύρος των ±1.5g. Εικόνα 6: AcceleGlove Σημεία μέτρησης επιτάχυνσης από το γάντι. Οι μετρήσεις από το γάντι φτάνουν στον Η/Υ μέσω σειριακής θύρας όπου και εφαρμόζονται ένα φίλτρο μέσης τιμής και ένα φίλτρο Kalman για την μείωση του μεταδιδόμενου σφάλματος που υπεισέρχεται στις μετρήσεις με την μορφή θορύβου. Οι μετρήσεις απεικονίζονται από την μηχανή γραφικών Ogre3D με την μορφή ενός textured χεριού που αναπαριστά στην εικονική πραγματικότητα τη εμπειρία του ο χρήστης να είχε κάποιο προσθετικό μέλος και πως θα αλληλοεπιδρούσε με αυτό. 11 Σ ε λ ί δ α

19 Βιβλιογραφία 2.4: Δημιουργία διεπαφής χρήστη για αισθητήρια όργανα ρομπότ (ARGOS ORPHEUS-X2 User Interface ) [7] Στην προκείμενη διπλωματική εργασία αναπτύχθηκαν τεχνικές σχεδιασμού διεπαφής χρήστη για τη απομακρυσμένη εποπτεία και ελέγχου του ρομποτικού συστήματος Orpheus-X2. Εικόνα 7: Διάγραμμα ροής για την λειτουργία διεπαφής χρήστη. Όπως φαίνεται και στην παραπάνω εικόνα το ρομποτικό σύστημα είναι εξοπλισμένο με μια πληθώρα αισθητήριων στα οποία περιλαμβάνεται και μια ψηφιακή κάμερα. Η μετάδοση των μετρήσεων των αισθητήρων και η εικόνα από την κάμερα καταλήγουν στον Η/Υ μέσω σύνδεσης τοπικού δικτύου Ethernet ή ασύρματα μέσω κοινής σύνδεσης WiFi. Στη συνέχεια το πρόγραμμα που είναι γραμμένο σε C++ και εκμεταλλεύεται τις τεχνολογίες Win32 και DirectX απεικονίζει με γραφικά το εικονικό καντράν και τα υπόλοιπα γραφικά που αντιστοιχούν σε άλλες μετρήσεις αισθητηρίων. Στη συνέχεια η προηγούμενη επιφάνεια εφαρμόζεται σαν στρώμα επικάλυψης στην εικόνα που στέλνει η κάμερα του ρομποτικού συστήματος και έτσι η συνδυασμένη προβολή τους είναι το περιβάλλον διεπαφής του χρήστη. 12 Σ ε λ ί δ α

20 Πτυχιακή εργασία Εικόνα 8: Τελικό αποτέλεσμα διεπαφής χρήστη. Όπως φαίνεται και στην παραπάνω εικόνα η τελική διεπαφή χρήστη περιλαμβάνει ένα αντικείμενο για αναφορά μηνύματος από το ρομποτικό σύστημα. Ένα αντικείμενο που απεικονίζει την κατάσταση του ρομποτικού συστήματος, καθώς και ένα που δείχνει την θέση του συστήματος. Επίσης γίνεται αναπαράσταση της εικόνας που παρέχεται από την κάμερα και ένα βοηθητικό αντικείμενο που δείχνει τον προσανατολισμό της κάμερας. 13 Σ ε λ ί δ α

21 Βιβλιογραφία 2.5: Καθρεφτισμός: Εγγραφή κίνησης σώματος με την χρήση ασύρματων αισθητήρων ( Mirrored Motion: Pervasive Body Motion Capture using Wireless Sensors ) [8] Στα πλαίσια αυτής της διπλωματικής εργασίας είναι η διερεύνηση για το πόσο ακριβείς μετρήσεις μπορούν να παρέχουν αισθητήρια όργανα που μετράνε ποσότητες κινηματικής. Έτσι υλοποιήθηκε ένας εξοπλισμός, τον οποίο ο χρήστη φοράει, και ασύρματα επικοινωνεί με τον Η/Υ για την αναπαράσταση των μετρήσεων σε ένα περιβάλλον γραφικών. Σκοπός της είναι η ανάδειξη των αισθητήριων κινηματικής στον χώρο των βιντεοπαιχνιδιών σαν εναλλακτικούς τρόπους αλληλεπίδρασης χρήστη παιχνιδιού και γενικώς την δημιουργία νέων διεπαφών χρηστή για τον πλήρη έλεγχο Η/Υ απομακρυσμένα εξαλείφοντας την χρήση πληκτρολογίου ή ποντικιού. Εικόνα 9: Αριστερά: Ηλεκτρονική διάταξη που υλοποιήθηκε, Δεξιά: χρήστης που φοράει τον εξοπλισμό. Η ηλεκτρονική διάταξη η οποία υλοποιήθηκε συμπεριλαμβάνει ένα αισθητήριο το οποίο μετράει γραμμικές επιταχύνσεις ανά άξονα, έναν αισθητήρα για την μέτρηση γωνιακής ταχύτητας, έναν αισθητήρα για την μέτρηση στοιχείων του γήινου μαγνητικού πεδίου και τέλος επιμέρους ηλεκτρονικές διατάξεις υπεύθυνες για την ασύρματη επικοινωνία. Όπως φαίνεται και στα δεξιά της παραπάνω εικόνας έχει φτιαχτεί μια πληθώρα τέτοιων ηλεκτρονικών διατάξεων για την προσάρτηση καθεμίας στα κινούμενα μέρη του ανθρώπινου και έτσι την διεξοδικότερη ανάλυση της κίνησης του. Οι μετρήσεις όλων των αισθητήριων συνδέονται μεταξύ τους ασύρματα με τον Η/Υ μέσω του πρωτοκόλλου WiFi. 14 Σ ε λ ί δ α

22 Πτυχιακή εργασία Εικόνα 10: Αναπαράσταση γραφικών αναλόγων της κίνησης του χρήστη. Οι μετρήσεις που φτάνουν στον Η/Υ αναπαρίστανται σε ένα γραφικό περιβάλλον που βασίζεται στην τεχνολογία Direct3D της Microsoft και όπως φαίνεται και στην παραπάνω εικόνα το γραφικό με τις μετρήσεις που στέλνονται από τα αισθητήρια όργανα παίρνει ίδια στάση με την στάση που έχει ο χρήστης. 15 Σ ε λ ί δ α

23 Βιβλιογραφία 2.6: Σύστημα αυτοματοποιημένης μέτρησης βασιζόμενο σε ψηφιακούς αισθητήρες αδράνειας για την μελέτη της ανθρώπινης κίνησης (Automated Measurement System Based on Digital Inertial Sensors for the Study of Human Movement ) [9] Ο σκοπός της συγκεκριμένης εργασίας είναι η εκμετάλλευση των MEMS αισθητήριων οι οποίοι μπορούν πλέον με μεγάλη ακρίβεια να μετρήσουν παραμέτρους κίνησης ενός ανθρώπου, ξεπερνώντας της μετρήσεις των παλαιότερων τεχνικών που βασιζόταν στην ανάλυση βίντεο για την εύρεση παραμέτρων κίνησης. Η ηλεκτρονική διάταξη όπως φαίνεται και στην παρακάτω εικόνα περιλαμβάνει δύο σετ το καθένα από έναν αισθητήρα μέτρησης γραμμικής επιτάχυνσης και έναν για την μέτρηση γωνιακής ταχύτητας. Εικόνα 11: Ηλεκτρονική διάταξη εργασίας. Πιο συγκεκριμένα η συγκεκριμένη ηλεκτρονική διάταξη είναι σε θέση να βρίσκει την ακριβή θέση μιας άρθρωσης μετρώντας την σχετική θέση δύο εφαπτομενικών σημείων που συνδέονται με μια άρθρωση. Η τρόπος λειτουργίας περιλαμβάνει την χρήση ενός μικροελεγκτή ο οποίος είναι υπεύθυνος για την εξαγωγή των μετρήσεων από τα αισθητήρια και την μετέπειτα αποθήκευση του σε μια κάρτα μνήμης. Επίσης περιλαμβάνεται ένα RF module το οποίο χρησιμοποιείται για την σηματοδότηση εκκίνησης και παύσης της διαδικασίας μέτρησης. Στα πλαίσια ανάπτυξης προγραμμάτων παρακολούθησης της διαδικασίας των μετρήσεων σε πραγματικό χρόνο η ηλεκτρονική διάταξη ενσωματώνει ένα καλώδιο TTL-232R-3V3 για διασύνδεση USB με Η/Υ. Για την επιβεβαίωση της εγκυρότητας των μετρήσεων η ηλεκτρονική διάταξη εφαρμόσθηκε σε έναν χρήστη ο οποίος είχε κινητικό πρόβλημα στον δεξί αστράγαλο. 16 Σ ε λ ί δ α

24 Πτυχιακή εργασία Εικόνα 12: Μέτρηση στο πόδι του χρήστη. Όπως φαίνεται και στο παραπάνω διάγραμμα ο ασθενής εμφάνιζε απόκλιση κίνησης στον αριστερό αστράγαλο. Έχοντας πλέον δει την διαδομένη χρήση των αισθητήρων MEMS και τον συνδυασμό τους με μηχανές γραφικών για την αναπαράσταση γραφικών ανάλογα την κίνηση των χρηστών ή την ανάδειξη εναλλακτικών τρόπων αλληλεπίδρασης χρήστη Η/Υ θα προχωρήσουμε στην θεωρητική ανάλυση των τεχνολογιών που χρησιμοποιήθηκαν στα πλαίσια αυτής της πτυχιακής εργασίας. 17 Σ ε λ ί δ α

25 Βιβλιογραφία 18 Σ ε λ ί δ α

26 Κεφάλαιο 3: Επίπεδο Hardware 3.1: Μικροελεγκτής Ξεκινώντας να περιγράφουμε το υλικό (Hardware), χρησιμοποιήσαμε έναν 8bit μικροελεγκτή (microcontroller) Atmega168 [3] οποίος εργοστασιακά είναι χρονισμένος στα 8 MHz, δηλαδή το εσωτερικό ρολόι χρονισμού του λειτουργεί στους 8 μεγακύκλους. Κάνοντας μια σύντομη ιστορική αναδρομή ο πρώτος μικροελεγκτής κατασκευάστηκε από την εταιρεία Intel κατά το έτος Γενικώς η ιδεολογία πίσω από την επινόηση και την κατασκευή των μικροελεγκτών είναι η δημιουργία ενός ολοκληρωμένου κυκλώματος, που αποτελείται από έναν επεξεργαστικό πυρήνα, μνήμη και προγραμματιζόμενες είσοδοι και έξοδοι. Η χρήση τους είναι διαδεδομένη κυρίως για την υλοποίηση ενός ενσωματωμένου κυκλώματος (embedded circuit) και μια από τις πιο συχνές λειτουργίες τους είναι η λήψη σε σημαντικότερο βαθμό και η ανάλυση ψηφιακού σήματος (Digital Signal Processing DSP) σε δευτερεύων βαθμό, όπως και σε αυτήν την πτυχιακή εργασία. Έτσι λοιπόν ο μικροελεγκτής που χρησιμοποιήσαμε συμφωνεί με τα παραπάνω χαρακτηριστικά και αποτελείται από 16 Kbytes μνήμη Flash, 512 Bytes μνήμη EEPROM και 1 Kbytes μνήμη RAM. Επίσης προσφέρει την δυνατότητα διπλής διευθυνσιοδότησης ανά πίνακα των Interrupts. Γενικότερα ο τύπος μνήμης Flash [10] είναι υπεύθυνος για την αποθήκευση και την προσπέλαση του κώδικα με τον οποίο προγραμματίσαμε τον μικροεπεξεργαστή μας, καθώς συμπεριλαμβάνει και άλλα ζωτικά μέρη από μεριάς κώδικα, όπως ο Bootloader που είναι υπεύθυνος κατά κύριο λόγω για την εκκίνηση του μικροεπεξεργαστή. Η μνήμη Flash είναι επαναπρογραμματίσιμη και στον μικροεπεξεργαστή μας χωρίζεται σε δύο μέρη, στο ένα είναι αποθηκευμένος ο Bootloader και στο άλλο ο κώδικας με τον οποίο εμείς θέλουμε να διαχειριστούμε τον μικροελεγκτή και να του περιγράψουμε τη λειτουργία του. Η μνήμη EEPROM [11] ανήκει στην κατηγορία των Εικόνα 13: Atmega 168. non-volatile memory δηλαδή έχει σαν χαρακτηριστικό να διατηρεί τα δεδομένα που έχουν αποθηκευτεί σε αυτήν ακόμη και μετά από την απώλεια τροφοδοσίας. Αυτή η ικανότητα την καθιστά τέλεια επιλογή για την αποθήκευση δεδομένων-ρυθμίσεων, που χρειάζονται για την σκοπιμότητα που θέλουμε να προσδώσουμε στον μικροεπεξεργαστή. Η μνήμη RAM του μικροελεγκτή που χρησιμοποιήσαμε είναι τύπου SRAM (Static random-access memory) [12] και βασική της χρήση είναι η προσωρινή αποθήκευση διευθύνσεων δεδομένων τα οποία με την άρση τροφοδοσίας θα χαθούν, δηλαδή πρόκειται για τύπου volatile memory. Πέρα από όλα τα παραπάνω χαρακτηριστικά που αποτελούν σε γενικές γραμμές έναν συνηθισμένο μικροελεγκτή, άλλο σημαντικό χαρακτηριστικό που δίνει στην κατηγορία των μικροελεγκτών ευελιξία και τους καθιστά τόσο διαδεδομένους είναι οι προγραμματιζόμενες είσοδοι και έξοδοι (Interrupts). Γενικά η λογική πίσω από τα Interrupts είναι η χρήση "event-driven" προγραμματισμού δηλαδή αναλόγως με κάποιο συμβάν ο μικροελεγκτής μας θα τρέξει κάποιο κομμάτι κώδικα που αντιστοιχεί σε αυτό το συμβάν. Υπάρχουν πολλές κατηγορίες Interrupts που το καθένα αφορά διαφορετικά συμβάντα. Αυτά τα οποία μας απασχόλησαν και χρησιμοποιήθηκαν σε αυτή την πτυχιακή εργασία 19 Σ ε λ ί δ α

27 Επίπεδο Hardware είναι οι κατηγορίες των external interrupts και usart interrupt (αναλύονται σε επόμενη παράγραφο). Εισχωρώντας λίγο βαθύτερα στον κόσμο των Interrupts, [13] όπως προαναφέραμε, χωρίζονται σε πολλές κατηγορίες μα σαν βασικοί διαχωρισμοί υφίστανται δύο, που αφορούν κυρίως τον τρόπο με τον οποίο θα τα διαχειριστεί ο μικροελεγκτής. Στην πρώτη κατηγορία όταν ένα Interrupt συμβεί τότε ενεργοποιείται το αντίστοιχο Interrupt Flag (bit καταχωρητή δεδομένων υπεύθυνο για την σηματοδότηση του Interrupt) και στη συνέχεια ο Program Counter (Αριθμητής προγράμματος) εισχωρεί στον τρέχον κώδικα το κομμάτι κώδικα που αντιστοιχεί στο Interrupt. Κατά την ολοκλήρωση του κώδικα μηδενίζει το Interrupt Flag, έτσι για να εκτελεστεί ξανά η προηγούμενη διαδικασία θα πρέπει να ικανοποιηθούν ξανά οι συνθήκες πυροδότησης του Interrupt. Αντίθετα στην άλλη κατηγορία όσο πληρούνται οι συνθήκες για το Interrupt, θα εκτελείται συνέχεια ο αντίστοιχος κώδικας του, χωρίς την χρήση Interrupt Flag και τον σεβασμό της σειράς από τον Program Counter. Πέρα από τους δύο προηγούμενους διαχωρισμούς στον τρόπο αντιμετώπισης υπάρχει και διαφοροποίηση στην προτεραιότητα δηλαδή αν δύο Interrupt συμβούν στον ίδιο περίπου χρόνο αναλόγως την προτεραιότητα του καθενός, θα εκτελεστεί το κομμάτι κώδικα που αντιστοιχεί στο συμβάν με την υψηλότερη προτεραιότητα και οποιοδήποτε άλλο θα εκτελεστεί με καθυστέρηση αναλόγως την προτεραιότητα του. Οι λόγοι και οι προτεραιότητες για το κάθε Interrupt φαίνονται στον παρακάτω πίνακα και όσο πιο μικρή είναι η διεύθυνση της μνήμης τόσο πιο μεγάλης προτεραιότητας είναι το Interrupt. Πίνακας 1:Λίστα Interrupts με την αντίστοιχη προτεραιότητα τους και τον λόγο που τα προκάλεσε. ΑΡΙΘΜΟΣ ΑΝΥΣΜΑΤΩΝ ΔΙΕΥΘΥΝΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ 1 0x0000 RESET ΠΗΓΗ ΛΟΓΟΙ Αλλαγή εξωτερικού Pin (ακροδέκτη), επαναφορά τροφοδοσίας, επαναφορά συστήματος από Watchdog 2 0x0002 INT0 Αίτηση εξωτερικού Interrupt 0 3 0x0004 INT1 Αίτηση εξωτερικού Interrupt 1 4 0x0006 PCINT0 Αίτηση αλλαγής κατάστασης Pin 0 5 0x0008 PCINT1 Αίτηση αλλαγής κατάστασης Pin 1 6 0x000A PCINT2 Αίτηση αλλαγής κατάστασης Pin 2 7 0x000C WDT Εξάντληση χρόνου του Watchdog 8 0x000E 9 0x0010 TIMER2 COMPA TIMER2 COMPB Σύγκριση και ταίριασμα μεταξύ Watchdog/Counter2 = A Σύγκριση και ταίριασμα μεταξύ Watchdog/Counter2 = B 10 0x0012 TIMER2 OVF Υπερχείλιση Timer ή Counter2 11 0x0014 TIMER1 CAPT Συμβάν σύλληψης Timer ή Counter1 12 0x0016 TIMER1 COMPA Σύγκριση και ταίριασμα μεταξύ Watchdog/Counter1 με B 13 0x0018 TIMER1 Σύγκριση και ταίριασμα μεταξύ 20 Σ ε λ ί δ α

28 COMPB Watchdog/Counter1 με B 14 0x001A TIMER1 OVF Υπερχείλιση Timer ή Counter1 15 0x001C 16 0x001E TIMER0 COMPA TIMER0 COMPB Σύγκριση και ταίριασμα μεταξύ Watchdog/Counter0 = B Σύγκριση και ταίριασμα μεταξύ Watchdog/Counter0 = B 17 0x0020 TIMER0 OVF Υπερχείλιση Timer ή Counter0 18 0x0022 SPI, STC Ολοκλήρωση σειριακής μεταφοράς SPI 19 0x0024 USART, RX Ολοκλήρωση λήψης USART 20 0x0026 USART, UDRE Άδειος καταχωρητής δεδομένων USART 21 0x0028 USART, TX Ολοκλήρωση εκπομπής USART 22 0x002A ADC Ολοκλήρωση ψηφικοποίησης 23 0x002C EE READY Έτοιμη EEPROM μνήμη 24 0x002E ANALOG COMP Αναλογικός συγκριτής 25 0x0030 TWI Σειριακή διασύνδεση 2-Wire (I 2 C) 26 0x0032 SPM READY Έτοιμη αποθηκευτική μνήμη προγράμματος Πτυχιακή εργασία Στα πλαίσια αυτής της πτυχιακής εργασίας θα μας απασχολήσουν τα usart Interrupt και τα external Interrupts : External Interrupts (Εξωτερικά συμβάντα) Τα συγκεκριμένα Interrupt [13] έχουν ως συμβάν πυροδότησης την αλλαγή της τάσης σε ένα Pin, αυτός είναι και ο λόγος για τον οποίο χαρακτηρίζονται ως "εξωτερικά" Interrupts. Ειδικότερα ο μικροελεγκτής είναι σε θέση να διακρίνει πολλές περιπτώσεις από τις οποίες μπορούμε εμείς να ρυθμίσουμε για το ποια θα αποτελέσει ενεργή συνθήκη για να εκτελεστεί το αντίστοιχο Interrupt. Αυτό επιτυγχάνεται με το να αποθηκεύσουμε κατάλληλα bit στους καταχωρητές μνήμης που είναι υπεύθυνοι για την λειτουργία και την συνθήκη του external Interrupt. Στον συγκεκριμένο μικροελεγκτή που χρησιμοποιήσαμε δύο καταχωρητές μνήμης (EIMSK, EICRA) είναι υπεύθυνοι για την ενεργοποίηση και την ρύθμιση των δύο ακροδεκτών που προσφέρουν αυτή τη δυνατότητα (INT0, INT1). Ο καταχωρητής EIMSK είναι υπεύθυνος για την ενεργοποίηση του external Interrupt για τα δύο διαθέσιμα Pin. Στην ψηφιολέξη που μπορούμε να αποθηκεύσουμε καθοριστικό ρόλο παίζουν τα δύο λιγότερο σημαντικά ψηφία της όπου και το λιγότερο σημαντικό ψηφίο αφορά το Pin ΙΝΤ0 ενώ το αμέσως επόμενο το ΙΝΤ1. Μια πιθανή ρύθμιση θα ήταν να αποθηκεύσουμε την ψηφιολέξη 0x02 (ΗΕΧ) στον καταχωρητή EIMSK και έτσι ο μικροελεγκτής μας θα ενεργοποιήσει την ανίχνευση στις αλλαγές τάσης στο Pin ΙΝΤ1. 21 Σ ε λ ί δ α

29 Επίπεδο Hardware Πίνακας 2: Χαρακτηριστικά καταχωρητή EIMSK Bit Διεύθυνση (0x3D) Εγγραφή/Ανάγ νωση INT1 INT0 Ανάγνωση Ανάγνωση Ανάγνωση Ανάγνωση Ανάγνωση Ανάγνωση Εγγραφή/ Ανάγνωση Εγγραφή/ Ανάγνωση Αρχική τιμή Απενεργοποιημένα external Interrupt 0 0 Περιπτώσεις Ενεργοποίηση Interrupt στο Pin ΙΝΤ0 0 1 Ενεργοποίηση Interrupt στο Pin ΙΝΤ1 1 0 Ενεργοποίηση Interrupt στο Pin ΙΝΤ1 και INT0 1 1 Πέρα από την ενεργοποίηση του αντίστοιχου Interrupt για τα INT0, INT1 ο μικροελεγκτής περιέχει και έναν καταχωρητή μνήμης με το οποίο μπορούμε να επιλέξουμε τις συνθήκες όπου θα εκτελείται το ενεργοποιημένο Interrupt. Πρόκειται για τον καταχωρητή EICRA στον οποίο σημαντικό ρόλο παίζουν τα 4 λιγότερο σημαντικά ψηφία της ψηφιολέξης που αποθηκεύεται εκ των οποίων τα 2 πρώτα bit αφορούν την ρύθμιση της συνθήκης για το INT0 ενώ τα υπόλοιπα 2 για το INT1. Ειδικότερα, ο μικροελεγκτής έχει την δυνατότητα να πυροδοτεί το Interrupt όταν η τάση βρίσκεται στο λογικό μηδέν (low level), μετάβαση από λογικό ένα σε λογικό μηδέν (falling edge), μετάβαση από λογικό μηδέν σε λογικό ένα (rising edge) ή γενικώς οποιαδήποτε αλλαγή στην τάση. Έτσι όταν αποθηκεύσουμε στον καταχωρητή EICRA την ψηφιολέξη 0x0C (HEX) ενεργοποιούμε την συνθήκη μετάβασης από το λογικό 0 στο λογικό 1 για το INT1 και την συνθήκη για όταν βρίσκεται η τάση στο λογικό 0 για το INT0. Πίνακας 3: Χαρακτηριστικά καταχωρητή EICRA. Bit Διεύθυνση (0x3D) Εγγραφή/Ανάγ νωση ISC11 ISC10 ISC01 ISC00 Ανάγνωση Ανάγνωση Ανάγνωση Ανάγνωση Εγγραφή/ Ανάγνωση Εγγραφή/ Ανάγνωση Εγγραφή/ Ανάγνωση Εγγραφή/ Ανάγνωση Αρχική τιμή Συνθήκη στο λογικό μηδέν για ΙΝΤ0 και ΙΝΤ Περιπτώσεις Συνθήκη για οποιαδήποτε αλλαγή στην τάση για ΙΝΤ0 και ΙΝΤ1 Συνθήκη μετάβασης από λογικό 1 σε λογικό 0 για ΙΝΤ0 και ΙΝΤ1 Συνθήκη μετάβασης από λογικό 0 σε λογικό 1 για ΙΝΤ0 και ΙΝΤ Στην παρακάτω εικόνα φαίνεται ποια είναι η πιθανή μορφή που έχει ο παλμός στο αντίστοιχο Pin ώστε να πληρείται η συνθήκη που ρυθμίσαμε στον καταχωρητή EICRA. 22 Σ ε λ ί δ α

30 Πτυχιακή εργασία Εικόνα 14: Συνθήκες external Interrupt. α) μετάβαση από λογικό 0 σε λογικό 1 (rising edge). β) μετάβαση από λογικό 1 σε λογικό 0 (falling edge). γ) τάση στο λογικό 0. Εφόσον αναλύσαμε το τι είναι, πως εκτελούνται και ποια είναι η προτεραιότητα των Interrupt στην παρακάτω εικόνα φαίνεται το σχεδιάγραμμα ενός μικροελεγκτή Atmega 168, βάσει του οποίου θα ενσωματώσουμε και θα συνδέσουμε τον μικροελεγκτή με τις επιμέρους ηλεκτρονικές διατάξεις του κυκλώματός μας. Εικόνα 15: Διάγραμμα Atmega : Πρωτόκολλο UART & UART Interrupts Αναλύοντας την λέξη uart (universal asynchronous receiver transmitter) [14] πρόκειται για μια ηλεκτρονική διάταξη που αποτελεί επιμέρους κύκλωμα του μικροελεγκτή μας και είναι υπεύθυνη για την μετάφραση δεδομένων μεταξύ παράλληλων και σειριακών μορφών. Η λέξη universal προσδιορίζει πως η μορφή των δεδομένων αλλά και η ταχύτητα μεταφοράς είναι άμεσα ρυθμίσιμη. Επίσης η λειτουργία του μπορεί να είναι είτε συγχρονισμένη είτε ασύγχρονη με την διαφορά πως στην ασύγχρονη λειτουργία όταν δεν υπάρχει κάποιο δεδομένο για αποστολή ο εκπομπός δεν αποστέλλει κανένας χαρακτήρα σε αντίθεση με την συγχρονισμένη, όπου αποστέλλεται ο χαρακτήρας pad σε ανάλογη περίπτωση, έτσι ώστε να επιτυγχάνεται η σύγχρονη επικοινωνία μεταξύ εκπομπού και δέκτη. 23 Σ ε λ ί δ α

31 Επίπεδο Hardware Οι καταχωρητές που είναι υπεύθυνοι [13] για την ενεργοποίηση και την περαιτέρω ρύθμιση του πρωτοκόλλου UART στο συγκεκριμένο μοντέλο μικροεπεξεργαστή που χρησιμοποιήθηκε είναι οι εξής: UDRn USART I/O data register n. Ο συγκεκριμένος καταχωρητής αποτελεί το Buffer και για τα δεδομένα που αποστέλλει ο μικροελεγκτής αλλά και για τα δεδομένα που λαμβάνει. Bit UDRn(Read) UDRn(Write) Εγγραφή/Ανάγ νωση RXB[7:0] TXB[7:0] Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή UCSRnA USART control and status register n A. Bit Διεύθυνση (0xB8) Εγγραφή/Ανάγ νωση RXCn TXCn UDREn FEn DORn UPEn U2Xn MPCMn Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή Περιγραφή RXCn TXCn UDREn FEn DORn UPEn U2Xn MPCMn Bit σηματοδότησης για την ύπαρξη αδιάβαστων δεδομένων στο buffer λήψης. Bit σηματοδότησης όταν έχει αδειάσει ο καταχωρητής αποστολής και όταν το buffer εκπομπής είναι άδειο. Bit σηματοδότησης πως το buffer εκπομπής είναι σε θέση να δεχθεί καινούργια δεδομένα προς αποστολή. Bit σηματοδότησης όταν στο buffer λήψης συμβεί ένα σφάλμα διευθυνσιοδότησης των δεδομένων. Bit σηματοδότησης για υπερχείλιση buffer λήψης. Bit σηματοδότησης όταν στο buffer λήψης συμβεί σφάλμα parity. Bit το οποίο όταν ορισθεί στο λογικό 1 διπλασιάζεται η ταχύτητα μεταφοράς στο ασύγχρονο πρωτόκολλο. Bit το οποίο όταν ορισθεί στο λογικό 1 όποιο δεδομένο ληφθεί χωρίς να περιέχει πληροφορίες διεύθυνσης αποστολέα αγνοείται. 24 Σ ε λ ί δ α

32 Πτυχιακή εργασία UCSRnΒ USART control and status register n Β. Bit Διεύθυνση (0xB8) Εγγραφή/Ανάγ νωση RXCΙΕn TXCΙΕn UDRΙEn RXENn TXENn UCSZn2 RXB8n UCSRnB Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή Περιγραφή RXCΙΕn TXCΙΕn UDRΙEn RXENn TXENn UCSZn2 RXB8n UCSRnB Bit το οποίο όταν ορισθεί στο λογικό 1 ενεργοποιείται το interrupt ολοκλήρωσης λήψης δεδομένων. Bit το οποίο όταν ορισθεί στο λογικό 1 ενεργοποιείται το interrupt ολοκλήρωσης αποστολής δεδομένων. Bit το οποίο όταν ορισθεί στο λογικό 1 ενεργοποιείται το interrupt αλλαγής κατάστασης του bit UDREn δεδομένων. Bit το οποίο όταν ορισθεί στο λογικό 1 ενεργοποιείται o δέκτης USART. Bit το οποίο όταν ορισθεί στο λογικό 1 ενεργοποιείται o εκπομπός USART. Bit το οποίο σε συνδυασμό με το bit UCSZn1:0 ορίζουν την έκταση σε bit των δεδομένων. Το 9 bit του δεδομένου προς λήψη όταν έχουν ορισθεί δεδομένα έκτασης 9bit. Το 9 bit του δεδομένου προς αποστολή όταν έχουν ορισθεί δεδομένα έκτασης 9bit. UBRRnL and UBRRnH USART baud rate registers UBRRnH UBRRn[11:8] UBRRnL UBRRN[7:0] Εγγραφή/Ανάγ νωση Αν. Αν. Αν. Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή Περιγραφή Bit 15:12 Bit 11:0 Δεσμευμένα Bit Πρόκειται για 12bit σε έκταση καταχωρητή ο οποίος περιέχει την τιμή του baud rate του USART που προκύπτει από τον τύπο Fosc 16 Baudarate 1, όπου F osc η συχνότητα του μικροελεγκτή. 25 Σ ε λ ί δ α

33 Επίπεδο Hardware Για την σύνδεση ηλεκτρονικών κυκλωμάτων με έναν Η/Υ χρησιμοποιήσαμε τo καλώδιο FTDI-RS232 [15] το οποίο είναι υπεύθυνο για την σειριακή μετάδοση δυαδικών σημάτων δεδομένων με το πρότυπο RS232 (Recommended Standard 232). Ειδικότερα προσομοιώνει μια σειριακή πόρτα μέσω USB διασύνδεσης. Εικόνα 16: Ηλεκτρονικό διάγραμμα FTDI-RS232. Στα πλαίσια αυτής της πτυχιακής εργασία θα μελετήσουμε μόνο το πρότυπο επικοινωνίας που περιλαμβάνει τα Pin τροφοδοσίας Vcc (5V), γείωσης GND, κανάλι εκπομπής TXD, κανάλι λήψης RXD. Πρόκειται για ένα μοντέλο ασύγχρονης επικοινωνίας στο οποίο τα δεδομένα μεταξύ ηλεκτρονικού κυκλώματος και Η/Υ μεταφέρονται μέσω TXD και RXD έχοντας ως σύστημα αναφοράς τον Η/Υ. Δηλαδή με το κανάλι εκπομπού θεωρούμε το δεδομένο που αποστέλλεται από τον Η/Υ προς το κύκλωμα και ως κανάλι λήψης τα δεδομένα που αποστέλλονται από το κύκλωμα προς τον Η/Υ : Πρωτόκολλο I 2 C (TWI two wire interface) Στην προηγούμενη παράγραφο αναλύσαμε τι είναι, ποια είναι τα βασικά χαρακτηριστικά και πως λειτουργούν τα Interrupts ενός μικροελεγκτή. Προχωρώντας πλέον σε επίπεδο σύνδεσης και επικοινωνίας του μικροελεγκτή με άλλες ηλεκτρονικές διατάξεις υπάρχει πληθώρα πρωτόκολλων με τα οποία μπορεί να επιτευχθεί η επικοινωνία. Ένα από τα υποστηριζόμενα πρωτόκολλα του μικροελεγκτή μας, που χρησιμοποιήθηκε σε αυτήν την πτυχιακή εργασία για την σύνδεση των αισθητήρων είναι το πρωτόκολλο 2-Wire (I 2 C) [16]. Η πρώτη έκδοση του συγκεκριμένου πρωτόκολλου κυκλοφόρησε από την Philips το 1982 (ταχύτητα επικοινωνίας 100 khz) και από τότε το έχουν διαδεχθεί πολλές επανεκδόσεις που του προσφέρουν επιπλέον χαρακτηριστικά όπως ταχύτητα (2012 έκδοση 4.0 ταχύτητα επικοινωνίας έως 5MHz). Ο λόγος που καθιστά το πρωτόκολλο Ι 2 C τόσο διαδεδομένο σε πολλές ηλεκτρονικές κατασκευές είναι η σχετικά απλή λογική που το διέπει και η ευκολία ενσωμάτωσής του σε ηλεκτρονικές διατάξεις. 26 Σ ε λ ί δ α

34 Πτυχιακή εργασία Εικόνα 17: Ηλεκτρονική διάταξη I 2 C Η ηλεκτρονική διάταξη του πρωτόκολλου φαίνεται στην περιλαμβάνει μόνο μία ηλεκτρονική διάταξη στη θέση Master (Αφέντης) και τις "περιφερειακές" συσκευές σε θέση Slave (Δούλος). Ο προηγούμενος διαχωρισμός στέκει για το ποια ηλεκτρονική διάταξη είναι υπεύθυνη να ζητάει και να δέχεται τις μετρήσεις, που όπως είναι προφανές στην συγκεκριμένη πτυχιακή εργασία αυτόν τον ρόλο τον κατέχει ο μικροελεγκτή. Αναλύοντας την ηλεκτρονική διάσταση του I 2 C, η διάταξη περιλαμβάνει πέρα από το κανάλι τροφοδοσίας και άλλα δύο κανάλια το SDA (Serial Data Line) και SCL (Serial Clock). To κανάλι τροφοδοσίας παρεμβάλλεται στα SDA και SCL με την χρήση Pull-up resistors ( Αντιστάσεις Pull-up) οπού ο βασικός λόγος είναι να κρατούν την τάση υψηλή (λογικό 1) στα δύο κανάλια, μια και οι περιφερειακές συσκευές Slave έχουν μόνο την δυνατότητα να την ρίχνουν (λογικό 0). Έτσι σχηματίζεται μια κυματομορφή επικοινωνίας με την οποία μεταφέρονται δεδομένα από τις συσκευές Slave στην συσκευή Master. Εικόνα 18: Διάγραμμα τάσης καναλιών SDA και SCL. Αναλύοντας την επικοινωνία του πρωτόκολλου [3], η γραμμή SDA είναι υπεύθυνη για την σειριακή μεταφορά δεδομένων ψηφιολέξης 8 bit από τον Slave στον Master, μα και για την μετάδοση εντολών που έχουν την μορφή bit από τον Master στον Slave. Η γραμμή SCL λειτουργεί σαν ρολόι χρονισμού μεταξύ Master και Slave, δηλαδή στην αρχή η τάση 27 Σ ε λ ί δ α

35 Επίπεδο Hardware βρίσκεται στο λογικό 1 λόγω των pull-up αντιστάσεων. Κατά την εντολή εκκίνησης από τον Master ο κατάλληλος αισθητήρας ρίχνει την τάση στο λογικό 0 και έτσι ο Master είναι σε θέση να στείλει την εντολή του στον Slave. Όταν ο Master τελειώσει με την αποστολή εντολής και ο Slave είναι έτοιμος να αποστείλει την απάντησή του στον Master αφήνει πάλι την τάση να μεταβεί στο λογικό 1 μέσω των pull-up αντιστάσεων και κάνει αντιληπτό στον Master να "διαβάσει" τα δεδομένα που του αποστέλλει. Το κομμάτι που λείπει για ολοκληρωθεί η επικοινωνία είναι ένας μηχανισμός διαχωρισμού του κάθε Slave από τον Master. Αυτό επιτυγχάνεται με την ανάθεση μοναδικής διεύθυνσης σε κάθε Slave, έτσι ώστε όταν ο Master στείλει την εντολή START + ADDRESS R/W θα του "απαντήσει" μόνο η συσκευή με την αντίστοιχη διεύθυνση. Τα όρια με τα οποία αντιλαμβάνονται την σωστή επικοινωνία ή την τερματίζουν Master και Slave διασφαλίζονται με την χρήση των λεγόμενων ACK και NACK bytes. Στην παρακάτω εικόνα φαίνονται οι συναλλαγές δεδομένων μεταξύ Master και Slave κατά την διάρκεια εγγραφής δεδομένων από τον Master στον Slave και κατά τη μεταφορά δεδομένων από τον Slave στον Master. Εικόνα 19: Σχεδιάγραμμα επικοινωνίας Master-Slave [3]. Όπως φαίνεται και στην προηγούμενη εικόνα ο Master είναι σε θέση να γράψει και να διαβάσει από τον Slave δεδομένα όχι μόνο 1 byte την φορά μα και πολλαπλά. Δηλαδή έχοντας στείλει τις προηγούμενες συνθήκες για εγγραφή ή ανάγνωση δεδομένων, και δεν επιθυμεί να τελειώσει η συνεδρία επικοινωνίας στέλνει ACK byte, έτσι ο Slave αναλόγως την μορφή επικοινωνίας (εγγραφή ανάγνωση) διαχειρίζεται τον επόμενο ακριβώς σε θέση μνήμης καταχωρητή δεδομένων έως ότου ο Master στείλει το bit της STOP (Σταμάτημα) εντολής. Η ικανότητα αυτή αποτελεί βασικό πλεονέκτημα γιατί μειώνει αρκετά τους χρόνους λήψης και εγγραφής δεδομένων μια και απαιτούνται λιγότερα bit για την διαδικασία επικοινωνίας. Ειδικότερα στον μικροελεγκτή που χρησιμοποιήθηκε (Atmega 168) [13] για την ενεργοποίηση και την ρύθμιση επιμέρους χαρακτηριστικών (π.χ. ταχύτητα) του πρωτόκολλου I 2 C είναι υπεύθυνοι οι παρακάτω καταχωρητές: 28 Σ ε λ ί δ α

36 Πτυχιακή εργασία TWBR TWI bit rate register. Ο TWBR είναι υπεύθυνος για την επιλογή του παράγοντα διαίρεσης για τη γεννήτρια ρυθμού bit η οποία με τη σειρά είναι υπεύθυνη για την συχνότητα του καναλιού SCL. Bit Διεύθυνση (0xB8) Εγγραφή/Ανάγ νωση TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0 Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή TWCR TWI Control register Ο TWCR είναι ο καταχωρητής που ελέγχει την λειτουργία του TWI όντας υπεύθυνος για την αποστολή των διάφορων συνθηκών (π.χ. START, STOP) μα και τη δημιουργία των κατάλληλων byte για την μεταφορά δεδομένων στο κανάλι επικοινωνίας Master-Slave. Bit Διεύθυνση (0xBC) Εγγραφή/Ανάγ νωση TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αν. Εγγ./Αν. Αν. Εγγ./Αν. Αρχική τιμή TWSR TWI status register Στον TWSR η ψηφιολέξη των 5 πιο σημαντικών ψηφιών περιγράφει την κατάσταση εκείνη την στιγμή του TWI ενώ τα δύο λιγότερα σημαντικά ψηφία καθορίζουν τιμή του prescaler. Bit Διεύθυνση (0xB9) Εγγραφή/Ανάγ νωση TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0 Αν. Αν. Αν. Αν. Αν. Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή TWDR TWI status register Στον καταχωρητή TWDR όταν ο μικροεπεξεργαστής βρίσκεται σε λειτουργία αποστολής περιέχει το επόμενο byte που θα αποσταλεί, ενώ σε λειτουργία λήψης περιέχει το τελευταίο byte που λήφθηκε. 29 Σ ε λ ί δ α

37 Επίπεδο Hardware Bit Διεύθυνση (0xBB) Εγγραφή/Ανάγ νωση TWD7 TWD6 TWD5 TWD4 TWD3 TWD2 TWD1 TWD0 Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Εγγ./Αν. Αρχική τιμή Έχοντας αναλύσει ποιος είναι ο ρόλος του κάθε καταχωρητή παρακάτω φαίνεται το λογικό διάγραμμα για την λειτουργία και την κατάσταση κάθε επιμέρους καταχωρητή κατά τη διαδικασία εγγραφής ενός byte σε έναν slave. Εικόνα 20: Λογικό διάγραμμα καταχωρητών μικροελεγκτή κατά την single-byte εγγραφή. 3.2: Αισθητήρες MEMS (Microelectromechanical systems) Σε αυτήν την παράγραφο θα αναλύσουμε τον τρόπο λειτουργιάς των δύο αισθητήρων που χρησιμοποιήθηκαν σε αυτήν την πτυχιακή εργασία, όπου ανήκουν στην κατηγορία MEMS [17] αισθητήρων και συνδέθηκαν με τον μικροελεγκτή με χρήση του πρωτοκόλλου I 2 C στην θέση Slave. Γενικά οι αισθητήρες MEMS όπως παραπέμπει και η ονομασία τους είναι ένας συνδυασμός διατάξεων που συνδυάζουν ηλεκτρική αλλά και μηχανική λειτουργία στο σύνολο. Δηλαδή μπορούν να αντιληφθούν, να αναλύσουν και να ερμηνεύσουν μετρήσεις φαινομένων όπου έχουν μηχανική διάσταση μετατρέποντάς τα σε ηλεκτρική. Η προηγούμενη κατασκευαστική ιδιότητα προσδίδει μεγάλη γκάμα ανάλυσης φαινομένων στους αισθητήρες MEMS και σε συνδυασμό με τις μικρές διαστάσεις τους, τους καθιστούν μια δημοφιλή κατηγορία αισθητήρων. Γενικά οι αισθητήρες MEMS έχουν σαν βασικά υλικά κατασκευής (π.χ. Σιλικόνη, Κεραμικά) και πολλούς τρόπους παρασκευής (π.χ. λιθογραφία Ακτίνων-Χ). Η πιο συνηθισμένη μορφή ενός αισθητήρα MEMS πρόκειται 30 Σ ε λ ί δ α

38 Πτυχιακή εργασία για έναν μικροεπεξεργαστή ο οποίος διαχειρίζεται και αποθηκεύει στους καταχωρητές μνήμης του τα δεδομένα από μικροαισθητήρες που τον περιβάλλουν. Πιο συγκεκριμένα, στην παρούσα εργασία χρησιμοποιούνται δύο αισθητήρες, ένα επιταχυνσιόμετρο και ένα γυροσκόπιο, τα οποία περιγράφονται στη συνέχεια : ITG3200 Gyroscope (Αισθητήρας Γωνιακής Ταχύτητας) Ο αισθητήρας ITG3200 [18] κατασκευάζεται από την εταιρεία Invensense και έχει την ικανότητα να μετράει την γωνιακή ταχύτητα μιας τυχαίας περιστροφικής κίνησης, που αντιστοιχεί σε κάθε άξονα του τρισδιάστατου χώρου με ρυθμό δειγματοληψίας έως 8 khz και με μέγιστα όρια περιστροφικής ταχύτητας ±2000 ( o sec). Το φαινόμενο περιστροφής γίνεται αντιληπτό από τον συγκεκριμένο αισθητήρα λόγω της υποθετικής δύναμης Coriolis όπου και εμφανίζεται σε ένα περιστρεφόμενο μηχανικό σύστημα. Πιο συγκεκριμένα, η εμφάνιση της δύναμης Coriolis προκαλεί μια απόκλιση στην τάση η οποία ανιχνεύεται από μια ηλεκτρονική διάταξη (capacitive pickoff) που συγκρίνει την καινούργια τάση με την τάση σύγκρισης (V ref ). Στην συνέχεια το ποσό της τάσης που αποκλίνει, αφού ενισχυθεί ψηφικοποείται από ένα κύκλωμα ADC (Analog to Digital) των 16bit και αναλόγως τις ρυθμίσεις που έχουμε ορίσει στους καταχωρητές μνήμης του αισθητήρα, η μέτρηση της γωνιακής ταχύτητας για κάθε άξονα αποθηκεύεται στον δικό της καταχωρητή μνήμης ( o sec). Εικόνα 21: Διάγραμμα Block του αισθητήρα ITG3200 (ITG3200 Datasheet). Όπως προαναφέρεται κάθε αισθητήρες έχουν καταχωρητές μνήμης μέσω των οποίων μπορούμε να ρυθμίσουμε τον τρόπο λειτουργίας τους. Στον παρακάτω πίνακα φαίνονται οι αντίστοιχοι καταχωρητές μνήμης για τον αισθητήρα ITG3200. Πίνακας 4: Καταχωρητές μνήμης αισθητήρα ITG3200. ΔΙΕΥΘΥΝΣΗ (HEX) ΟΝΟΜΑ ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ ΠΕΡΙΓΡΑΦΗ 0x0 WHO_AM_I ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Περιέχει την διεύθυνση του αισθητήρα που χρησιμοποιείται για το πρωτόκολλο I 2 C 0x15 SMPLRT_DIV ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Ρύθμιση για το ρυθμό λήψης 31 Σ ε λ ί δ α

39 Επίπεδο Hardware 0x16 DLPF_FS ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ 0x17 INT_CFG ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ 0x1A INT_STATUS ΑΝΑΓΝΩΣΗ 0x1B TEMP_OUT_H ΑΝΑΓΝΩΣΗ 0x1C TEMP_OUT_L ΑΝΑΓΝΩΣΗ 0x1D GYRO_XOUT_H ΑΝΑΓΝΩΣΗ 0x1E GYRO_XOUT_L ΑΝΑΓΝΩΣΗ 0x1F GYRO_YOUT_H ΑΝΑΓΝΩΣΗ 0x20 GYRO_YOUT_L ΑΝΑΓΝΩΣΗ 0x21 GYRO_ZOUT_H ΑΝΑΓΝΩΣΗ GYRO_ZOUT_L 0x22 ΑΝΑΓΝΩΣΗ 0x3E PWR_MGM ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ μετρήσεων από τον αισθητήρα Ρύθμιση ψηφιακού χαμηλοπερατού φίλτρου και εσωτερικού ρυθμού δειγματοληψίας Ρύθμιση των συνθηκών σηματοδότησης του ακροδέκτη INT Ανάγνωση κατάστασης των διαθέσιμων Interrupts του αισθητήρα Ανάγνωση των 8 πιο σημαντικών ψηφίων της 16bit ψηφιολέξης για την θερμοκρασία Ανάγνωση των 8 λιγότερων σημαντικών ψηφίων της 16bit ψηφιολέξης για την θερμοκρασία Ανάγνωση των 8 πιο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτητα περιστροφής του άξονα X Ανάγνωση των 8 λιγότερο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτητα περιστροφής του άξονα X Ανάγνωση των 8 λιγότερο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτητα περιστροφής του άξονα Υ Ανάγνωση των 8 λιγότερο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτητα περιστροφής του άξονα Υ Ανάγνωση των 8 πιο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτητα περιστροφής του άξονα Ζ Ανάγνωση των 8 λιγότερο σημαντικών ψηφίων της 16bit ψηφιολέξης για την ταχύτηρα περιστροφής του άξονα Ζ Ρύθμιση ενεργειακής κατάστασης αισθητήρα. 32 Σ ε λ ί δ α

40 Πτυχιακή εργασία Όπως παρατηρούμε στον παρακάτω πίνακα κάθε καταχωρητής μνήμης είναι χωρητικότητας 8bit και σε κάποιους εκ των οποίων μας δίνεται η δυνατότητα να αλλάξουμε την τιμή τους ενώ σε άλλους μόνο να την αναγνώσουμε. Επίσης, όπως προαναφέραμε, η μέτρηση της περιστροφής ψηφιοποιείται από έναν ADC 16bit και αυτός είναι και ο λόγος που για την λήψη την ολοκληρωμένης μέτρησης θα πρέπει να διαβάσουμε δύο καταχωρητές που εμπεριέχουν τα 8 πιο σημαντικά και τα 8 λιγότερα σημαντικά ψηφία (π.χ. GYRO_XOUT_H + GYRO_XOUT_L). Άρα μια πιθανή χρονική σειρά της ρύθμισης και λήψης δεδομένων από τον αισθητήρα ITG3200 φαίνεται στην παρακάτω εικόνα. Εικόνα 22: Χρονική σειρά σωστής ρύθμισης και λήψης δεδομένων αισθητήρα ITG3200. Έτσι αρχικά θα φροντίσουμε μέσω του πρωτόκολλου I 2 C να εγγράψουμε τις επιθυμητές ρυθμίσεις αναλόγως με τα αποτελέσματα που επιθυμούμε και στην συνέχεια θα διαβάσουμε τους καταχωρητές που αντιστοιχούν στα δεδομένα της μέτρησης : ADXL345 Accelerometer (Αισθητήρας Γραμμικής Επιτάχυνσης) Κατασκευάστρια εταιρία του αισθητήρα ADXL345 είναι η ANALOG και πρόκειται για έναν αισθητήρα μέτρησης επιτάχυνσης στον τρισδιάστατο χώρο. Το ADXL345 [3] [19] είναι σε θέση να παρέχει μετρήσεις υψηλής ανάλυσης ( 13-bit) και μπορεί να χρησιμοποιηθεί είτε για ανίχνευση προσανατολισμού του αισθητήρα βάσει του διανύσματος της βαρυτικής επιτάχυνσης, καταγραφή μιας τυχαίας κίνησης στον τρισδιάστατο χώρο είτε για ανίχνευση σεισμικών δραστηριοτήτων. Πιο συγκεκριμένα ο αισθητήρας αποτελείται από ελατήρια πολυπυριτίου τα οποία συγκρατούν τον πυρήνα του αισθητήρα επάνω από μια επιφάνεια σιλικόνης και με την σειρά τους προβάλλουν αντίσταση στις διάφορες δυνάμεις επιτάχυνσης που ασκούνται κατά την κίνηση στον αισθητήρα. Η απόκλιση που παρουσιάζεται κατά την κίνηση του αισθητήρα σε αυτά τα ελατήρια μετριέται με την χρήση διαφορικών πυκνωτών, οι οποίοι αποτελούνται από ανεξάρτητες σταθερές πλακέτες και 33 Σ ε λ ί δ α

41 Επίπεδο Hardware πλακέτες επάνω στον κινούμενο πυρήνα του αισθητήρα. Έτσι η επιτάχυνση διαταράσσει την ισορροπία των διαφορικών πυκνωτών και ως αποτέλεσμα προκύπτει μια διαφορά στην τάση της οποίας το πλάτος είναι ανάλογο της επιτάχυνσης όπου δέχεται ο αισθητήρας. Επιπρόσθετα ο αισθητήρας υποστηρίζει πρωτόκολλα σύνδεσης SPI μα και I 2 C και παρέχει δύο pin σαν πηγή external interrupts που μπορούν να ρυθμιστούν για την επιθυμητή σηματοδότηση. Εικόνα 23: Ηλεκτρονικό σχεδιάγραμμα ADXL345 Πίνακας 5: Περιγραφή Pins του ADXL345 V DD I/O GND V S CS INT1 INT2 SDO SDA SCL Digital interface supply voltage Ground Supply Voltage Chip Select Interrupt 1 Output Interrupt 2 Output Serial Data Output Serial Data Input Serial Communication Clock Τα προκαθορισμένα όρια για την σωστή λειτουργία και την λήψη έγκυρων αποτελεσμάτων ορίζουν πως τα pins V s και V DD I/O πρέπει να έχουν σαν είσοδο από +3.6V. Επίσης τα όρια θερμοκρασίας στα οποία ο αισθητήρας μπορεί να μετρήσει έγκυρα αποτελέσματα είναι 40 ο C έως +105 ο C. Όσο αναφορά τα αποτελέσματα ο αισθητήρας προσφέρει διάφορα εύρη ανίχνευσης επιτάχυνσης ±2g, ±4g, ±8g, ±10g με 10-bit ανάλυση το κάθε εύρος. Ο αισθητήρας επίσης διαθέτει έτοιμα μοντέλα μέτρησης επιτάχυνσης όπως ανίχνευση χτυπήματος αντικειμένου στην επιφάνεια όπου βρίσκεται ο αισθητήρας (π.χ. δαχτύλου) (Tap), ανίχνευση ελεύθερης πτώσης του αισθητήρα (Free-Fall), δυνατότητα ορισμού και ανίχνευσης περιόδων αδράνειας (Inactivity) και δραστηριότητας (Activity) 34 Σ ε λ ί δ α

42 Πτυχιακή εργασία Πίνακας 6: Καταχωρητές μνήμης για το ADXL345. ΔΙΕΥΘΥΝΣΗ (HEX) ΟΝΟΜΑ ΤΥΠΟΣ ΠΕΡΙΓΡΑΦΗ 0x00 DEVID ΑΝΑΓΝΩΣΗ Περιέχει την διεύθυνση του αισθητήρα που χρησιμοποιείται για το πρωτόκολλο I 2 C. 0x01 έως 0x0C Δεσμευμένο - - 0x1D THRESH_TAP ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Κατώφλι Tap. 0x1E OFSX ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Αντιστάθμισμα X-άξονα. 0x1F OFSY ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Αντιστάθμισμα Υ-άξονα. 0x20 OFSZ ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Αντιστάθμισμα Ζ-άξονα. 0x21 DUR ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Διάρκεια Tap. 0x22 Latent ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Λανθάνουσα Tap. 0x23 Window ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Παράθυρο Tap. 0x24 THRESH_ACT ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Κατώφλι Activity. 0x25 THRESH_INACT ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Κατώφλι Inactivity. 0x26 TIME_INACT ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Χρόνος Inactivity. 0x27 ACT_INACT_CTL ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Ενεργοποίηση ελέγχου για την ανίχνευση Activity ή Inactivity μέσω των αξόνων. 0x28 THRESH_FF ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Κατώφλι Free-fall. 0x29 TIME_FF ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Χρόνος Free-fall. 0x2A TAP_AXES ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Έλεγχος αξόνων για Tap/Double Tap. 0x2B ACT_TAP_STATUS ΑΝΑΓΝΩΣΗ Πηγή για Tap/Double Tap. 0x2C BW_RATE ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ 0x2D POWER_CTL ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Ρυθμός δεδομένων και ρύθμιση τροφοδοσίας. Έλεγχος χαρακτηριστικών εξοικονόμησης ενέργειας. 0x2E INT_ENABLE ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Ενεργοποίηση Interrupt. 0x2F INT_MAP ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Παραμετροποίηση Interrupt 0x30 INT_SOURCE ΑΝΑΓΝΩΣΗ Πηγή Interrupt. 0x31 DATA_FORMAT ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Παραμετροποίηση μορφής δεδομένων. 0x32 DATAX0 ΑΝΑΓΝΩΣΗ Data0 για X-άξονα 0x33 DATAX1 ΑΝΑΓΝΩΣΗ Data1 για X-άξονα 0x34 DATAY0 ΑΝΑΓΝΩΣΗ Data0 για Υ-άξονα 0x35 DATAY1 ΑΝΑΓΝΩΣΗ Data1 για Υ-άξονα 0x36 DATAZ0 ΑΝΑΓΝΩΣΗ Data0 για Ζ-άξονα 0x37 DATAZ1 ΑΝΑΓΝΩΣΗ Data1 για Ζ-άξονα 35 Σ ε λ ί δ α

43 Επίπεδο Hardware 0x38 FIFO_CTL ΑΝΑΓΝΩΣΗ/ΕΓΓΡΑΦΗ Έλεγχος FIFO. 0x39 FIFO_STATUS ΑΝΑΓΝΩΣΗ Κατάσταση FIFO. Τα δεδομένα μέτρησης επιτάχυνσης για κάθε επιμέρους άξονα αποθηκεύονται στους 8-bit καταχωρητές μνήμης διευθύνσεως 0x32 έως 0x37 και με ρυθμό δειγματοληψίας που καθορίζεται από τον καταχωρητή BW_RATE (0x2C) φτάνοντας μέγιστο ως και 3200 Hz. Η ψηφιολέξη ολόκληρης της μέτρησης είναι σε έκταση 10-bit και αναλόγως την ρύθμιση του καταχωρητή DATA_FORMAT διευθύνσεως 0x31 ορίζεται η θέση των λιγότερο και περισσότερο σημαντικών ψηφιών (LSB, MSB). Η αρχική τιμή του καταχωρητή ορίζει πως τα 8 λιγότερο σημαντικά ψηφία της ψηφιολέξης για τον άξονα Χ θα αποθηκεύονται στον καταχωρητή DATAX0 (0x32) και τα 3 σημαντικότερα στον καταχωρητή DATAX1 (0x33). Επιπρόσθετα ο αισθητήρας διαθέτει τρείς καταχωρητές (0x1E έως 0x20), έναν για κάθε άξονα, που ευθύνονται για την αποκλίνουσα (Offset) κάθε άξονα. Όσο αναφορά την ρύθμιση των Interrupts που σηματοδοτούνται από τον αισθητήρα υπεύθυνοι είναι δύο καταχωρητές μνήμης INT_ENABLE και INT_MAP. Αποθηκεύοντας την κατάλληλη ψηφιολέξη στον καταχωρητή INT_ENABLE επιλέγουμε τον λόγο για τον οποίο θα σηματοδοτείται το Interrupt (π.χ. DATA_READY, SINGLE_TAP, ACTIVITY) και ο καταχωρητής INT_MAP ρυθμίζει το Pin για το Interrupt (INT1 ή INT2). Σε αυτό το σημείο ολοκληρώνεται η περιγραφή του υλικού που χρησιμοποιήθηκε στα πλαίσια της εργασίας. Στη συνέχεια, ακολουθεί ένα εξίσου σημαντικό κομμάτι θεωρητικών στοιχείων, τα οποία σχετίζονται με το λογισμικό που χρησιμοποιήθηκε. Κεφάλαιο 4: Προγραμματισμός σε περιβάλλον Windows 36 Σ ε λ ί δ α

44 Πτυχιακή εργασία 4.1: Εισαγωγή Η γλώσσα προγραμματισμού C# πρωτοεμφανίστηκε το 2000 και σχεδιάστηκε από την Microsoft στα πλαίσια του.net Framework. Στόχοι της δημιουργίας της είναι να δημιουργηθεί μια γλώσσα προγραμματισμού απλή, μοντέρνα, γενικού-σκοπού και αντικειμενοστραφής. Στην αρχική της έκδοση πολλοί θεώρησαν την C# ως κλώνο της γλώσσας προγραμματισμού Java αλλά σε επόμενες εκδόσεις κατάφερε να ξεχωρίσει και να αναδειχθεί εξαιτίας των πολλών καινοτομιών που είχαν εισαχθεί στο οπλοστάσιο των προγραμματιστών. Στα πλαίσια αυτής της πτυχιακής εργασίας θα μελετήσουμε την C# v4.0 μα προτού εισχωρήσουμε σε ειδικές τεχνικές προγραμματισμού κάνοντας χρήση της C# θα πρέπει να εξηγήσουμε τι είναι και τι προσφέρει το.net Framework. Το.Net Framework ξεκίνησε να αναπτύσσεται από την Microsoft στο τέλος της δεκαετίας 1990 και στο τέλος του 2000 εκδόθηκε η πρώτη δοκιμαστική έκδοση με σκοπό την δημιουργία ενός προγραμματιστικού μοντέλου που θα παρέχει συγκεκριμένες τεχνικές ανάπτυξης λογισμικού ανεξαρτήτως την γλώσσα προγραμματισμού στην προσπάθεια εξάλειψης των προβλημάτων συμβατότητας που είχαν δημιουργηθεί λόγω της ύπαρξης πολλών τεχνολογιών προγραμματισμού (π.χ. Win32, ATL, MFC, COM+). Κατά κύριο λόγο είναι συμβατό με λειτουργικό σύστημα Windows, και μια ακριβής περιγραφή θα ήταν να το χαρακτηρίσουμε σαν μια βιβλιοθήκη που εμπεριέχει "έτοιμα" εργαλεία για την σχεδίαση διεπαφής χρήστη (User Interface), πρόσβαση σε δεδομένα (data access), συνδεσιμότητα βάσης δεδομένων (database Εικόνα 24: Χρονοδιάγραμμα εκδόσεων.net Framework connectivity), κρυπτογράφησης (cryptography) και πολλά άλλα τα οποία μπορούν να χρησιμοποιηθούν από διαφορετικές γλώσσες προγραμματισμού με αποτέλεσμα να επιτευχθεί ένα επίπεδο συμβατότητας-σύνδεσης (Interopability). Όλα τα αντικείμενα-προσθήκες τα οποία μπορεί να διαχειριστεί οποιαδήποτε προγραμματιστική γλώσσα προσφέρονται από την Base Class Library και στη συνέχεια τα προγράμματα που έχουν γραφεί βασιζόμενα στο.net Framework εκτελούνται σε ένα λογισμικό περιβάλλον γνωστό ως CLR (Common Language Runtime), το οποίο μπορεί να θεωρηθεί σαν εικονικό περιβάλλον που προσφέρει περισσότερη ασφάλεια, αυτόματη διαχείριση μνήμης, και διαχείριση εξαιρέσεων (Exception Handling). Έτσι ο πυρήνας του.net Framework αποτελείται από την Base Class Library και την εικονική μηχανή εκτέλεσης προγράμματος CLR, όπου και το πρόγραμμα ανεξαρτήτως προγραμματιστικής γλώσσας θα καταλήξει και θα εκτελεστεί. Συνοψίζοντας τη χρησιμότητα του.net Framework μια από τις μεγαλύτερες ευκολίες που παρέχει είναι πως μπορούμε από πολλές γλώσσες προγραμματισμού να έχουμε πρόσβαση στα ίδια εργαλεία, να μπορούμε να συνδυάσουμε 37 Σ ε λ ί δ α

45 Προγραμματισμός σε περιβάλλον Windows διάφορες γλώσσες μα ακόμη και κώδικα που είναι γραμμένος χωρίς να βασίζεται στο.net Framework (π.χ. Win32). Συνοψίζοντας το γεγονός πως τα εργαλεία που παρέχονται από το.net Framework είναι "έτοιμα" ο κώδικας που κάνουμε χρήση θεωρείται managed, δηλαδή έχει σχεδιαστεί από την ομάδα του.net Framework προσφέροντας συγκεκριμένες δυνατότητες και χρησιμότητα, ενώ σε αντίθεση κάνοντας χρήση της τεχνολογίας Win32 ο κώδικας θεωρείται unmanaged. Κατά την έκδοση 3.0 του.net Framework έκανε την εμφάνιση του ένα καινούργιο σύστημα γραφικού υποσυστήματος για τον σχεδιασμό και την απεικόνιση των User Interfaces γνωστό ως WPF (Windows Presentation Forms). Σαν αντίπαλος και προκάτοχος του WPF είναι το γραφικό υποσύστημα γνωστό ως WinForms. To WinForms για την σχεδίαση των επιμέρους γραφικών των user interfaces χρησιμοποιεί την μηχανή GDI ενώ το WPF χρησιμοποιεί DirectX. Αυτό συνεπάγει πως λόγω της αλλαγής μηχανής απεικόνισης σε μία πιο εξελιγμένη και πιο μοντέρνα, οι προγραμματιστές είναι σε θέση να εκμεταλλευτούν καλύτερα τους φυσικούς πόρους του Η/Υ μα και να έχουν πιο ελκυστικά αποτελέσματα τελικής εμφάνισης του προγράμματός τους. Άλλες καινοτομίες του WPF είναι η αυτόματη διάδραση του χρήστη με το τελικό πρόγραμμα με εναλλακτικά μέσα εισόδου (π.χ. οθόνη αφής), εισαγωγή ειδικών μηχανισμών για τη δημιουργία και την διαχείριση εφέ και animation στα διάφορα επιμέρους κοντρόλ και πολλά άλλα. Η τεχνολογία WPF εμπεριέχει τη δίκη της γλώσσα προγραμματισμού μέσω της οποίας γίνεται ο σχεδιασμός του παραθύρου και των επιμέρους controls ενώ ταυτοχρόνως είναι υπεύθυνη για την σύνδεση της C# με τις ιδιότητες και τα διάφορα συμβάντα του προγράμματος. Έτσι όπως φαίνεται και στο διπλανό σχήμα ένα τελικό πρόγραμμα θα αποτελείται από τα στρώματα που απεικονίζονται. Ο χρήστης θα βλέπει και θα αλληλεπιδρά με το User Interface που βασίζεται στη τεχνολογία WPF ενώ την προγραμματιστική νοημοσύνη του προγράμματος θα αποτελεί η C# όπου με την σειρά της θα καταλήγει στο CLR του.net Framework όπου και θα εκτελείται. Επιπρόσθετα ένας προγραμματιστής μπορεί να ασχοληθεί και να συνδυάσει τις παραπάνω τεχνολογίες χρησιμοποιώντας το Εικόνα 25: Προγραμματιστική δομή προγράμματος. προγραμματιστικό περιβάλλον το οποίο είναι δημιούργημα της Microsoft και είναι γνωστό ως Visual Studio. Η εταιρεία αναβαθμίζει ανά τακτά χρονικά διαστήματα αυτό το περιβάλλον ώστε να περιλαμβάνει όλες τις τελευταίες καινοτομίες και κάποιος προγραμματιστής να είναι σε θέση να εκμεταλλευτεί στο έπακρο όλες τις δυνατότητες που είναι διαθέσιμες μέσω των προηγούμενων τεχνολογιών. 4.2: Σχεδιάζοντας ένα Πρόγραμμα. 38 Σ ε λ ί δ α

46 Πτυχιακή εργασία Όπως προαναφέραμε στην προηγούμενη παράγραφο το.net Framework δίνει πρόσβαση σε διάφορα αντικείμενα τα οποία εκμεταλλεύεται η γλώσσα προγραμματισμού της επιλογής μας. Σε αυτή πτυχιακή εργασία θα μελετήσουμε τις σκοπιές σχεδίασης ενός προγράμματος αξιοποιώντας την τεχνολογία WPF και την γλώσσα προγραμματισμού C#. Μια κατηγορία αντικειμένων που θα απασχολήσει πάρα πολύ έναν προγραμματιστή είναι εκείνη που περιλαμβάνει τα controls (π.χ. κουμπιά, φόρμες εισόδου) με τα οποία θα αλληλοεπιδράσει ο τελικός χρήστης και πιο συγκεκριμένα πρόκειται για την κλάση System.Windows.Controls.Control. Σε αυτή την κλάση ο προγραμματιστής έχει στη διάθεση του διάφορα control που το καθένα από αυτά έχει τις δικές του ιδιότητες και συμβάντα που βοηθούν στην καλύτερη ενσωμάτωση εμφανισιακά στο πρόγραμμα μα και στην απόδοση προγραμματιστικής λειτουργίας. Αναλύοντας το γεγονός πως κάθε control έχει τα δικά του events (συμβάντα) εννοούμε πως για παράδειγμα πως όταν χρησιμοποιηθεί ένα control κουμπιού θα πρέπει το πρόγραμμα να είσαι σε θέση να αντιληφθεί πότε ο χρήστης πάτησε Εικόνα 26: Λογικό διάγραμμα events. το κουμπί και να τρέξει το αντίστοιχο κομμάτι κώδικα. Η φιλοσοφία της προηγούμενης ανάλυσης γίνεται επιτευκτή με την ενσωμάτωση ξεχωριστών events για κάθε control που αρμόζει στις ανάγκες του και ονομάζεται πρότυπο event-driven προγραμματισμού δηλαδή προγραμματισμού που αντίστοιχα κομμάτια κώδικα εκτελούνται αναλόγως τα "εξωτερικά" συμβάντα του περιβάλλοντος του προγράμματος. Κάποιες άλλες ιδιότητες που αφορούν κυρίως την εμφάνιση του control και την αναπαράσταση του από την μηχανή γραφικών 39 Σ ε λ ί δ α

47 Προγραμματισμός σε περιβάλλον Windows είναι η τοποθεσία του (X,Y) στα πλαίσια του παραθύρου, το ύψος και το πλάτος του το χρώμα με το οποίο θα θέλαμε να απεικονίζεται και άλλες πολλές. Όλες οι προηγούμενες ιδιότητες που είναι υπεύθυνες για την εμφάνιση και την διάταξη του control αλλά και η αντιστοίχηση του κώδικα C# για τα επιμέρους συμβάντα του control κατά κύριο λόγο προγραμματίζονται στην γλώσσα XAML που είναι συνδεδεμένη με την τεχνολογία WPF. Όπως φαίνεται και στο παραπάνω σχήμα κατά την εκκίνηση του προγράμματος η μηχανή γραφικών διαβάζει τα δεδομένα και τις ρυθμίσεις του κάθε control από την XAML και όταν κάποιο event συμβεί "ψάχνει" στην XAML και τρέχει τον αντίστοιχο κώδικα της C#. Αναλύοντας περισσότερο τη διαδικασία γραφικής απεικόνισης των παραθύρων υπεύθυνη για την γραφική αναπαράσταση είναι ένα ξεχωριστό Thread που είναι γνωστό ως UI Thread. Αρχικά με τον όρο Thread (νήμα) ορίζουμε ένα κομμάτι κώδικα που μπορεί να τρέξει παράλληλα με κάποιο άλλο κομμάτι κώδικα. Σε αυτό το σημείο πρέπει να τονίσουμε πως παρόλη την αύξηση της επεξεργαστικής ισχύς και την αύξηση των πυρήνων στους κεντρικούς επεξεργαστές των Η/Υ δεν συνεπάγεται πως κάποιο Thread θα εκτελείται στον έναν πυρήνα και κάποιο άλλο στον άλλον απαραίτητα, κατά κύριο λόγο υπεύθυνος για την διαχείριση και εκτέλεση των threads είναι ο διαχειριστής του λειτουργικού συστήματος (operating system scheduler) ο οποίος αναγκάζει τον επεξεργαστή να εναλλάσσει γρήγορα μεταξύ της εκτέλεσης κάθε Thread και έτσι παίρνουμε ένα είδος παραλληλισμού. Βέβαια σίγουρα με την αύξηση των πυρήνων ενός επεξεργαστή επιτυγχάνεται ένα πιο αληθινό πρότυπο παραλληλισμού αλλά οι τεχνικές αξιοποίησης του δεν είναι τα Threads στα πλαίσια του.net Framework. Συνήθως ένα Thread εμπεριέχεται σε ένα Process (διεργασία) που είναι υπεύθυνο για τη δέσμευση των πόρων που απαιτεί το Thread π.χ. μνήμη. Ένα Process μπορεί να περιέχει περισσότερα από ένα Thread τα οποία έχουν πρόσβαση στους ίδιους πόρους, όμως Thread σε διαφορετικά Processes δεν μπορούν να έχουν πρόσβαση στους μεταξύ τους πόρους. Έτσι θα μπορούσαμε επιτυχημένα να παρομοιώσουμε το Process ως ένα διαμέρισμα και τα Threads Εικόνα 27: Εκτέλεση events από την UI Thread. σαν τους ενοίκους του που ζουν μαζί και εκμεταλλεύονται τον χώρο. Βασισμένο στην ίδια λογική όταν το πρόγραμμα μας εκκινεί δημιουργείται ένα Process το οποίο δεσμεύει τους πόρους που απαιτούνται και μέσα σε αυτό τρέχει το UI Thread που είναι υπεύθυνη για την γραφική απεικόνιση του προγράμματος και των επιμέρους controls. Θα μπορούσαμε λοιπόν να σκεφτούμε το UI Thread σαν μια συνεχόμενη επανάληψη κώδικα που κάθε φορά που εκτελείται ελέγχει για τυχόν αλλαγές στην XAML και απεικονίζει το πρόγραμμα μας. Ειδικότερα το UI Thread δεσμεύει τόσους πόρους από το σύστημα μας ώστε να μπορεί να συγχρονιστεί με τον ρυθμό ανανέωσης της οθόνης μας ώστε να είναι όσο πιο δυνατόν πιο ομαλή η γραφική εμπειρία του χρήστη. Όμως το UI Thread αναλαμβάνει και την εκτέλεση των κομματιών κώδικα που αντιστοιχούν σε διάφορα event των control έχοντας ως συνέπεια το μπλοκάρισμα-πάγωμα του προγράμματος όταν εκτελείται ένα κομμάτι κώδικα που καταναλίσκει αρκετό χρόνο για την 40 Σ ε λ ί δ α

48 Πτυχιακή εργασία ολοκλήρωση του. Για αυτόν τον λόγο η σωστή προγραμματιστική κατεύθυνση του eventdriven προγραμματισμού είναι σωστή εκμετάλλευση των διάφορων event των control αλλά στην περίπτωση που σχετίζονται με χρονοβόρα κομμάτια κώδικα να εκτελούνται σε διαφορετικό Thread. 4.3: Αναφορά και ανάλυση κατηγοριών εργαλείων.net Framework Σε αυτή την ενότητα θα επισημάνουμε και θα αναλύσουμε τα βασικότερα control [19] της τεχνολογίας WPF που προσφέρουν επιλογές διάταξης στοιχείων, σχεδιασμού και αλληλεπίδραση με τον χρήστη. Grid (System.Windows.Controls) Πρόκειται για ένα control που χρησιμοποιείται κυρίως για στοίχιση και περιέχει μια συλλογή από αντικείμενα UIElement (π.χ. κουμπιά κτλ.) στα οποία έχουμε πρόσβαση από την ιδιότητα Childen. Άλλη μια χαρακτηριστική του ιδιότητα είναι πως μπορεί να χωριστεί σε γραμμές και στήλες των οποίων οι διαστάσεις να είναι ανάλογες των διαστάσεων την οθόνης στην οποία τρέχει το πρόγραμμα, ή ανάλογες του περιεχομένου τους ή και σταθερό, γεγονός που παρέχει ευκολία στην υποστήριξη πολλών αναλύσεων. Επίσης η θέση των αντικειμένων μέσα στο Grid μπορεί να είναι σταθερή αλλά και δυναμική. Stackpanel (System.Windows.Controls) Όπως και το Grid έτσι και το Stackpanel θα μπορούσαμε να το χαρακτηρίσουμε ένα control κυρίως διάταξης, το οποίο τοποθετεί τα control που φιλοξενεί είτε κατά οριζόντια διεύθυνση είτε κάθετη μέσω τις ιδιότητας του Orientation. Image (System.Windows.Controls) Το Image control είναι ένα αντικείμενο το οποίο προσφέρει την δυνατότητα απεικόνισης διαφόρων τύπων εικόνας (.bmp,.gif,.ico,.jpg,.png,.wdp, και.tiff) από τον ορισμό της ιδιότητας Source. TextBlock (System.Windows.Controls) Το Τextblock έχει σχεδιαστεί ώστε να είναι ελαφρύ και πιο συγκεκριμένα για την αναπαράσταση φράσεων που αναθέτονται από την ιδιότητα του Text. Επίσης προσφέρει την επιλογή μορφοποίησης της φράσης είτε κάνοντας πιο έντονη (Bold) είτε συνδέοντας την με κάποια σελίδα του διαδικτύου (Hyperlink) είτε αλλάζοντας το χρώμα των γραμμάτων. Το Textblock δεν συνιστάται από την ομάδα του.net Framework για σενάριο που το θέλουν να αναπαριστά περιεχόμενο πολλών γραμμών. Button (System.Windows.Controls) 41 Σ ε λ ί δ α

49 Προγραμματισμός σε περιβάλλον Windows Πρόκειται για ένα control που στον τελικό χρήστη λειτουργεί σαν κουμπί και αποτελεί ένα από τα βασικότερα control για αλληλεπίδραση χρήστη-προγράμματος μέσω του event Click. Επιπρόσθετα μπορούμε να αλλάξουμε το περιεχόμενο κειμένου του κουμπιού από την ιδιότητα του Content. SerialPort (System.IO.Ports) Είναι το πρώτο αντικείμενο που συναντάμε που δεν ανήκει στην κατηγορία εμφάνισης και αλληλεπίδρασης με τον χρήση αλλά όπως και το όνομα του προδίδει προσθέτει τη δυνατότητα διαχείρισης σειριακών πορτών από το πρόγραμμα μας. Μέσω των διαφόρων ιδιοτήτων μπορούμε να ορίσουμε ποια σειριακή πόρτα θα θέλαμε να διαχειριστούμε, ποιο πρωτόκολλο επικοινωνίας χρησιμοποιούμε, ποιος είναι ο ρυθμός ανταλλαγής δεδομένων και πολλά άλλα. Επίσης προσφέρει διάφορα events που μπορούμε να εκμεταλλευτούμε για την εξαγωγή δεδομένων από το buffer της σειριακής πόρτας. Ένα τέτοιο event είναι το DataReceived το οποίο όταν ο αριθμός των byte στο buffer της σειριακής πόρτας έχει ξεπεράσει το όριο που έχουμε ορίσει στην ιδιότητα ReceivedBytesThreshold του αντικειμένου εκτελεί τον κώδικα της C# που έχουμε συνδέσει. Σε αυτό το σημείο θα πρέπει να σημειώσουμε πως κάθε φορά που εκτελείται το προηγούμενο event ο κώδικας της C# που είναι συνδεδεμένος μαζί του τρέχει στο δικό του Thread γιατί έτσι έχει σχεδιαστεί από την ομάδα του.net Framework ώστε να επιτυγχάνονται μεγαλύτερες επιδόσεις κατά την εξαγωγή δεδομένων από το buffer της σειριακής πόρτας. D3DImage (System.Windows.Interop) Το συγκεκριμένο control δίνει την δυνατότητα προβολής και ενσωμάτωσης περιεχομένου που έχει σχεδιαστεί με την τεχνολογία Direct3D (π.χ. DirectX). Ειδικότερα το αντικείμενο D3DImage διαχειρίζεται δυο display buffers ( επιφάνειες σχεδίασης ) εκ των οποίων η μία αποκαλείται back buffer ενώ η άλλη front buffer. Στην επιφάνεια back buffer συνδέεται η επιφάνεια σχεδίασης περιεχομένου Direct3D με την μέθοδο SetBackBuffer ενώ με τις μεθόδους Lock, ΑddDirtyRect και Unlock το αντικείμενο D3DImage επιτρέπει τις αλλαγές στην επιφάνεια back buffer, ανιχνεύει ποιες αλλαγές έγιναν και εναποθέτει της back buffer στην front buffer αντίστοιχα. Θα πρέπει να σημειώσουμε πως οι οποιεσδήποτε αλλαγές και η αντιγραφή της back buffer στην front buffer εκτελούνται στην render thread από την οποία καταλήγει στην τελική μορφή του η front 42 Σ ε λ ί δ α

50 Πτυχιακή εργασία buffer στην UI Thread όπου και απεικονίζεται στον χρήστη. Υπάρχουν όμως περιπτώσεις που η αναπαράσταση της front buffer δεν επιτρέπεται από το λειτουργικό σύστημα όπως όταν κάποιο άλλο πρόγραμμα τεχνολογίας Direct3D τρέχει σε όλη την οθόνη του Η/Υ, κατά την αλλαγή χρηστών ή λόγω περιορισμού κάποιας άλλης δραστηριότητας. Όταν επιτραπεί πάλι στην D3DImage να αναπαραστήσει την front buffer τότε καλείται το event IsFrontBufferAvailableChanged και αναλόγως την τιμή της ιδιότητας enablesoftwarefallback σε περίπτωση που την παραμετροποιήσαμε σαν true το D3DImage έχει κρατήσει την σύνδεση της back buffer ασχέτως που η front buffer χάθηκε ενώ στην αντίθετη παραμετροποίηση false θα πρέπει πριν ξαναναθέσουμε στην D3DImage τον σχεδιασμό της front buffer να ξανασυνδέσουμε της back buffer. 4.4: Σύνδεση αντικειμένων με βάσεις δεδομένων (Data-Binding) Ένα σημαντικό κομμάτι στον προγραμματισμό ενός προγράμματος είναι η αποθήκευση δεδομένων μα και η αναπαράσταση τους στον χρήστη. Σε αυτή την ενότητα λοιπόν θα αναφέρουμε και θα αναλύσουμε ποια είναι τα μέσα που προσφέρει το.net Framework στους προγραμματιστές ώστε να πετύχουν αυτή τη σύνδεση. Ένα από τα βασικότερα αρχιτεκτονικά πρότυπα σύνδεσης αντικειμένων User Interface με βάσεις δεδομένων που αναπτύχθηκε από την Microsoft για την αξιοποίηση του στην τεχνολογία WPF είναι το MVVM (Model View ViewModel) [19]. Η λογική που διέπει το μοντέλο είναι οι ιδιότητες κάθε αντικειμένου να συνδέονται βάσει των αρχών του event-driven προγραμματισμού με την γλώσσα προγραμματισμού της επιλογής μας μέσω κοινής χρήσης πόρων της προηγούμενης, με την γλώσσα που είναι υπεύθυνη για τη σχεδίαση του UI. Ειδικότερα στα πλαίσια αυτής της πτυχιακής εργασίας η XAML όπου είναι υπεύθυνη για το σχεδιασμό του UI συνδέει την οποιαδήποτε Εικόνα 28 : Λογικό διάγραμμα MVVM. ιδιότητα μέσω κοινόχρηστων πόρων όπου εμπεριέχονται τα δεδομένα που διαχειρίζεται η C#. Έτσι αν θέλουμε να δεσμεύσουμε την ιδιότητα Text ενός αντικειμένου TextBlock με τα δεδομένα όπου διαχειριζόμαστε με την C# θα πρέπει δημιουργήσουμε μια κλάση στην C# που θα διαχειρίζεται τα δεδομένα και θα περιέχει μια μεταβλητή τύπου String η οποία μέσω των κοινών πόρων και της XAML θα συνδέεται δυναμικά με την ιδιότητα του Textblock. Αξιοσημείωτο είναι το γεγονός πως χωρίς καμία επιπρόσθετη λειτουργία θα πρέπει οι ιδιότητες αντικειμένων που θέλουμε να συνδέσουμε με κάποια δεδομένα να είναι ίδιου 43 Σ ε λ ί δ α

51 Προγραμματισμός σε περιβάλλον Windows τύπου, δηλαδή το πρότυπο ΜVVM δεν είναι σε θέση να μετατρέψει από μόνο του δεδομένα ενός τύπου σε άλλον (π.χ. από Boolean σε String). Η λύση στο προηγούμενο πρόβλημα έρχεται να δώσει πάλι ένα πρότυπο που είναι γνωστό ως ValueConverter. Το ValueConverter μπορούμε να θεωρήσουμε πως εισχωρεί ανάμεσα στο WVVM και λειτουργεί σαν διερμηνέας μετατρέποντας τα δεδομένα που διαχειριζόμαστε με την C# σε κατάλληλους τύπους όπου μπορεί να αναγνωρίσει και να δεσμεύσει η XAML. 4.5: Γραφικά σε υπολογιστικό περιβάλλον (DirectX) 4.5.1: Εισαγωγή To DirectX αποτελεί μια συλλογή από προγραμματιστικά APIs (application programming interfaces) που έχει αναπτυχθεί από την Microsoft και αφορά την διαχείριση ηλεκτρονικών πολυμέσων και ειδικότερα τον προγραμματισμό παιχνιδιών. Ο λόγος που δημιουργήθηκε το DirectX από την Microsoft ήταν η κυκλοφορία των Windows 95. Τα Windows 95 λόγω της εξέλιξης των Η/Υ και στην προσπάθεια δημιουργίας ενός ασφαλέστερου λειτουργικού συστήματος είχαν περιορίσει την άμεση πρόσβαση των προγραμμάτων απευθείας στο υλικό μέρος του Η/Υ. Αυτό θα είχε ως αποτέλεσμα οι προγραμματιστές παιχνιδιών οπού στο προηγούμενο λειτουργικό σύστημα της εταιρείας MS-DOS είχαν απευθείας πρόσβαση στους υλικού πόρους των καρτών γραφικών, πληκτρολογίων, ποντικιών και καρτών ήχων να χρειαστεί να ξαναγράψουν εξ ολοκλήρου τα παιχνίδια τους για το καινούργιο λειτουργικό σύστημα αλλά και να υιοθετήσουν καινούργιες τεχνικές σχεδίασης και εκμετάλλευσης του Η/Υ. Έτσι η εταιρεία ενσωμάτωσε στο τότε καινούργιο λειτουργικό σύστημα της, λίγο πριν την κυκλοφορία του στο καταναλωτικό κοινό, την τεχνολογία DirectX, που όπως προαναφέραμε είναι μια συλλογή από APIs που θα έδιναν την ίδια ευελιξία στην διαχείριση πόρων, μα και στην σχεδίαση παιχνιδιών στους προγραμματιστές που είχαν εργασθεί στο προηγούμενο λειτουργικό σύστημα της εταιρείας. Πιο συγκεκριμένα το σύνολο των APIs που περιλαμβάνει το DirectX για την δημιουργία γραφικών στον τρισδιάστατο χώρο ονομάζεται Direct3D. Το Direct3D είναι ενσωματωμένο σε όλα τα λειτουργικά συστήματα που ακολούθησαν το MS-DOS και κατά κύριο λόγο είναι υπεύθυνο για την επικοινωνία του προγράμματος με τον οδηγό υλικού της κάρτας γραφικών για την δέσμευση και αποδέσμευση των πόρων της από το πρόγραμμα. Μαζί με την εξέλιξη των καρτών γραφικών και των επεξεργαστικών απαιτήσεων των παιχνιδιών έχει εξελιχθεί και το Direct3D ώστε να υποστηρίζει όλο και περισσότερες τεχνολογίες απεικόνισης και απόδοσης ρεαλισμού στα γραφικά ενός παιχνιδιού. Η τελευταία έκδοση είναι η Direct3D 11.1 που μέσα στο σύνολο των APIs περιλαμβάνει υποστήριξη για την τεχνολογία παιχνιδιών physics όπου προσδίδει μια πιο ρεαλιστική φυσική στα διάφορα περιβάλλοντα που προσομοιώνονται στα διάφορα παιχνίδια, υποστήριξη για απεικόνιση γραφικών σε τρισδιάστατες οθόνες. Στα πλαίσια αυτής της πτυχιακής εργασίας θα μελετήσουμε την έκδοση Direct3D 9.0c λόγω υποστήριξης περισσότερων σε αριθμό εκδόσεων του λειτουργικού συστήματος Windows από ότι οι εκδόσεις Direct3D που ακολούθησαν : Προγραμματίζοντας με την τεχνολογία Direct3D 44 Σ ε λ ί δ α

52 Πτυχιακή εργασία Προτού αναλύσουμε τις τεχνικές προγραμματισμού με την τεχνολογία Direct3D [20] θα πρέπει να αναλύσουμε τη δημιουργία παραθύρων και την διαχείριση τους από το λειτουργικό σύστημα μέσω της τεχνολογίας Win32. Κάθε παράθυρο κατά την δημιουργία του, του ανατίθεται από το λειτουργικό σύστημα μια μεταβλητή τύπου Handle η οποία αποτελεί μια αναφορά στους πόρους που δεσμεύει το παράθυρο. Επίσης, αναλόγως την κατάσταση του παραθύρου και της αλληλεπίδρασης του με τον χρήστη, επιστρέφει τα WM_MESSAGES που πρόκειται για μοναδικούς αριθμούς σε δεκαεξαδική μορφή που ο καθένας αντιστοιχεί σε κάποιο συμβάν (π.χ. WM_PAINT = 0x0F ). Προγραμματιστικός πυρήνας της τεχνολογίας Direct3D αποτελεί το Direct3DDevice, το οποίο αποτελεί ένα αντικείμενο που είναι υπεύθυνο για την δέσμευση των πόρων από την κάρτα γραφικών και την αναπαράσταση των γραφικών σε παραθυρικό περιβάλλον. Ειδικότερα για να δημιουργήσουμε ένα αντικείμενο καλούμε την μέθοδο HRESULT CreateDevice (UINT Adapter, D3DDEVTYPE DeviceType, HWND hfocuswindow, DWORD BehaviourFlags, D3DPRESENT_PARAMETERS *ppresentationparameters, IDirect3DDevice9 **ppreturneddeviceinterface); C++ H πρώτη παράμετρος στην προηγούμενη μέθοδο είναι τύπου UINT δηλαδή ακεραίου αριθμού και αναφέρεται στον αριθμό της κάρτας γραφικών. Η δεύτερη παράμετρος προσδιορίζει το είδος της Direct3DDevice μέσω των μελών του D3DDEVTYPE. Η τρίτη παράμετρος πρόκειται για μια μεταβλητή handle που έχει αναθέσει το λειτουργικό στο παράθυρο οπού θέλουμε να αναπαραστήσουμε γραφικά. Η τέταρτη παράμετρος είναι τύπου Dword και πρόκειται για ένα συνδυασμό ρυθμίσεων που ελέγχουν τη δημιουργία του Direct3DDevice. Σαν πέμπτη παράμετρο ορίζουμε ένα αντικείμενο D3DPRESENT_PARAMETERS που αποτελεί τις ρυθμίσεις για το Direct3DDevice, δηλαδή για το αν θα τρέξει σε ολόκληρη την οθόνη ή σε παραθυρικό περιβάλλον, ποιος θα είναι ο ρυθμός ανανέωσης των γραφικών, τι κωδικοποίηση χρώματος χρησιμοποιεί η οθόνη μας και πολλά άλλα. Τέλος σαν έκτη παράμετρο περνάμε το αντικείμενο Direct3DDevice από όπου και πλέον θα διαχειριζόμαστε το Direct3DDevice που δημιουργήθηκε. Η προηγουμένη μέθοδος στο πέρας της επιστρέφει μια τιμή τύπου HRESULT που αν η τιμή της είναι D3D_OK το Direct3DDevice δημιουργήθηκε με επιτυχία. Θα πρέπει να σημειωθεί πως η προηγούμενη μέθοδος δεν πρέπει να καλείται κατά την διάρκεια δημιουργίας του παραθύρου (WM_CREATE = 0x01 ) από το λειτουργικό σύστημα και γενικώς δεν θα πρέπει να κάνουμε αλλαγές στις ρυθμίσεις του Direct3DDevice κατά την διάρκεια της συγκεκριμένης διαδικασίας. Έχοντας πλέον ορίσει και δημιουργήσει το Direct3DDevice είμαστε σε θέση να ξεκινήσουμε την διαδικασία απεικόνισης γραφικών. Η διαδικασία λαμβάνει μέρος κατά την διάρκεια επανασχεδίασης του παραθύρου από το λειτουργικό σύστημα (WM_PAINT = 0x0F) στο οποίο το Direct3DDevice δεσμεύει τους πόρους του παραθύρου, σχεδιάζει τα γραφικά που εμείς επιθυμούμε και στο πέρας τα απεικονίζει. Έτσι δημιουργείται μια συνεχόμενη επανάληψη η οποία όσο το Direct3DDevice είναι διαθέσιμο θα εκτελείται συνεχώς. Ένα Direct3DDevice γίνεται μη διαθέσιμο όταν υπεισέρχονται αλλαγές στους πόρους του παραθύρου από εξωτερικά συμβάντα του λειτουργικού συστήματος όπως η αλλαγή μεγέθους του παραθύρου ή το κλείσιμό του. 45 Σ ε λ ί δ α

53 Προγραμματισμός σε περιβάλλον Windows Εικόνα 29: Λογικό διάγραμμα για τη σωστή δημιουργία Direct3DDevice : Σχεδιάζοντας γραφικά σε Direct3D 46 Σ ε λ ί δ α

54 Πτυχιακή εργασία Έχοντας πλέον ορίσει τι είναι το Direct3DDevice θα αναλύσουμε τις τεχνικές προγραμματισμού για την απεικόνιση γραφικών. Το πρώτο πράγμα που θα πρέπει να αναλύσουμε είναι ο τρισδιάστατος χώρος που προσομοιώνει η τεχνολογία Direct3D ο οποίος βασίζεται εξ ολοκλήρου στην γραμμική άλγεβρα δηλαδή στην χρήση πινάκων για την αναπαράσταση της θέσης, της περιστροφής και της κλίμακας του αντικειμένου. Το Direct3D υποστηρίζει το δεξιόστροφο αλλά και το αριστερόστροφο καρτεσιανό σύστημα. Η εκλογή του είναι πολύ σημαντική γιατί επηρεάζει άμεσα τις μαθηματικές πράξεις που θα πρέπει να επιληφθούμε για την Εικόνα 30: Αριστερόστροφο και δεξιόστροφο σύστημα συντεταγμένων. αναπαράσταση των γραφικών. Η εκλογή του αριστερόστροφου συστήματος συντεταγμένων γίνεται από την μέθοδο D3DMATRIX* D3DMatrixPerspectiveFovLH (D3DXMATRIX *pout, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf); C++ Direct3DDevice->SetTransform( D3DTS_PROJECTION, &pout ); η οποία έχει ως αποτέλεσμα έναν πίνακα που θα ορίσουμε στο Direct3DDevice σαν πίνακα συστήματος συντεταγμένων. Σαν πρώτη παράμετρο περνάμε τον πίνακα που θα αποθηκευτεί το τελικό προϊόν του συστήματος συντεταγμένων. Η δεύτερη παράμετρος καθορίζει το οπτικό πεδίο προς την κατεύθυνση y σε ακτίνια, η τρίτη την αναλογία ύψουςπλάτους του χώρου απεικόνισης των γραφικών μας ενώ η τέταρτη και η πέμπτη το κάτω και πάνω όριο στη διεύθυνση z αντίστοιχα, όπου τα γραφικά μας θα είναι ορατά. Άλλο ένα σημαντικό κεφάλαιο στην τεχνολογία Direct3D γραφικών είναι η κάμερα, δηλαδή η οπτική γωνία που κάποιος μη αδρανειακός παρατηρητής θα έβλεπε τα γραφικά μας. Οι συντεταγμένες της κάμερας ορίζονται με την μέθοδο C++ 47 Σ ε λ ί δ α

55 Προγραμματισμός σε περιβάλλον Windows Direct3DDevice->SetTransform( D3DTS_PROJECTION, &CameraMatrix ); και έτσι τα γραφικά θα απεικονίζονται από την οπτική γωνία που έχουμε ορίσει. Έχοντας ορίσει το πώς αντιλαμβάνεται τον τρισδιάστατο χώρο το Direct3D θα αναλύσουμε το πώς αντιλαμβάνεται τα γραφικά και ποιες δυνατότητες προσφέρει. Αρχικά όπως προαναφέραμε η δημιουργία γραφικών πρέπει να γίνεται μέσα στη διαδικασία WM_PAINT γιατί μόνο τότε οι πόροι γραφικών του παραθύρου είναι διαθέσιμοι στο Direct3DDevice για να τους διαχειριστεί. Όπως φαίνεται και στο παρακάτω λογικό διάγραμμα που είναι εκτενέστερη η διαδικασία απεικόνισης γραφικών όταν το μήνυμα WM_PAINT φτάσει στο πρόγραμμα μας. Η πρώτη μέθοδος που καλούμε είναι η Direct3DDevice->Clear(); C++ με την οποία καθαρίζουμε την επιφάνεια στην οποία θέλουμε να αναπαραστήσουμε τα γραφικά της επιλογής μας. Στη συνέχεια εκτελείται η μέθοδος Direct3DDevice->BeginScene(); C++ με την οποία σηματοδοτείται το Direct3DDevice ώστε να δεσμεύσει τους πόρους της επιφάνειας στην οποία θέλουμε να αναπαραστήσουμε τα γραφικά. Αν η μέθοδος επιστρέψει την τιμή S_OK τότε το Direct3DDevice Εικόνα 31: Λογικό διάγραμμα αναπαράστασης γραφικών. κατάφερε επιτυχώς να δεσμεύσει τους πόρους και στη συνέχεια θα πρέπει να ορίσουμε την θέση της κάμερας, το είδος και την παραμετροποίηση των 48 Σ ε λ ί δ α Direct3DDevice->EndScene();

56 Πτυχιακή εργασία γραφικών που θέλουμε να αναπαραστήσουμε αλλά και τον πίνακα που θα περιέχει την θέση τους, την περιστροφή τους και την κλίμακα τους. Τέλος καλείται η μέθοδος η οποία αποδεσμεύει τους πόρους της επιφάνειας και εναποθέτει την επιφάνεια για τη σχεδίαση της από τον οδηγό υλικού της κάρτας γραφικών. Η τελευταία διαδικασία θα πρέπει να σημειωθεί πως δεν είναι ασύγχρονη με την σχεδίαση της επιφάνειας δηλαδή παρόλο που μπορεί να ολοκληρωθεί η μέθοδος δεν είναι απαραίτητο η επιφάνεια να σχεδιαστεί από τον οδηγό υλικό της κάρτας γραφικών. Εισχωρώντας βαθύτερα στη διαδικασία δημιουργίας και αναπαράστασης γραφικών από την τεχνολογία Direct3D, παρατηρούμε πως τα γραφικά αναγνωρίζονται σαν σύνολο κορυφών που αποτελούν μια τρισδιάστατη οντότητα. Συχνά όμως τα γραφικά που χρήζονται απεικόνισης είναι πολύγωνα. Το πιο απλό πολύγωνο είναι το τρίγωνο, το οποίο σαν σχήμα αποτελείται από τρεις κορυφές (Vertices) που εγγυημένα θα είναι συνεπίπεδες. Έτσι για λόγους εξοικονόμησης πόρων για το σχεδιασμό μεγάλων πολύγωνων γραφικών χρησιμοποιούνται τρίγωνα. Στο διπλανό σχήμα φαίνεται πως δύο τρίγωνα αποτελούν μία πλευρά ενός κύβου και δώδεκα τρίγωνα ένας ολόκληρο τρισδιάστατο κύβου. Επίσης στο διπλανό σχήμα φαίνεται πως η τεχνολογία Direct3D είναι σε θέση να αναπαραστήσει σχήματα με την χρήση τριγώνων των οποίων η επιφάνεια στην πραγματικότητα αποτελείται από καμπύλες όπως στην περίπτωση της σφαίρας. Βέβαια στην περίπτωση της σφαίρας και γενικών σχημάτων με καμπύλες για την πιο ρεαλιστική απεικόνιση θα πρέπει να αναθέσουμε κάποιο υλικό (material) τεχνική που θα αναλυθεί αργότερα. Οι βασικές κατηγορίες για την αναπαράσταση γραφικών λοιπόν από την τεχνολογία Direct3D είναι η δημιουργία σχημάτων βάσει κορυφών, γραμμών και τριγώνων. Όλα τα προηγούμενα ανήκουν στην κατηγορία PRIMITIVES και η εντολή με την οποία το Direct3DDevice τα σχεδιάζει είναι η HRESULT Direct3DDevice->DrawPrimitive ( D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount ); 1η παράμετρος: Επιλογή τύπου PRIMITIVE 2η παράμετρος: Δείκτης της πρώτης κορυφής 3η παράμετρος: Αριθμός στοιχείων που θα σχεδιάσει C++ 49 Σ ε λ ί δ α

57 Προγραμματισμός σε περιβάλλον Windows αφού πρώτα έχουμε ορίσει τον πίνακα που περιέχει τις κορυφές. Τα μέλη της κατηγορίας D3DPRIMITIVETYPE [21] είναι τα παρακάτω: Point Lists CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} }; Σε αυτόν τον τύπο PRIMITIVE όπως βλέπουμε και στο παραπάνω σχήμα το Direct3D απεικονίζει την λίστα με τις κορυφές μας σαν σημεία και δεν τις ενώνει. Line Lists CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} }; Σε αυτόν τον τύπο PRIMITIVE απεικονίζει την λίστα με τις κορυφές μας σαν σημεία αλλά ανά ζεύγη των δυο τα ενώνει με μια γραμμή. Line Strips CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, 50 Σ ε λ ί δ α

58 Πτυχιακή εργασία }; {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} Σε αυτόν τον τύπο PRIMITIVE απεικονίζει την λίστα με τις κορυφές μας σαν σημεία αλλά τα ενώνει όλα με μια γραμμή. Triangle Lists CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} }; Σε αυτόν τον τύπο PRIMITIVE όπως βλέπουμε και στο παραπάνω σχήμα το Direct3D απεικονίζει την λίστα με τις κορυφές μας σαν σημεία και ανά ζεύγη των τριών σχεδιάζει ένα τρίγωνο. Triangle Strips CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} }; Σε αυτόν τον τύπο PRIMITIVE απεικονίζει την λίστα με τις κορυφές μας σαν σημεία αλλά τα ενώνει όλα σχηματίζοντας τρίγωνα. Triangle Fans CUSTOMVERTEX Vertices[] = { { 0.0, 0.0, 0.0}, {-5.0, 5.0, 0.0}, {-3.0, 7.0, 0.0}, { 0.0, 10.0, 0.0}, 51 Σ ε λ ί δ α

59 Προγραμματισμός σε περιβάλλον Windows }; { 3.0, 7.0, 0.0}, { 5.0, 5.0, 0.0}, Σε αυτόν τον τύπο PRIMITIVE η πρώτη κορυφή στη λίστα κορυφών αποτελεί την κορυφή ενός τριγώνου και όλα τα υπόλοιπα σημεία στη λίστα κορυφών συνδέονται μαζί της σχηματίζοντας επιμέρους τρίγωνα. Έχοντας πλέον αναλύσει όλες τους τρόπους που μπορεί η τεχνολογία Direct3D να αντιληφθεί και να σχεδιάσει σημεία στον τρισδιάστατο χώρο, υπάρχει και μια επιπρόσθετη κατηγορία γραφικών γνωστά ως Meshes. Ένα Mesh στην ουσία πρόκειται για ένα σύνολο από σημεία τα οποία σαν οντότητα αποτελούν ένα γραφικό. Υπάρχουν κάποια βασικά Meshes στην τεχνολογία Direct3D όμως μπορούν να φορτωθούν και εξωτερικά από αρχεία με την κατάληξη.x. Αυτά τα αρχεία στην ουσία περιέχουν όλες τις κορυφές του σχήματος και γενικές ιδιότητες για την γεωμετρία του σχήματος. Στη Εικόνα 32: Textured Mesh που αναπαριστά την γη. διπλανή εικόνα φαίνεται ένα Mesh σφαίρας το οποίο του έχουμε συνδέσει την εξωτερική του επιφάνεια με την τεχνική UV mapping. Η τεχνική UV mapping στην ουσία μεταφράζει μια δισδιάστατη εικόνα επάνω σε μια επιφάνεια. Τα αρχικά της "U" και "V" στην ουσία καθορίζουν τις μεταβλητές των δύο αξόνων που προβάλλεται η εικόνα μιας και οι μεταβλητές "X", "Y" και "Ζ" είναι ήδη δεσμευμένα για τις αναπαράσταση των σημείων που αποτελούν το τρισδιάστατο μοντέλο. Πηγή δημιουργίας αρχείων τρισδιάστατων μοντέλων.x είναι αρκετά γνωστά σχεδιαστικά προγράμματα όπως το Blender. Έτσι το Mesh που φαίνεται στην παραπάνω εικόνα είναι μια σφαίρα που σχεδιάστηκε στο Blender στην οποία με την τεχνική UV mapping έχει ανατοποθετηθεί μια εικόνα της γης και στην συνέχεια εξάχθηκε σε μορφή αρχείου με κατάληξη.x. Θα πρέπει επίσης να σημειωθεί πως η φόρτωση των Mesh από εξωτερικό αρχείο κατά κύριο λόγο συστήνεται κατά την φόρτωση του προγράμματος και όχι κατά τη διαδικασία σχεδίασης γραφικών από το Direct3DDevice. Προτού αναλύσουμε για το τι είναι το Material (υλικό) ενός τρισδιάστατου γραφικού θα πρέπει να αναφερθούμε στον φωτισμό του τρισδιάστατου χώρου από την τεχνολογία Direct3D. Όπως και στο πραγματικό χώρο έτσι και στον τρισδιάστατο χώρο που προσομοιώνει η τεχνολογία Direct3D τα αντικείμενα αντανακλούν τον φωτισμό που προσκρούει επάνω τους και γίνονται ορατά. Έτσι λοιπόν ένας τρισδιάστατος χώρος χωρίς φωτισμό ανεξαρτήτως το τι τρισδιάστατα μοντέλα περιέχει δεν θα έχει τίποτα ορατό. Η τεχνολογία Direct3D προσφέρει πολλές τεχνικές για την ενσωμάτωση φωτισμού στον χώρο 52 Σ ε λ ί δ α

60 Πτυχιακή εργασία και την αλληλεπίδραση τρισδιάστατων αντικειμένων με τον φωτισμό. Επίσης θα πρέπει να τονίσουμε πως για να ενεργοποιηθούν οι τεχνικές φωτισμού της τεχνολογίας Direct3D θα πρέπει τη στιγμή που έχουμε δημιουργήσει το Direct3DDevice να τρέξουμε την παρακάτω εντολή gd3ddevice->setrenderstate( D3DRS_LIGHTING, TRUE ); C++ Οι τρεις τύποι φωτισμού [22] που προσφέρει η τεχνολογία Direct3D είναι οι εξής: Point Light Εικόνα 33: Γραφική αναπαράσταση point light. Ο φωτισμός τύπου point light έχει ιδιότητες θέσης και χρώματος στον τρισδιάστατο χώρο και προσδίδει ίσες ποσότητες φωτισμού στο χώρο τριγύρω του όπως φαίνεται και στην παραπάνω εικόνα. Μια καλή παρομοίωση για την καλύτερη αντίληψη του πως λειτουργεί ένα φωτισμός είναι η ηλεκτρική λάμπα σε ένα δωμάτιο. Όπως στην πραγματική λάμπα ο φωτισμός διαχέεται στον χώρο και τα αντικείμενα που είναι κοντά σε αυτήν φαίνονται καλύτερα από τα αντικείμενα που βρίσκονται σε μακρύτερη απόσταση έτσι συμβαίνει και με τα γραφικά όταν φωτίζονται από φωτισμό point light. Directional Light Ο φωτισμός τύπου directional light έχει σαν ιδιότητες μόνο χρώμα και διεύθυνση όχι θέση στο χώρο. Εκπέμπει παράλληλες δέσμες φωτισμού δηλαδή ο φωτισμός που παράγεται από τέτοιου τύπο φωτισμού ταξιδεύει στον τρισδιάστατο χώρο κατά την ίδια διεύθυνση. Το καλύτερο παράδειγμα για την αντίληψη του είδους του φωτισμού είναι μια πηγή φωτός σε άπειρη απόσταση όπως ο ήλιος. Η ένταση ανάκλασης τέτοιου είδους φωτισμού δεν εξαρτάται από την απόσταση έτσι ρόλο για την ανάκλαση των γραφικών παίζει μόνο το χρώμα του φωτισμού και η διεύθυνση με την οποία προσπίπτει πάνω στην επιφάνεια των γραφικών. Λόγω του ότι η ένταση του φωτισμού δεν εξαρτάται από την 53 Σ ε λ ί δ α

61 Προγραμματισμός σε περιβάλλον Windows απόσταση των γραφικών καθιστά αυτό το είδος φωτισμού αρκετά ελαφρύ από άποψη υπολογιστικών απαιτήσεων. SpotLight Εικόνα 34: Γραφική αναπαράσταση φωτισμού SpotLight. Σαν ιδιότητες ο φωτισμός SpotLight έχει θέση, χρώμα και διεύθυνση διάδοσης φωτισμού. Ειδικό χαρακτηριστικό αυτού του φωτισμού είναι πως, όπως φαίνεται και στο παραπάνω σχήμα, στο κέντρο του φωτισμού η ένταση του είναι δυνατότερη (Inner Cone) και καθώς μεταβαίνει στον εξωτερικό κύκλο η ένταση του φθίνει γραμμικά (Outer Cone) όπως λειτουργεί και ένας συμβατικός φακός χειρός. Επίσης αυτό το είδος φωτισμού εξαρτάται από την απόσταση και η διάμετρος του εσωτερικού κύκλου ορίζεται από την γωνία Theta ενώ του εξωτερικού από την γωνία Phi. Έχοντας πλέον αναλύσει πως θα αναπαραστήσουμε γραφικά στον τρισδιάστατο χώρο και ποιες επιλογές έχουμε για τον φωτισμό τους, θα πρέπει να διευθετήσουμε το πώς θα αλληλεπιδρούν με τον φωτισμό. Αυτό γίνεται με την ανάθεση Material στα τρισδιάστατα αντικείμενα. Η τεχνολογία Direct3D εναποθέτει στην κατηγορία Material τις παρακάτω επιμέρους ιδιότητες που κάθε μια έχει κωδικοποίηση ARGB (Alpha-Red-Green-Blue): Διάχυση και Περιβάλλουσα Ανάκλαση (Diffuse and Ambient Reflection) Ο χώρος αποτελείται από φωτισμό Diffuse και Ambient. Λόγω του γεγονότος πως κατά κύριο λόγο ο φωτισμός Diffuse είναι πολύ περισσότερος από τον Ambient οι ανακλάσεις που βασίζονται στον πρώτο παίζουν πολύ σημαντικό ρόλο στην γραφική απεικόνιση των γραφικών. Μιας και ο φωτισμός Diffuse είναι κατευθυντικός, η γωνία πρόσπτωσης παίζει σημαντικό ρόλο στην ποσότητα έντασης χρώματος που ανακλάται από την επιφάνεια του τρισδιάστατου γραφικού και όσο πιο κάθετη γίνεται η πρόσπτωση τόσο πιο έντονη είναι η ανάκλαση. Εν αντιθέσει ο φωτισμός Ambient δεν είναι κατευθυντικός και 54 Σ ε λ ί δ α

62 Πτυχιακή εργασία έτσι έχει μικρότερο αντίκτυπο στην εμφάνιση του ανακλώμενου φωτισμού στο τρισδιάστατο γραφικό αλλά επηρεάζει την γενική απόχρωση του χρώματος σε συνδυασμό με τον λίγο ή καθόλου Diffuse φωτισμού. Emission (Εκπομπή) Η συγκεκριμένη ιδιότητα του Material ενός γραφικού χρησιμοποιείται για να περιγράψει το χρώμα και την διαφάνεια του εκπεμπόμενου φωτός. Επίσης μπορεί να χρησιμοποιηθεί ώστε το γραφικό να γίνει αυτόφωτο δηλαδή να γίνει το γραφικό πηγή φωτός χωρίς να υπάρχει κάποια άλλη πηγή φωτός στον τρισδιάστατο χώρο. Specular Reflection (Κατοπτρική ανάκλαση) Εικόνα 35: Αριστερά: Απεικόνιση αντικειμένου με Specular Reflection Δεξία: Απεικόνιση αντικειμένου χωρίς Specular Reflection. Όπως φαίνεται και στην παραπάνω εικόνα η ιδιότητα Specular Reflection τονίζει τις άκρες των γραφικών δίνοντας τους την ψευδαίσθηση ότι λάμπουν. Η συγκεκριμένη ιδιότητα πέραν από την κωδικοποίηση ARGB που έχει για την ανάθεση χρώματος των τονισμών στις άκρες των αντικειμένων, έχει μια επιπρόσθετη ιδιότητα Power της οποίας η τιμή καθορίζει το πόσο έντονοι θα είναι αυτοί οι τονισμοί. Έχοντας αναλύσει πλέον τις βασικές μεθόδους για την επιθυμητή σχεδίαση και απεικόνιση γραφικών θα αναφερθούμε στα μαθηματικά που απαιτούνται για την ολοκλήρωση της διαδικασίας απεικόνισης γραφικών. Όπως προαναφέραμε η τεχνολογία Direct3D χρησιμοποίει γραμμική άλγεβρα για την απεικόνιση γραφικών. Έτσι ένα τρισδιάστατο γραφικό θα πρέπει να έχει έναν πίνακα για την θέση του, έναν για την περιστροφή του και έναν για την κλίμακα απεικόνισης του. Πολλαπλασιάζοντας τους συγκεκριμένους πίνακες παίρνουμε σαν τελικό προϊόν, έναν πίνακα στον οποίο εμπεριέχονται και οι τρεις ιδιότητες του τρισδιάστατου γραφικού. Η σωστή σειρά πολλαπλασιασμού πινάκων είναι ScaleMatrix RotationMatrix TranslationMatrix = FinalMatrix κατά την οποία πρέπει να θυμόμαστε πως στον πολλαπλασιασμό πινάκων παίζει ρόλο η σειρά πολλαπλασιασμού, αν η οποία αλλάξει δεν θα δώσει το ίδιο αποτέλεσμα σαν τελικό πίνακα. Τέλος η σειρά των μαθηματικών πράξεων μεταξύ πινάκων στην τεχνολογία Direct3D εκτελείται από τα αριστερά προς τα δεξιά. 55 Σ ε λ ί δ α

63 Προγραμματισμός σε περιβάλλον Windows Έχοντας πια αναλύσει εκτενώς την τεχνολογία Direct3D και.net Framework στο επόμενο κεφάλαιο θα αναλύσουμε την υλοποίηση της ηλεκτρονικής διάταξης και την αξιοποίηση των όσων αναλύσαμε για τις ανάγκες του προγράμματος που φτιάχτηκε στον Η/Υ. 56 Σ ε λ ί δ α

64 Κεφάλαιο 5: Υλοποίηση 5.1: Ανάπτυξη της ηλεκτρονικής διάταξης Για την δημιουργία της ηλεκτρονικής διατάξεως χρησιμοποιήθηκε ένας μικροελεγκτής Atmega 168p, ένας αισθητήρας γυροσκοπίου ITG3200, ένας αισθητήρας επιταχυνσιόμετρου ADXL345, ένα καλώδιο FTDI-RS232, δύο αντιστάσεις push-pull 1,5kΩ, ένας αποσφαλματωτής-προγραμματιστής AVR Dragon και το προγραμματιστικό περιβάλλον Atmel AVR Studio v4.19 build 3. Η συνδεσμολογία όλων των προηγούμενων για την σωστή λειτουργία και την επιθυμητή εξαγωγή δεδομένων από τους δύο αισθητήρες φαίνεται στην παρακάτω εικόνα. Επιπρόσθετα η υλοποίηση και ο προγραμματισμός της ηλεκτρονική διάταξης μετρήσεων είναι αποτέλεσμα συνεργασίας με τον συμφοιτητή Νερούτσο Παναγιώτη. Εικόνα 36: Ηλεκτρονική διάταξη που υλοποιήθηκε. Όπως φαίνεται και στο παραπάνω διάγραμμα οι δύο αισθητήρες έχουν συνδεθεί με τον μικροελεγκτή κάνοντας χρήση του πρωτοκόλλου I 2 C ενώ το κανάλι τροφοδοσίας και της γείωσης παρέχονται από το καλώδιο FTDI και κατ επέκταση από την θύρα USB στην οποία συνδέεται (+5V). Αξίζει να σημειωθεί πως έχουμε αξιοποιήσει την δυνατότητα των 57 Σ ε λ ί δ α

65 Υλοποίηση external Interrupts που προσφέρει ο μικροελεγκτής έχοντας συνδέσει τον pin INT1 του αισθητήρα επιτάχυνσης (ADXL345) γιατί ο ρυθμός δειγματοληψίας μετρήσεών του είναι χαμηλότερος από τον αισθητήρα γυροσκοπίου (ITG3200) με αποτέλεσμα κάθε φορά που δίνει σήμα στον μικροελεγκτή πως τα δεδομένα του είναι έτοιμα για εξαγωγή και τα δεδομένα στο άλλο αισθητήριο όργανο. Εικόνα 37: Διάγραμμα ροής προγράμματος μικροελεγκτή. Όπως φαίνεται και στο παραπάνω λογικό διάγραμμα σαν πρώτο στάδιο στον προγραμματισμό του μικροελεγκτή είναι η εκκίνηση του πρωτοκόλλου UART, του οποίου η ταχύτητα προκύπτει από την κατάλληλη ρύθμιση των καταχωρητών που είναι υπεύθυνοι για την λειτουργία του, χρησιμοποιώντας την τιμή που προκύπτει από την παρακάτω σχέση. ubbr = (ταχ. Μικροελεγκτή) (επιθυμητη ταχύτητα UART) 58 Σ ε λ ί δ α

66 Πτυχιακή εργασία Σαν δεύτερο στάδιο είναι η εκκίνηση του πρωτοκόλλου I2C, που για άλλη μια φορά ρυθμίζουμε κατάλληλα τους καταχωρητές που είναι υπεύθυνοι για την λειτουργιά του σε συνδυασμό με την τιμή που προκύπτει από την παρακάτω σχέση. bitrate_div = ( ταχ. μικροελγκτή MHz) (ταχ. πρωτοκόλλου khz) Έχοντας ρυθμίσει πλέον τα πρωτόκολλα επικοινωνίας προτού είμαστε σε θέση να εξάγουμε μετρήσεις από τους αισθητήρες μας μέσω του πρωτοκόλλου I2C γράφουμε τις αρχικές συνθήκες τους για την προβλεπόμενη λειτουργία τους. ΔΙΕΥΘΥΝΣΗ (HEX) Πίνακας 7: Αρχικές τιμές για τον αισθητήρα ADXL345 ΟΝΟΜΑ ΤΙΜΗ ΠΕΡΙΓΡΑΦΗ 0x1E OFSX 0x00 Αντιστάθμισμα X-άξονα. 0x1F OFSY 0x00 Αντιστάθμισμα Υ-άξονα. 0x20 OFSZ 0x0D Αντιστάθμισμα Ζ-άξονα. 0x2C BW_RATE 0x0D 0x2D POWER_CTL 0x28 0x2E INT_ENABLE 0x80 0x2F INT_MAP 0x7F 0x31 DATA_FORMAT 0x2B Ρύθμιση κανονικής τροφοδοσίας και ρυθμός εξαγωγής δεδομένων 800Hz. Ρύθμιση τροφοδοσίας αισθητήρα για λειτουργία μέτρησης. Ενεργοποίηση σηματοδότησης Interrupt για συμβαν DATA_READY. Ρύθμιση Pin ΙΝΤ1 για την σηματοδότηση του Interrupt. Ορισμός εύρους μετρήσεων ±16g, ενεργοποίηση πλήρους ανάλυσης, και ορισμός σηματοδότησης του Interrupt με λογικό 0. ΔΙΕΥΘΥΝΣΗ (HEX) Πίνακας 8: Αρχικές τιμές για τον αισθητήρα ITG3200 ΟΝΟΜΑ ΤΙΜΗ ΠΕΡΙΓΡΑΦΗ 0x15 SMPLRT_DIV 0x00 0x16 DLPF 0x18 0x17 INT_CFG 0x05 0x3E POWER_MGMT 0x00 Ρύθμιση του εξωτερικού ρυθμού δειγματοληψίας στα 8kHz. Ρύθμιση του εσωτερικού ρυθμού δειγματοληψίας στα 8kHz. Ενεργοποίηση σηματοδότησης Interrupt για συμβαν ITG_RDY_EN και RAW_DATA_RDY. Ρύθμιση δειγματοληψίας κάνοντας χρήση το εσωτερικό ρολόι του αισθητήρα. 59 Σ ε λ ί δ α

67 Υλοποίηση Έχοντας αρχικοποιήσει τους αισθητήρες ενεργοποιούμε τα USART Interrupts στον μικροελεγκτή έτσι ώστε το πρόγραμμα στον Η/Υ να μπορεί να "ελέγξει" την εξαγωγή δεδομένων με την αποστολή των χαρακτήρων "s" και "p" μέσω του buffer του FTDI. Όταν ο χαρακτήρας "s" φτάσει στον μικροελεγκτή τότε ενεργοποιούμε τα external Interrupts στον Pin INT0 του μικροελεγκτή και πραγματοποιείται η εξαγωγή δεδομένων. Στην περίπτωση του χαρακτήρα "p" κλείνουμε τα external Interrupts. Έτσι, με την παραπάνω λογική προγραμματισμού έχουμε έναν μικροελεγκτή στα 12 MHz ο οποίος εξάγει δεδομένα από δύο αισθητήρια με ταχύτητα 400kbps τα οποία λαμβάνουν μετρήσεις με ρυθμό 800 Hz. Παρόλο που ο αισθητήρας ITG3200 εξάγει δεδομένα πιο γρήγορα το γεγονός πως το external Interrupt του μικροελεγκτή το έχει αναλάβει ο αισθητήρας ADXL345 έμμεσα επιβάλλει την συχνότητα λειτουργίας του και στον ITG3200. Τα δεδομένα από τον μικροελεγκτή μεταφέρονται στην σειριακή θύρα του H/Y μέσω του FTDI καλωδίου με ταχύτητα bps. Λόγω της υψηλής συχνότητας σε σχέση με τα αισθητήρια του μικροελεγκτή τα δεδομένα που εξάγονται εκμεταλλεύονται σε πραγματικό χρόνο. Έτσι στην προσπάθεια να εκμεταλλευτούμε και έξω από τον μικροεπεξεργαστή τα δεδομένα σε πραγματικό χρόνο σχεδιάσαμε ένα πρόγραμμα που βασιζόταν στην ίδια λογική δηλαδή με την χρήση ενός επεξεργαστή κατά πολύ πιο γρήγορο από τον μικροελεγκτή που θα διαβάζει σχεδόν ακαριαία τα δεδομένα από το buffer της σειριακής θύρας και θα τα αναπαριστά. 5.2: Υλοποίηση περιβάλλοντος απεικόνισης στον Η/Υ Όσον αφορά τον Η/Υ, προγραμματίσαμε ένα πρόγραμμα στην γλώσσα προγραμματισμού C# κάνοντας χρήση του προγραμματιστικού περιβάλλοντος Visual Studio. Οι τεχνολογίες οι οποίες χρησιμοποιήθηκαν είναι η WPF, για τον σχεδιασμό της διεπαφής χρήστη, η οποία είναι μέλος της οικογένειας.net Framework και η τεχνολογία Direct3D. Ο λόγος που επιλέξαμε την τεχνολογία WPF είναι ότι είναι μια από τις πιο μοντέρνες λύσεις που προσφέρει η Microsoft και είναι σε θέση να εκμεταλλεύεται καλύτερα τους πόρους νέων υπολογιστικών μηχανημάτων και προσφέρει έναν εύκολο τρόπο σχεδίασης διεπαφών. Επιπρόσθετα αξιοποιήθηκε η τεχνολογία Direct3D λόγω του ότι εξειδικεύεται καθαρά στην ανάπτυξη γραφικών περιβαλλόντων και μπορεί να ενσωματωθεί με σχετική ευκολία με την τεχνολογία WPF. Σε αυτό το σημείο θα πρέπει να αναφέρουμε πως το γεφύρωμα της τεχνολογίας Direct3D με WPF έγινε με τη δημιουργία ενός DLL (Dynamic Link Library), στο οποίο φιλοξενήθηκε το περιεχόμενο κώδικα Direct3D, και το οποίο είναι σε θέση να επικοινωνεί με την WPF μέσω του CLR (Common Language Runtime) και πιο συγκεκριμένα με τo όρισμα DllImport("dllname") και να ανταλλάσσει γραφικά μέσω του control D3DImage. Επειδή το πρόγραμμα που σχεδιάστηκε έχει μεγάλο εύρος προγραμματιστικών λύσεων παρακάτω αναπαρίσταται το διάγραμμα ροής υπεραπλουστευμένο για καλύτερη κατανόηση της προγραμματιστικής λογικής που το διέπει και στη συνέχεια θα αναλυθούν οι κλάσεις και τα κομμάτια κλειδιά για την λειτουργία του προγράμματος. 60 Σ ε λ ί δ α

68 Πτυχιακή εργασία Εικόνα 38: Απλουστευμένο διάγραμμα ροής προγράμματος C# Όπως φαίνεται και στο παραπάνω διάγραμμα ροής το πρόγραμμα με τις κλάσεις που το απαρτίζουν προσφέρει τις παρακάτω λειτουργίες: Να ανιχνεύει αν είναι συνδεδεμένος ο μικροελεγκτής. Να διαχειρίζεται μια σειριακή πόρτα στης οποίας το Buffer αποθηκεύονται τα δεδομένα. Εξαγωγή και επεξεργασία δεδομένων. Σχεδιασμό τρισδιάστατου γραφικού περιβάλλοντος. 61 Σ ε λ ί δ α

69 Υλοποίηση Και μια πληθώρα από τεχνικές σύνδεσης δεδομένων (Model View ViewModel) και συμβάντων για την καλύτερο χειρισμό του από τον χρήστη. Ξεκινώντας την ανάλυση των επιμέρους κλάσεων του προγράμματος μας θα δούμε αρχικά την δομή των κλάσεων και το ποια κομμάτια εκτελούνται βάσει του προηγούμενου διαγράμματος ροής και στη συνέχεια θα αναλύσουμε πως συνδέονται με την διεπαφή χρήστη. Κλάση για ανίχνευση σύνδεσης μικροελεγκτή Εικόνα 39: Διάγραμμα ροής μελών κλάσης για την συνδεσιμότητα μικροελεγκτή. Όπως φαίνεται και στο παραπάνω διάγραμμα η κλάση για την ανίχνευση του μικροελεγκτή περιλαμβάνει την void Initialize η οποία καλείται κατά την αρχή του προγράμματος και συνδέει το πρόγραμμα μας με την ανίχνευση σύνδεσης και αποσύνδεσης συσκευών από το λειτουργικό σύστημα με το Event DeviceConnected(). Επίσης κατά την αρχή καλείται και η συναρτηση τύπου Boolean isdeviceconnected η οποία ελέγχει αν κατά τη στιγμή εκκίνησης του προγράμματος είναι ήδη συνδεδεμένος ο μικροελεγκτής και τροποποιεί αναλόγως την τιμή τις ιδιότητας της κλάσης Connected() που είναι και αυτή τύπου Boolean. 62 Σ ε λ ί δ α

70 Πτυχιακή εργασία Κλάση για διαχείριση σειριακής πόρτας Εικόνα 40: Διάγραμμα ροής μελών κλάσης για την διαχείριση σειριακής θύρας. Η κλάση για την διαχείριση της σειριακής πόρτας αποτελείται από τα μέλη που φαίνονται στο παραπάνω διάγραμμα ροής και προσφέρει πρόσβαση στο αντικείμενο SerialPort σε άλλες κλάσεις του προγράμματος. Κατά την εκκίνηση του προγράμματος εκτελείται η void Initialize που είναι υπεύθυνη για την αρχικοποίηση του αντικειμένου SeriaPort. Οι αρχικές συνθήκες για την σωστή επικοινωνία με τον μικροελεγκτή είναι οι παρακάτω: Πίνακας 9: Αρχικές τιμές σειριακής πόρτας ΙΔΙΟΤΗΤΑ ΤΙΜΗ ΠΕΡΙΓΡΑΦΗ Portname COM4 Όνομα σειριακή θύρας Baudrate Ταχύτητα μεταφοράς δεδομένων Parity Parity.None Απενεργοποίηση Parity Handshake Handshake.None Απενεργοποίηση Handshake Encoding System.Text.ASCIIEncoding() Κωδικοποίηση byte του Buffer Readbuffersize 4096 Μέγεθος σε bytes του Buffer 63 Σ ε λ ί δ α

71 Υλοποίηση Κλάση επεξεργασίας δεδομένων Εικόνα 41: Διάγραμμα ροής μελών κλάσης επεξεργασίας δεδομένων (πρώτο μέρος). 64 Σ ε λ ί δ α

72 Πτυχιακή εργασία Εικόνα 42: Διάγραμμα ροής μελών κλάσης εξαγωγής και επεξεργασίας δεδομένων (δεύτερο μέρος). Η συγκεκριμένη κλάση όπως φαίνεται είναι υπεύθυνη για την εξαγωγή των δεδομένων από το buffer της σειριακής θύρας. Το κομμάτι κώδικα που αποτελεί ρόλο κλειδί στην αξιοποίηση των δεδομένων είναι η void processserial το οποίο με την παραπάνω λογική εξάγει και επεξεργάζεται τα δεδομένα τα οποία εν τέλει καταλήγουν σε μια μεταβλητή ανά άξονα με διαστάσεις γωνίας ( μοίρες ). Επίσης αξίζει να σημειωθεί πως η συγκεκριμένη συνάρτηση ολοκληρώνει τις μετρήσεις και έτσι πλέον από διάσταση μοίρες δευτερολέπτα έχουν διάσταση γωνίας δηλαδή μοίρες. Σαν επιπλέον χαρακτηριστικό έχει ενσωματωθεί και μια τεχνική φιλτραρίσματος (τεχνική μέσης τιμής) των τιμών για την πιο καλύτερη ανίχνευση ακινησίας του αισθητήρα. Κλάση επεξεργασίας δεδομένων Όπως φαίνεται και στην παρακάτω εικόνα το κομμάτι των γραφικών χωρίζεται σε δύο τεχνολογίες, την WPF με κώδικα σε C# και την Direct3D της οποίας ο κώδικας είναι γραμμένος σε C++ και εμφωλευμένος μέσα σε αρχείο dll για την εύκολη συνένωση τους. Για την καλύτερη κατανόηση του κώδικα και της λογικής που τον διέπει στην παρακάτω εικόνα τα διαγράμματα είναι υπεραπλουστευμένα και παρουσιάζουν μόνο τα βασικά κομμάτια κώδικα. 65 Σ ε λ ί δ α

73 Υλοποίηση Εικόνα 43: Διάγραμμα ροής μελών κλάσης διαχείρισης γραφικών (πρώτο μέρος). 66 Σ ε λ ί δ α

74 Πτυχιακή εργασία Εικόνα 44: Διάγραμμα ροής μελών κλάσης διαχείρισης γραφικών (δεύτερο μέρος) 67 Σ ε λ ί δ α

75 Υλοποίηση Όπως παρατηρούμε η προκειμένη κλάση είναι μεγάλη σε έκταση και αυτό μοιάζει λογικό μιας και στην ουσία είναι η κλάση που εκμεταλλεύεται όλες τις υπόλοιπες ώστε να εξάγει και στην συνέχεια να απεικονίσει στην οθόνη τις μετρήσεις. Ειδικότερα όλη η παραπάνω περιγραφή γίνεται στο event ΟnRendering του WPF control D3DImage όπου, και όπως βλέπουμε στο διάγραμμα ροής, καλείται η κλάση επεξεργασίας δεδομένων να εξάγει τα δεδομένα από το Buffer της σειριακής θύρας, τα οποία στην συνέχεια θα συνδεθούν με τη μηχανή γραφικών Direct3D όπου και θα λάβουν την τελική μορφή τους σαν απεικονίσεις πλέον στην οθόνη του υπολογιστή. Σε αυτό το σημείο θα πρέπει να τονίσουμε πως το συμβάν OnRendering του D3DImage εκτελείται τόσο φόρες όσες είναι ο χρονισμός της οθόνης του υπολογιστή και αυτό είναι απόλυτα λογικό γιατί το συγκεκριμένο event έχει ως βασική ευθύνη να σχεδιάζει γραφικά άρα όταν η οθόνη ζητάει να αναβαθμίζεται με ρυθμό 60Hz έτσι θα πρέπει και εκείνο να ακολουθήσει αυτόν τον ρυθμό ώστε να είναι ομαλή η απεικόνιση των μετρήσεων. Έχοντας πλέον αναλύσει την δομή κάθε κλάσης και τον τρόπο με τον οποίο λειτουργεί και προτού αναλύσουμε τις τεχνικές σχεδιασμού της διεπαφής χρήστη θα συνδυάσουμε όλα τα παραπάνω και θα περιγράψουμε πλέον την συνολική λειτουργία του προγράμματος. Κατά την εκκίνηση του, αρχικοποιούνται οι ρυθμίσεις της σειριακής θύρας, η ανίχνευση σύνδεσης του μικροελεγκτή και η μηχανή γραφικών. Έτσι στην ουσία έχουμε μια μηχανή γραφικών που απεικονίζει στο ρυθμό ανανέωσης της οθόνης με τις αντίστοιχες μηδενικές μετρήσεις επειδή στο Buffer της σειριακής θύρας δεν υπάρχουν δεδομένα ακόμη μιας και ο μικροελεγκτής δεν έχει ξεκινήσει να στέλνει μετρήσεις. Όταν ο χρήστης πυροδοτήσει την έναρξη λήψης του προγράμματος ανοίγει η σειριακή θύρα, στέλνει στον μικροελεγκτή τον χαρακτήρα "s" και εκείνος με τη σειρά του γεμίζει το Buffer της με τις μετρήσεις που προκύπτουν από τους αισθητήρες. Μόλις οι μετρήσεις πιάσουν το κατώφλι των 12 εξάγονται από την κλάση επεξεργασίας μετρήσεων, προσαρμόζονται με ένα φίλτρο μέσης τιμής, και ολοκληρώνονται. Έτσι μέσω της κλάσης διαχείρισης γραφικών καταλήγουν σαν γωνίες περιστροφής στα γραφικά τα οποία απεικονίζονται. Έτσι οι μετρήσεις λαμβάνονται και απεικονίζονται σε πραγματικό χρόνο ή τουλάχιστον τον χρόνο που αντιλαμβάνεται ο άνθρωπος μακροσκοπικά. Έτσι η πορεία εξέλιξης μια φυσικής ποσότητας μέχρι το τελικό στάδιο της απεικόνισης της σε γραφικά Η/Υ φαίνεται στην παρακάτω εικόνα. 68 Σ ε λ ί δ α

76 Πτυχιακή εργασία Εικόνα 45: Πορεία εξέλιξης μετρούμενης φυσικής ποσότητας. Σαν τελευταίο κομμάτι της υλοποίησης αυτής της πτυχιακής εργασίας θα αναλύσουμε την διεπαφή χρήστη. Σχεδιάζοντας ένα τέτοιο πρόγραμμα θα πρέπει να προσφέρουμε στον χρήστη αρκετές επιλογές αλληλεπίδρασης τόσο με το καθαυτό πρόγραμμα άλλα και με τη μηχανή γραφικών. Εικόνα 46: Τελική εικόνα προγράμματος. 69 Σ ε λ ί δ α

77 Υλοποίηση Στην παραπάνω εικόνα φαίνεται η τελική μορφή του προγράμματος. Όπως παρατηρούμε στην εικόνα είναι τονισμένες οι βασικές περιοχές έλεγχου του προγράμματος αλλά και η περιοχή αναπαράστασης γραφικών στον χρήστη. 1. Έλεγχος προγράμματος Σε αυτήν την περιοχή ανήκουν πέντε buttons που προσφέρουν στον χρήστη δυνατότητες χειρισμού της διαδικασίας μέτρησης από τον μικροελεγκτή και γενικότερα του προγράμματος. Start button Το συγκριμένο control σαν λειτουργεία προσφέρει την εκκίνηση της διαδικασίας μετρήσεων από τον μικροελεγκτή. Η ιδιότητα του, enable που δίνει την δυνατότητα στον χρήστη να πατήσει το κουμπί έχει συνδεθεί με ένα Model View Model με την ιδιότητα Connected της κλάσης διαχείρισης σύνδεσης του μικροελεγκτή έτσι όταν ο μικροελεγκτής είναι αποσυνδεδεμένος ο χρήστης δεν μπορεί να πατήσει το κουμπί και έτσι εσφαλμένα να προσπαθήσει να εκκινήσει τη διαδικασία μέτρησης Stop button Όπως υποδεικνύει και η ονομασία του κάνει ακριβώς το αντίθετο από το start button δηλαδή σταματάει τη διαδικασία μέτρησης. Η ιδιότητα του, enable είναι συνδεδεμένη με XAML data binding με την αντίθετη τιμή της ιδιότητας enable του start button. Status TextBlock Πρόκειται καθαρά για ένα απλό κείμενο το οποίο είναι συνδεμένο με MVVM με την ιδιότητα Connected της κλάσης διαχείρισης σύνδεσης του μικροελεγκτή και εμφανίζει το αντίστοιχο μήνυμα αναλόγως με το αν είναι συνδεδεμένος ο μικροελεγκτής ή όχι. Exit Button Τερματίζει τη διαδικασία μέτρησης αν τυχόν είναι ενεργή και κλείνει το πρόγραμμα 2. Έλεγχος μηχανής γραφικών Σε αυτή την περιοχή ανήκουν WPF controls με οποία ο χρήστης είναι σε θέση να ελέγξει και να αλληλεπιδράσει με τις επιμέρους λειτουργίες της μηχανής γραφικών. Mode Button Όταν ο χρήστης πατάει αυτό το κουμπί στην ουσία εναλλάσσει τα γραφικά που απεικονίζονται στην περιοχή απεικόνισης γραφικών. Η εναλλαγή πυροδοτείται από το 70 Σ ε λ ί δ α

78 Πτυχιακή εργασία event Clicked του κουμπιού το οποίο εναλλάσσει την τιμή της μεταβλητής που είναι υπεύθυνη για την επιλογή των γραφικών Reset Button Το συγκεκριμένο κουμπί μηδενίζει την διαδικασία μέτρησης και ο σκοπός ύπαρξης του είναι σε τυχόν μεγάλη απόκλιση των μετρήσεων από την πραγματική κίνηση του αισθητήρα ο χρήστης να είναι σε θέση να ξαναμηδενίσει τις μετρήσεις και κατ επέκταση το μεταδιδόμενο σφάλμα. Η εκμηδένιση των μετρήσεων πυροδοτείται από το event Clicked του κουμπιού το οποίο εναλλάσσει την τιμή των μεταβλητών που είναι αποθηκεμένες οι μετρήσεις. Models Button Με το πάτημα αυτού του κουμπιού ο χρήστης είναι σε θέση να αποκρύψει ή να εμφανίσει τα γραφικά στην περιοχή αναπαράστασης γραφικών. Η ενεργοποίηση/απενεργοποίηση της αναπαράστασης των γραφικών πυροδοτείται από το event Clicked του κουμπιού το οποίο εναλλάσσει την τιμή των μεταβλητών που είναι υπεύθυνη για το αν θα αναπαρασταθούν τα γραφικά. Lights Button Με το πάτημα αυτού του κουμπιού ο χρήστης είναι σε θέση να απενεργοποιήσει τον φωτισμό εξολοκλήρου της μηχανής γραφικών. Η ενεργοποίηση/απενεργοποίηση της του φωτισμού των γραφικών πυροδοτείται από το event Clicked του κουμπιού το οποίο εναλλάσσει την τιμή των μεταβλητών που είναι υπεύθυνη για την κατάσταση του φωτισμού. Timer TextBlock Στο συγκεκριμένο TextBlock αναγράφεται η ώρα που η σειριακή θύρα είναι ανοιχτή και λαμβάνει πληροφορίες στο Buffer της. Η ιδιότητα του Τext είναι συνδεδεμένη με μια μεταβλητή ώρας μέσω ενός value convert και ενός MVVM, η οποία ανανεώνεται κάθε φορά κατά την εκτέλεση της επανασχεδίασης γραφικών από το πρόγραμμα. X-axis, Y-axis, Z-axis TextBlock Πρόκειται για τρία TextBlock τα οποία είναι συνδεδεμένα μέσω MVVM με τις μετρήσεις που καταλήγουν στη μηχανή γραφικών και η ύπαρξη τους είναι για εποπτικούς λόγους από τον χρήστη. 71 Σ ε λ ί δ α

79 Υλοποίηση 3. Αναπαράσταση γραφικών Είναι η περιοχή που τελικώς οι μετρήσεις μας βρίσκουν τελικό στάδιο ύπαρξης ζωής σαν γωνίες περιστροφής των γραφικών που απεικονίζονται ανά άξονα. Αυτή η περιοχή περιλαμβάνει ένα D3DImage στο οποίο έχουν ενσωματωθεί και event που πυροδοτούνται από ποντίκι του Η/Υ έτσι ώστε ο χρήστης να είναι σε θέση με αριστερό κλίκ και σύρσιμο ποντικιού να είναι σε θέση να αλλάξει την θέση της κάμερας από την οποία απεικονίζονται τα γραφικά στον χρήστη. Επίσης ο χρήστης είναι σε θέση με μεσσαίο κλίκ του ποντικού να επαναφέρει την κάμερα στην αρχική της θέση. Προτού ολοκληρώσουμε αυτό το κεφάλαιο θα αναλύσουμε τις δύο βασικές λειτουργίες που προσφέρει το πρόγραμμα και τις χρήσεις ηλεκτρονικών συστημάτων τις οποίες προσπαθεί να αναδείξει. Μια πρώτη λειτουργία είναι η λεγόμενη λειτουργία καθρέπτης στην οποία η μηχανή γραφικών απεικονίζει ένα μοντέλο αισθητήρα κοντινό στην εμφάνιση του πραγματικού και λειτουργεί ακριβώς όπως η ονομασία της προμηνύει δηλαδή σαν καθρέπτης. Η συγκεκριμένη λειτουργία προσφέρει την αίσθηση της ανθρώπινης εποπτείας δηλαδή κουνώντας τον αισθητήρα είμαστε σε θέση να παρατηρήσουμε ταυτοχρόνως την κίνηση του έτσι όπως την αντιλαμβάνονται τα αισθητήρια όργανα και να κρίνουμε εποπτικά αν όντως ταιριάζει με την πραγματική. Σαν μια δεύτερη λειτουργία είναι ένας διαφορετικός τρόπος αλληλεπίδρασης του χρήστη με τον Η/Υ. Σε αυτή τη λειτουργία η κίνηση του αισθητήρα προσομοιώνει μια κίνηση ενός φακού ο οποίος αναλόγως της θέσης του φωτίζει τα γραφικά. Εικόνα 47: Λειτουργία καθρεφτισμού του αισθητήρα. 72 Σ ε λ ί δ α

80 Πτυχιακή εργασία Εικόνα 48: Λειτουργία εναλλακτικής διάδρασης χρήστη με γραφικό περιβάλλον. 73 Σ ε λ ί δ α

WDT και Power Up timer

WDT και Power Up timer Ο ΜΙΚΡΟΕΛΕΓΚΤΗΣ PIC O μικροελεγκτής PIC κατασκευάζεται από την εταιρεία Microchip. Περιλαμβάνει τις τρεις βασικές κατηγορίες ως προς το εύρος του δίαυλου δεδομένων (Data Bus): 8 bit (σειρές PIC10, PIC12,

Διαβάστε περισσότερα

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

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ

Διαβάστε περισσότερα

12. Διακοπές Interrupts (IRQ)

12. Διακοπές Interrupts (IRQ) 2. Διακοπές Interrupts (IRQ) Πίνακας Ι. Χειρισμός διακοπών στον ATmega6. A/A Program address Source Vector Interrupt definition External Pin, Power-on Reset, Brown-outReset, Watchdog Reset, and JTAG AVR

Διαβάστε περισσότερα

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

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοινωνία. Σειριακή Επικοινωνία USB Σύνδεση / Πρωτόκολλο Σκοπός Εντολή επιλογής (if) Εντολή Επανάληψης (while) Πίνακες 1 Μέρος Α : Σκοπός

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ 1.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΝΑΛΟΓΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ 1 1.1.1 Αναλογικά σήματα 1 1.1.2 Οι αντιστάσεις 3 1.1.3 Οι πυκνωτές 7 1.1.4 Τα πηνία 11 1.1.5 Οι δίοδοι 13 1.1.6

Διαβάστε περισσότερα

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Πλατφόρμες ενσωματωμένων συστημάτων Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα - Δίαυλοι επικοινωνίας - Μνήμες -Συσκευές Ι/Ο Timers Counters keyboards Leds 7 segment display

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ (Σ.Τ.ΕΦ.) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ασύγχρονη σειριακή

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2 16. USART Οι AVR διαθέτουν ενσωματωμένη διάταξη για υποστήριξη σειριακής επικοινωνίας USART 1 (Universal Synchronous and Asynchronous serial Receiver and Transmitter). Η ενσωματωμένη διάταξη μας εξυπηρετεί

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u Εφαρμογή 1: Το ρομπότ INTELITEK ER-2u Εργαστήριο Ευφυών Συστημάτων και Ρομποτικής Τμήμα Μηχανικών Παραγωγής και Διοίκησης Πολυτεχνείο Κρήτης www.robolab.tuc.gr, τηλ: 28210 37292 / 37314 e-mail: savas@dpem.tuc.gr,

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

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

Ενότητα 1η. Εισαγωγή στην Πληροφορική Ενότητα 1η Εισαγωγή στην Πληροφορική 1.1 Τι είναι Πληροφορική Ένας σύντομος ορισμός για το τι είναι πληροφορική είναι ο παρακάτω: όλα εκείνα που χρειάζεται κανείς για να παράγει, να οργανώνει και να διαχειρίζεται

Διαβάστε περισσότερα

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

Διαβάστε περισσότερα

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1 ARDUINO ΚΑΙ ΗΧΟΣ ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή, μηχανές παραγωγής ήχου Χρήση του πιεζοηλεκτρικού

Διαβάστε περισσότερα

Μαθαίνοντας το hardware του αναπτυξιακού

Μαθαίνοντας το hardware του αναπτυξιακού 1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ 1 ΕΙΣΑΓΩΓΗ Ο πραγματικός κόσμος είναι ένας αναλογικός κόσμος. Όλα τα μεγέθη παίρνουν τιμές με άπειρη ακρίβεια. Π.χ. το ηλεκτρικό σήμα τάσης όπου κάθε

Διαβάστε περισσότερα

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΑΝΑLOG TO DIGITAL CONVERTER (ADC) ΑΝΑLOG TO DIGITAL CONVERTER (ADC) O ADC αναλαμβάνει να μετατρέψει αναλογικές τάσεις σε ψηφιακές ώστε να είναι διαθέσιμες εσωτερικά στο μικροελεγκτή για επεξεργασία. Η αναλογική τάση που θέλουμε να ψηφιοποιηθεί

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems) Εργαστήριο Αυτομάτου Ελέγχου Ενσωματωμένα συστήματα (Embedded Systems) Ενσωματωμένα συστήματα (Embedded

Διαβάστε περισσότερα

Σύγχρονη και Ασύγχρονη Σειριακή Επικοινωνία

Σύγχρονη και Ασύγχρονη Σειριακή Επικοινωνία Σύγχρονη και Ασύγχρονη Σειριακή Επικοινωνία Δρ. Κλειώ Σγουροπούλου Μετάδοση Δεδομένων Οργάνωση καναλιού μετάδοσης Τρόποι επικοινωνίας Τρόποι μετάδοσης Οργάνωση καναλιού μετάδοσης Τα δεδομένα μπορούν να

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects) ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μικροελεγκτές και Ενσωματωμένα συστήματα Ανάπτυξη και Εφαρμογές Κωδικός Μαθήματος Μ2 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Ενσωµατωµένα Συστήµατα

Ενσωµατωµένα Συστήµατα Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα

Διαβάστε περισσότερα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17 ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ Μνήμες (Memory) - Είναι ημιαγώγιμα κυκλώματα που μπορούν να αποθηκεύσουν ένα σύνολο από δυαδικά ψηφία (bit). - Μια μνήμη αποθηκεύει λέξεις (σειρές από bit). - Σε κάθε

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές Εισαγωγή στο Arduino Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Τι είναι Μικροελεγκτής; Ηλεκτρονική συσκευή που διαχειρίζεται ηλεκτρονικά

Διαβάστε περισσότερα

Κεφάλαιο 4. Διδακτικοί Στόχοι. Για την αναγκαιότητα, τον τρόπο συνεργασίας, τις δυνατότητες και τον τρόπο εγκατάστασης των περιφερειακών συσκευών.

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

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino UNO Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O

Διαβάστε περισσότερα

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή 1.5.1 Ανάλυση των μερών ενός υπολογιστή Μονάδα συστήματος Είναι το κουτί του υπολογιστή το οποίο φαίνεται αρκετά συμπαγές, αλλά στην πραγματικότητα αποτελείται

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) Περιγραφή της Άσκησης Στόχος της άσκησης είναι η δημιουργία ενός συστήματος διαχείρισης φωτισμού. Μία φωτομεταβαλλόμενη αντίσταση (LDR) θα διαπιστώνει την ποσότητα του φωτός

Διαβάστε περισσότερα

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

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΟΙΚΟΝOΜΟΥ ΧΑΡΗΣ (6424) ΦΩΚΟΣ ΝΙΚΟΛΑΟΣ(6592) ΚΑΜΒΥΣΗΣ ΝΙΚΟΛΑΟΣ(7178) 2013-2014 ΠΕΡΙΕΧΟΜΕΝΑ Σκοπός της εργασίας Ανάλυση Arduino Uno Δημιουργία πληροφορίας Αποστολή και

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

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

Διαβάστε περισσότερα

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

Λογικά σύμβολα των CPU, RAM, ROM και I/O module Μικροϋπολογιστές Λογικά σύμβολα των CPU, RAM, ROM και I/O module Data CPU Data Data Address RAM Control Address Control External Data Data Address Control I/O module External Data External Control ROM

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

CTMU. => C = 50pF 10pF = 40 pf. C stray. d (C V ) I= I = C V. C= I t. Ι = dq dt

CTMU. => C = 50pF 10pF = 40 pf. C stray. d (C V ) I= I = C V. C= I t. Ι = dq dt CTMU Με τη μονάδα CTMU (Charge Time Measurement Unit) μπορούμε να μετρήσουμε απόλυτη χωρητικότητα, σχετική μεταβολή χωρητικότητας καθώς επίσης και χρονικό διάστημα ανάμεσα σε δύο παλμούς. Βασίζεται στην

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 Σε αυτή την εργαστηριακή άσκηση θα σχεδιάσετε ένα σύστημα που θα υλοποιεί έναν ενιαίο ασύγχρονο πομποδέκτη UART (Universal Asynchronous Receiver Transmitter). Το UART θα υλοποιηθεί

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΕΙΣΑΓΩΓΗ Θέµατα ❸Συστήµατα Η/Υ (αναφορά) ❸Γλώσσα υπολογιστών ❸Γλώσσες προγραµµατισµού (low-high level) ❸Low level VS high level programming ❸Βασικά µέρη Η/Υ ❸Μικροϋπολογιστές (µc µp) ❸Αρχιτεκτονική µικροελεγκτών

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 Τεχνολογία Ι Θεωρητικής Κατεύθυνσης Τεχνικών Σχολών Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ Οδηγίες Παραμετροποίησης Power Electronics Control Ε.Π.Ε. Τύποι Συσκευών: LFT169 - LFR169 Περιγραφή: Πομπός και Δέκτης Τηλεχειρισμού 169MHz

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

Διαβάστε περισσότερα

Εφαρμογές μικροελεγκτών

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

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016 2017 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ Σκοπός της άσκησης Οι φοιτητές θα εξοικειωθούν με την πλακέτα του μικροελεγκτή και θα αναγνωρίσουν τα βασικά της στοιχεία. Επίσης θα εξοικειωθούν

Διαβάστε περισσότερα

ΦΩΤΕΛΛΗΣ Α.Ε. ΣΥΣΤΗΜΑΤΑ ΑΣΦΑΛΕΙΑΣ

ΦΩΤΕΛΛΗΣ Α.Ε. ΣΥΣΤΗΜΑΤΑ ΑΣΦΑΛΕΙΑΣ Α. ΓΕΝΙΚΑ Η εγκατάσταση ενός ολοκληρωμένου συστήματος συναγερμού αποσκοπεί στην προστασία χώρων όπως οικίες, επιχειρήσεις, βιομηχανίες, στρατιωτικές εγκαταστάσεις κλπ. σε περιπτώσεις: Ανεπιθύμητης εισόδου

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

Σύστημα διασύνδεσης και. διαδικασία εισόδου-εξόδου

Σύστημα διασύνδεσης και. διαδικασία εισόδου-εξόδου ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 6 Σύστημα διασύνδεσης και διαδικασία εισόδου-εξόδου Τι είναι αρτηρία (Bus) ; Ένα σύνολο γραμμών διασύνδεσης Πρωτόκολλο (protocol) Περιγραφή Πρωτοκόλλου χρονικό διάγραμμα

Διαβάστε περισσότερα

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

RobotArmy Περίληψη έργου RobotArmy Περίληψη έργου Στην σημερινή εποχή η ανάγκη για αυτοματοποίηση πολλών διαδικασιών γίνεται όλο και πιο έντονη. Συνέχεια ακούγονται λέξεις όπως : βελτιστοποίηση ποιότητας ζωής, αυτοματοποίηση στον

Διαβάστε περισσότερα

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

Διαβάστε περισσότερα

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) Περιγραφή της Άσκησης Ο σκοπός της πρώτης άσκησης είναι κυρίως η εξοικείωση με το περιβάλλον προγραμματισμού του Arduino, γι αυτό και δεν είναι ιδιαίτερα σύνθετη. Αρχικά, θα

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Μέρος Β - Δίκτυα. Ασκήσεις I. Ποιος ο ρόλος του πομπού και του δέκτη στο μοντέλο επικοινωνίας που α- πεικονίζεται στο σχήμα που ακολουθεί; Μ Δεδομένα

Μέρος Β - Δίκτυα. Ασκήσεις I. Ποιος ο ρόλος του πομπού και του δέκτη στο μοντέλο επικοινωνίας που α- πεικονίζεται στο σχήμα που ακολουθεί; Μ Δεδομένα Μέρος Β - Δίκτυα 1 η Διδακτική Ενότητα Μοντέλο επικοινωνίας δεδομένων - Κώδικες - Σήματα Προβλεπόμενες διδακτικές ώρες: 1 Λέξεις Κλειδιά ASCII BCD Unicode αναλογικό σήμα ΕΛΟΤ-928 επικοινωνία δεδομένων

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους. *Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε ονομάζονται συνολικά υλικό (hardware). * * υπερυπολογιστές

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ ΤΗΛΕΦΩΝΙΑ ΕΙΣΑΓΩΓΗ ΕΝΟΤΗΤΑ 4 4.0 ΤΗΛΕΦΩΝΙΑ ΕΙΣΑΓΩΓΗ Η τηλεφωνία είναι ένα βασικό και πολύ διαδεδομένο ηλεκτρολογικό επικοινωνιακό σύστημα. Η τηλεφωνία είναι από τα παλαιότερα ηλεκτρολογικά επικοινωνιακά συστήματα. Το τηλέφωνο

Διαβάστε περισσότερα

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων Αναλογικές & Ψηφιακές Διατάξεις Τα διάφορα μεγέθη των φυσικών διεργασιών τα μετράμε με αισθητήρες που ουσιαστικά παρέχουν ηλεκτρικά σήματα χαμηλής

Διαβάστε περισσότερα

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Άριστος Πασιάς 1 ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Η ΔΟΜΗ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Άριστος Πασιάς Σεπτέμβριος 2017 2 Στόχοι: Στο τέλος αυτού του μαθήματος ο μαθητή πρέπει: Να μπορεί να αναφέρει τα κύρια χαρακτηριστικά

Διαβάστε περισσότερα

Το εσωτερικό του Υπολογιστή. Χρήστος Ρέτσας 1

Το εσωτερικό του Υπολογιστή. Χρήστος Ρέτσας 1 Το εσωτερικό του Υπολογιστή Χρήστος Ρέτσας 1 Περιφερειακές (εξωτερικές) συσκευές Κεντρική Μονάδα 2 Που είναι ηκεντρική Μονάδα; Φορητός H/Y (laptop, netbook) Χρήστος Ρέτσας 3 Που είναι ηκεντρική Μονάδα;

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 17: Χειρισμός Εισόδου - Εξόδου Συστήματα Εισόδου / Εξόδου: Το Υλικό Ε/Ε Μεγάλη ποικιλία συσκευών Ε/Ε Και μεγαλώνει Συνηθισμένες έννοιες: Πόρτα Δίαυλος Κοινό μέσο πρόσβασης

Διαβάστε περισσότερα

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου ΚΕΦΑΛΑΙΟ 1 Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου Υπολογιστικά συστήματα σχεδιάστηκαν για να καλύψουν συγκεκριμένες ανάγκες σε συγκεκριμένη χρονική στιγμή και βοηθούν στη συνολική πρόοδο της τεχνολογίας Φουκαράκη

Διαβάστε περισσότερα

Τα ηλεκτρονικά σήματα πληροφορίας διακρίνονται ανάλογα με τη μορφή τους σε δύο κατηγορίες : Αναλογικά σήματα Ψηφιακά σήματα

Τα ηλεκτρονικά σήματα πληροφορίας διακρίνονται ανάλογα με τη μορφή τους σε δύο κατηγορίες : Αναλογικά σήματα Ψηφιακά σήματα ΕΝΟΤΗΤΑ 2 2.0 ΗΛΕΚΤΡΙΚΑ ΣΗΜΑΤΑ ΚΑΙ ΑΡΧΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΕΙΣΑΓΩΓΗ Ηλεκτρικό σήμα ονομάζεται η τάση ή το ρεύμα που μεταβάλλεται ως συνάρτηση του χρόνου. Στα ηλεκτρονικά συστήματα επικοινωνίας, οι πληροφορίες

Διαβάστε περισσότερα

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

Μαλούτα Θεανώ Σελίδα 1 ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α' ΛΥΚΕΙΟΥ ΕΝΟΤΗΤΑ 1η ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ 1. Τι ονομάζουμε υλικό και τι λογισμικό ενός υπολογιστικού συστήματος; 2. Τι είναι α) η μητρική πλακέτα ( motherboard), β) η κεντρική μονάδα

Διαβάστε περισσότερα

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

ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΣ ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΣ ΡΟΜΠΟΤΙΚΗ Η Ρομποτική είναι ο κλάδος της επιστήμης που κατασκευάζει και μελετά μηχανές που μπορούν να αντικαταστήσουν τον άνθρωπο στην εκτέλεση μιας εργασίας. Tι είναι το ΡΟΜΠΟΤ

Διαβάστε περισσότερα

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

Διπλωματική Εργασία. Επιβλέπων καθηγητής: Δρ. Μηνάς Δασυγένης. Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών

Διπλωματική Εργασία. Επιβλέπων καθηγητής: Δρ. Μηνάς Δασυγένης. Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διπλωματική Εργασία Επιβλέπων καθηγητής: Δρ. Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

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

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις: Σύστημα μνήμης Ο κύριος σκοπός στο σχεδιασμό ενός συστήματος μνήμης είναι να προσφέρουμε επαρκή χωρητικότητα αποθήκευσης διατηρώντας ένα αποδεκτό επίπεδο μέσης απόδοσης και επίσης χαμηλό μέσο κόστος ανά

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα Σκοπός και περίγραμμα της Ενότητας 5 Σκοπός της παρουσίασης Να δώσουμε τις βασικές ιδέες για τα αναλογικά σήματα και την χρήση διαφορετικών ειδών περιφερειακών Σύνοψη Επεξήγηση

Διαβάστε περισσότερα

Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων

Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/

Διαβάστε περισσότερα

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS ΔΙΑΡΚΕΙΑ: 1 περιόδους 16/11/2011 10:31 (31) καθ. Τεχνολογίας ΚΑΤΗΓΟΡΙΕΣ ΜΕΓΕΘΩΝ ΑΝΑΛΟΓΙΚΟ (ANALOGUE) ΨΗΦΙΑΚΟ (DIGITAL) 16/11/2011 10:38 (38) ΕΙΣΑΓΩΓΗ ΣΤΑ

Διαβάστε περισσότερα

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

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

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

Διαβάστε περισσότερα

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΘΕΜΑ : ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΔΙΑΡΚΕΙΑ:? περίοδος Οι μικροελεγκτές είναι υπολογιστές χωρίς περιφερειακά, σε ολοκληρωμένα κυκλώματα. Μπορούν να συνδυάσουν αρκετές από τις βασικές λειτουργίες άλλων ειδικών

Διαβάστε περισσότερα

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

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

Διαβάστε περισσότερα

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Μονάδες Μνήμης και Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Μονάδες Μνήμης - Προγραμματιζόμενη Λογική Μια μονάδα μνήμης είναι ένα

Διαβάστε περισσότερα