340 likes | 525 Views
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΔΙΑΧΩΡΙΣΜΟΥ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΒΑΣΗ ΤΟ ΧΡΩΜΑ. Φοιτήτρια: Χατζοπούλου Ειρήνη ( A . E . M . 1962) Επιβλέπουσα Καθηγήτρια: Δρ. Καρακώτσου Χριστίνα. Πρόλογος ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ Αρχιτεκτονική μικροελεκτή PIC 18 F 8520 Περιβάλλον προγραμματισμού
E N D
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΔΙΑΧΩΡΙΣΜΟΥ ΑΝΤΙΚΕΙΜΕΝΩΝΜΕ ΒΑΣΗ ΤΟ ΧΡΩΜΑ Φοιτήτρια: Χατζοπούλου Ειρήνη (A.E.M. 1962) Επιβλέπουσα Καθηγήτρια: Δρ. Καρακώτσου Χριστίνα
Πρόλογος ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ Αρχιτεκτονική μικροελεκτή PIC18F8520 Περιβάλλον προγραμματισμού ΠΕΙΡΑΜΑΤΙΚΟ ΜΕΡΟΣ Περιγραφή κατασκευής Προγραμματισμός μικροελεκτή PIC18F8520 Συμπεράσματα περιεχΟμενα
Πρόλογος • Μικρό ρομποτικό σύστημαπου στηρίζεται σε • πλατφόρμα μικροελεγκτή PIC (Vex Robotics) • Mικροελεγκτής PIC18F8520 • Διαχωριστής αντικειμένων με βάση το χρώμα
Αρχιτεκτονική μικροελεγκτή PIC • Ολοκληρωμένα κυκλώματα της Microchip • Technology Inc • Πλήρης ψηφιακό προγραμματιζόμενο σύστημα • Κεντρική μονάδα επεξεργασίας & μνήμη • Χαμηλό κόστος • Απόδοση • Αξιοπιστία
Χαρακτηριστικά PIC18F8520 (1) • Μέγιστη ταχύτητα χρονισμού 40MHz • Τεχνολογίας CMOS (Complementary Metal Oxide • Semiconductor) • Μνήμη προγράμματος (EEPROM 32K, Program Memory) • Mνήμη δεδομένων ή καταχωρητών (RAM 2K, File • Registers) • Τύπου RISC (Reduced Instruction Set Computer)– • σετ 56 εντολών
Χαρακτηριστικά PIC18F8520 (2) • Διάδρομος εντολών εύρους 16bits • Διάδρομος δεδομένων εύρους 8bits • Τάση τροφοδοσίας 2V έως 5.5V • Συνολικά 80 ακροδέκτες • Αρχιτεκτονική τύπου Harvard
Δομή μικροελεγκτή PIC18F8520 (1) • Πυρήνας (core): • (CPU, EEPROM, RAM) • Περιφερειακές συσκευές (peripheralunits): • (Θύρες Εισόδων/Εξόδων , Μετρητές χρόνου, Παράλληλες & • σειριακές θύρες, Συγκριτές, Μετατροπείς A/D κτλ)
Μνήμη EEPROM • Electrically Erasable Programmable ROM • Μη πτητική μνήμη (non-volatile) • Ηλεκτρικά διαγραφόμενη και προγραμματιζόμενη - Flash • EEPROM • Μέγεθος μνήμης 32Κb Μνήμη RAM • Προσωρινής αποθήκευσης για δεδομένα (μεταβλητές κλπ.) • Πτητική μνήμη (volatile) • Μέγεθος μνήμης 2Κb • Δεσμεύει μνήμη για SFR • Δεσμεύει μνήμη για GPR
Εσωτερική Αρχιτεκτονική Οικογένειας PIC18F8x20
1 σειριακή θύρα (serial port) 6 θύρες διακοπών (interrupts) 16 θύρες Αναλογικών/Ψηφιακών σημάτων 8 θύρες για σύνδεση κινητήρων Λογική Μονάδα PIC18F8520
Περιβάλλον Προγραμματισμού • Γλώσσα Easy C For V2 της Vex Robotics • Διασύνδεση με PC μέσω σειριακής θύρας • Αναπτυξιακό περιβάλλον διεπαφών (drag & drop) • Χρήση Editor
Γραμμή μενού Γραμμή εργαλείων Παράθυρο απεικόνισης κώδικα σε γλώσσα C Παράθυρο Block συναρτήσεων Παράθυρο προγραμματισμού Παράθυρο σφαλμάτων
Για παράδειγμα υπάρχουν πολλές προτυποποιημένες εντολές όπως για τον έλεγχο των κινητήρων(SetMotor, SetServo), την εισαγωγή τιμών τους από τααισθητήρια (GetAnalogInput(port), GetDigitalInput(port)) κ. λ. π Όλες οι εντολές συντάσσονται με γραφικό τρόπο. Για παράδειγμα η εντολή του for loopόπως φαίνεται στην εικόνα υλοποιείται με γραφικό τρόπο και ο προγραμματιστής καθορίζει την αρχική τιμή, την τελική τιμή, το βήμα.
ΠΕΙΡΑΜΑΤΙΚΟμεροσ Περιγραφή Κατασκευής
ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΜΙΚΡΟΕΛΕΓΚΤΗΣ PIC18F8520 ΠΙΣΩ SERVOMOTOR ΚΙΝΗΣΗ ΙΜΑΝΤΑ ΚΥΚΛΩΜΑ ΑΠΑΡΙΘΜΗΤΗ ΜΠΑΤΑΡΙΑ 7.2V NiCd ΔΙΑΚΟΠΤΗΣ BUMPER SWITCH ΑΙΣΘΗΤΗΡΕΣ ΥΠΕΡΥΘΡΟΥ ΕΜΠΡΟΣ SERVOMOTOR ΚΙΝΗΣΗ ΠΛΑΤΦΟΡΜΑΣ
ΠΙΣΩ SERVO MOTOR ΘΥΡΑ Ι/Ο 1 ΑΙΣΘΗΤΗΡΙΑ ΥΠΕΡΥΘΡΩΝ ΘΥΡΕΣ Ι/Ο 1,2 (ANALOG) ΜΙΚΡΟΕΛΕΓΚΤΗΣ PIC18F8520 ΑΙΣΘΗΤΗΡΙΟ BUMPER SWITCH ΘΥΡA Ι/Ο 11 (DIGITAL) ΘΥΡΑ Ι/Ο 5 ΘΥΡΑ 6 & 8 ΚΥΚΛΩΜΑ ΑΠΑΡΙΘΜΗΣΗΣ ΕΜΠΡΟΣ SERVO MOTOR Σχηματικό Διάγραμμα
Αισθητήρια Υπερύθρου • Αναλογικά αισθητήρια της εταιρίας VEX Robotics, με • εύροςανάδρασης 0 - 1024 • Διαθέτουν πομπό LEDIR και δέκτη phototransistor IR
Αισθητήρες Διακόπτες • Ψηφιακά αισθητήρια της εταιρίας VEX Robotics, • πάτημα = ενεργοποίηση • Πατημένο bumper=0, όχι πατημένο bumper=1
Σερβοκινητήρες • Συνεχούς κίνησης (κίνηση ιμάντα) • Μη συνεχούς κίνησης (κίνηση μεταλλικής • πλάκας από 0ο έως 180ο )
Κύκλωμα Απαριθμητή • Δυο συμμετρικά κυκλώματα απαριθμητών, • Απαριθμητή 74LS293 • Αποκωδικοποιητή BCD (74LS47) • LED DISPLAY • Καταμέτρηση 0 έως 10 αντικείμενα
Κύκλωμα Απαριθμητή 2 port 6, 8
Διάγραμμα Ροής Προγράμματος
ΑΡΧΗ ΑΡΧΙΚΟΠΟΙΗΣΗ ΜΕΤΑΒΛΗΤΩΝ ΑΚΙΝΗΤΟΣ ΙΜΑΝΤΑΣ ΟΧΙ ΠΑΤΗΘΗΚΕ Ο ΔΙΑΚΟΠΤΗΣ LOOP ΝΑΙ ΚΙΝΗΣΗ ΙΜΑΝΤΑ ΝΑΙ ΕΤΡΕΞΕ ΤΟ ΠΡΟΓΡΑΜΜΑ Ν ΦΟΡΕΣ ΟΧΙ ΟΧΙ ΝΑΙ ΜΕΤΡΗΘΗΚΑΝ 10 ΑΣΠΡΑ Η 10 ΜΑΥΡΑ ΠΟΥΛΙΑ ;;; ΑΚΙΝΗΤΟΣ ΙΜΑΝΤΑΣ ΚΙΝΗΣΗ ΙΜΑΝΤΑ ΟΧΙ ΠΑΤΗΘΗΚΕ Ο ΔΙΑΚΟΠΤΗΣ ΟΙ ΜΕΤΡΗΤΕΣ ΤΩΝ ΑΣΠΡΩΝ & ΜΑΥΡΩΝ ΔΙΑΤΗΡΟΥΝ ΤΙΣ ΠΑΛΙΕΣ ΤΙΜΕΣ ΝΑΙ ΚΙΝΗΣΗ ΙΜΑΝΤΑ ΟΙ ΜΕΤΡΗΤΕΣ ΤΩΝ ΑΣΠΡΩΝ & ΜΑΥΡΩΝ ΠΑΙΡΝΟΥΝ ΝΕΕΣ ΤΙΜΕΣ. Ο ΜΕΤΡΗΣΤΗΣ ΠΟΥ ΜΕΤΡΗΣΕ 10 ΑΝΤΙΚΕΙΜΕΝΑ ΜΗΔΕΝΙΖΕΤΑΙ ΚΑΙ Ο ΑΛΛΟΣ ΚΡΑΤΑ ΤΗΝ ΠΑΛΙΑ ΤΙΜΗ
ΟΧΙ ΔΙΕΛΕΥΣΗ ΑΝΤΙΚΕΙΜΕΝΟΥ ΑΠΟ ΤΑ ΑΙΣΘΗΤΗΡΙΑ ΝΑΙ ΣΥΝΕΧΕΙΣ ΜΕΤΡΗΣΕΙΣ ΤΩΝ ΑΙΣΘΗΤΗΡΙΩΝ ΟΣΟ ΔΙΕΡΧΕΤΑΙ ΑΝΤΙΚΕΙΜΕΝΟ. ΕΞΑΓΩΓΗ Μ.Ο ΤΙΜΗΣ ΓΙΑ ΚΑΘΟΡΙΣΜΟ ΤΟΥ ΧΡΩΜΑΤΟΣ ΤΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ΑΣΠΡΟ ΜΑΥΡΟ ΧΡΩΜΑ ΑΝΤΙΚΕΙΜΕΝΟΥ ΑΠΟΣΤΟΛΗ ΠΑΛΜΟΥ ΣΤΟΝ ΑΠΑΡΙΘΜΗΤΗ ΑΣΠΡΩΝ ΑΠΟΣΤΟΛΗ ΠΑΛΜΟΥ ΣΤΟΝ ΑΠΑΡΙΘΜΗΤΗ ΜΑΥΡΩΝ ΣΤΡΟΦΗ ΤΟΥ ΣΕΡΒΟΚΙΝΗΤΗΡΑ 90Ο ΔΕΞΙΑ ΓΙΑ ΤΗΝ ΣΥΛΛΟΓΗ ΣΕ ΚΟΥΤΙ ΤΟΥ ΑΣΠΡΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ΣΤΡΟΦΗ ΤΟΥ ΣΕΡΒΟΚΙΝΗΤΗΡΑ 90Ο ΑΡΙΣΤΕΡΑ ΓΙΑ ΤΗΝ ΣΥΛΛΟΓΗ ΣΕ ΚΟΥΤΙ ΤΟΥ ΜΑΥΡΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ Ο ΜΕΤΡΗΤΗΣΑΣΠΡΟΥ ΑΥΞΑΝΕΤΑΙ Ο ΜΕΤΡΗΤΗΣ ΜΑΥΡΟΥ ΑΥΞΑΝΕΤΑΙ Ο ΜΕΤΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΑΥΑΞΑΝΕΤΑΙ ΤΕΛΟΣ
Επεξήγηση κώδικα Εάν lightf >= 700 && lightf <= 930, το χρώμα είναι “ΜΑΥΡΟ”.Τότε ο σερβοκινητήρας κινείται αριστερά, ( SetServo(5, 200)), οπότε το αντικείμενο οδηγείται στο κουτί συλλογής των μαύρων. Μετά από κατάλληλη χρονική καθυστέρηση, ο σερβοκινητήρας στρέφει την πλατφόρμα πίσω στην οριζόντια θέση. Ο ακροδέκτης 8 του μικροελεγκτή έχει οριστεί ως έξοδος. Μέσω αυτού στέλνεται αρνητικός παλμός στον απαριθμητή για την καταμέτρηση των μαύρων αντικειμένων. Για το λόγο αυτό καλείται η συνάρτηση pulse (port1) η οποία δημιουργεί αρνητικό παλμό στον ακροδέκτη που αντιστοιχεί η μεταβλητή port1. Η μεταβλητή port1 επομένως παίρνει την τιμή 8. Ο απαριθμητής που δέχεται τον αρνητικό παλμό, αυξάνει την τιμή του κατά 1 και την εμφανίζει σε ένα LED. Ταυτόχρονα ο μετρητής met2 αυξάνει την τιμή του κατά 1.
Επεξήγηση συνάρτησης pulse • Γεννήτρια αρνητικού παλμού • SetDigitalOutput ( port1 , 1 ), στέλνει στην port1 την τιμή 1 • SetDigitalOutput ( port1 , 0 ), στέλνει στην port1 την τιμή 0 • Η port1 δέχεται ως ορίσματα τους ακροδέκτες 8 & 6 • Καταμέτρηση άσπρων – μαύρων αντικειμένων
Συμπεράσματα • Εύκολη εκμάθηση της γραφικής γλώσσας Easy C For V2 • Εύκολος επαναπρογραμματισμός μέσω θύρας USB • Επιπλέον βελτιώσεις στην κατασκευή • Διαχωρισμός αντικειμένων περισσότερων χρωμάτων • Τοποθέτηση κάμερας και κατά συνέπεια ανάπτυξη αλγορίθμου επεξεργασίας εικόνας • Τοποθέτηση δυο LED Display για καταμέτρηση περισσότερων από δέκα αντικειμένων
ΤΕΛΟΣ ΠΑΡΟΥΣΙΑΣΗΣ