Cuprins:

Scrisoare către traducătorul codului Morse: 5 pași
Scrisoare către traducătorul codului Morse: 5 pași

Video: Scrisoare către traducătorul codului Morse: 5 pași

Video: Scrisoare către traducătorul codului Morse: 5 pași
Video: Fixiki ✌️ Programul (Ep.106) Desene Animate Educative pentru Copii | 45 MIN 2024, Noiembrie
Anonim
Scrisoare către traducătorul codului Morse
Scrisoare către traducătorul codului Morse

Este util să vedeți reprezentările Codului Morse online pentru a le învăța, dar nu poate fi comparat cu a le vedea în persoană cu lumini / sunete intermitente reale. Acest traducător vă va permite să alegeți litera pe care doriți să o învățați în codul Morse și să o traduceți chiar în fața ochilor, intermitând LED-uri în modelul pe care îl reprezintă pentru litera respectivă! Acest traducător include o reprezentare binară a unei litere din alfabet, (o diagramă poate fi văzută mai târziu pentru echivalentul binar al fiecărei litere, dar presupunem că A - 01, B - 10, C - 11 și așa mai departe) și convertește îl transformă într-un cod Morse echivalent prin lumini intermitente pentru utilizator. Cu toate acestea, versiunea zecimală a numărului este afișată pe un afișaj cu șapte segmente, pentru a vă informa că creați echivalentul binar corect.

Numărul binar este creat cu comutatoarele din partea dreaptă și urcă de la bitul cel mai puțin semnificativ, la fel cum v-ați aștepta atunci când creați un număr binar. Numărul pe care îl creați este afișat pe afișajul cu șapte segmente, așa cum s-a menționat anterior și este situat în partea stângă a plăcii, vă va spune pur și simplu dacă ați greșit sau nu reprezentând numărul binar cu comutatoarele sau confirmați că ați făcut numărul corect. Este nevoie de 1 literă la un moment dat, îl stochează în memorie și apoi imprimă codul Morse când utilizatorul este pregătit activând „comutatorul de imprimare” din extrema stângă a plăcii BASYS3 (acesta este pur și simplu un alt comutator pe care îl avem atribuit să fie „Comutator de imprimare” sau un alt comutator dacă utilizați un alt tip de placă FPGA și atribuiți un comutator diferit (a se vedea pasul 3). Se recomandă să utilizați o placă BASYS3 pentru simplitate, dar nu este necesară.

Pasul 1: Pasul 1: Strângeți-vă materialele

Pentru acest proiect, veți avea nevoie doar de următoarele:

Hardware- Placă Basys3 (Sau un FPGA echivalent pe care îl puteți conecta corespunzător)

- (OPȚIONAL) Cabluri dacă intenționați să conectați LED-uri suplimentare sau comutatoare diferite la un FPGA alternativ

Software-Vivado Design Suite (Vă recomandăm 2014+)

Pasul 2: Pasul 2: Creați un fișier

Acesta este fișierul scris în VHDL pentru a rula traducătorul Morse Code 1 Bit în Vivado. Acest fișier funcționează cu toate versiunile Vivado. Dacă există probleme cu descărcarea fișierului, o reprezentare text a codului poate fi găsită într-un alt fișier de mai jos și poate fi copiată cu ușurință lipită în folderul de fișiere pe care îl creați. Asigurați-vă că atât sursa principală, cât și fișierul de constrângeri sunt prezente și în propriile surse separate înainte de a încerca să generați un flux de biți sau să sintetizați ceva. Pentru cei care doresc să înțeleagă o explicație mai detaliată a codului și a ceea ce face cu adevărat, consultați pasul 3. Dacă doriți pur și simplu să ajungeți la subiect și să începeți traducerea, treceți mai departe la secțiunea 4.

Pasul 3: Pasul 3: Codul

Codul nostru include 4 procese separate care rulează simultan. Fiecare dintre următoarele secțiuni secundare din acest pas va aprofunda în ceea ce face fiecare dintre ele.

Procesul 1:

Primul proces pe care l-am creat a folosit un divizor de ceas pentru a face afișarea în șapte segmente să funcționeze pentru două segmente, pentru a arăta echivalentul binar al literei pe care persoana a creat-o. Trebuia să ne asigurăm că ceasul afișează corect numărul la cele șapte secțiuni corecte dorite. Am atribuit segmentele în mod corespunzător, astfel încât acestea să afișeze anumite cifre atunci când le-am întrebat și noi, și le-am făcut să parcurgă ultimele 2 cifre, deoarece aveam nevoie doar de 2 pentru a afișa toate numerele din alfabet. Am realizat afișarea celor șapte segmente în sistemul de numere zecimale, astfel încât să fie mai ușor pentru oameni să vadă ce literă încercau să reprezinte, deoarece majoritatea populației folosește sisteme de bază de 10 numere.

Procesul 2:

Al doilea proces creează ceasul nostru pentru ca LED-urile să ruleze, astfel încât să putem vedea impulsurile clar și să facem diferența între Dot și Dash, împreună cu să avem un timp adecvat între fiecare secțiune a codului Morse. Am folosit un semnal pentru a trece un autobuz plin de ieșiri cu cod Morse în afara procesului și pe LED-urile de pe placă, astfel încât să putem aprinde mai multe simultan, mai degrabă decât să avem doar un bliț LED.

Procesul 3:

Al treilea proces analizează stările curente ale comutatorilor și atribuie litera oricărei reprezentări binare care este afișată în acel moment. Aceasta trece prin fiecare dintre litere, împreună cu un spațiu, un punct și o virgulă. Acest proces se încheie aici și toate părțile sunt colectate în al patrulea proces pentru a termina traducerea.

Procesul 4:

Al patrulea proces este procesul „traducător”, care preia toate informațiile pe care le-am adunat până acum, cum ar fi dacă butonul de stocare a fost activat sau nu, dacă comutatorul de imprimare este activat sau nu, și ce număr este reprezentată de întrerupătoare. Aceasta se uită apoi într-o matrice pe care am făcut-o, care are reprezentări în cod Morse a ceea ce ar fi ieșirea cu 1 și 0 egalizând comenzile On / Off pentru LED-uri. În loc să folosim două ceasuri de ciclu de funcționare separate, am creat un singur ceas de ciclu de funcționare de 50%, pe care l-am considerat a fi o viteză bună pentru codul Morse și l-am pus să efectueze un Dot cu 1 "impuls" înalt și un Dash pentru 3 de înaltă " impulsuri. " Pentru a simplifica codul și a-l face să ruleze mai repede, tocmai am creat un punct egal cu „010” și un Dash egal cu „01110”.

Pasul 4: Pasul 4: Generați Bistream și implementați

Acest proiect este foarte ușor de configurat dacă aveți o placă BASYS3, deoarece toate comutatoarele și butoanele necesare sunt deja prezente pe placă pentru a le utiliza, împreună cu constrângerile prestabilite pinilor pe care le doriți. Dacă utilizați un alt FPGA, va trebui să intrați în cod și să găsiți constrângerile și să le redirecționați către constrângerile corecte pentru FPGA. Acest lucru este valabil și dacă intenționați să conectați alte LED-uri și comutatoare la placa dvs. pentru utilizare. Nu vom intra în exemple în acest sens, dar utilizarea manualului de instrucțiuni al FPGA-ului dvs. specific ar fi foarte util pentru a determina cum să conectați și să direcționați totul către pinii corecți.

În acest moment, după ce ați descărcat codul și fișierul este deschis, pur și simplu generați fluxul de biți în Vivado și programați dispozitivul. Odată ce veți avea, veți putea începe să introduceți litere pentru a fi traduse în codul Morse! Bucurați-vă!

* NOTĂ: „Comutatorul de imprimare” este situat în partea stângă a plăcii (comutatorul R2 pentru placa BASYS3), iar „butonul Store” este butonul U18 (butonul central din placa BASYS3) dacă constrângerile sunt preluate direct din codul nostru de exemplu.

Pasul 5: Probleme / Depanare

Dacă întâmpinați probleme la descărcarea fișierului, puteți copia lipiți manual codul din acest fișier Word. Există, de asemenea, un atașament pe care îl puteți verifica pentru conversii ușoare între binare la literă și ceea ce ar trebui să reprezinte litera, așa că vă recomandăm să le verificați! Dacă utilizați placa BASYS3, ar trebui să puteți urmări aceste instrucțiuni și să descărcați codul fără probleme și să îl implementați fără probleme după ce ați conectat placa și l-ați programat.

* NOTĂ: dacă descoperiți că traducătorul dvs. pare că funcționează lent, acest lucru este normal! Există o mică întârziere între momentul în care apăsați tipărirea și când vedeți reprezentarea codului Morse a acestuia. Dacă întrerupeți ciclul oprind comutatorul de imprimare, codul va trebui să finalizeze ciclul înainte de a imprima noua literă, lăsându-vă să așteptați ciclul să se termine și următoarea literă să înceapă.

Recomandat: