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

Μεταφραστής Letter to Morse Code: 5 βήματα
Μεταφραστής Letter to Morse Code: 5 βήματα

Βίντεο: Μεταφραστής Letter to Morse Code: 5 βήματα

Βίντεο: Μεταφραστής Letter to Morse Code: 5 βήματα
Βίντεο: ⚡️ ΔΕΝ ΘΑ ΤΑ ΠΑΡΑΔΩ! Amazon 2.0 | Ηλεκτρονικό κατάστημα από την αρχή - Μέρος 3 2024, Ιούλιος
Anonim
Μεταφραστής επιστολής στον κώδικα Μορς
Μεταφραστής επιστολής στον κώδικα Μορς

Βλέποντας τις αναπαραστάσεις του κώδικα Morse στο διαδίκτυο για να το μάθετε είναι χρήσιμο, αλλά δεν μπορεί να συγκριθεί με το να το δείτε προσωπικά με πραγματικά φώτα/ήχους που αναβοσβήνουν. Αυτός ο μεταφραστής θα σας επιτρέψει να επιλέξετε το γράμμα που θέλετε να μάθετε στον Κώδικα Μορς και να το μεταφράσετε ακριβώς μπροστά στα μάτια σας αναβοσβήνοντας LED με το μοτίβο που αντιπροσωπεύει για το συγκεκριμένο γράμμα! Αυτός ο Μεταφραστής λαμβάνει μια δυαδική αναπαράσταση ενός γράμματος στο αλφάβητο, (ένα διάγραμμα μπορεί να δει αργότερα για το δυαδικό ισοδύναμο κάθε γράμματος, αλλά υποθέστε ότι A - 01, B - 10, C - 11, και ούτω καθεξής) και μετατρέπει μετατρέπεται σε ισοδύναμο κωδικό Μορς αναβοσβήνοντας τα φώτα για το χρήστη. Η δεκαδική έκδοση του αριθμού εμφανίζεται επίσης σε οθόνη επτά τμημάτων, ωστόσο, για να σας ενημερώσει ότι δημιουργείτε το σωστό δυαδικό ισοδύναμο.

