Table of Contents

DashDot Morse Coach

1. Introducere

DashDot Morse Coach este un sistem hardware interactiv dedicat învățării și perfecționării codului Morse, conceput pentru a transforma experiența tradițională de telegrafie într-un proces de instruire dinamic și modern. Sistemul funcționează ca un antrenor digital capabil să traducă în timp real semnalele introduse prin apăsări de buton în text alfanumeric, oferind utilizatorului un feedback complex: auditiv prin buzzer, vizual prin afișajul LCD și mecanic prin intermediul unui vitezometru analogic.

Scopul principal al proiectului este de a facilita memorarea alfabetului Morse prin combinarea sunetului, a textului digital și a mișcării mecanice, mutând accentul de la o învățare pasivă la o experiență practică, unde utilizatorul este motivat constant de indicatorii de performanță. Prin calcularea vitezei de scriere (WPM), sistemul permite monitorizarea progresului în timp real, oferind pasionaților un prim contact ideal cu telegrafia și o modalitate de perfecționare a ritmului de comunicare în codul Morse.

2. Descriere generală

Funcționarea sistemului DashDot Morse Coach se bazează pe preluarea semnalelor transmise manual de utilizator și transformarea acestora în informații digitale procesabile prin intermediul unei mașini de stări. Microcontrolerul monitorizează constant starea butoanelor de input, calculând cu precizie durata fiecărei apăsări pentru a distinge între elementele fundamentale ale codului (punctul și linia) și pentru a permite navigarea între cele două moduri principale de operare:

Interacțiunea dintre modulele proiectului este organizată astfel:

3. Hardware Design

Componentele fizice utilizate pentru construirea antrenorului DashDot Morse Coach sunt următoarele:

Componentă Specificații Tehnice Rol în Proiect
Microcontroler ATmega328P (XMINI) Unitatea centrală de procesare; gestionează logica de decodificare și interfețele.
Display LCD 1602 I2C Feedback vizual principal: afișează textul tradus și statisticile de performanță.
Servomotor Micro SG90 Indicator mecanic analogic pentru vizualizarea vitezei de scriere (WPM).
Buzzer Pasiv 3.3V Feedback sonor sincronizat cu apăsările, ajutând la formarea memoriei auditive.
Butoane(3x) Push-button tactil PD2 (Morse), PD4 (Next/Practice), PD7 (Done/Exam).
LED-uri(3x) Verde, Roșu, Galben Semnalizare vizuală pentru Pass (PB0), Fail (PB1) și înregistrare (PB3).
Rezistențe 220 Ohm / 10k Ohm Protecția componentelor (LED/Buzzer) și limitarea curentului.
Cabluri Jumper Wires Realizarea conexiunilor electrice între periferice și placa de dezvoltare.

3.1. Schema Electrică

4. Software Design

Descrierea codului aplicaţiei (firmware)

Firmware-ul aplicației gestionează în timp real achiziția de semnale, decodificarea caracterelor Morse, controlul perifericelor de feedback și navigarea într-o structură ierarhică de meniuri. Sistemul este asincron, bazându-se pe mecanisme de întreruperi pentru a elimina latențele de procesare și pentru a asigura o precizie maximă în cronometrarea impulsurilor.

Din punct de vedere didactic, structura software-ului integrează conceptele fundamentale din trei laboratoare distincte, aplicate simultan pe lângă funcțiile de bază de I/O digital (GPIO):

Mediu de dezvoltare

Biblioteci şi surse 3rd-party folosite

Pentru a asigura o eficiență maximă și un consum minim de memorie, proiectul este dezvoltat nativ, fără utilizarea unor biblioteci externe sau framework-uri complexe. Controlul perifericelor se realizează prin configurarea directă a regiștrilor microcontrolerului, fiind utilizate doar bibliotecile standard incluse în compilatorul avr-gcc:

Algoritmi şi structuri implementate

$$WPM = \frac{char\_count \times 12}{t\_total}$$

(Notă: Formula derivă din standardul internațional Paris (standardul Morse), unde un cuvânt standard are o lungime medie de 5 caractere. Constanta 12 reprezintă simplificarea matematică a raportului dintre cele 60 de secunde dintr-un minut și cele 5 caractere per cuvânt ($\frac{60}{5} = 12$), asigurând un calcul rapid pe 8 biți).

(Etapa 3) Surse şi funcţii implementate

Listă funcții critice

Funcție Tip Returnat Descriere și Rol Hardware
`I2C_init()`, `I2C_start()`, `I2C_stop()`, `I2C_write()` `void` Driverul software nativ pentru protocolul TWI (I2C) la frecvența de 100 kHz.
`LCD_init()`, `LCD_command()`, `LCD_print()` `void` Inițializează ecranul în mod de control pe 4 biți și gestionează afișarea textului.
`set_servo_angle(uint8_t angle)` `void` Modifică registrul `OCR1B` pentru a varia lățimea pulsului PWM (Timer 1) între 1 ms și 2 ms.
`decode_morse(char* cod)` `char` Returnează litera corespunzătoare șirului de puncte și linii sau `?` pentru cod invalid.
`hardware_init()` `void` Configurează direcțiile pinilor (DDR), rezistențele pull-up și timerele hardware.

Gestionarea Întreruperilor (ISR)

5. Rezultate Obţinute

În urma implementării hardware și software, sistemul DashDot Morse Coach este complet funcțional și rulează conform specificațiilor, oferind o experiență interactivă și fluidă.

Mai jos sunt prezentate imaginile cu cele trei stări principale ale proiectului (Meniul de pornire, Afișarea erorilor în caz de FAIL și Validarea succesului în caz de PASS):

6. Concluzii

A fost un proiect foarte tare de realizat și chiar mi-a plăcut mult să lucrez la el și să mă joc cu el. Pe parcursul dezvoltării, am aprofundat implementarea unei mașini de stări (FSM) și lucrul direct cu timerele și întreruperile pe microcontrolerul ATmega328P.

7. Jurnal

8. Bibliografie/Resurse

Export to PDF