This shows you the differences between two versions of the page.
pm:prj2022:dene:learn_morse [2022/05/26 13:29] alexandru.ilie2108 [Software Design] |
pm:prj2022:dene:learn_morse [2022/05/27 11:52] (current) alexandru.ilie2108 [Hardware Design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Sistem pentru invatare cod Morse ====== | ====== Sistem pentru invatare cod Morse ====== | ||
- | <note tip> | + | |
* Autor: Ilie Alexandru-Gabriel | * Autor: Ilie Alexandru-Gabriel | ||
* Grupa: 331CB | * Grupa: 331CB | ||
- | </note> | + | |
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | ||
Acest proiect este destinat pentru a învăța codul Morse. Pentru îndeplinirea acestui scop, exista trei moduri diferite: | Acest proiect este destinat pentru a învăța codul Morse. Pentru îndeplinirea acestui scop, exista trei moduri diferite: | ||
* învățare, unde se pot scrie cuvinte prin interfața seriala pentru a vedea care este traducerea lor in Morse, atat prin sunet, cat si printr-un motor ce va fi acționat pentru a simula impulsurile, | * învățare, unde se pot scrie cuvinte prin interfața seriala pentru a vedea care este traducerea lor in Morse, atat prin sunet, cat si printr-un motor ce va fi acționat pentru a simula impulsurile, | ||
Line 17: | Line 16: | ||
Proiectul este util pentru oricine doreste sa se distreze si sa invete codul Morse. | Proiectul este util pentru oricine doreste sa se distreze si sa invete codul Morse. | ||
- | </note> | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | ||
{{pm:prj2022:dene:ilie_alexandru_schema_bloc.png}} | {{pm:prj2022:dene:ilie_alexandru_schema_bloc.png}} | ||
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | ||
Lista pieselor: | Lista pieselor: | ||
* Arduino UNO | * Arduino UNO | ||
Line 35: | Line 32: | ||
* Fire de legătură | * Fire de legătură | ||
* Rezistențe | * Rezistențe | ||
- | </note> | + | |
+ | {{pm:prj2022:dene:schema_electrica_pm_alexandru_ilie.png?800x700}} | ||
{{pm:prj2022:dene:sch_el_Alexandru_Ilie_2.png}} | {{pm:prj2022:dene:sch_el_Alexandru_Ilie_2.png}} | ||
Line 41: | Line 39: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | <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> | ||
**Logica jocului** | **Logica jocului** | ||
Line 83: | Line 73: | ||
Pentru decoficarea unui simbol alfanumeric am folosit un arbore binar (practic un arbore trie, dar fiind doar doua simboluri posibile e binar) prin care iterez pentru a verifica litera la care se ajunge. Un "." inseamna parcurgerea arborelui stang, iar o "_" inseamna parcurgerea arborelui drept. Pentru mai multe detalii am atasat aceasta imagine. | Pentru decoficarea unui simbol alfanumeric am folosit un arbore binar (practic un arbore trie, dar fiind doar doua simboluri posibile e binar) prin care iterez pentru a verifica litera la care se ajunge. Un "." inseamna parcurgerea arborelui stang, iar o "_" inseamna parcurgerea arborelui drept. Pentru mai multe detalii am atasat aceasta imagine. | ||
+ | |||
+ | In implementarea mea nu am folosit un arbore per se, ci am codificat acest arbore printr-un vector, inceputul arborelui stang pentru nodul i fiind la indexul 2*i + 1, iar al arborelui drept la 2*i + 2. | ||
{{pm:prj2022:dene:morse_tree.png}} | {{pm:prj2022:dene:morse_tree.png}} | ||
Line 89: | Line 81: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Am reusit sa realizez toate cele 3 moduri pe care mi le-am propus initial, astfel facilitand invatarea codului Morse printr-un joc interactiv. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Proiectul este 100% functional si poate fi folosit pentru invatare si testare. |
- | </note> | + | |
+ | Am atasat si cateva poze din cele 3 moduri existente. | ||
+ | |||
+ | **Galerie foto** | ||
+ | |||
+ | {{pm:prj2022:dene:mod_0_-_invatare.jpeg?500x400}} | ||
+ | {{pm:prj2022:dene:mod_1_-_test_usor.jpeg?500x400}} | ||
+ | {{pm:prj2022:dene:mod_2_-_test_greu.jpeg?500x400}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | E primul proiect de acest gen pe care il fac fizic (la ADIV a fost facut in TinkerCad) si este intr-adevar mult mai interesant sa legi fizic pin-urile, sa lipesti si verifici piesele. | ||
+ | |||
+ | Per total sunt multumit de rezultatul proiectului si am si invatat mai multe simboluri din codul Morse. :D | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | ||
- | 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> | ||
+ | {{pm:prj2022:dene:ilie_alexandru_proiect_pm.zip}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | Etapele proiectului: |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 22 Aprilie - au ajung piesele |
- | </note> | + | * 29 Aprilie - Prezentare Milestone 1 |
+ | * 14 Mai - verificare functionare corecta piese | ||
+ | * 15 Mai - algoritm de decodificare | ||
+ | * 21 Mai - implementare mod invatare | ||
+ | * 22 Mai - implementare moduri de test | ||
+ | * 23 Mai - Prezentare Milestone 2 | ||
+ | * 26 Mai - Wiki | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | **Resurse Software** |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | [[https://en.wikipedia.org/wiki/Morse_code|Informatii despre codul Morse]] |
+ | |||
+ | [[https://www.101computing.net/morse-code-using-a-binary-tree/|Implementare decodificare cu arbori]] | ||
+ | |||
+ | [[https://ocw.cs.pub.ro/courses/pm/lab/lab2-2022|Laboratoare]] | ||
+ | |||
+ | [[https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library|Biblioteca pentru LiquidCrystal cu I2c]] | ||
+ | |||
+ | [[https://github.com/nabontra/ServoTimer2|Biblioteca pentru servomotor ce nu foloseste Timer1]] | ||
<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> | ||