This shows you the differences between two versions of the page.
pm:prj2021:abirlica:morse_code_decoder [2021/06/04 13:08] liza_maria.neacsu |
pm:prj2021:abirlica:morse_code_decoder [2021/06/04 18:56] (current) liza_maria.neacsu |
||
---|---|---|---|
Line 25: | Line 25: | ||
Pentru matrice am utilizat 64 de led-uri și 8 rezistențe de 180 ohm fiecare. Led-urile sunt cuplate astfel încât să formeze linii(catod) și coloane(anod) de câte 8. Fiecare linie este apoi conectată la câte un rezistor. Pentru a aprinde un led al matricei(linia 2, coloana 6), este nevoie să fie shiftate aceste valori în registrele de shiftare. Pentru a transmite datele câtre registre vom utiliza un vector de 8 bytes, fiecare element reprezentând o linie și fiecare bit din byte reprezintă câte un led. | Pentru matrice am utilizat 64 de led-uri și 8 rezistențe de 180 ohm fiecare. Led-urile sunt cuplate astfel încât să formeze linii(catod) și coloane(anod) de câte 8. Fiecare linie este apoi conectată la câte un rezistor. Pentru a aprinde un led al matricei(linia 2, coloana 6), este nevoie să fie shiftate aceste valori în registrele de shiftare. Pentru a transmite datele câtre registre vom utiliza un vector de 8 bytes, fiecare element reprezentând o linie și fiecare bit din byte reprezintă câte un led. | ||
- | Pentru a aprinde led-ul de pe linia 2 și coloana 6, vectorul va arăta astfel: | + | |
- | unsigned char LEDS[8]; | + | <note>Pentru a aprinde led-ul de pe linia 2 și coloana 6, vectorul va arăta astfel: |
+ | * unsigned char LEDS[8]; | ||
* LEDS [7] = B00000000; | * LEDS [7] = B00000000; | ||
* LEDS [6] = B00000000; | * LEDS [6] = B00000000; | ||
Line 34: | Line 35: | ||
* LEDS [2] = B00000000; | * LEDS [2] = B00000000; | ||
* LEDS [1] = B00000100; | * LEDS [1] = B00000100; | ||
- | * LEDS [0] = B00000000; | + | * LEDS [0] = B00000000; |
+ | </note> | ||
=====Schemă bloc===== | =====Schemă bloc===== | ||
Line 41: | Line 43: | ||
====Hardware Design==== | ====Hardware Design==== | ||
+ | |||
+ | * Senzor de lumină | ||
+ | Senzorul de lumină este utilizat pentru a percepe semnale luminoase de diferite intensități și durate pe care ulterior le transmite ca input pentru a fi analizate. | ||
+ | * LCD | ||
+ | LCD-ul este utilizat pentru a afișa semnalele luminoase percepute de senzor transformate în text alfanumeric. | ||
+ | * Registrele de shiftare | ||
+ | Acestea sunt utilizate pentru a putea aprinde anumite led-uri de pe matrice, neavând la dispoziție suficienți pini. | ||
+ | * Matricea de led-uri | ||
+ | Este utilizată pentru a reprezenta un anumit caracter alfanumeric primit ca input de la senzor. | ||
===Schemă electrică=== | ===Schemă electrică=== | ||
Line 64: | Line 75: | ||
=====Software Design===== | =====Software Design===== | ||
+ | |||
+ | Pentru implementarea software am utilizat Arduino IDE. | ||
+ | |||
+ | Valorile transmise de senzorul de lumină se încadrează între 0(întuneric) și 1023(valoarea maximă de lumină). Prima etapă în procesul de decodare este calcularea unei valori pentru lumina ambientală, aceasta poate varia puțin. Transmiterea semnalelor luminoase se face prin intermediul unei aplicații de pe telefonul mobil și durează aproximativ 270ms pentru un punct și 460, 470ms pentru o linie. Și pentru acestea pot exista mici variațiuni de câteva milisecunde. | ||
+ | |||
+ | La momentul identificării unui semnal luminos, procesul de decodificare începe. În funcție de durata sa se stabilește dacă este punct sau linie, și este adăgat într-un buffer pentru a fi transformat în text alfanumeric. | ||
+ | |||
+ | ==Biblioteci utilizate== | ||
+ | #include <LiquidCrystal.h> folosit pentru transmitea datelor către LCD. | ||
+ | |||
+ | #include <SPI.h> folosit pentru a transmite date registrelor de shiftare și pentru a accesa Pinii. | ||
+ | |||
+ | ==Activity Diagram== | ||
+ | |||
+ | {{:pm:prj2021:abirlica:activity_diagram_morse.png?300|}} | ||
+ | |||
+ | |||
+ | ====Concluzii==== | ||
+ | |||
+ | Pe parcursul realizării proiectului am învățat să lipesc și să asamblez componentele, să programez pe o plăcuță Arduino și să interpretez datele percepute de senzorul de lumină. Din păcate, nu am reușit să implementez toate funcționalitățile propuse inițial. | ||
+ | |||
+ | ====Rezultate obținute==== | ||
+ | |||
+ | {{:pm:prj2021:abirlica:morsecomponents.jpeg?300|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:morselcd.jpeg?300|}} | ||
+ | |||
+ | |||
+ | =====Download===== | ||
+ | |||
+ | {{:pm:prj2021:abirlica:morse.zip|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:morse1.zip|}} | ||
+ | |||
+ | ====Link YouTube==== | ||
+ | |||
+ | https://www.youtube.com/watch?v=7oijisAGcJ4 | ||
+ | |||
+ | ====Jurnal==== | ||
+ | |||
+ | * 29.04.2021 - Plasare comandă componente | ||
+ | * 05.05.2021 - Primirea ultimelor componente | ||
+ | * 10.05.2021 - Lipire matrice de led-uri, LCD, Senzor de lumină și testare | ||
+ | * 28.05.2021 - Asamblare componente conform schemei electrice | ||
+ | * 01.06.2021-04.06.2021 - Implementare | ||
+ | |||
+ | ====Bibliografie/Resurse==== | ||
+ | |||
+ | <note tip> | ||
+ | * https://www.youtube.com/watch?v=WFPXv2a3RdE | ||
+ | * https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | ||
+ | * Laboratoare: https://ocw.cs.pub.ro/courses/pm | ||
+ | * https://www.youtube.com/watch?v=MGsXzH7EcMY | ||
+ | </note> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||