Πίνακας περιεχομένων:

Μοντέλο Universal Off Switch: 10 Βήματα
Μοντέλο Universal Off Switch: 10 Βήματα

Βίντεο: Μοντέλο Universal Off Switch: 10 Βήματα

Βίντεο: Μοντέλο Universal Off Switch: 10 Βήματα
Βίντεο: 12-вольтовые импульсные источники питания имеют только выходное напряжение 3 В, 2024, Ιούλιος
Anonim
Μοντέλο Universal Off Switch
Μοντέλο Universal Off Switch

Έχετε κουραστεί να ελέγχετε ότι όλα τα φώτα στο σπίτι σας είναι σβηστά πριν πάτε για ύπνο; Θέλετε να μπορείτε να σβήσετε κάθε φως ταυτόχρονα χωρίς καμία φασαρία; Προκειμένου να εξοικονομήσουμε ενέργεια και χρόνο, αποφασίσαμε να δημιουργήσουμε ένα σύστημα που θεωρητικά θα μπορούσε να κλείσει ολόκληρο το σπίτι ταυτόχρονα.

Μοντελοποιήσαμε μια απόδειξη αυτής της έννοιας χρησιμοποιώντας μερικές πλακέτες LED και ένα βασικό κύκλωμα 3 και δημιουργήσαμε ένα σχέδιο που θα απενεργοποιούσε όλα τα LED με το πάτημα ενός κουμπιού. Αυτό το μοντέλο θα μπορούσε να εφαρμοστεί και σε ένα πραγματικό σύστημα φωτισμού στο σπίτι, αν και θα απαιτούσε πιο περίπλοκη καλωδίωση και τροποποιήσεις στα δεδομένα αρχεία VHDL.

Βήμα 1: Εισαγάγετε τα δεδομένα αρχεία VHDL

Για να λειτουργήσει σωστά το μοντέλο μας θα πρέπει να κατεβάσετε το λογισμικό που δίνει τις οδηγίες του στον πίνακα Basys 3.

Πρώτα θα χρειαστεί να κατεβάσετε ένα εργαλείο σύνθεσης για την εφαρμογή αρχείων vhdl στο υλικό. Αν θέλετε να είστε βέβαιοι ότι όλος ο κώδικας θα αναπαράγει πλήρως το σχέδιό μας χωρίς να χρειάζεται καμία τροποποίηση, σας συνιστούμε να χρησιμοποιήσετε το Vivado 2016.2. Αφού εγκαταστήσετε το Vivado, μπορείτε να δημιουργήσετε ένα έργο και να κατεβάσετε τα αρχεία προέλευσης. Προσθέστε τα ως πηγές στο έργο σας, μην ξεχάσετε να προσθέσετε και το αρχείο περιορισμών!

Στη συνέχεια θα εξηγήσουμε τι κάνει καθένα από τα αρχεία προέλευσης. Παραλείψτε τα βήματα 2 έως 6 αν θέλετε απλώς να φτάσετε στη φυσική κατασκευή της συσκευής.

Βήμα 2: Ανάλυση της κορυφαίας μονάδας VHDL

Ανάλυση της κορυφαίας μονάδας VHDL
Ανάλυση της κορυφαίας μονάδας VHDL
Ανάλυση της κορυφαίας μονάδας VHDL
Ανάλυση της κορυφαίας μονάδας VHDL

Η κορυφαία ενότητα του έργου είναι αυτό που συνδέει όλες τις επιμέρους ενότητες συστατικών με το χρησιμοποιούμενο υλικό. Όπως μπορείτε να δείτε, έχουμε τα modules killSwitch και buzzerControl που ορίζονται ως στοιχεία στην κορυφή.

Το κάτω τμήμα καθορίζει τον τρόπο σύνδεσης αυτών των ενοτήτων μεταξύ τους. Έχουμε συνδέσει τέσσερις λυχνίες LED στον πίνακα και τις συσχετίζουμε με τα modules killSwitch dev0 έως dev3. Έχουμε ορίσει τέσσερις μονάδες killSwitch επειδή χρειαζόμαστε μία για τη διαχείριση της κατάστασης κάθε συνδεδεμένης λυχνίας LED. Κάθε μία από αυτές τις ενότητες χρησιμοποιεί το σήμα ρολογιού και κουμπιού που δημιουργήσαμε στον ορισμό της επάνω μονάδας, καθώς και τα αντίστοιχα σήματα διακόπτη εισόδου και εξόδου συσκευής.

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

Βήμα 3: Ανάλυση της μονάδας VHDL Kill Switch

Ανάλυση της μονάδας διακοπτών VHDL Kill Switch
Ανάλυση της μονάδας διακοπτών VHDL Kill Switch
Ανάλυση της μονάδας διακοπτών VHDL Kill Switch
Ανάλυση της μονάδας διακοπτών VHDL Kill Switch

Ο διακόπτης θανάτωσης είναι το γενικό κουμπί απενεργοποίησης και η μονάδα ασχολείται κυρίως με τη σύνδεση του με άλλα στοιχεία κυκλώματος, έτσι ώστε όταν πατηθεί όλα τα φώτα να σβήσουν.

Ενώ η κορυφαία μονάδα χειρίζεται τη σύνδεση φυσικού υλικού με λογισμικό, η μονάδα killSwitch χειρίζεται την κύρια λογική κάθε συσκευής. Η μονάδα λαμβάνει εισόδους για το σήμα ρολογιού, το κουμπί απενεργοποίησης γενικής χρήσης και τον διακόπτη εναλλαγής συσκευής. Σε αντάλλαγμα ελέγχει την κατάσταση του pin της συσκευής στην οποία είναι συνδεδεμένη.

Στην ενότητα αρχιτεκτονική του κώδικα βλέπουμε ότι εξαρτάται από τη μονάδα dFlipFlop για την αποθήκευση μνήμης. Μπορείτε επίσης να δείτε ότι έχουμε δηλώσει τέσσερα σήματα που θα χρησιμοποιηθούν για τη σύνδεση του flip flop καθώς και για την εφαρμογή των λογικών μας δηλώσεων. Μέσα στο τμήμα συμπεριφοράς του κώδικα έχουμε δημιουργήσει μια παρουσία της μονάδας dFlipFlop και έχουμε εκχωρήσει τα σήματα εισόδου/εξόδου μας στις θύρες.

Από εδώ το κύριο μέρος της λογικής μας βρίσκεται στις τιμές σήματος για invertState και isDevOn. Η λογική μας βάση για τη συσκευή είναι η εξής: "Κάθε φορά που πετάτε το διακόπτη το φως θα αντιστρέφει την κατάσταση ενεργοποίησης/απενεργοποίησης. Κάθε φορά που πατάτε το κουμπί και ανάβει αυτή τη στιγμή το LED, το LED θα αντιστρέψει την κατάστασή του σε απενεργοποίηση. " Από αυτές τις δύο δηλώσεις μπορούμε να προεκτείνουμε ότι η κατάσταση της λυχνίας LED θα πρέπει να είναι το XOR του διακόπτη και το στοιχείο μνήμης μας. Με αυτόν τον τρόπο μια αλλαγή σε κάθε ένα αναστρέφει το LED. Αυτό φαίνεται να εφαρμόζεται στο σήμα isDevOn. Η λυχνία LED υπό την προϋπόθεση για το στοιχείο μνήμης χειρίζεται το σήμα invertState. Εάν η λυχνία LED είναι αναμμένη και πατηθεί το κουμπί, το στοιχείο μνήμης μας θα ενημερωθεί και θα αντιστρέψει την κατάστασή του. Αυτό αντιστρέφει επίσης την κατάσταση του LED επίσης.

Βήμα 4: Ανάλυση της μονάδας VHDL Flip Flop

Ανάλυση της μονάδας VHDL Flip Flop
Ανάλυση της μονάδας VHDL Flip Flop

Ένα πρόβλημα με τον σχεδιασμό μας ήταν το γεγονός ότι μετά τη χρήση του διακόπτη απενεργοποίησης, τα φώτα που ήταν αναμμένα προηγουμένως ίσως χρειαστεί να αναδιπλωθούν δύο φορές για να επιστρέψουν στη θέση ενεργοποίησης. Αυτό θα ήταν αρκετά ταλαιπωρία για τους ανθρώπους με την πάροδο του χρόνου. Καταφέραμε να παρακάμψουμε αυτήν την ταλαιπωρία συμπεριλαμβάνοντας ένα "Flip Flop", ένα στοιχείο κυκλώματος ικανό να αποθηκεύει πληροφορίες, στο σχεδιασμό μας. Τώρα, το σύστημα θυμάται αν ένας διακόπτης φώτων ήταν προηγουμένως ενεργοποιημένος, ώστε αν αναποδογυριστεί ξανά να ανάψει ανεξάρτητα από την αρχική του θέση.

Ο κώδικας VHDL χρησιμοποιεί τις δηλώσεις if και else για να δημιουργήσει το Flip Flop ως στοιχείο στο σχεδιασμό του κυκλώματός μας. Εξασφαλίζει ότι όταν το σήμα ρολογιού μεταβαίνει από χαμηλή σε υψηλή κατάσταση, όταν ο λαμπτήρας είναι αναμμένος και όταν πιέζεται ο διακόπτης απενεργοποίησης, η έξοδος των σαγιονάρων αντικαθιστά την είσοδό του. Όταν αντικατασταθεί η είσοδος, το flip flop αντιστρέφεται.

Βήμα 5: Ανάλυση της μονάδας VHDL Piezo Buzzer

Ανάλυση της μονάδας VHDL Piezo Buzzer
Ανάλυση της μονάδας VHDL Piezo Buzzer
Κατανομή της μονάδας VHDL Piezo Buzzer
Κατανομή της μονάδας VHDL Piezo Buzzer

Αυτό το αρχείο είναι λίγο περιττό όσον αφορά τον σχεδιασμό υλικού, αλλά είναι απαραίτητο για να λειτουργήσει ομαλά η κορυφαία ενότητα και τα αρχεία περιορισμών. Εάν επιλέξετε να μην χρησιμοποιήσετε το βομβητή Piezo, κάντε λήψη αυτού του αρχείου, αλλά μην συνδέσετε το βομβητή στον πίνακα Basys 3.

Ο βομβητής Piezo, πατώντας το κουμπί απενεργοποίησης, θα παίξει έναν τόνο δύο σημειώσεων που θα παρέχει στον χρήστη ακουστική ανατροφοδότηση ότι το κουμπί έχει πατηθεί. Το εφαρμόσαμε συμπεριφορικά στο VHDL μέσω μιας σειράς προτάσεων if σε μια δομή διεργασίας. Ξεκινήσαμε δημιουργώντας μια ακέραιη τιμή για να παρακολουθούμε πόσες αλλαγές ρολογιού έχουν συμβεί. Μόλις ξεκινήσει η διαδικασία, το πρόγραμμα ξοδεύει το πρώτο μισό δευτερόλεπτο (0 έως 50 εκατομμύρια κρότωνες) βγάζοντας μια νότα Α στα 440 hertz. Αυτό επιτυγχάνεται με την αναστροφή του σήματος του πιεζοηχητικού βομβητή κάθε άρτιο πολλαπλάσιο των 227272 χρονόμετρων με λειτουργία modulo. Αυτός ο αριθμός είναι το αποτέλεσμα της διαίρεσης του σήματος ρολογιού της πλακέτας (100 MHz) με την επιθυμητή συχνότητα (400 Hz). Κατά τη διάρκεια του δεύτερου μισού δευτερολέπτου (50 έως 100 εκατομμύρια χρονόμετρα) ο πίνακας εξάγει μια νότα F στα 349,2 hertz με την ίδια μέθοδο όπως πριν. Μετά από ένα δευτερόλεπτο, το πρόγραμμα δεν αυξάνει περαιτέρω τη μεταβλητή ρολογιού και σταματά να εξάγει οτιδήποτε από τον πιεζοηχητικό βομβητή. Πιέζοντας ξανά το πλήκτρο απενεργοποίησης γενικής χρήσης επαναφέρετε αυτόν τον αριθμό στο 0, ξεκινώντας ξανά τον κύκλο θορύβου.

Βήμα 6: Ανάλυση του αρχείου περιορισμών VHDL

Το αρχείο περιορισμών λέει στη Vivado ποιες συσκευές στον πίνακα Basys 3 χρησιμοποιούμε. Παρέχει επίσης στη Vivado τα ονόματα που δώσαμε στις συσκευές στον κωδικό μας. Η Vivado χρειάζεται αυτές τις πληροφορίες, ώστε να γνωρίζει πώς να συνδέει τα λογικά στοιχεία μας με το φυσικό υλικό. Το αρχείο περιορισμών περιλαμβάνει μεγάλο αριθμό σχολιασμένων (αχρησιμοποίητων) κωδικών. Αυτές οι γραμμές κώδικα αναφέρουν τις συσκευές στον πίνακα που δεν χρησιμοποιούμε.

Οι συσκευές που χρησιμοποιούμε περιλαμβάνουν τέσσερις διακόπτες εισόδου με την ένδειξη V17, V16, W16 και W1 στον πίνακα. Χρησιμοποιούμε επίσης το γενικό κουμπί απενεργοποίησης, με την ένδειξη U18. Οι ακίδες εξόδου για τα τέσσερα συνδεδεμένα LED μας είναι JB4, JB10, JC4 και JC10. Για τον βομβητή πιέζου μας χρησιμοποιούμε τον πείρο εξόδου JA9.

Όπως αναφέραμε στην ανάλυση της επάνω μονάδας, εάν θέλετε να προσθέσετε επιπλέον LED ή άλλες συσκευές στον πίνακα, πρέπει να αυξήσετε το εύρος των σημάτων sw και dev, να προσθέσετε περισσότερες μονάδες killSwitch και να τις συνδέσετε μεταξύ τους. Στη συνέχεια, πρέπει να συνδέσετε αυτά τα ονόματα μεταβλητών στο υλικό της συσκευής μέσω του αρχείου περιορισμών. Αυτό μπορεί να γίνει με το να σχολιάσετε (να ενεργοποιήσετε ξανά) τις γραμμές κώδικα που σχετίζονται με τις καρφίτσες που θέλετε να χρησιμοποιήσετε και στη συνέχεια να προσθέσετε το όνομα της συσχετισμένης μεταβλητής στην επάνω μονάδα. Η σωστή σύνταξη για αυτό μπορεί να αντιγραφεί από τις συσκευές που χρησιμοποιούμε. Για να μάθετε τα ονόματα των ακίδων που θέλετε να χρησιμοποιήσετε στον πίνακα, ανατρέξτε στον οδηγό αναφοράς Baasys 3 εδώ.

Βήμα 7: Κατασκευή του Basys 3

Κατασκευή του Basys 3
Κατασκευή του Basys 3
Κατασκευή του Basys 3
Κατασκευή του Basys 3

Θα χρειαστεί να συνδέσετε τα LED σας στις σωστές θύρες εισόδου/εξόδου του Basys 3. Ακολουθήστε τις εικόνες που παρέχονται για να προσδιορίσετε ποιες είναι οι σωστές θύρες, διότι εάν συνδέσετε ένα LED σε λάθος θύρα δεν θα ανάψει. Εάν έχετε επιλέξει να συνδέσετε τον πιεζοηχητικό βομβητή, θα πρέπει επίσης να τον συνδέσετε στις σωστές θύρες εισόδου/εξόδου.

Όταν ο πίνακας είναι έτοιμος, συνδέστε τον στον υπολογιστή σας μέσω καλωδίου USB.

Βήμα 8: Εφαρμογή αρχείων VHDL στο Basys 3

Εφαρμογή αρχείων VHDL στο Basys 3
Εφαρμογή αρχείων VHDL στο Basys 3
Εφαρμογή αρχείων VHDL στο Basys 3
Εφαρμογή αρχείων VHDL στο Basys 3

Τώρα που ο πίνακας σας είναι έτοιμος και ο κωδικός σας έχει τελειώσει, μπορείτε τελικά να συνδυάσετε το μοντέλο.

Μόλις ρυθμίσετε το έργο σας στο Vivado, πρέπει να κάνετε κλικ στο κουμπί "Δημιουργία Bitstream" για να μεταγλωττίσετε τον κώδικα προτού μεταφορτωθεί στον πίνακα. Εάν λάβετε ένα μήνυμα σφάλματος αυτήν τη στιγμή, πρέπει να ελέγξετε ξανά ότι ο κωδικός σας ταιριάζει ακριβώς με τον δικό μας. Όταν λέω ακριβώς, εννοώ ακόμη και τα ερωτηματικά ή τους τύπους παρενθέσεων που χρησιμοποιούνται. Μόλις γραφτεί το bitstream με επιτυχία, μεταβείτε στον διαχειριστή υλικού στο Vivado και κάντε κλικ στο κουμπί "Άνοιγμα στόχου" και, στη συνέχεια, κάντε κλικ στο "Συσκευή προγράμματος" αμέσως μετά. Ο πίνακας Basys 3 θα πρέπει τώρα να είναι πλήρως λειτουργικός.

Βήμα 9: Χρήση του πίνακα Basys 3

Χρήση του πίνακα Basys 3
Χρήση του πίνακα Basys 3

Τώρα που ο πίνακας Basys 3 είναι σε λειτουργία και έχει προγραμματιστεί να αντιπροσωπεύει το μοντέλο μας, πρέπει να ξέρετε πώς να το χρησιμοποιήσετε.

Κάθε ένας από τους τέσσερις διακόπτες που βρίσκονται πιο μακριά προς τα δεξιά ελέγχει έναν από τους LED, αν τους γυρίσετε θα ενεργοποιηθεί ή απενεργοποιηθεί το LED. Εάν η λυχνία LED δεν ενεργοποιηθεί, βεβαιωθείτε ότι έχετε συνδεθεί στη σωστή θύρα εισόδου/εξόδου και ότι η λυχνία LED είναι λειτουργική.

Όταν θέλετε να απενεργοποιήσετε όλα τα LED ταυτόχρονα, πρέπει να πατήσετε το κεντρικό κουμπί στο σύνολο των πέντε κουμπιών που εμφανίζονται παραπάνω.

Βήμα 10: Αναδείξτε

Το μοντέλο χρησιμεύει ως μια τακτοποιημένη μικρή καινοτομία που μπορείτε να επιδείξετε μπροστά στους φίλους και την οικογένειά σας. Θεωρητικά μπορεί επίσης να χρησιμοποιηθεί για την εφαρμογή του γενικού διακόπτη απενεργοποίησης στο ηλεκτρικό σύστημα του σπιτιού σας, εάν αντικαταστήσετε τα LED με καλώδια που οδηγούν στα φώτα σας. Ενώ είναι δυνατό, θα πρέπει ακόμα να το συμβουλέψουμε. Υπάρχει πιθανότητα να κάνετε σοβαρό κακό στον εαυτό σας ή στο σπίτι σας εάν προσπαθήσετε να επανασυνδεθείτε χωρίς τη βοήθεια ηλεκτρολόγου.

Συνιστάται: