Έλεγχος με μικροϋπολογιστές μυ και Ψηφιακός Έλεγχος Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems hardware) Εργαστήριο Αυτομάτου Ελέγχου
Ενσωματωμένα Συστήματα Embedded Systems
Ενσωματωμένα Συστήματα Embedded Systems Ορισμός Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού. Υλοποίηση Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία: i. Μικροελεγκτές/ Μικροεπεξεργαστές ii. Μνήμη iii. Διεπαφές με το περιβάλλον
Ενσωματωμένα Συστήματα Embedded Systems Ορισμός Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού. Υλοποίηση Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία: i. Μικροελεγκτές/ Μικροεπεξεργαστές ii. Μνήμη iii. Διεπαφές με το περιβάλλον ΠΡΟΣΟΧΗ! Η έννοια «ενσωματωμένο» έχει να κάνει με τις λειτουργίες και όχι με το μέγεθος ή τις δυνατότητες.
Ενσωματωμένα Συστήματα Embedded Systems Η«καρδιά ή το μυαλο» των ενσωματωμένων συστημάτων.
Ενσωματωμένα Συστήματα Embedded Systems
Ενσωματωμένα Συστήματα Embedded Systems Πλατφόρμες και Λογισμικό Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες: Συστήματα με μικροελεγκτές (μc) Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply(architecture-specific) ή ειδικές εκδόσεις της C. Συστήματα με μικροεπεξεργαστές (μp) Οι δυνατότητες τους και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μc. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται υψηλού επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ(multitasking, networking, κ.τ.λ)
Ενσωματωμένα Συστήματα Embedded Systems Πλατφόρμες και Λογισμικό Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες: ΠΡΟΣΟΧΗ! Συστήματα με μικροελεγκτές (μc) Δεν πρέπει να γίνεται σύγχυση των ενσωματωμένων συστημάτων με έναν Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κανονικό υπολογιστή (PC). κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply(architecture-specific) ή ειδικές εκδόσεις της C. Προτερήματα μp Συστήματα Μικρότερο με μικροεπεξεργαστές μέγεθος (μp) Μικρότερη κατανάλωση ενέργειας Οι δυνατότητες Αυξημένη τουςαξιοπιστία και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μc. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται Μειονεκτήματα υψηλούμp επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ(multitasking, Μικρότερες networking, επιδόσεις κ.τ.λ) Λιγότερα περιφερειακά
Η Πλατφόρμα Robostix μc: AVR-ATmega 128 Μνήμες: 128 ΚΒ flash(program memory) 4KΒ SRAM(άμεσα προσπελάσιμη) 4ΚΒ EEPROM(έμμεσα προσπελάσιμη) Ι/Ο διεπαφές 8 channels 10bit ADC(analog to digital converters) 6PWMchannels 2UARTports Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced instruction set computing)
Η Πλατφόρμα Robostix Θύρες Εισόδου-Εξόδου (I/O)
Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.
Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.
Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.
Η Πλατφόρμα Gumstix Verdex XM4 CPU: 400MHz Marvell PXA270(ARM) RAM:64MB Flash Memory: 16MB Λ/Σ: Linux based OpenEmbedded Kernel 2.6.22 Boards: netwifi-microsd : Ethernet 10/100Mbps, Wi-Fi(802.11g), micro-sd card connector Tweener: Σειριακή θύρα RS232 για επικοινωνία με το Gumstix Αρχιτεκτονική: Intel/Marvell XScale(RISC)
Συσκευή Προγραμματισμού Programmer Εξωτερική συσκευή για τη μεταφορά του εκτελέσιμου κώδικα στην ProgramMemoryτου AVR. Υπάρχουν διάφορες συσκευές, συνήθως RS-232 ή USB. Το CSL διαθέτει έναν AVR-ISP Mk II. Εκτός από τον programmerαπαιτείται και ειδικό software, το οποίο πραγματοποιεί τον προγραμματισμό του AVR μαζί με την τροποποίηση ειδικών registers (fuses).
μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 1
Έλεγχος με μικροϋπολογιστές μυ και Ψηφιακός Έλεγχος Παρουσίαση 2: Βασικός Προγραμματισμός AVR (AVR-lib)
Η Πλατφόρμα Robostix μc: AVR-ATmega 128 Μνήμες: 128 ΚΒ flash(program memory) 4KΒ SRAM(άμεσα προσπελάσιμη) 4ΚΒ EEPROM(έμμεσα προσπελάσιμη) Ι/Ο διεπαφές 8 channels 10bit ADC(analog to digital converters) 6PWMchannels 2UARTports Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced instruction set computing)
Συσκευή Προγραμματισμού Programmer Εξωτερική συσκευή για τη μεταφορά του εκτελέσιμου κώδικα στην ProgramMemoryτου AVR. Υπάρχουν διάφορες συσκευές, συνήθως RS-232 ή USB. Το CSL διαθέτει έναν AVR-ISP Mk II. Εκτός από τον programmerαπαιτείται και ειδικό software, το οποίο πραγματοποιεί τον προγραμματισμό του AVR μαζί με την τροποποίηση ειδικών registers (fuses).
Προγραμματισμός Robostix Προγραμματισμός σε C Υπάρχουν εξειδικευμένοι compilers που μπορούν να παράξουν εκτελέσιμο κώδικα για τους μικροελεγκτές της οικογένειας AVR, π.χ. AVR-GCC. Cross-compiling Χρήση compiler σε έναν κοινό υπολογιστή. Ο κώδικας που παράγεται δεν μπορεί να τρέξει στον ίδιο τον Η/Υ απευθείας, λόγω διαφοράς αρχιτεκτονικής. Emulator Εφόσον είναι επιθυμητή, είναι δυνατή η εκτέλεση του κώδικα που παράγει ο compiler σε έναν προσομοιωτή, χρησιμοποιώντας έναν κοινό υπολογιστή. Ο προσομοιωτής δίνει πρόσβαση στην εσωτερική κατάσταση του μικροελεγκτή και μπορεί να χρησιμοποιηθεί για τον έλεγχο της ομαλής λειτουργίας του προγράμματος.
AVR C Ροή Προγράμματος Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. ΕΞΑΙΡΕΣΗ!: ISR(Interrupt Service Routine) Έναρξη προγράμματος Κάθε πρόγραμμα στην AVR C ξεκινάει από την συνάρτηση main() Memory-mapped I/O Οι διάφορες είσοδοι/έξοδοι του μικροελεγκτή εμφανίζονται ως κοινές, σταθερές θέσεις μνήμης μέσα στο χώρο μνήμης του προγράμματος.
AVR C Interrupts Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts Ορισμός Ειδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης(interrupt Handler ή Interrupt Service Routine- ISR). Τύποι Υπάρχουν εξωτερικά και εσωτερικά interrupts: Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του μικροελεγκτή, π.χ.«έγινε υπερχείλιση ενός counter». Εξωτερικά είναι τα interrupts που προκαλούνται από το περιβάλλον, π.χ. «υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts. *Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στην προηγούμενη θέση στο πρόγραμμα.
AVR C Interrupts Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts Ορισμός Ειδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης(interrupt Handler ή Interrupt Service Routine- ISR). Τύποι ΠΡΟΣΟΧΗ! Υπάρχουν εξωτερικά και εσωτερικά interrupts: Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του Τα μικροελεγκτή, interrupts επιτρέπουν π.χ.«έγινε την υπερχείλιση άμεση εξυπηρέτηση ενός counter». έκτακτων αιτημάτων, με αντίτιμο Εξωτερικά τη μη-προβλέψιμη είναι τα interrupts συμπεριφορά που προκαλούνται του κώδικα. από το περιβάλλον, π.χ. (event-based «υπάρχουν vs. διαθέσιμα Poll based) δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts. *Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στην προηγούμενη θέση στο πρόγραμμα.
AVR C Βιβλιοθήκη avr-libc Για τον προγραμματισμό ενός AVR μας παρέχεται μια έτοιμη βιβλιοθήκη. Πρόκειται για μια βιβλιοθήκη C που περιέχει έτοιμες συναρτήσεις και μακροεντολές για την διευκόλυνση του προγραμματισμού των μικροελεγτών. Χαρακτηριστικά Ιδιότητες Γίνεται στατικά link μέσα στο ίδιο το πρόγραμμα Είναι χωρισμένη σε ενότητες(modules), με τη μορφή κανονικών header files Αξιοποιεί τις δυνατότητες του ίδιου του hardware και προσφέρει και εξομοίωση σε επίπεδο λογισμικού για χαρακτηριστικά που δεν υπάρχουν στο ίδιο το hardware.
AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου Ο AVR είναι 8-bitος, επομένως οι θύρες εισόδου/εξόδου έχουν εύρος 8 bit. Οι θύρες ψηφιακής εισόδου/εξόδου αντιστοιχούν σε 8 pins στην πλακέτα για κάθε θύρα. Registers Κάθε θύρα σχετίζεται με 3 θέσεις μνήμης(registers): DDRx - Data Direction Register: Ρυθμίζει ποια pins της θύρας θα είναι είσοδοι και ποια έξοδοι. 0 = είσοδος, 1 = έξοδος. π.χ: DDRA = 0xF0 = 11110000 = «τα 4 πρώτα pins είσοδοι, τα 4 τελευταία έξοδοι» PINx - Port Input Register: Χρησιμοποιείται για την ανάγνωση των τιμών των bits της θύρας. PORTx: Χρησιμοποιείται για τη ρύθμιση των τιμών των bits εξόδου. Επιπρόσθετα, χρησιμοποιείται για την ενεργοποίηση των εσωτερικών αντιστάσεων pull-up για τα pins εισόδου. Στις περισσότερες εφαρμογές συνιστάται η ενεργοποίηση των αντιστάσεων pullup,δηλαδήητιμή 1στις αντίστοιχες θέσεις τουportx.
AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου του Robostix To Robostix διαθέτει διάφορες διεπαφές με το περιβάλλον. Οι κυριότερες είναι οι εξής: GPIO:PortAκαιPortC Την Port C μπορούμε να την χρησιμοποιήσουμε ως ψηφιακή είσοδο/έξοδο (digital I/O) A/D:PortF(8Κανάλια) PWM:PortB(bits 5-7)καιPortE(bits 3-5)(6 κανάλια) Interupts: Port G(bits 0-2) (3 εξωτερικά interupts) LEDs: PortG(bit3) <-Μπλε LED PortG(bit4) <-ΚόκκινοLED PortB(bit4) <-Κίτρινο LED
AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου του Robostix
AVR C Βασικά header files Μετά-module <avr/io.h> To header file <avr/io.h> κάνει include τα κατάλληλα headers που δίνουν την δυνατότητα να χειριστούμε τις εισόδους/εξόδους της οικογένειας μικροελεγκτών AVR που διαλέγουμε. Τύποι ορισμών Σταθερές Συμβολικά ονόματα για τις θύρες εισόδου/εξόδου. (π.χ. PORTA, PORTC, USARTEO, ADCA, κ.τ.λ.) Συμβολικά ονόματα για τα pins των θυρών εισόδου/εξόδου. (π.χ. PORTA1, PORTC8, κ.τ.λ.) Μακροεντολές _BV(bit) : Αντικαθιστάται με το δεκαδικό που προκύπτει από αληθές bit στη θέση bit.π.χ:_bv(4)=(1<<4)=00010000=16 bit_is_clear(reg,bit) και bit_is_set(reg,bit) : ελέγχουν αν το bit στη θέση bit της θύρας I/Oregέχει τιμή 0ή1αντίστοιχα. loop_until_bit_is_clear(reg,bit) και loop_until_bit_is_set(reg,bit) : Σταματούν την εκτέλεση του προγράμματος μέχρι το bit στη θέσηbit της θύρας I/Oreg έχει τιμή 0 ή 1 αντίστοιχα.
AVR C Βασικά header files <avr/io.h>- Παραδείγματα Αλλαγήτουbit7τηςθύρας Bσε 1 PORTB =_BV(PB7); Αλλαγήτουbit4τηςθύρας Aσε 0 PORTA&= ~_BV(PA4); Ενέργεια μεβάσητηντιμή ενός bit if(bit_is_set(pinb, PB1)){ PORTA&=~_BV(PA2); } Αναμονή για μια συνθήκη loop_until_bit_is_clear(pina, PA2); PORTB =_BV(PB2);
AVR C Βασικά header files <avr/interrupt.h> To header file <avr/interrupt.h> περιλαμβάνει ορισμούς για τα ονόματα των interrupts καθώς και μακροεντολές για την ρύθμιση των ISR Τύποι ορισμών Σταθερές Oνόματα interrupts. π.χ. INT1_vect (external IRQ), TIMER0_OVF_vect (timer 0 overflow), ADC_vect(A/D conversion complete) Μακροεντολές ISR(int_name) : Δημιουργεί ένα νέο interrupt service routine για το interrupt με όνομα int_name
AVR C Βασικά header files <avr/math.h> To header file <avr/math.h> περιλαμβάνει μαθηματικούς ορισμούς και συναρτήσεις για τον χειρισμό αριθμητικών δεδομένων Τύποι ορισμών Σταθερές M_PI = π Μ_SQRT2= NAN=NotANumber INFINITY = άπειρο Συναρτήσεις cos(),sin(),tan(),atan(),sqrt(),square(),exp()κ.τ.λ. *Αρκετές από αυτές δεν υποστηρίζονται από το hardware απευθείας και είναι αργές.
AVR C Βασικά header files <util/delay.h> To header file <util/delay.h> περιλαμβάνει συναρτήσεις για την υλοποίηση των χρονοκαθυστερήσεων. Οι χρονοκαθυστερήσεις γίνονται με busy-wait: ο μικροελεγkτής καταναλώνει κύκλους ρολογιού χωρίς να προβαίνει σε καμία ενέργεια (no-op). Η διάρκεια του κύκλου ρολογιού εξαρτάται απο τη συχνότητα του επεξεργαστή Τύποι ορισμών Συναρτήσεις _delay_ms(amount) : Καθυστέρηση amount ms _delay_us(amount) : Καθυστέρηση amount μs
AVR C Βασικά header files <util/delay.h> To header file <util/delay.h> περιλαμβάνει συναρτήσεις για την υλοποίηση των χρονοκαθυστερήσεων. Οι χρονοκαθυστερήσεις γίνονται με busy-wait: ο μικροελεγkτής καταναλώνει κύκλους ρολογιού ΠΡΟΣΟΧΗ! χωρίς να προβαίνει σε καμία ενέργεια (no-op). Η διάρκεια του κύκλου ρολογιού εξαρτάται απο τη συχνότητα του επεξεργαστή Τύποι Οιορισμών συναρτήσεις αυτές απαιτούν τον ορισμό της σταθεράς F_CPU η οποία πρέπει να έχει τιμή ίση με τη συχνότητα λειτουργίας του μικροελεγκτή σε Hz. Συναρτήσεις H μέγιστη χρονοκαθυστέρηση που μπορεί να δώσει η delay_ms είναι: _delay_ms(amount) : Καθυστέρηση amount ms _delay_us(amount) : Καθυστέρηση amount μs
AVR C Ολοκληρωμένο Παράδειγμα /* Define CPU Clock speed, needed by _delay_ms */ #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> void main() { /* Initialize port C as output and zero all bits */ DDRC = 0xFF; PORTC= 0x00; } while(1) { } /* Turn the LED off */ PORTC &= ~_BV(PC0); /* Wait for half a second */ _delay_ms(500); /* Turn the LED on */ PORTC = _BV(PC0); /* Wait for half a second */ _delay_ms(500);
μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 2
Έλεγχος με μικροϋπολογιστές μυ και Ψηφιακός Έλεγχος Παρουσίαση 3: Παρουσίαση Ασκήσεων Εργαστήριο Αυτομάτου Ελέγχου
Σκοπός εργαστηριακών ασκήσεων Έλεγχος απλών ηλεκτρικών κυκλωμάτων μέσω της πλατφόρμας Robostix. Χρήση μόνο D/IO Interfaces Προγραμματισμός μυ με χρήση avr-libc σε γλώσσα C
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED o Στα pins του μ-υ υπάρχουν διαθέσιμες τάσεις 5V. o Υπάρχουν διαθέσιμα pins γείωσης (GND) o Το λογικό 1 σε ένα pinαντιστοιχεί σε τάση5v. o Το λογικό 0 σε ένα pinαντιστοιχεί σε τάση 0V. o Για να μειώσουμε το ρεύμα τροφοδοσίας ενός LED συνδέουμε σε σειρά μια αντίσταση (5-10KΩ). ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ & ΡΥΘΜΙΣΕΩΣ ΜΗΧΑΝΩΝ & ΕΓΚΑΤΑΣΤΑΣΕΩΝ Ε.Μ.Π
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED o Γίνεται ρύθµιση ενός bit µιας θύρας σαν έξοδο, και στέλνεται σε αυτό το λογικό 1 (5V)
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να ανιχνεύσετε το πάτημα ενός διακόπτη o Γίνεται ρύθμιση ενός bit μιας θύρας σαν είσοδος, και στέλνεται το σήμα εξόδου μετά τον διακόπτη
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να ανιχνεύσετε το πάτημα ενός διακόπτη ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ & ΡΥΘΜΙΣΕΩΣ ΜΗΧΑΝΩΝ & ΕΓΚΑΤΑΣΤΑΣΕΩΝ Ε.Μ.Π
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα
Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα
ΑΣΚΗΣΕΙΣ
ΑΣΚΗΣΗ 1 Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης
ΑΣΚΗΣΗ 1 Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού Περαιτέρω επισημάνσεις Ο κωδικός αριθμός θα ορίζεται εσωτερικά στον κώδικα και θα μπορεί να πάρει οποιαδήποτε ακέραια τιμή μεταξύ [000,999] Ο έλεγχος μπορεί να γίνεται και μετά την εισαγωγή του κάθε ψηφίου, αλλά θα τερματίζεται στην περίπτωση λανθασμένου αριθμού Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec)
ΑΣΚΗΣΗ 2 Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400 Απαραίτητες γνώσεις Άναμμα LED Ρουτίνες χρονικής καθυστέρησης
ΑΣΚΗΣΗ 2 Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400 Περαιτέρω επισημάνσεις Το πρόγραμμα θα εκτελεί και θα ελέγχει όλους τους πιθανούς συνδυασμούς και θα τερματίζεται στην περίπτωση που έστω ένας από αυτούς δεν ικανοποιείται Το κύκλωμα θα ελεγχθεί για την ορθότητά του με εισαγωγή ψευδών αποτελεσμάτων
ΑΣΚΗΣΗ 3 Υλοποίηση Συστήματος Μετρητή Αντικειμένων με υνατότητα Ελέγχου του Αποτελέσματος Απαραίτητες γνώσεις Σύστημα διακοπτών Ρουτίνες χρονικής καθυστέρησης Άναμμα LED
ΑΣΚΗΣΗ 3 Υλοποίηση Συστήματος Μετρητή Αντικειμένων με υνατότητα Ελέγχου του Αποτελέσματος Περαιτέρω επισημάνσεις Το αποτέλεσμα της μέτρησης απλά θα μεταφέρεται ως αριθμός σε δυαδική μορφή στη θύρα Α Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec) για διευκόλυνση του χρήστη
ΑΣΚΗΣΗ 4 Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης
ΑΣΚΗΣΗ 4 Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια
ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα ιώροφης Οικοδομής Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης
ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα ιώροφης Οικοδομής Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια
ΑΣΚΗΣΗ 6 Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης
ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Θα υπάρχουν οι αναγκαίες χρονικές καθυστερήσεις μεταξύ της εναλλαγής σε πράσινο και κόκκινο σήμα
Βήματα για καλύτερο προγραμματισμό Κατανόηση του προβλήματος Σχεδίαση γενικής μεθοδολογίας Υλοποίηση και εκτέλεση αλγορίθμου βήμα-βήμα χωρίς να γράφουμε όλο τον κώδικα από την αρχή
ΓΕΝΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ Ένα κακοφτιαγμένο και μη δομημένο κύκλωμα έχει ελάχιστες πιθανότητες να λειτουργήσει σωστά, ακόμα και αν ο προγραμματισμός είναι ορθός. Χρησιμοποιούμε πολύμετρο για να ελέγξουμε τις συνδέσεις του κυκλώματος, πριν να εφαρμόσουμε τάσεις σε αυτό. Για γείωση, χρησιμοποιούμε πάντα αυτή του μ/ε. (GND)
μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 3