Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:cezar.zlatea:rodion.balaniuc [2026/05/07 22:55]
rodion.balaniuc
pm:prj2026:cezar.zlatea:rodion.balaniuc [2026/05/14 16:55] (current)
rodion.balaniuc [Concluzii]
Line 1: Line 1:
-====== ​Nume proiect ​======+====== ​Signal Corps - Old School Morse Code Trainer ​====== 
 ===== Introducere ===== ===== Introducere =====
  
 <note tip> <note tip>
-Prezentarea pe scurt a proiectului vostru: +Signal Corps Trainer ​este un dispozitiv embedded ​de antrenament si decodare ​codului Morse, construit pe placa ATmega328P-XMINI si o cheie telegrafică vintage sovietică ca interfata ​de intrare.
-  * ce face +
-  * care este scopul lui +
-  * care a fost ideea de la care aţi pornit +
-  * de ce credeţi că este util pentru alţii şi pentru voi+
 </​note>​ </​note>​
-===== Descriere generală ===== 
  
-<note tip> +Ce face proiectul: 
-O schemă bloc cu toate modulele proiectului vostruatât software cât şi hardware însoţită de descriere ​acestora precum ​şmodului în care interacţionează.+  * Utilizatorul trimite cod Morse apasand cheia telegrafică, iar sistemul decodează caracterele in timp real si le afisează pe LCD 
 +  * In modul Trainer, sistemul propune ​litera aleatorie si verifica daca fost transmisa corect 
 +  * In modul Decoder, orice semnal primit este interpretat si afişat fara restrictii 
 +  * Pe ecranul OLED se vizualizeaza forma de unda semnalului 
 +  * Buzzerul si LED-urile ofera feedback audio-vizual imediat
  
-Exemplu de schemă blochttp://www.robs-projects.com/​mp3proj/​newplayer.html+Scopul proiectului este sa transforme o cheie telegrafică intr-un instrument functional de invatare. Codul Morse nu tine doar de istorieeste folosit in radioamatorism,​ aviatie civila si comunicatii de urgenta. 
 + 
 +<note tip> 
 +Fata de aplicatiile software de invatare Morse, acest dispozitiv ofera senzatia mecanica reala a cheii si sunetul pe care il auzeau operatorii acum cateva deceniiCombinatia dintre feedback fizic si audio face memorarea mai rapida decat invatatul vizual.
 </​note>​ </​note>​
 +
 +===== Descriere Generala =====
 +
 +**Schema bloc:**
 +
 +{{:​pm:​prj2026:​cezar.zlatea:​signalcorpsdiagramdrawio.png?​700|Schema bloc Signal Corps Trainer}}
 +
 +Descrierea modulelor:
 +
 +  * **ATmega328P-XMINI** ruleaza intreaga logica: masoara durata impulsurilor de la cheie, decodifica caracterele Morse, actualizeaza afisajele si controleaza buzzerul si LED-urile. Programarea se face direct prin USB via mEDBG, fara programator extern.
 +
 +  * **LCD 1602 (I2C, 0x27)** afiseaza caracterele decodate si starea curenta a sistemului (modul activ, scor, erori).
 +
 +  * **OLED 0.96" SSD1306 (I2C, 0x3C)** arata forma de unda a semnalului in timp real, cu scroll orizontal, si animatii la fiecare raspuns.
 +
 +  * **Senzorul KY-037** citeste nivelul de zgomot ambiental pe A0. Daca depaseste un prag setat, LED-ul rosu se aprinde ca avertizare.
 +
 +  * **Cheia telegrafică** este conectata la D2 (INT0) si genereaza impulsuri de durata variabila. Clasificarea dot/dash se face pe baza timpului cat e apasata.
 +
 +  * **Butonul SW2 pe D6** comuta intre modul Trainer si modul Decoder la fiecare apasare.
 +
 +  * **Buzzerul piezo pasiv pe D9** scoate un ton de 700 Hz cat timp cheia e apasata, folosind functia tone().
 +
 +  * **LED verde** confirma un raspuns corect in modul Trainer, **LED rosu** semnalizeaza o greseala sau zgomot detectat.
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +
 +==== Lista de Piese ====
 +
 +^ Referinta ^ Componenta ​                   ^ Rol                             ^ Cant. ^
 +| U1        | ATmega328P-XMINI ​             | Microcontroler principal ​       | x1    |
 +| U2        | LCD 1602 cu interfata I2C     | Afisaj text 16x2                | x1    |
 +| U3        | OLED 0.96" SSD1306 ​           | Afisaj grafic 128x64 ​           | x1    |
 +| SEN1      | Senzor sunet KY-037 ​          | Intrare acustica analogica ​     | x1    |
 +| SW1       | Cheie telegrafică vintage ​    | Intrare haptica Morse           | x1    |
 +| SW2       | Push-button ​                  | Selector mod Trainer/​Decoder ​   | x1    |
 +| BZ1       | Buzzer Piezo Pasiv            | Iesire audio ton Morse          | x1    |
 +| LED1      | LED Verde 5mm                 | Indicator raspuns corect ​       | x1    |
 +| LED2      | LED Rosu 5mm                  | Indicator eroare / zgomot ​      | x1    |
 +| R1, R2    | Rezistor 220Ω                 | Limitare curent LED-uri ​        | x2    |
 +| R3        | Rezistor 10kΩ                 | Pull-up extern (optional) ​      | x1    |
 +| C1        | Condensator 100nF             | Decuplare alimentare ​           | x1    |
 +| --        | Breadboard + fire jumper ​     | Conectica prototip ​             | --    |
 +
 +==== Conexiuni Electrice - Pinout ====
  
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware design: +Toti pinii se refera la placa ATmega328P-XMINI. Alimentarea la 5V vine direct prin USBnu nevoie de sursa externa.
-  * 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>​ </​note>​
  
