
Πίνακας περιεχομένων:
- Βήμα 1: Υλικά
- Βήμα 2: Έναρξη κωδικοποίησης
- Βήμα 3: Αρχείο περιορισμών
- Βήμα 4: Flip Flop File
- Βήμα 5: Αρχείο τμημάτων
- Βήμα 6: Αρχείο διαιρέτη ρολογιού
- Βήμα 7: Αρχείο σήματος σερβο
- Βήμα 8: Servo Top File
- Βήμα 9: Κορυφαίο αρχείο
- Βήμα 10: Δοκιμές στο Vivado
- Βήμα 11: Εισαγωγή κτιρίου υλικού
- Βήμα 12: Προετοιμασία
- Βήμα 13: Συγκόλληση
- Βήμα 14: Τελικό
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39

Για την τάξη CPE 133 στο Cal Poly μας είπαν να δημιουργήσουμε ένα έργο VHDL/Basys 3 που θα βοηθούσε το περιβάλλον και ήταν αρκετά απλό ώστε να το εφαρμόσουμε με τις νέες γνώσεις μας στον ψηφιακό σχεδιασμό. Η ιδέα πίσω από το πρόγραμμά μας ότι, σε γενικές γραμμές, οι άνθρωποι δεν σκέφτονται πού ρίχνουν τα σκουπίδια τους. Αποφασίσαμε να δημιουργήσουμε μια μηχανή που θα αναγκάσει τους ανθρώπους να σκεφτούν πού βάζουν τα σκουπίδια τους. Ο διαλογέας απορριμμάτων λαμβάνει την είσοδο του χρήστη μέσω τριών διακοπτών, ο καθένας αντιπροσωπεύει είτε σκουπίδια, είτε ανακύκλωση είτε κομπόστ. Μόλις ο χρήστης επιλέξει τον τύπο των αποβλήτων που θα ήθελε να απορρίψει, πατάει ένα κουμπί. Αυτό το κουμπί θα προκαλέσει το άνοιγμα των αντίστοιχων καπακιών. Το μηχάνημα χρησιμοποίησε επίσης την οθόνη στο Basys 3 για να δείξει εάν κάποιο από τα καπάκια είναι προς το παρόν ανοιχτό. Όταν απελευθερωθεί το κουμπί, τα καπάκια θα κλείσουν ξανά έτσι ώστε το μηχάνημα να είναι έτοιμο για τον επόμενο χρήστη.
Βήμα 1: Υλικά



Τα υλικά που απαιτούνται για αυτό το έργο είναι:
Basys 3 σανίδα
Υπολογιστής με εγκατεστημένο το Vivado
3x σερβο
Σύρμα χαλκού 3 ποδιών
Κόφτης/Stripper
Συγκολλητικό σίδερο και συγκόλληση
*επειδή τα servos είναι ακριβά και είμαστε φοιτητές, αντικαταστήσαμε μια αντίσταση 68 ohm και LED για κάθε σερβο σαν πρωτότυπο (ο κώδικας λειτουργεί με τον ίδιο τρόπο)
Βήμα 2: Έναρξη κωδικοποίησης



Υπάρχουν πολλοί κώδικες που πρέπει να γραφτούν για αυτό το έργο. Θα χρησιμοποιούμε κώδικα VHDL γραμμένο στο Vivado. Για να ξεκινήσουμε θα θέλουμε να δημιουργήσουμε ένα νέο έργο. Πρώτα θα ονομάσετε το έργο και θα καθορίσετε τον τύπο του έργου. Βεβαιωθείτε ότι έχετε επιλέξει τις ίδιες ρυθμίσεις με την εικόνα. Όταν φτάσετε στην οθόνη πηγών, θα θέλετε να προσθέσετε έξι πηγές που ονομάζονται "κορυφή", "flip_flop", "τμήματα", "servo_top", "servo_sig" και "clk_div". Βεβαιωθείτε ότι έχετε επιλέξει VHDL για τη γλώσσα κάθε αρχείου και όχι το Verilog. Στην οθόνη περιορισμών θα πρέπει να δημιουργήσετε ένα αρχείο για την ανάθεση καρφιτσών. Το όνομα αυτού του αρχείου δεν είναι σημαντικό. Στη συνέχεια, θα σας ζητηθεί να επιλέξετε τον πίνακα που θα χρησιμοποιήσετε. Βεβαιωθείτε ότι έχετε επιλέξει το σωστό. Φωτογραφίες αναφοράς για σωστή επιλογή. Το τελευταίο βήμα θα σας ζητήσει να καθορίσετε τις εισόδους και τις εξόδους κάθε αρχείου προέλευσης. Αυτό το βήμα μπορεί να κωδικοποιηθεί αργότερα, οπότε κάντε κλικ στο επόμενο.
Βήμα 3: Αρχείο περιορισμών


Σε αυτό το βήμα θα γράψουμε το αρχείο περιορισμών. Αυτό λέει στον Vivado ποιες ακίδες θα στείλουν/λάβουν ποια σήματα από το κύκλωμα. Θα χρειαστούμε το ρολόι, τρεις διακόπτες, την επτά οθόνη (επτά καθόδους και τέσσερις άνοδος), ένα κουμπί και τις τρεις ακίδες PMOD εξόδου που θα χρησιμοποιήσει το σερβο/LED. Φωτογραφίες αναφοράς για την εμφάνιση του κώδικα.
Βήμα 4: Flip Flop File

Το επόμενο αρχείο που θα γράψουμε είναι το αρχείο προέλευσης flip_flip. Αυτό θα είναι μια εφαρμογή VHDL ενός D flip flop. Με άλλα λόγια, θα περάσει μόνο την είσοδό του στην έξοδο στην ανερχόμενη άκρη του σήματος ρολογιού και όταν πατηθεί το κουμπί. Θα χρειαστεί ρολόι, D και το κουμπί ως είσοδος και θα εξέλθει Q. Αναφέρετε τις φωτογραφίες για κώδικα. Ο σκοπός αυτού του αρχείου είναι να επιτρέψει στους κάδους να ανοίγουν μόνο όταν πατάτε το κουμπί και όχι να ανοίγει άμεσα κάθε φορά που ο διακόπτης αναστρέφεται και κλείνει μόνο όταν ο διακόπτης γυρίζει πίσω.
Βήμα 5: Αρχείο τμημάτων

Το επόμενο αρχείο που θα γραφτεί είναι το αρχείο τμημάτων. Αυτό θα πάρει το κουμπί όπως στις τιμές εισόδου και εξόδου για τις επτά καθόδους και τέσσερις άνοδος της οθόνης επτά τμημάτων του Basys 3. Αυτό το αρχείο προκαλεί στην οθόνη επτά τμημάτων να εμφανίζεται ένα "C" όταν οι κάδοι είναι κλειστοί και ένα "O" όταν οι κάδοι είναι ανοιχτοί. Για κώδικα δείτε τη συνημμένη φωτογραφία.
Βήμα 6: Αρχείο διαιρέτη ρολογιού

Η λειτουργία Servos λαμβάνει ένα σήμα PWM με συχνότητα 64k Hz ενώ το ενσωματωμένο ρολόι στο Basys 3 λειτουργεί στα 50M Hz. Το αρχείο διαίρεσης ρολογιού θα μετατρέψει το προεπιλεγμένο ρολόι σε φιλική συχνότητα για το σερβο. Το αρχείο θα λάβει το ρολόι και ένα σήμα επαναφοράς ως είσοδο και θα βγάλει ένα νέο σήμα ρολογιού. Δείτε τη φωτογραφία που επισυνάπτεται για τον κωδικό.
Βήμα 7: Αρχείο σήματος σερβο

Το σερβο σήμα αρχείου θα λάβει μια είσοδο ρολογιού, μια επαναφορά εισόδου και μια επιθυμητή είσοδο θέσης. Θα εξάγει ένα σήμα PWM που θα οδηγήσει το σερβο στην επιθυμητή θέση. Αυτό το αρχείο χρησιμοποιεί το σήμα ρολογιού που δημιουργήθηκε στο τελευταίο αρχείο για να δημιουργήσει ένα σήμα PWM για το σερβο με διαφορετικούς κύκλους λειτουργίας ανάλογα με την επιθυμητή θέση. Αυτό μας επιτρέπει να γυρίσουμε τα servos που ελέγχουν τα καπάκια των κάδων απορριμμάτων. Δείτε τη συνημμένη φωτογραφία για τον κωδικό.
Βήμα 8: Servo Top File

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




Αυτό είναι το πιο σημαντικό αρχείο του έργου καθώς περικλείει όλα όσα έχουμε δημιουργήσει μαζί. Θα πάρει το κουμπί, τους τρεις διακόπτες και το ρολόι ως είσοδο. Θα δώσει τις επτά καθόδους, τις τέσσερις άνοδος και τα τρία σήματα σερβο/LED ως εξόδους. Θα χρησιμοποιήσει το flip flop, τα τμήματα και τα αρχεία servo_top ως συστατικά και θα έχει εσωτερικό διακόπτη και εσωτερικό σήμα σερβο.
Βήμα 10: Δοκιμές στο Vivado
Εκτελέστε σύνθεση, υλοποίηση και εγγραφή bitsream στο Vivado. Εάν συναντήσετε τυχόν μηνύματα σφάλματος, εντοπίστε τη θέση σφάλματος και, στη συνέχεια, συγκρίνετε με τον δεδομένο κώδικα. Επεξεργαστείτε τυχόν σφάλματα έως ότου τελειώσουν με επιτυχία όλες αυτές οι εκτελέσεις.
Βήμα 11: Εισαγωγή κτιρίου υλικού
Σε αυτό το βήμα θα δημιουργήσετε το υλικό LED που χρησιμοποιήσαμε στο πρωτότυπό μας. Εάν χρησιμοποιείτε servos, το έργο θα πρέπει να είναι έτοιμο για όσο διάστημα χρησιμοποιούνται οι σωστές ακίδες. Εάν χρησιμοποιείτε LED, ακολουθήστε τα παρακάτω βήματα.
Βήμα 12: Προετοιμασία
Κόψτε το σύρμα σε έξι ίσα κομμάτια. Απογυμνώστε αρκετά τα άκρα κάθε κομματιού σύρματος, ώστε να συμβεί συγκόλληση. Διαχωρίστε τα LED, τις αντιστάσεις και τα καλώδια σε τρεις ομάδες. Ζεσταίνουμε το συγκολλητικό σίδερο.
Βήμα 13: Συγκόλληση


Συγκολλήστε κάθε μία από τις αντιστάσεις 68 ohm στην αρνητική πλευρά της αντίστοιχης λυχνίας LED. Συγκολλήστε ένα καλώδιο στη θετική πλευρά του LED και ένα άλλο σύρμα στην πλευρά του αντιστάτη που δεν είναι κολλημένο στο led. Θα πρέπει να έχετε τρία από τα προστατευτικά LED που απεικονίζονται παραπάνω.
Βήμα 14: Τελικό

Τοποθετήστε κάθε θετικό σύρμα στον αντίστοιχο πείρο PMOD και κάθε αρνητικό σε έναν πείρο PMOD γείωσης. Προαιρετικά προσθέστε κάδους από χαρτόνι για να αντιπροσωπεύσετε τους κάδους απορριμμάτων και κρύψτε το μπέρδεμά σας. Μόλις τα καλώδια είναι σωστά συνδεδεμένα και ο κωδικός έχει τοποθετηθεί σωστά στον πίνακα χωρίς σφάλματα, το μηχάνημα θα πρέπει να λειτουργεί όπως προορίζεται. Αν κάτι πάει στραβά, επιστρέψτε στα προηγούμενα βήματα για την αντιμετώπιση προβλημάτων. Διασκεδάστε με τον νέο σας "διαλογέα απορριμμάτων".
Συνιστάται:
Ταξινόμηση φούσκας σε παρτίδα!: 4 βήματα

Bubble Sort in Batch !: Αναρωτηθήκατε ποτέ να φτιάξετε έναν απλό αλγόριθμο ταξινόμησης σε καθαρή παρτίδα; Μην ανησυχείτε, είναι απλό σαν πίτα! Αυτό δείχνει επίσης τη διαδικασία ταξινόμησης. (Σημείωση: Το έκανα σε υπολογιστή με Windows XP, ώστε κάποιος κώδικας να μην λειτουργεί. Δεν είμαι σίγουρος όμως. Λυπάμαι …)
CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα

CPE 133 Final Project Decimal to Binary: Οι δυαδικοί αριθμοί είναι ένα από τα πρώτα πράγματα που έρχονται στο μυαλό όταν σκεφτόμαστε την ψηφιακή λογική. Ωστόσο, οι Δυαδικοί Αριθμοί μπορεί να είναι μια δύσκολη ιδέα για όσους είναι νέοι σε αυτό. Αυτό το έργο θα βοηθήσει όσους είναι νέοι και έμπειροι με δυαδικούς αριθμούς
Ταξινόμηση καπέλου: 3 βήματα

Ταξινόμηση καπέλου: Καθώς πλησιάζουμε εκείνη την εποχή του χρόνου όπου ντυνόμαστε με διάφορα κοστούμια, ένα χρόνο το προσωπικό του σχολείου μας αποφάσισε να έχει θέματα ανά τμήμα. Ο Χάρι Πότερ ήταν μια δημοφιλής επιλογή και καθώς άρχισα να ασχολούμαι με το βελονάκι των κούκλων Amigurumi και
Ταξινόμηση νερού_Χρώμα: 6 βήματα

Water Sort_Color: Water Sort_ColorMon projet is un genre de decor qui émet des signaux lumineux. Je propose de mettre mon projet sous l’eau se qui va donner un effet très très joli, j’ai déjà commencé à réaliser mon projet. Ce PCB peut être utilisé aussi dans: les
CPE 133 Μετρονόμος: 3 Βήματα

CPE 133 Metronome: Για το τελευταίο μας έργο στο Cal Poly δημιουργήσαμε μια συσκευή παρακολούθησης ρυθμού που ονομάζεται μετρονόμος, επιλέξαμε αυτό το έργο λόγω ενδιαφέροντος μουσικής και ψηφιακού σχεδιασμού. Χρησιμοποιήσαμε προηγούμενα εργαστήρια στο CPE 133 για να βοηθήσουμε στο σχεδιασμό του κώδικα μας και διαδικτυακά σεμινάρια για βοήθεια