Decodificator MORSE de semnale luminoase

Marin Cristian-Alexandru(87525) - 333CB

Autorul poate fi contactat la adresa: cristian.marin0805@stud.acs.upb.ro

Introducere

Proiectul va reprezenta un decodificator de semnale luminoase de intensitati diferite (corespunzand . si - din alfabetul Morse) in text alfanumeric. Scopul acestuia este de a creea un device care sa faciliteze procesul de traducere al unei serii de semnale luminoase in caractere, urmand codul Morse. La scara larga proiectul are ca destinatie, utilitatea in cadrul comunicarilor la distanta prin semnale Morse, facilitand procesul de traducere.

Descriere Generală

Proiectul va fi implementat utilizand placa de baza. Aceasta va fi conectata prin USB pentru a incarca codul si pentru alimentare la un calculator.

Placa de baza va dispune de un senzor de lumina (fotodioda) care va recepta semnale luminoase a doua durate diferite, corespunzatoare simbolurilor din codul Morse(. si -).

Semnalul luminos poate fi trimis de orice sursa ce dispune de un control al intensitatii si duratei acesteia. Pentru testare se poate folosi orice aplicatie de “Lanterna” de pe un mobil, care dispune de control al duratei si intensitatii luminii emise.

Apoi se va realiza translatarea. Se va monitoriza receptia celor doua durate de lumina de o anumita intensitate si se vor contoriza doua durate de lipsa de lumina (corespunzatoare spatiului intre simbolul unui caracter si a spatiului intre caractere).

Rezultatul decodificarii semnalelor, va fi afisat in format de text alfanumeric pe un Display LCD.

Schema bloc:

Hardware Design

Lista de piese:

Nume Piesa Descriere/OBS/LINK
PCB PM2019
Componente de baza Setul de componente de baza pentru PCB
Senzor de lumina Fotodioda (https://www.optimusdigital.ro/ro/senzori-senzori-optici/750-modul-senzor-de-lumina-ambientala-temt6000.html)
LCD Display LCD 2×16 (https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/867-modul-lcd-1602-cu-backlight-galben-verde-de-5v.html)
Alte pieseConectori, condensatori, fire, rezistente, butoane

Schema electrica:

Software Design:

Am implementat un translator MORSE de semnale luminoase in text continand caractere alfanumerice. Utilizand o aplicatie de mobil ce reda lumina controlat (cu intensitati diferite pentru diferite simboluri) generez semnalul luminos in codificare Morse ce va fi translatat in text afisat pe LCD de catre decodor.

Descriere a implemntarii si functionalitatii:

La inceput se initializeaza LCD-ul si senzorul de lumina (fotodioda) si se efectueaza setupul:

  1. butonul de RESET reseteaza decodorul
  2. butonul de USER face clear la display
  3. ledul de alimentare si ledul care semnaleaza pauza intre cuvinte

Intr-o faza incipienta senzorul va calcula o intensitate medie de referinta ce corespunde luminii ambientale (valorile mici pana la 0 reprezinta intuneric iar maximul de lumina este redat prin valoarea 1023). Senzorul va prelua un set de valori initiale a coror medie va da lumina ambientala. Un factor al acestei lumini (130%) va corespunde luminii de referinta peste pragul careia se va considera de catre decodor ca s-a identificat un semnal luminor de translatat.

In continuare timp de cateva secunde LCD-ul va afisa aceasta valoare a luminii ambientale. Dupa acesta si pana cand v-a primi un semnal luminos peste prag(threshold) pe LCD vor fi afisate esantioane ale valorii luminii curente (timpul dintre doua esantioane a fost ales 30ms - suficient pentru o afisare perceptibila pe LCD).

La momentul identificatii unui semnal luminos peste prag se incepe decodificarea propriu-zisal; in functie de durata semnalului luminos pana la urmatorul prag de lumina sub prag (lipsa semnalului) se coreleaza semnalul primit cu ”.” (200ms-300ms) sau ”-” (450ms- 600ms) si se continua receptionarea si memorarea bufferata a acestor simboluri. La lipsa de cel putin 450ms intre doua simboluri se considera finalizata decodificarea unui caracter si se afiseaza in continuare pe LCD. La o lipsa de lumina de peste 1s se considera ca fiind un spatiu intre cuvinte (semnalat de LED). Textul accepta alat literele alfabetului englez cat si cifre si simboluri. Simbolul ”+” identificat de decodor corespunde tot spatiului prin translatare (in caz de text cursiv). Decodorul ruleaza la nesfarsit din momentul pornirii acestuia asteptand pasiv in economisire de energie o noua primire a unui semnal luminos.

Observatii:

  • caracterul se decodifica liniar
  • rezultatul luminii instantanee poate fi afisat atat in unitati de lumina (semnal analogic 0-1023) cat si in volti folosind functia ADC_voltage().
  • spatiul poate fi semnalat atat prin concatenarea cuvintelor folosind simbolul ”+” la generarea semnalului cat si prin lipsa unui semnal luminos de cel putin 1s
  • simbolurile ”.” si ”-” se decodifica numarand de cate ori un semnal luminos este identificat propagat pe esantioane, incadrandu-se intr-unul din intervalele specifice acestora doua.

Rezultate Obținute

Imagini proiect finalizat ca functionalitate:

1) Decodor - parte HARDWARE

2) Lumina ambientala

3) Decodificare text

Imagini proiect finalizat functionalitate + carcasa :-D :

4) Cutie decodor + text

5) “Continut decodor” :-O

Concluzii

Poriectul a fost finalizat si functioneaza in intregime asa cum mi-am propus. A fost primul proiect de acest gen la care am lucrat pana acum, si a fost interesant, putin dificil. Am inteles mai bine subiectele abordate in cadrul laboratoarelor si acum ca am mai inteles lucruri mi-au venit idei pentru viitoare lucruri pe care as putea sa le mai incerc.

DEMO

Download

Continut:

  • morsedecoder.c - contine fucntiile si implementarea pentru decodor
  • lcd.h - contine biblioteca pt LCD adaptata pentru folosirea de pe headerul de 16 pini de pe pcb-ul “PM2019”
  • lcd.c - contine implentarea functiilor pentru LCD(din laboratoarele de pm)
  • Makefile - cu make se genereaza .elf si .hex care vor fi folosite pentru a incarca executabilul pe placuta; portul este specific pentru LINUX
  • bootloadHID - executabil pentru a incarca .hex pe placuta

LINK: marin_alexandru_333cb_proiect_pm_morse_decoder.zip

Jurnal

  1. Achizitionat placuta: 9 Aprilie
  2. Achizitionat componente de baza: 15 Aprilie
  3. Lipituri placa de baza: 16 Aprilie
  4. Incarcare bootloader: 23 Aprilie
  5. Achizitionare componente(LCD + Senzor de lumina): 25 Aprilie
  6. Schema electrica: 5 Mai
  7. Pregatirea mediului de lucru (afisare lumina ambientala pe LCD): 10 Mai
  8. Implementarea Decodorului de lumini cu receptie de la o aplicatie de lanterna de mobil : 11-18 Mai
  9. Finalizare proiect + documentatie : 19 Mai

Bibliografie/Resurse

pm/prj2019/apredescu/morse-decoder.txt · Last modified: 2021/04/14 17:07 (external edit)
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