Πίνακας περιεχομένων:
- Βήμα 1: Λίστα μερών
- Βήμα 2: Διάγραμμα κυκλώματος
- Βήμα 3: Θεωρία
- Βήμα 4: Σημειώσεις σχεδίασης
- Βήμα 5: Λογισμικό
- Βήμα 6: Λειτουργία
- Βήμα 7: Περίληψη
Βίντεο: Binary Tree Morse αποκωδικοποιητής: 7 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Αυτό το οδηγό εξηγεί πώς να αποκωδικοποιήσετε τον κώδικα Morse χρησιμοποιώντας ένα Arduino Uno R3.
Ο αποκωδικοποιητής, ο οποίος προσαρμόζεται αυτόματα στην ταχύτητα αποστολής, είναι ικανός να αποκωδικοποιεί το morse έως και τουλάχιστον 80 λέξεις το λεπτό.
Ο εισερχόμενος κωδικός εμφανίζεται ως κείμενο στην σειριακή οθόνη Arduino (ή στην οθόνη TFT εάν υπάρχει)
Ένας ταλαντωτής τόνου έχει συμπεριληφθεί εάν επιθυμείτε να εξασκηθείτε στην αποστολή morse.
Ο αποκωδικοποιητής διαθέτει:
- μονάδα οθόνης 320 x 240 TFT [1]
- ένα ψηφιακό φίλτρο ζώνης Goertzel για τον διαχωρισμό ανεπιθύμητων σημάτων.
- ένα "Binary Morse Tree" για αποκωδικοποίηση του σήματος
- αυτόματη παρακολούθηση ταχύτητας
- μια ηχητική έξοδο κατά την άσκηση του morse
- εμφανίζονται τόσο το εισερχόμενο όσο και το εξερχόμενο κείμενο.
Οι ακόλουθοι χαρακτήρες και σύμβολα αναγνωρίζονται:
- [Α.. Ζ]
- [0..9]
- [., ? ' ! / () &:; = + - _ " @]
Το εκτιμώμενο κόστος της ασπίδας αποκωδικοποιητή morse, μείον την οθόνη TFT, είναι $ 25. [1]
Εικόνες
- Η φωτογραφία εξωφύλλου δείχνει μια πλήρως συναρμολογημένη μονάδα
- Το βίντεο δείχνει τον αποκωδικοποιητή να λειτουργεί
Σημειώσεις
[1]
- Η μονάδα οθόνης TFT είναι προαιρετική, καθώς όλο το κείμενο αποστέλλεται στο Arduino "Serial Monitor".
- Η ενότητα TFT περιγράφεται στο διδακτικό μου
Βήμα 1: Λίστα μερών
Τα παρακάτω μέρη προέρχονται από τη διεύθυνση
1 μόνο πρωτότυπο ασπίδα για Arduino UNO R3, 2,54mm Pitch
Τα ακόλουθα μέρη αποκτήθηκαν τοπικά:
- 1 μόνο LM358 dual opamp
- 1 μόνο πράσινο LED
- 1 μόνο κλιπ LED
- 1 μόνο ηλεκτρική κάψουλα μικροφώνου
- 1 μόνο κανονικά ανοιχτό κουμπί
- 1 μόνο υποδοχή DIP 8 ακίδων
- 2 μόνο αντιστάσεις 330 ohm
- 2 μόνο αντιστάσεις 2K2
- 5 μόνο 10K ohm αντιστάσεις
- 2 μόνο αντιστάσεις 56K ohm
- 2 μόνο πυκνωτής 1uF
- 1 μόνο πυκνωτής 10uF
Τα παρακάτω μέρη είναι προαιρετικά:
- 1 μόνο μονάδα οθόνης 2,2 ιντσών TFT SPI LCD 240*320 ILI9341 με υποδοχή κάρτας SD για Arduino Raspberry Pi 51/AVR/STM32/ARM/PIC [1]
- Πλήκτρο Morse / κουμπί
- 1 μόνο τρανζίστορ BC548 NPN
- 1 ηχείο μόνο 1 ίντσας
- 1 μόνο αντίσταση 33K ohm
- 1 μόνο μονό βύσμα 3,5 mm (για κλειδί Morse)
- 1 μονή πρίζα 3,5 χιλιοστών (για κλειδί Morse)
- 3 νάιλον αποστάτες M3 μόνο 9 mm
- 1 μόνο πλαστικό κουτί ABS 130 x 68 x 44mm
- 5 μόνο συνδετήρες 2 ακίδων δεξιάς γωνίας
Το εκτιμώμενο κόστος της θωράκισης αποκωδικοποιητή morse, μείον την προαιρετική οθόνη TFT, είναι $ 25. [1]
Σημειώσεις
[1]
Η λίστα εξαρτημάτων για την προαιρετική μονάδα οθόνης 320 x 240 TFT παρατίθεται στο διδακτικό μου
[2]
Εάν επιθυμείτε να χρησιμοποιήσετε τον αποστολέα, απαιτείται ένα πλήκτρο Morse ή ένα ανθεκτικό κουμπί.
Βήμα 2: Διάγραμμα κυκλώματος
Εικόνες
Η φωτογραφία 1 δείχνει το διάγραμμα κυκλώματος για τον αποκωδικοποιητή morse. Η αντίσταση 330 ohm σε σειρά με το πλήκτρο morse περιορίζει το ρεύμα εξόδου D4 σε περίπτωση τυχαίας βραχυκύκλωσης στη γείωση… η αύξηση της τιμής του μειώνει την έξοδο ήχου από το ηχείο. Για αυτόν τον λόγο δεν το έχω προσθέσει στην ασπίδα αλλά το έχω συνδέσει απευθείας στην υποδοχή του κουμπιού με φορτίο για ευκολία προσαρμογής
Η φωτογραφία 2 δείχνει μια αντίστοιχη ασπίδα. Η ασπίδα είναι από το διδακτικό μου https://www.instructables.com/id/Arduino-TFT-Grap… στο οποίο έχω προσθέσει τον ενισχυτή μικροφώνου και τον ταλαντωτή τόνου. [1]
Η φωτογραφία 3 δείχνει την ολοκληρωμένη ασπίδα προσαρτημένη σε ένα Arduino. Για την προβολή του κειμένου στο "Serial Monitor" του Arduino δεν απαιτούνται άλλα στοιχεία
Η φωτογραφία 4 δείχνει τον αποκωδικοποιητή μερικώς κλεισμένο. Έχει κοπεί μια τρύπα στο καπάκι για προβολή της οθόνης. Το ηχείο και το μικρόφωνο έχουν κολλήσει θερμά στη θήκη. Ανοίξτε μερικές οπές ηχείων στο καπάκι πριν τοποθετήσετε το ηχείο. Η κεντρική πρίζα στο καπάκι είναι για μικρόφωνο επέκτασης … χωρίς αυτό ο αποκωδικοποιητής πρέπει να τοποθετηθεί κοντά στο ηχείο, κάτι που δεν είναι πάντα δυνατό
Η φωτογραφία 5 δείχνει την οθόνη TFT. Μαύρη ηλεκτρική ταινία έχει προσαρτηθεί στις άκρες της οθόνης… αυτή η ταινία αποτρέπει τη διαρροή φωτός και καλύπτει τυχόν εσφαλμένη ευθυγράμμιση μεταξύ της οθόνης και του ανοίγματος στο καπάκι
Σπουδαίος
[1]
Τα Arduinos με μεγάλη υποδοχή USB απαιτούν ένα στρώμα ηλεκτρικής ταινίας μεταξύ της υποδοχής USB και της ασπίδας Arduino. Τυχαία σορτς είναι δυνατά χωρίς την ταινία καθώς η απόσταση είναι μικρή. Η κασέτα δεν απαιτείται για Arduinos που έχουν μικρούς συνδετήρες
Βήμα 3: Θεωρία
Κάθε κωδικό γράμμα Morse περιλαμβάνει μια σειρά από τόνους μικρής και μεγάλης διάρκειας που ονομάζονται "κουκκίδες" και "παύλες".
- μια τελεία (.) έχει μήκος 1 μονάδα
- μια παύλα (_) έχει μήκος 3 μονάδες
- ο χώρος μεταξύ των στοιχείων γραμμάτων είναι 1 μονάδα
- το διάστημα μεταξύ γραμμάτων είναι 3 μονάδες
- το διάστημα μεταξύ των λέξεων είναι 7 μονάδες
Μπορούμε να καθορίσουμε αν ο εισερχόμενος τόνος είναι κουκκίδα ή παύλα συγκρίνοντας τη διάρκειά του με έναν τόνο αναφοράς 2 μονάδων σε μήκος.
- μια τελεία είναι μικρότερη από 2 μονάδες
- μια παύλα είναι μεγαλύτερη από 2 μονάδες
Υπάρχουν δύο σαφώς διαφορετικές μέθοδοι για την αποκωδικοποίηση του εισερχόμενου μοτίβου των κουκκίδων και των παύλων:
- γραμμική αναζήτηση
- δυαδικό δέντρο (γνωστό και ως διχοτομική αναζήτηση)
Γραμμική αναζήτηση
Μια κοινή μέθοδος είναι η δημιουργία μιας σειράς χαρακτήρων και τα αντίστοιχα μοτίβα μορς τους. Για παράδειγμα, κάθε ένας από τους παρακάτω χαρακτήρες θα αποθηκευτεί ως:
- ΕΝΑ. _
- Β _. Το Το
- Γ _. _.
- 0 _ _ _ _ _
- 1. _ _ _ _
- 2.. _ _ _
Κάθε γράμμα απαιτεί 6 κελιά… 1 για το ίδιο το γράμμα και 5 για τα (.) Και (_). Για να γίνει αυτό χρειαζόμαστε έναν πίνακα χαρακτήρων γράμματα [36] [6] με συνολικά 216 κελιά. Τα αχρησιμοποίητα κελιά κανονικά γεμίζουν με μηδέν ή κενό.
Για να αποκωδικοποιήσουμε τις εισερχόμενες τελείες και παύλες πρέπει να συγκρίνουμε το μοτίβο κουκκίδας/παύλας κάθε εισερχόμενου γράμματος με τα μοτίβα χαρακτήρων αναφοράς.
Ενώ αυτή η μέθοδος λειτουργεί, είναι εξαιρετικά αργή.
Ας πούμε ότι έχουμε 26 γράμματα ('A',.. 'Z') και τα ψηφία ('0',… '9') αποθηκευμένα σε έναν πίνακα, τότε πρέπει να πραγματοποιήσουμε 36 αναζητήσεις, έκαστη με έως και 5 υπο-αναζητήσεις, που είναι συνολικά 36*5 = 180 αναζητήσεις για αποκωδικοποίηση του αριθμού '9'.
Δυαδικό Δέντρο
Μια δυαδική αναζήτηση είναι πολύ πιο γρήγορη καθώς δεν απαιτούνται αναζητήσεις.
Σε αντίθεση με τη γραμμική αναζήτηση, η οποία απαιτεί την αποθήκευση τόσο των χαρακτήρων όσο και των μορφών morse, το δυαδικό δέντρο αποθηκεύει μόνο τους χαρακτήρες, πράγμα που σημαίνει ότι το μέγεθος του πίνακα είναι μικρότερο.
Έχω χωρίσει το δυαδικό μου δέντρο (φωτογραφία 1) σε δύο μισά (φωτογραφίες 2 και 3) για να είναι πιο ευανάγνωστο.
Για να βρούμε έναν χαρακτήρα μετακινούμε έναν δείκτη αριστερά κάθε φορά που ακούμε μια τελεία και μετακινούμε τον δείκτη δεξιά κάθε φορά που ακούμε μια παύλα. Μετά από κάθε κίνηση μειώνουμε στο μισό την απόσταση του δείκτη για την επόμενη κίνηση … εξ ου και το όνομα δυαδικό δέντρο.
Για να αποκωδικοποιήσετε το γράμμα «9» (παύλα, παύλα, παύλα, παύλες, τελείες) απαιτούνται 5 κινήσεις … 4 προς τα δεξιά και 1 προς τα αριστερά που αφήνει τον δείκτη απευθείας πάνω από το «9».
Πέντε κινήσεις είναι σημαντικά ταχύτερες από 180 αναζητήσεις !!!!!
Ο δυαδικός πίνακας χαρακτήρων είναι επίσης μικρότερος … 26 γράμματα και 10 αριθμοί απαιτούν μόνο έναν πίνακα γραμμών 64 x 1. Επέλεξα να δημιουργήσω έναν πίνακα 128 χαρακτήρων ώστε να μπορώ να αποκωδικοποιήσω τα σημεία στίξης.
Βήμα 4: Σημειώσεις σχεδίασης
Το Morse είναι δύσκολο να αποκωδικοποιηθεί παρουσία παρεμβολών σημάτων. Τα ανεπιθύμητα σήματα πρέπει να απορριφθούν … αυτό απαιτεί κάποιο είδος φίλτρου.
Υπάρχουν πολλές δυνατότητες:
- Βρόχοι κλειδωμένοι σε φάση
- Φίλτρα επαγωγέα-πυκνωτή
- Ενεργά φίλτρα αντίστασης-πυκνωτή
- Processingηφιακή επεξεργασία σήματος όπως Fast Fourier Transform ή το φίλτρο Goertzel.
Οι μέθοδοι 1, 2, 3 απαιτούν εξωτερικά στοιχεία που είναι ογκώδη.
Η μέθοδος 4 δεν απαιτεί εξωτερικά στοιχεία… οι συχνότητες ανιχνεύονται χρησιμοποιώντας μαθηματικούς αλγόριθμους.
Fast Fourier Transform (FFT)
Μια μέθοδος ανίχνευσης της παρουσίας ενός τόνου σε μια σύνθετη κυματομορφή είναι η χρήση του Fast Fourier Transform
Η φωτογραφία 1 δείχνει πώς το FFT (Fast Fourier Transform) διαιρεί το φάσμα ήχου σε "κάδους".
Η φωτογραφία 2 δείχνει πώς οι "κάδοι" FFT ανταποκρίνονται σε ένα σήμα … στην περίπτωση αυτή 800Hz. Εάν υπήρχε ένα δεύτερο σήμα ας πούμε 1500Hz, θα βλέπαμε δύο αποκρίσεις … μία στα 800Hz και μια άλλη στα 1500Hz.
Θεωρητικά μπορεί να γίνει αποκωδικοποιητής κώδικα morse παρακολουθώντας το επίπεδο εξόδου ενός συγκεκριμένου κάδου συχνότητας FFT … ένας μεγάλος αριθμός αντιπροσωπεύει την παρουσία μιας κουκκίδας ή παύλας … ένας μικρός αριθμός δεν αντιπροσωπεύει κανένα σήμα.
Ένας τέτοιος αποκωδικοποιητής κώδικα morse θα μπορούσε να γίνει με την παρακολούθηση του "bin 6" στη φωτογραφία 2, αλλά υπάρχουν πολλά λάθος με αυτήν την προσέγγιση:
- θέλουμε μόνο έναν κάδο συχνοτήτων… οι υπόλοιποι είναι χαμένοι υπολογισμοί
- οι κάδοι συχνοτήτων μπορεί να μην εμφανίζονται ακριβώς στη συχνότητα ενδιαφέροντος
- είναι σχετικά αργό (20mS ανά βρόχο Arduino ()
Μια άλλη μέθοδος είναι η χρήση φίλτρου Goertzel.
Φίλτρο Goertzel
Το φίλτρο Goertzel είναι παρόμοιο με το FFT αλλά έχει μόνο έναν κάδο συχνοτήτων.
Η φωτογραφία 3 δείχνει την απόκριση συχνότητας ενός φίλτρου Goertzel σε διακριτά βήματα ήχου.
Η φωτογραφία 4 είναι μια σάρωση του ίδιου φίλτρου στο ίδιο εύρος συχνοτήτων.
Αποφάσισα να "πάω" με τον αλγόριθμο Goertzel ως:
- Ο χρόνος του βρόχου Arduino () χρησιμοποιώντας τον αλγόριθμο Goertzel ήταν 14mS (χιλιοστά του δευτερολέπτου) έναντι 20mS (χιλιοστά του δευτερολέπτου) για μια λύση FFT χρησιμοποιώντας τη βιβλιοθήκη Arduino «fix_FFT».
- Είναι εύκολο να ορίσετε την κεντρική συχνότητα ενός φίλτρου ζώνης Goertzel.
- Το εύρος ζώνης είναι περίπου 190Hz.
Η φωτογραφία 5 δείχνει την αριθμητική έξοδο από ένα φίλτρο Goertzel 900Hz όταν ανιχνεύεται ένας τόνος. Έχω ορίσει το όριο τόνου σε μια τιμή 4000 … οι τιμές πάνω από 4000 υποδεικνύουν έναν τόνο.
Θεωρητικά, απλώς πρέπει να ρυθμίσετε το φίλτρο σας σε μια άνετη συχνότητα ακρόασης. Δυστυχώς, η έξοδος ήχου από το ηχείο παρακολούθησης 1 ιντσών μου πέφτει γρήγορα κάτω από τα 900Hz. Για να αποφύγω τυχόν προβλήματα, χρησιμοποιώ συχνότητα φίλτρου 950Hz. Οι απαιτούμενοι τύποι για τον υπολογισμό εναλλακτικών συχνοτήτων φίλτρου βρίσκονται στην κεφαλίδα του κώδικα μου.
Αποκρυπτογράφηση
Η αποκωδικοποίηση των κουκκίδων και των παύλων δεν είναι τόσο εύκολη όσο φαίνεται στην αρχή.
Το τέλειο morse ορίζεται ως:
- κουκκίδα = 1 μονάδα
- κενά στο γράμμα = 1 μονάδα
- παύλα = 3 μονάδες
- διάστημα μεταξύ γραμμάτων = 3 μονάδες
- διάστημα μεταξύ λέξεων = 7 μονάδες
Για να αποκωδικοποιήσουμε το τέλειο morse χρειαζόμαστε απλώς μια διάρκεια τόνου αναφοράς 2 μονάδων
- κουκκίδα <2 μονάδες
- χώρος στοιχείων <2 μονάδες
- παύλα> 2 μονάδες
- γράμμα _space> 2 μονάδες
- word_space> 6 μονάδες (δηλαδή 3 x μονάδες αναφοράς)
Αυτό λειτουργεί για το μηχανικό φορμάκι αλλά στον "πραγματικό κόσμο":
- η ταχύτητα αποστολής ποικίλλει
- η διάρκεια κάθε κουκκίδας ποικίλλει
- η διάρκεια κάθε παύλας ποικίλλει
- Τα γράμματα E, I, S, H, 5 περιέχουν μόνο κουκκίδες που είναι κατά μέσο όρο στη διάρκεια της κουκκίδας
- τα γράμματα T, M, O, 0 περιέχουν μόνο παύλες που είναι κατά μέσο όρο στη διάρκεια της παύλας
- τα κενά λέξεων μπορεί να μην φτάσουν
- το ξεθώριασμα δημιουργεί σφάλματα από τα οποία ο αποκωδικοποιητής πρέπει να ανακτήσει.
- διεφθαρμένα σήματα λόγω παρεμβολών
Τα γράμματα που περιέχουν μόνο τελείες και παύλες λύνονται εν μέρει εάν:
υπολογίζουμε τη διάρκεια αναφοράς μέχρι να λάβουμε μια έγκυρη τελεία και μια έγκυρη παύλα. Χρησιμοποιώ 200 χιλιοστά του δευτερολέπτου που είναι έγκυρο εάν η ταχύτητα αποστολής είναι μεταξύ 6 WPM (λέξεις ανά λεπτό) και 17 WPM. Areσως χρειαστεί να αυξήσετε αυτήν την τιμή εάν μαθαίνετε morse. Στο λογισμικό περιλαμβάνεται ένας πίνακας ταχύτητας
Οι παραλλαγές ταχύτητας λύνονται εάν:
- εκτελούμε έναν κυλιόμενο μέσο όρο σε κάθε τελεία και κάθε παύλα και
- επανυπολογίστε τη διάρκεια αναφοράς μετά τη λήψη κάθε συμβόλου
Τα κενά λέξεων και τα κενά λέξεων δεν φτάνουν λύνονται εάν:
- θυμηθείτε την ώρα της τελευταίας μετάβασης (ήχου σε χωρίς τόνο),
- επανεκκίνηση του αλγορίθμου μετά από κάθε γράμμα,
- υπολογίστε τον χρόνο που έχει παρέλθει ενώ περιμένετε την επόμενη μετάβαση στην πρώτη γραμμή (χωρίς τόνο σε τόνο) και
- εισαγάγετε ένα διάστημα εάν έχουν γίνει υπέρβαση 6 χρονικών μονάδων.
Morse Oscillator
Αρχικά δοκίμασα μερικούς βομβητές Piezo αλλά βρήκα:
- η συχνότητα ήταν σταθερή
- η συχνότητα εξόδου ήταν πολύ υψηλή για παρατεταμένη ακρόαση
- οι πίεζοι έτειναν να ξεφεύγουν από τη ζώνη διέλευσης Goertzel
Στη συνέχεια προσπάθησα να οδηγήσω έναν ακουστικό μετατροπέα με τετραγωνικό κύμα 750Hz, αλλά διαπίστωσα ότι είχε μια απήχηση που φιλτράριζε την 1η και την 3η αρμονική. Η φωτογραφία 6 δείχνει την έξοδο του ενισχυτή μικροφώνου σε τετραγωνικό κύμα 750Hz … βλέπουμε την 5η αρμονική !!!
Στη συνέχεια κατέφυγα σε ένα μικρό ηχείο. Η φωτογραφία 7 δείχνει την έξοδο του μικροφώνου σε τετραγωνικό κύμα 750Hz που στάλθηκε σε ένα μικρό ηχείο… αυτή τη φορά βλέπουμε το θεμελιώδες… όχι το 5ο αρμονικό. Το φίλτρο Goertzel αγνοεί κάθε αρμονική.
Σημειώσεις
[1]
en.wikipedia.org/wiki/Goertzel_algorithm
www.embedded.com/the-goertzel-algorithm/
Βήμα 5: Λογισμικό
Εγκατάσταση
- Κατεβάστε το συνημμένο αρχείο MorseCodeDecoder.ino [1]
- Αντιγράψτε τα περιεχόμενα αυτού του αρχείου σε ένα νέο σκίτσο Arduino
- Αποθηκεύστε το σκίτσο ως "MorseCodeDecoder" (χωρίς τα εισαγωγικά)
- Συγκεντρώστε και ανεβάστε το σκίτσο στο Arduino σας
Ενημέρωση λογισμικού 23 Ιουλίου 2020
Οι ακόλουθες δυνατότητες προστέθηκαν στο συνημμένο αρχείο "MorseCodeDecoder6.ino"
- ένα παράθυρο "Exact Blackman" [2]
- ένα "Noise_blanker"
Προσαρμογή:
- αυξήστε το επίπεδο ήχου του δέκτη σας έως ότου αρχίσει να αναβοσβήνει η λυχνία LED και μετά απενεργοποιήστε την
- τώρα συντονίστε τον δέκτη σας έως ότου η λυχνία LED αναβοσβήνει σταδιακά με το εισερχόμενο φορτίο
- το Noise_blanker έχει ρυθμιστεί να αγνοεί τις εκρήξεις θορύβου έως και 8mS (ένας χρόνος βρόχου)
- το όριο θορύβου μπορεί να ρυθμιστεί ρυθμίζοντας το Debug = true και παρακολουθώντας το Serial Plotter σας
Σημείωση
[1]
Ρυθμίστε το Arduino Serial Monitor σας σε 115200 bauds αν θέλετε να δείτε και εσείς το κείμενο.
[2]
- Φωτογραφία 1… Ακριβές παράθυρο Blackman
- Φωτογραφία 2… Φίλτρο Goertzel χωρίς ακριβές παράθυρο Blackman
- Φωτογραφία 3,,, φίλτρο Goertzel με το παράθυρο Exact Blackman που εφαρμόστηκε
Βήμα 6: Λειτουργία
Αποκρυπτογράφος
Τοποθετήστε τη μονάδα δίπλα στο ηχείο σας όταν ακούτε morse.
- Η κάψουλα ηλεκτρικού μικροφώνου λαμβάνει το σήμα του Morse από το ηχείο σας.
- Στη συνέχεια, η έξοδος του ηλεκτρικού μικροφώνου ενισχύεται 647 φορές (56dB) πριν περάσει στο Arduino για επεξεργασία.
- Ένα ψηφιακό φίλτρο ζώνης Goertzel εξάγει το σήμα Morse από το θόρυβο.
- Η αποκωδικοποίηση γίνεται χρησιμοποιώντας ένα δυαδικό δέντρο.
- Η έξοδος αποκωδικοποιητή εμφανίζεται ως κείμενο σε οθόνη TFT 320 x 240 pixel. Αποστέλλεται επίσης στο "Serial Monitor" του Arduino εάν δεν θέλετε να χρησιμοποιήσετε οθόνη.
Αποστολέας Μορς
Έχει συμπεριληφθεί και αποστολέας Morse. Αυτό σας επιτρέπει να εξασκηθείτε στην αποστολή morse και λειτουργεί ως εξής:
- Ένας σταθερός ηχητικός τόνος δημιουργείται στο pin 4 του Arduino.
- Ακούμε αυτόν τον τόνο μέσω του ηχείου του αποκωδικοποιητή κάθε φορά που πατάμε το πλήκτρο morse.
- Ο τόνος ρυθμίζεται στην ίδια συχνότητα με το φίλτρο Goertzel, το οποίο ξεγελά τον αποκωδικοποιητή να σκεφτεί ότι ακούει πραγματικό morse… ό, τι στέλνετε θα εμφανίζεται ως τυπωμένο κείμενο στην οθόνη.
Η αποστολή σας θα βελτιωθεί καθώς ο αποκωδικοποιητής λαμβάνει κοινά σφάλματα όπως:
- πολύ χώρο μεταξύ συμβόλων. (παράδειγμα: Q σφραγισμένο ως MA)
- πολύς χώρος μεταξύ γραμμάτων (παράδειγμα: ΤΩΡΑ εκτυπωμένο ως ΟΧΙ W)
- Λάθος κωδικός
Βήμα 7: Περίληψη
Αποκρυπτογράφος
Αυτό το εκπαιδευτικό περιγράφει πώς να φτιάξετε έναν αποκωδικοποιητή morse που μετατρέπει τον κώδικα morse σε τυπωμένο κείμενο.
- Ο αποκωδικοποιητής μπορεί να αποκωδικοποιήσει το morse έως και τουλάχιστον 80 WPM (λέξεις ανά λεπτό)
- Ο αποκωδικοποιητής παρακολουθεί αυτόματα τις παραλλαγές της λαμβανόμενης ταχύτητας αποστολής.
- Το κείμενο εμφανίζεται στη σειριακή οθόνη σας (ή σε μονάδα οθόνης 320 x 240 TFT εάν υπάρχει) [1]
Αποστολέας
Έχει συμπεριληφθεί και αποστολέας Morse
- Ο αποστολέας σας βοηθά να βελτιώσετε την ποιότητα της αποστολής του morse σας.
- Ο αποκωδικοποιητής επιβεβαιώνει ότι αυτό που έχετε στείλει είναι σωστό
Κόστος ανταλλακτικών
Το εκτιμώμενο κόστος της θωράκισης αποκωδικοποιητή morse, μείον την προαιρετική οθόνη TFT, είναι $ 25.
Κάντε κλικ εδώ για να δείτε τις άλλες οδηγίες μου.
Δεύτερο Βραβείο στο Audio Challenge 2020
Συνιστάται:
LabDroid: Κωδικοποιητής/αποκωδικοποιητής κώδικα Morse: 4 βήματα
LabDroid: Κωδικοποιητής/αποκωδικοποιητής κώδικα Morse: Σημείωση: Αυτή η οδηγία δεν μπορεί να πραγματοποιηθεί 1: 1 στη νεότερη έκδοση του LabDroid. Θα το ενημερώσω σύντομα. Αυτό το έργο θα σας δείξει τι μπορείτε να κάνετε με το LabDroid. Δεδομένου ότι ένα Hello World κανονικά κατασκευάζεται με βάση το κείμενο, το φως ή τον ήχο, σκέφτηκα για το LabDr
Αποκωδικοποιητής πρωτοκόλλου τηλεχειριστηρίου RC5 χωρίς βιβλιοθήκη: 4 βήματα
Αποκωδικοποιητής Πρωτοκόλλου Τηλεχειριστηρίου RC5 Χωρίς Βιβλιοθήκη: Πριν από την αποκωδικοποίηση του rc5 συζητάμε πρώτα τι είναι η εντολή rc5 και ποια είναι η δομή της. βασικά, η εντολή rc5 χρησιμοποιείται σε τηλεχειριστήρια που χρησιμοποιούνται σε τηλεοράσεις, συσκευές αναπαραγωγής cd, d2h, συστήματα οικιακού κινηματογράφου κλπ. έχει 13 ή 14 bits διατεταγμένα σε ένα
Αποκωδικοποιητής Basys 3 Morse: 11 Βήματα
Αποκωδικοποιητής Basys 3 Morse: Αυτό είναι ένα έργο για μια τάξη κολλεγίου. Αυτό το έργο είναι γραμμένο σε VHDL σε ένα πρόγραμμα που ονομάζεται Vivado. Οι εργασίες για τη δημιουργία όλων των ενοτήτων που είναι απαραίτητες για την υλοποίηση ενός αποκωδικοποιητή Morse χρησιμοποιώντας τον πίνακα Basys 3. Ο πίνακας χρησιμοποιείται για τη λήψη κώδικα morse από swi
Αποκωδικοποιητής Arduino Magnetic Stripe: 4 Βήματα (με Εικόνες)
Αποκωδικοποιητής Arduino Magnetic Stripe: Αυτό το διδακτικό δείχνει πώς να χρησιμοποιείτε κάποιον ελεύθερα διαθέσιμο κώδικα, ένα arduino και έναν τυπικό αναγνώστη μαγνητικών λωρίδων για να σαρώσετε και να εμφανίσετε τα δεδομένα που είναι αποθηκευμένα σε κάρτες μαγνητικών λωρίδων όπως πιστωτικές κάρτες, φοιτητικές ταυτότητες κλπ. Εμπνεύστηκα δημοσιεύστε το μετά από
Αποκωδικοποιητής Επαγγελματικής Κάρτας - Κρυπτογραφημένο Μυστικό Μήνυμα QR: 6 Βήματα (με Εικόνες)
Αποκωδικοποιητής Business Card - QR Coded Secret Message: Η κατοχή μιας καλής επαγγελματικής κάρτας μπορεί να σας βοηθήσει να διατηρήσετε επαφές, να προωθήσετε τον εαυτό σας και την επιχείρησή σας και να κάνετε φίλους. Δημιουργώντας μια προσωπική επαγγελματική κάρτα που περιλαμβάνει τον παραλήπτη να μεταφράζει ενεργά την κάρτα σας, θα τον κάνει πιο πιθανό να θυμάται