Ο δυαδικός αριθμός δημιουργείται με τους διακόπτες στη δεξιά πλευρά και ανεβαίνει από το λιγότερο σημαντικό bit, όπως ακριβώς θα περιμένατε κατά τη δημιουργία ενός δυαδικού αριθμού. Ο αριθμός που δημιουργείτε εμφανίζεται στην οθόνη των επτά τμημάτων όπως προαναφέρθηκε και βρίσκεται στα αριστερά του πίνακα, απλώς θα σας πει εάν κάνατε λάθος ή όχι στην αναπαράσταση του δυαδικού αριθμού με τους διακόπτες ή θα επιβεβαιώσει ότι κάνατε ο σωστος αριθμος. Λαμβάνει 1 γράμμα κάθε φορά, το αποθηκεύει στη μνήμη και στη συνέχεια εκτυπώνει τον κωδικό Morse όταν ο χρήστης είναι έτοιμος ενεργοποιώντας τον "Διακόπτη εκτύπωσης" που βρίσκεται στα αριστερά της πλακέτας BASYS3 (αυτός είναι απλώς ένας άλλος διακόπτης που κάνουμε έχει οριστεί ως "Διακόπτης εκτύπωσης" ή άλλος διακόπτης εάν χρησιμοποιείτε διαφορετικό τύπο πλακέτας FPGA και εκχωρείτε διαφορετικό διακόπτη (Δείτε βήμα 3). Συνιστάται να χρησιμοποιείτε έναν πίνακα BASYS3 για απλότητα, αλλά δεν απαιτείται.

Βήμα 1: Βήμα 1: Συγκεντρώστε τα υλικά σας

Για αυτό το έργο, θα χρειαστείτε μόνο τα ακόλουθα:

Hardware- Basys3 Board (Or ένα ισοδύναμο FPGA που μπορείτε να συνδέσετε ανάλογα)

-(ΠΡΟΑΙΡΕΤΙΚΑ) Καλώδια εάν σκοπεύετε να συνδέσετε επιπλέον LED ή διαφορετικούς διακόπτες σε εναλλακτικό FPGA

Software-Vivado Design Suite (Συνιστούμε το 2014+)

Βήμα 2: Βήμα 2: Δημιουργήστε ένα αρχείο

Αυτό είναι το αρχείο γραμμένο σε VHDL για την εκτέλεση του μεταφραστή κώδικα Morse 1 Bit στο Vivado. Αυτό το αρχείο λειτουργεί με όλες τις εκδόσεις του Vivado. Εάν υπάρχουν προβλήματα με τη λήψη του αρχείου, μια αναπαράσταση κειμένου του κώδικα μπορεί να βρεθεί σε άλλο αρχείο παρακάτω και μπορεί εύκολα να αντιγραφεί στο φάκελο αρχείων που δημιουργείτε. Βεβαιωθείτε ότι τόσο η κύρια πηγή όσο και το αρχείο περιορισμών υπάρχουν και στις δικές τους ξεχωριστές πηγές πριν προσπαθήσετε να δημιουργήσετε ένα bitstream ή να συνθέσετε οτιδήποτε. Για όσους θέλουν να κατανοήσουν μια πιο σε βάθος εξήγηση του κώδικα και τι πραγματικά κάνει, δείτε το βήμα 3. Αν θέλετε απλώς να φτάσετε στο σημείο και να ξεκινήσετε τη μετάφραση, προχωρήστε στην ενότητα 4.

Βήμα 3: Βήμα 3: Ο Κώδικας

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

Διαδικασία 1:

Η πρώτη διαδικασία που δημιουργήσαμε χρησιμοποίησε ένα διαχωριστικό ρολογιού για να κάνει την επίδειξη επτά τμημάτων να λειτουργεί για δύο τμήματα, προκειμένου να δείξει το δυαδικό ισοδύναμο του γράμματος που δημιουργούσε το άτομο. Χρειάστηκε να βεβαιωθούμε ότι το ρολόι εμφανίζει σωστά τον αριθμό στις σωστές επτά ενότητες τμημάτων που θέλαμε. Αντιστοιχίσαμε τα τμήματα ανάλογα, έτσι ώστε να εμφανίζουν ορισμένα ψηφία όταν τα ρωτήσαμε και τα κάναμε να περνούν τα 2 τελευταία ψηφία επειδή χρειαζόμασταν μόνο 2 για να δείξουμε όλους τους αριθμούς του αλφαβήτου. Κάναμε την επίδειξη επτά τμημάτων στο Δεκαδικό Σύστημα Αριθμών έτσι ώστε να είναι πιο εύκολο για τους ανθρώπους να δουν τι γράμμα προσπαθούσαν να αντιπροσωπεύσουν, αφού η πλειοψηφία του πληθυσμού χρησιμοποιεί βασικά συστήματα αριθμών 10.

Διαδικασία 2:

Η δεύτερη διαδικασία δημιουργεί το ρολόι μας για να λειτουργούν τα LED, έτσι ώστε να βλέπουμε τους παλμούς με σαφήνεια και να διαφοροποιούμε μεταξύ του Dot και του Dash, καθώς και να έχουμε επαρκή χρόνο μεταξύ κάθε τμήματος του κώδικα Morse. Χρησιμοποιήσαμε ένα σήμα για να περάσουμε ένα δίαυλο γεμάτο με εξόδους LED Morse Code εκτός της διαδικασίας και πάνω στις λυχνίες LED του πίνακα, έτσι ώστε να μπορούμε να ανάβουμε πολλαπλά ταυτόχρονα, αντί να έχουμε μόνο ένα φλας LED.

Διαδικασία 3:

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

Διαδικασία 4:

Η τέταρτη διαδικασία είναι η διαδικασία "μεταφραστής", η οποία λαμβάνει όλες τις πληροφορίες που έχουμε συγκεντρώσει μέχρι στιγμής, όπως αν το κουμπί αποθήκευσης έχει ενεργοποιηθεί ή όχι, εάν ο διακόπτης εκτύπωσης είναι ενεργοποιημένος ή όχι και ποιος αριθμός είναι αντιπροσωπεύεται από τους διακόπτες. Στη συνέχεια, εξετάζεται ένας πίνακας που φτιάξαμε, ο οποίος έχει αναπαραστάσεις κώδικα Morse για το ποια θα είναι η έξοδος με τις εντολές 1 και 0 που ισοδυναμούν με εντολές On/Off για τα LED. Αντί να χρησιμοποιήσουμε δύο ξεχωριστά ρολόγια λειτουργίας, φτιάξαμε ένα μόνο ρολόι κύκλου εργασίας 50% που θεωρήσαμε ότι ήταν μια καλή ταχύτητα για τον κώδικα Morse και το κάναμε να εκτελέσει μια κουκκίδα με 1 υψηλό "παλμό" και μια παύλα για 3 υψηλές " όσπρια." Για να απλοποιήσουμε τον κώδικα και να τον κάνουμε να τρέχει γρηγορότερα, μόλις δημιουργήσαμε μια τελεία ίση με "010" και μια παύλα ίση με "01110".

Βήμα 4: Βήμα 4: Δημιουργήστε το Bistream και εφαρμόστε

Αυτό το έργο είναι πολύ εύκολο να ρυθμιστεί εάν διαθέτετε έναν πίνακα BASYS3, καθώς όλοι οι διακόπτες και τα κουμπιά που απαιτούνται υπάρχουν ήδη στον πίνακα για να τα χρησιμοποιήσετε, μαζί με τους περιορισμούς που έχουν προρυθμιστεί στις ακίδες που θέλετε. Εάν χρησιμοποιείτε διαφορετικό FPGA, θα πρέπει να μπείτε στον κώδικα και να βρείτε τους περιορισμούς και να τους επανατοποθετήσετε στους σωστούς περιορισμούς για το FPGA σας. Αυτό ισχύει επίσης εάν σχεδιάζετε να συνδέσετε άλλα LED και διακόπτες στην πλακέτα σας για χρήση. Δεν θα αναφερθούμε σε τέτοια παραδείγματα, αλλά η χρήση του εγχειριδίου οδηγιών του συγκεκριμένου FPGA θα ήταν πολύ χρήσιμη για τον προσδιορισμό του τρόπου καλωδίωσης και δρομολόγησης των πάντων στις σωστές ακίδες.

Σε αυτό το σημείο, μόλις έχετε κατεβάσει τον κώδικα και ανοίξετε το αρχείο, απλώς δημιουργήστε το bitstream στο Vivado και προγραμματίστε τη συσκευή σας. Μόλις το έχετε, θα μπορείτε να αρχίσετε να εισάγετε γράμματα για μετάφραση στον Κώδικα Μορς! Απολαμβάνω!

*ΣΗΜΕΙΩΣΗ: Ο "Διακόπτης εκτύπωσης" βρίσκεται στα αριστερά του πίνακα (Διακόπτης R2 για τον πίνακα BASYS3) και το "Κουμπί αποθήκευσης" είναι το κουμπί U18 (Το κεντρικό κουμπί στον πίνακα BASYS3) εάν οι περιορισμοί λαμβάνονται απευθείας από τον κώδικα παραδείγματος μας.

Βήμα 5: Προβλήματα/Αντιμετώπιση προβλημάτων

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

*ΣΗΜΕΙΩΣΗ: αν διαπιστώσετε ότι ο μεταφραστής σας φαίνεται να λειτουργεί αργά, αυτό είναι φυσιολογικό! Υπάρχει μια μικρή χρονική καθυστέρηση μεταξύ του χτυπήματος εκτύπωσης και της εμφάνισης του κώδικα Μορς. Εάν θέσετε σε παύση τον κύκλο απενεργοποιώντας τον διακόπτη εκτύπωσης, ο κωδικός θα πρέπει να ολοκληρώσει τον κύκλο πριν εκτυπώσετε το νέο γράμμα, αφήνοντάς σας να περιμένετε να τελειώσει ο κύκλος και να ξεκινήσει το επόμενο γράμμα.

Συνιστάται: