This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:bidirectional_morse_translator [2022/05/08 22:27] catalin.stoian1603 Descriere generala |
pm:prj2022:agmocanu:bidirectional_morse_translator [2022/05/25 22:59] (current) catalin.stoian1603 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Bidirectional Morse Translator ====== | ====== Bidirectional Morse Translator ====== | ||
+ | |||
+ | Stoian Cătălin, 331CB | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
Line 8: | Line 11: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{:pm:prj2022:agmocanu:stoian_catalin_331cb_diagramapm.png?300|}} | + | {{ :pm:prj2022:agmocanu:stoian_catalin_331cb_diagramapm.png?450|Diagrama Bidirectional Morse Translator}} |
Modul in care interactioneaza modulele este unul destul de simplu: butoanele de input (precum si cel de panica) actioneaza doar ca input, trimitand semnale catre placa Arduino. LED-ul, LCD-ul si buzzer-ul sunt toate output-uri - LED-ul si buzzer-ul redau output-ul traducerii, iar LCD-ul indica starea curenta a sistemului. Comunicarea cu PC-ul este speciala, deoarece este bidirectionala - PC-ul trimite mesaje care urmeaza sa fie traduse, dar si primeste traducerile mesajelor primite la restul input-urilor. | Modul in care interactioneaza modulele este unul destul de simplu: butoanele de input (precum si cel de panica) actioneaza doar ca input, trimitand semnale catre placa Arduino. LED-ul, LCD-ul si buzzer-ul sunt toate output-uri - LED-ul si buzzer-ul redau output-ul traducerii, iar LCD-ul indica starea curenta a sistemului. Comunicarea cu PC-ul este speciala, deoarece este bidirectionala - PC-ul trimite mesaje care urmeaza sa fie traduse, dar si primeste traducerile mesajelor primite la restul input-urilor. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | {{ :pm:prj2022:agmocanu:stoiancatalin_331cb_tinkercad.png?350|Tinkercad Diagram}} | ||
Lista de piese: | Lista de piese: | ||
* Arduino UNO R3 | * Arduino UNO R3 | ||
Line 19: | Line 23: | ||
* LED | * LED | ||
* buzzer | * buzzer | ||
- | * 4 butoane | + | * 4 butoane + capace colorate |
+ | * potentiometru | ||
* LCD | * LCD | ||
- | * diverse rezistente | + | * rezistenta de 220Ω |
* fire de legatura | * fire de legatura | ||
- | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | ||
- | * listă de piese | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
- | * diagrame de semnal | ||
- | * rezultatele simulării | ||
- | </note> | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediu de dezvoltare: Arduino IDE | ||
+ | Functii implementate: | ||
+ | * translate_c2m: traduce o litera in cod morse | ||
+ | * translate_m2c: traduce un cod morse intr-o litera | ||
+ | * sentence2morse: se foloseste de translate_c2m sa traduca un mesaj intreg in morse | ||
+ | * morse2sentence: se foloseste de translate_m2c sa traduca un mesaj intreg din morse | ||
+ | |||
+ | Functia loop() contine majoritatea functionalitatilor (descrise in comentariile din cod): | ||
+ | * debounce pentru toate butoanele | ||
+ | * inceperea traducerii din alfabetul latin in cel morse si invers | ||
+ | * citirea valorii de pe potentiometrul din circuit | ||
+ | * transmisia morse non-blocanta | ||
+ | * scrolling-ul ecranului (cand mesajul de tradus nu incape pe un rand) | ||
+ | |||
+ | Codul este inclus la sectiunea Download. | ||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Rezultatele obtinute, sunt, dupa cum se observa din pozele urmatoare, foarte bune. Proiectul merge perfect, ba chiar are anumite functionalitati (de exemplu, display scrolling) la care nici nu m-am gandit intr-o prima faza. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | {{ :pm:prj2022:agmocanu:stoiancatalin_poza1.jpg?300 |Poza ansamblu complet}} |
+ | |||
+ | {{ :pm:prj2022:agmocanu:stoiancatalin_poza2.jpg?300 |Poza breadboard}} | ||
+ | |||
+ | {{ :pm:prj2022:agmocanu:stoiancatalin_poza3.jpg?300 |Poza Arduino + LCD}} | ||
+ | |||
+ | [[https://drive.google.com/file/d/1JOlMe9MKE9ic_kNRrDLJgakRmNJz96Cs/view?usp=sharing|Demo video]]. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | O prima concluzie este ca acesta a fost un proiect distractiv, care mi-a placut destul de mult. As prefera ca mai multe discipline sa aiba un proiect de acest tip, practic. | ||
+ | O a doua concluzie este ca ar trebui sa imi organizez mai bine codul/proiectul, deoarece la inceput am avut problema "de unde incep?". O planificare mai buna din partea mea a proiectului (de exemplu sa ma gandesc ordinea pasilor care trebuie facuti) m-ar fi ajutat enorm. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | [[https://github.com/catalinstoian16/Biderectional-Morse-Translator|Link Github]]. |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | 30.04.2022 - Crearea paginii, scrierea introducerii si a listei de piese | + | **30.04.2022** - Crearea paginii, scrierea introducerii si a listei de piese |
- | 08.05.2022 - Introducerea diagramei proiectului | + | |
+ | **08.05.2022** - Introducerea diagramei proiectului | ||
+ | |||
+ | **16.05.2022** - Testarea individuala a tuturor componentelor | ||
+ | |||
+ | **20.05.2022** - Combinarea componentelor | ||
+ | |||
+ | **21.05.2022** - Scrierea codului in Arduino IDE | ||
+ | |||
+ | **23.05.2022** - Rafinarea codului | ||
+ | |||
+ | **25.05.2022** - Finalizarea documentatiei | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | Sursele folosite: |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ocw.cs.pub.ro/courses/pm/prj2021|Laboratoarele de PM]] |
- | </note> | + | * [[https://www.arduino.cc/reference/en/|Documentatia limbajului Arduino]] |
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |