Cristina-Maria NEAGU (78669) - Light morse code translator

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul realizeaza decodificare de cod morse transmis prin lumina pe lcd. Scopul este evident, proiectul ajutand la folosirea comunicatiei prin cod morse.

Descriere generală

Schema bloc:

Senzorul colecteaza datele si le trimite microcontroller-ului prin seriala I2C. Acesta din urma le prelucreaza si le afiseaza pe display.

Hardware Design

Lista de piese:

   Piese de baza
   Header de pini pentru LCD si senzor
   Mufe mama mama pentru conectarea lcd-ului si senzorului la placuta
   Senzor de lumina - TEMT6000
   

   LCD 1602 5V cu backlight verde

Schema electrica:

Software Design

Proiectul contine 2 pasi. La inceput, se fac 5 interogari la senzor pentru a afla valoarea luminii ambientale. Media celor 5 interogari este folosita pentru a determina cand se transmite cod morse si cand nu. Se afiseaza pe LCD valoarea luminii ambientale obtinuta.

Apoi, va incepe translatia obisnuita, lucru indicat prin scrierea pe ecranul LCD-ului a cuvantului START. Fiecare litera este despartita printr-un spatiu, redat ca o durata mai mare de 1.4sec in care nu se aplica lumina. Sfarsitul unei transmisii este redat printr-o iluminare ce dureaza mai mult de 4s. Caracterul Morse scurt (.) este redat printr-o iluminare sub 1s, iar caracterul lung printr-o iluminare ce dureaza mai mult de 1s, dar mai putin de 4s. La sfarsitul unei translatii, placuta este pregatita pentru o noua translatie, lucru ce se evidentiaza prin aparitia pe ecranul LCD-ului a cuvantului START.

Pentru a tine cont de timp, m-am folosit de Timer1 prezent pe microcontroller. In momentul cand nu se detecteaza lumina, dar in iteratia trecuta s-a detectat lumina, inseamna ca s-a terminat de transmis un caracter si se compara valoarea lui TCNT1 cu 1s pentru a afla ce fel de caracter s-a transmis. Se reseteaza valoarea timerului si se porneste din nou. Daca in schimb in iteratia trecuta nu s-a detectat lumina, se compara valoarea lui TCNT1 cu 1s pentru a afla daca s-a transmis un caracter spatiu. Daca da, se adauga la mesaj si se reseteaza timer-ul. La sfarsitul transmisiunii, se parseaza litera cu litera si se afiseaza rezultatul pe ecran.

Am folosit biblioteca pentru LCD prezenta in laboratorul 1, dar si cod din laboratorul 5 pentru ADC, senzorul de lumina fiind unul analogic. Acesta din urma este conectat la canalul 1 al convertorului (PA1).Pentru a afla valoarea captata de senzor, am folosit polling, astfel functia ADC_get(channel) este una blocanta care se intoarce atunci cand conversia s-a terminat.

Rezultate Obţinute

Proiectul este functional, traducerea codului Morse realizandu-se cu succes.

Concluzii

Proiectul a fost interesant, in mare parte am aplicat si imbunatatit cunostintele obtinute la laboratoare. }

Download

Arhiva cu sursele: proiect.zip

Jurnal

6.05.2018 - adaugare schema electrica (milestone 3)

18.05.2018 - conectat lcd si senzor la placuta

20.05.2018 - incepere scriere cod

23.05.2018 - completare documentatie (codul nu este in versiunea finala)

24.05.2018 - finalizare functionalitati si cod proiect

Bibliografie/Resurse

Biblioteca TEMT6000 eagle: https://github.com/sparkfun/Ambient_Light_Sensor_Breakout-TEMT6000
Mod folosire TEMT6000: https://learn.sparkfun.com/tutorials/temt6000-ambient-light-sensor-hookup-guide
Laboratoarele 1 si 5
Schema electrica oferita de echipa de PM

  • Documentația în format PDF
pm/prj2018/vcorneci/cneagu.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