ΧΡΗΣΗ ΤΟΥ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΣΤΟ MATLAB(GUI) – ΑΝΑΠΤΥΞΗ ΑΠΛΗΣ ΕΦΑΡΜΟΓΗΣ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΨΗΦΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ΦΟΙΤΗΤΕΣ: ΣΚΡΙΜΠΑΣ ΜΙΧΑΗΛ–ΑΕΜ:3135 ΤΑΚΟΣ ΔΗΜΗΤΡΙΟΣ–AEM:1715 Επιβλέπων Καθηγητής: Δρ. Αναστάσιος Μπαλουκτσής
Περίληψη Παρουσίασης Επίλογος Εισαγωγή στο λογισμικό Matlab και περιληπτική περιγραφή του περιβάλλον ανάπτυξης του. Διαφορές αναλογικών και ψηφιακών σημάτων. Σύντομη αναφορά το τι είναι γραφικό περιβάλλον χρήστη,πώς λειτουργεί στο λογισμικό Matlab και με ποιές εντολές μπορούμε να εισέλθουμε σε αυτό. Πρότυπα GUI – Αποθήκευση αρχείου. Ιδιότητες του μενού του GUI – Ιδιότητες του Property Inspector όταν στο figure δεν υπάρχει UIControl. – Χρήση βασικών ιδιοτήτων στα προγραμμάτα μας για τα UIControlPushButtons UIControlRadioButtons και UIControlAxes. Περιγράφη εργαλείων σχεδίασης που χρησιμοποιήσαμε στα προγράμματα μας. Οι συναρτήσεις get(), set(). Προγραμματισμός ενός απλού προγράμματος στο GUI. Προγραμματισμός των λογικών πυλών με Ledaki στο GUI. Προγραμματισμός κώδικας GRAY Προγραμματισμός πίνακα Karnaugh Επίλογος
Γενικά για το λογισμικό Matlab Γίνεται ολοένα και πιο δημοφιλές. Παρέχει ένα δυναμικό, εύχρηστο και ανοιχτό υπολογιστικό περιβάλλον για υλοποίηση επιστημονικών εφαρμογών. Υποστηρίζει μια ευέλικτη, απλή και δομημένη γλώσσα προγραμματισμού. Υποστηρίζει ταυτόχρονα γλώσσα χαμηλού επιπέδου αλλά και γλώσσα υψηλού επιπέδου. Εκτελεί απλές μαθηματικές πράξεις αλλά και πιο σύνθετες όπως υπολογισμός μιγαδικών αριθμών,δυνάμεων,διανύσματα και πολυώνυμα.
Το περιβάλλον ανάπτυξης Επιφάνεια Εργασίας (Desktop). Παράθυρο Εντολών (Command Window). Ιστορικό Εντολών(Command History). Χώρος Εργασίας(Workspace).
Αναλογικά σήματα και Ψηφιακά σήματα Τα αναλογικά σήματα μπορούν να πάρουν οποιαδήποτε τιμή. Στα αναλογικά σήματα χρησιμοποιείται οποιοδήποτε σύστημα αριθμών. Τα ψηφιακά σήματα είναι αριθμητικά κωδικοποιημένα ώστε να παίρνουν μόνο δυό τιμές. Στα ψηφιακά σήματα χρησιμοποιείται πολύ το δυαδικό σύστημα αριθμών.
Πηγαινούμε στη μενού Home New Graphical User Interface 2ος Τρόπος: Τι είναι το Γραφικό Περιβάλλον Χρήστη – Πώς λειτουργεί – Πώς εισερχόμαστε σε αυτό Για να μπούμε στο GUI: 1ος Τρόπος: Πηγαινούμε στη μενού Home New Graphical User Interface 2ος Τρόπος: Στο παράθυρο εντολών(Command Window) γράφουμε την λέξη guide Όχι κεφαλαία Προέρχεται από τις λέξεις Graphical User Interface. Χρησιμοποιείται σε πολλές εφαρμογές: Λειτουργικό σύστημα Windows(MS OFFICE). Σχεδιαστικό Πρόγραμμα (CAD). Λογισμικό Matlab(GUI). Αποτελείται από Controls όπως pushbuttons,radiobuttons κ.α. Σε κάθε Control υπάρχει ένα callback το οποίο προγραμματίζεται ώστε να κάνει μια ενέργεια(Συμβάν). Χρησιμοποιεί τον οδηγούμενο απο συμβάντα προγραμματισμό.
Πρότυπα GUI Black GUI(Default) GUI with Uicontrols GUI with Axes and Menu Modal Question Dialog
Save new figure as – Αποθήκευση αρχείου Αφού αποθηκευτεί το αρχείο: <name>.fig <name>.m Το πρώτο περιέχει το σχεδιαστικό πλαίσιο του προγράμματος. Το δεύτερο περιέχει τον κώδικα του προγράμματος.
Περιγραφή των πιο σημαντικών ιδιοτήτων του Μενού του GUI Μενού File Μενού Edit New Ανοίγει ένα καινούργιο GUI της επιλογής μας. Open Ανοίγει ένα αποθηκευμένο αρχείο GUI με επεκτάσεις .m και .fig. Save as Αποθηκεύει το τρέχων GUI με όνομα της επιλογής μας ή default. Undo Move Επαναφορά προηγούμενης ενέργεια πάνω σε ένα control από τα εργαλεία για σχεδίαση. Cut Αποκοπή επιλεγμένου control. Copy Αντιγραφή επιλεγμένου control. Duplicate Αντιγραφή όλων των επιλεγμένων controls και ταυτόχρονα επικόλληση.
Περιγραφή των πιο σημαντικών ιδιοτήτων του Μενού του GUI – Συνέχεια Μενού View Μενού Tools Show Toolbar Εμφανίζει την μπάρα εργαλείων. Show Status Bar Εμφανίζει την μπάρα συντεταγμένων σημείων. Property Inspector Εμφανίζει τον επιθεωρητή ιδιοκτησίας για κάθε Control. Run Εκτέλεση προγράμματος. Align Objects Εμφανίζει το παράθυρο της ευθυγράμμισης των αντικειμένων.
Property Inspector –Base Properties BeingDeleted BusyAction(queue/cancel) ButtonDownFcn Clipping(on/off) CreateFcn DeleteFcn HandleVisibility(on/callback/off) HitTest(on/off) Interruptible(on/off) SelectionHighlight(on/off) UIContextMenu UserData Visible(on/off)
Property Inspector - Control CloseRequestFcn CurrentCharacter CurrentPoint IntegerHandle(on/off) KeyPressFcn KeyReleaseFcn NextPlot(new/add/replace/repla cechildren) Resize(on/off) ResizeFcn SelectionType(normal/open/alt/ extend WindowButtonDownFcn WindowButtonMotionFcn WndowButtonUpFcn WindowKeyPressFcn WindowKeyReleaseFcn WindowScrollWheelFcn
Property Inspector – Data - Printing FileName Name NumberTitle(on/off) Units(inches/centimeters/points /normalized/pixels/characters ------------------------------- InvertHardcopy(on/off) PaperOrientation(portrait/landscape) PaperPosition PaperPositionMode(Manual/Auto) PaperSize PaperType(A4/A3/…..) PaperUnits(inches/centimeters/ normalized/points
Property Inspector – Style/Appearance Color DockControls(on/off) MenuBar(none/figure) Pointer(crosshair/fullcrosshair/arr ow/ibeam/watch/topl/topr/botl/bo tr/left/top/right/bottom/cross/fleu r/custom/hand) PointerShapeCData PointerShapeHotSpot Position Renderer(painters/zbugger/OpenGL /None RendererMode(auto/manual) ToolBar(none/auto/figure) WindowStyle(normal/modal/docked)
UIControlPushButtons - UIControlRadioButtons UIControlPushButtons - UIControlRadioButtons – UIControlAxes Χρήση βασικών ιδιοτήτων στα προγράμματα μας. UIControlPushButtons - UIControlRadioButtons Tag Callback String Position X(width) Y(bottom) Width Height BackgroundColor FontSize UIControlAxes Box Xtick Ytick Ztick Tag
Περιγραφή εργαλείων σχεδίασης που χρησιμοποιήσαμε στα προγράμματα μας Εργαλείο επιλογής και μετακίνησης αντικειμένων. Τα Push Buttons είναι κουμπιά τα οποία οταν τα πατήσουμε εκτελούν μια ενέργεια. Τα Radio Buttons όταν τα πατήσουμε κάθε φορά μόνο ένα εκτελεί μια συγκεκριμένη ενέργεια ενώ τα υπολοιπα παραμένουν ανενεργά μέχρι να πατήσουμε ξανά κάποιο συγκεκριμένο. Τα Panels είναι κουτιά τα οποία εσωκλείουν περιοχές ενός figure και χρησιμοποιούνται για την ομαδοποίηση UIControls. Τα Button Groups είναι κουτιά τα χρησιμοποιούνται για την ομαδοποίηση και την διαχείρηση Toggle Buttons και Radio Buttons. Τα Axes χρησιμοποιούνται για την απεικόνιση κυρίως εικόνων και γραφικών παραστάσεων. Τα Edit Texts χρησιμοποιούνται όταν θέλουμε να δώσουμε πληροφορία μέσα σε αυτά όπως πχ ένα κείμενο. Τα Static Texts είναι λέξεις ή φράσεις που αναγράφονται για την περιγραφή ή την λειτουργία ενός UIControl.
Οι συναρτήσεις get(),set() Η get() χρησιμοποιείται για να διαβαστεί η πληροφορία(‘Value’ ΄ή ‘String’) κάποιου control. Πχ inputstring=get(handles.edit1,’String’); set() Η set() χρησιμοποιείται για να τροποποιηθεί η πληροφορία κάποιου control. Πχ set(handles.radiobutton1,’value’,0);
Προγραμματισμός ενός απλού προγράμματος στο GUI Κώδικας υλοποίησης ενός απλού αθροιστή δυό τιμών Κώδικας υλοποίησης ενός απλού αθροιστή δυό τιμών Υλοποίηση πρώτης εντολής Υλοποίηση δεύτερης εντολής Υλοποίηση τρίτης εντολής Υλοποίηση τέταρτης εντολής Τελικό αποτέλεσμα σχεδίασης
Προγραμματισμός της πύλης AND με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης 3ος κώδικας υλοποίησης της πύλης
Προγραμματισμός της πύλης AND με Ledaki στο GUI συνέχεια
Προγραμματισμός της πύλης OR με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός της πύλης ΝΟΤ με Ledaki στο GUI Σύμβολο πύλης ΝΟΤ Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός της πύλης XOR με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός της πύλης NAND με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός της πύλης NOR με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός της πύλης XNOR με Ledaki στο GUI Πίνακας αληθείας 1ος κώδικας υλοποίησης της πύλης 2ος κώδικας υλοποίησης της πύλης Εκτέλεση figure για την εμφάνιση της πύλης
Προγραμματισμός Κώδικα GRAY Προγραμματισμός Edit Text1 και Edit Text6 Προγραμματισμός Edit Text2 Προγραμματισμός Keypress του Εdit Text2 Προγραμματισμός του Push Βutton Code Gray
Προγραμματισμός πίνακα Karnaugh M-file mybin2dec M-file mybin2gray M-file mygray2bin M-file mygray2dec
Προγραμματισμός πίνακα Karnaugh συνέχεια Προγραμματισμός πίνακα Karnaugh 2x4 συνάρτησης result = solveKmap(Kmap) Προγραμματισμός πίνακα Karnaugh 4x2 συνάρτησης result = solveKmap(Kmap)
Επίλογος Ενδιαφέρουσα πτυχιάκη αλλά δύσκολη λόγω των λιγοστών πηγών. Ενδιαφέρουσα πτυχιάκη αλλά δύσκολη λόγω των λιγοστών πηγών. Προσκομίσαμε γνώσεις αλλά όχι σε έμπειρο επίπεδο πάνω στο πρόγραμμα GUI. Μας έδωσε βάσεις στο να προσκομίσουμε γνώσεις πάνω στην γλώσσα του Matlab που μοιάζει σε γενικές γραμμές με την C και C++ που διδαχθήκαμε σε παλιότερα εξάμηνα. Μας έδωσε το έναυσμα για μελλοντική της χρήση. Δυνατότητα εξέλιξης πάνω στην διδασκαλία των προηγμένων ψηφιακών κυκλωμάτων
ΕΥΧΑΡΙΣΤΟΥΜΕ ΓΙΑ ΤΗΝ ΠΡΟΣΟΧΗ ΣΑΣ