-===== Software Design =====+^ Pin MCU    ^ Tip      ^ Conectat la                                              ^ 
 +| PC4 (A4)  | SDA      | LCD 1602 + OLED SSD1306 (magistrala I2C partajata) ​      | 
 +| PC5 (A5)  | SCL      | LCD 1602 + OLED SSD1306 (magistrala I2C partajata) ​      | 
 +| PC0 (A0)  | Analog ​  | KY-037 iesire analogica (AO)                             | 
 +| D2        | INT0     | Cheie telegrafică (intrerupere hardware) ​                | 
 +| D6        | Digital ​ | Buton selector mod                                       | 
 +| D7        | Digital ​ | LED Verde prin R1 (220Ω) ​                                | 
 +| D8        | Digital ​ | LED Rosu prin R2 (220Ω) ​                                 | 
 +| D9        | PWM      | Buzzer Piezo Pasiv -- functia tone() ​                    | 
 +| 5V        | Power    | Alimentare toate componentele ​                           | 
 +| GND       | Power    | Masa comuna ​                                             |
  
 +==== Note Tehnice ====
 +
 +<note important>​
 +Magistrala I2C este partajata intre LCD si OLED. Coexistenta functioneaza fara probleme deoarece cele doua dispozitive au adrese diferite: LCD = 0x27, OLED = 0x3C.
 +</​note>​
 +
 +  * SW1 si SW2 folosesc pull-up intern (''​INPUT_PULLUP''​). Rezistenta de 10kΩ externa este optionala.
 +  * C1 (100nF) se plaseaza cat mai aproape de pinii VCC/GND ai MCU-ului pentru a filtra zgomotul de pe linia de alimentare.
 +  * Intreg sistemul e alimentat la 5V prin USB de pe placa X-MINI.
 +
 +==== Schema Electrica ====
 +
 +Circuitul este asamblat pe breadboard cu fire jumper. Schema include:
 +  * Magistrala I2C cu cele doua afisaje in paralel
 +  * R1 si R2 in serie cu LED-urile
 +  * C1 intre VCC si GND
 +  * Cheia telegrafică intre D2 si GND, cu pull-up intern activ
 +
 +===== Software Design =====
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +TODO -- va fi completat intr-o actualizare viitoare.
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
-===== Rezultate ​Obţinute ​=====+===== Rezultate ​Obtinute ​=====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+  * Cheia telegrafică functioneaza corect ca intrerupator simplu, detectata prin ''​INPUT_PULLUP''​ pe D2 
 +  * Buzzerul genereaza 700 Hz sincronizat cu apasarea cheii, fara latenta perceptibila 
 +  * OLED-ul afiseaza starea si forma de unda in timp real 
 +  * Magistrala I2C cu doua dispozitive la adrese 0x27 si 0x3C functioneaza stabil 
 +  * LED-urile verde si rosu raspund corect pe D7 si D8
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Proiectul a pornit de la o cheie telegrafică veche si a ajuns un dispozitiv functional de invatare. Ce e interesant e ca obiectul fizic schimba complet experienta fata de o simpla aplicatie: senzatia mecanica si sunetul buzzerului fac invatatul mai intuitiv.
 +
 +Pe parcurs au aparut cateva probleme neasteptate,​ in special cu configurarea driver-ului mEDBG in Arduino IDE si cu calibrarea timpilor pentru dot/dash la viteze diferite de tastare. Partajarea magistralei I2C intre doua dispozitive a necesitat atentie la adrese, dar a functionat fara modificari hardware.
 +
 +<note tip>
 +Dificultati intampinate:​
 +  * Configurarea board-ului ATmega328P-XMINI in Arduino IDE si instalarea driver-ului mEDBG
 +  * Partajarea magistralei I2C fara conflicte de adrese
 +  * Calibrarea pragurilor de timing dot/dash in functie de viteza de tastare
 +</​note>​
  
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării ​proiectului: ​surse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+Arhiva ​proiectului ​contine: 
 +  * Codul sursa complet (''​.ino''​) 
 +  * Schema electrica (PDF) 
 +  * Fisier ''​README.md''​ cu instructiuni de instalare si utilizare 
 +  * ''​ChangeLog''​ cu istoricul versiunilor
  
-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**.+Fisierele ​se incarca ​pe wiki folosind facilitatea **Add Images or other files**.
 </​note>​ </​note>​
  
Line 57: Line 143:
  
 <note tip> <note tip>
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului.+  * **25.04.2026** - Comanda componentelor 
 +  * **26-30.04.2026** - Saptamana ​de asteptare a livrarii, citire datasheet-uri 
 +  * **02.05.2026** - Primire componente, verificare individuala 
 +  * **03.05.2026** - Test cheie telegrafică cu multimetru si lipirea a 2 cabluri cu ciocan ​de lipit 
 +  * **04.05.2026** - Setup Arduino IDE, driver mEDBG, primul upload functional 
 +  * **05.05.2026** - Asamblare breadboard, test cheie + buzzer + OLED 
 +  * **06.05.2026** - Integrare LCD pe I2C, verificare coexistenta cu OLED 
 +  * **07.05.2026** - Documentatie pe wiki, schema bloc draw.io
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse =====+===== Bibliografie / Resurse =====
  
-<​note>​ +==== Resurse Hardware ​====
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</​note>​+
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+  * [[https://www.microchip.com/​en-us/​development-tool/​atmega328p-xmini|ATmega328P-XMINI User Guide - Microchip Technology]] 
 +  * [[https://​cdn-shop.adafruit.com/​datasheets/​SSD1306.pdf|SSD1306 OLED Driver Datasheet - Solomon Systech]] 
 +  * [[https://​arduinomodules.info/​ky-037-high-sensitivity-sound-detection-module/​|KY-037 Sound Sensor Module - Arduino Modules Info]]
  
 +==== Resurse Software ====
 +
 +  * [[https://​github.com/​adafruit/​Adafruit_SSD1306|Adafruit SSD1306 Library - GitHub]]
 +  * [[https://​github.com/​adafruit/​Adafruit-GFX-Library|Adafruit GFX Library - GitHub]]
 +  * [[https://​www.arduino.cc/​reference/​en/​|Arduino Language Reference - arduino.cc]]
 +  * [[https://​www.itu.int/​rec/​R-REC-M.1677/​en|Morse Code Timing Standard - ITU-R M.1677-1]]
 +
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2026/cezar.zlatea/rodion.balaniuc.1778183724.txt.gz · Last modified: 2026/05/07 22:55 by rodion.balaniuc
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0