Differences

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

Link to this comparison view

pm:prj2023:danieldd:morselight [2023/05/22 00:02]
diana.nucuta
pm:prj2023:danieldd:morselight [2023/05/29 09:04] (current)
diana.nucuta
Line 1: Line 1:
-====== Morse Light ======+{{:​pm:​prj2023:​danieldd:​cod_morse_code.zip|}}====== Morse Light ======
 ===== Un transmitator de cod Morse ===== ===== Un transmitator de cod Morse =====
  
Line 9: Line 9:
   * Ideea de la care am pornit este cea a codificarii unui text.   * Ideea de la care am pornit este cea a codificarii unui text.
   * Utilitatea consta in aplicabilitatea in viata reala.   * Utilitatea consta in aplicabilitatea in viata reala.
 +[[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2023/​danieldd/​poza_proiect.jpeg]]
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 17: Line 18:
 ===== Software Design ===== ===== Software Design =====
  
-Voi folosi Arduiono IDE impreuna ​cu aplicatia de mobil Serial ​Bluetooth Terminal.+Codul include biblioteca `SoftwareSerial` pentru a permite comunicarea ​cu modulul Bluetooth prin intermediul unei conexiuni seriale. Obiectul `BTSerial` este creat pentru a realiza comunicarea pe pinii 2 (RX) și 3 (TX) cu modulul Bluetooth. 
 + 
 +Constantele `ledPin`, `photoresistorPin` și `threshold` definesc numerele de pin pentru LED și fotoresistor,​ respectiv valoarea pragului pentru detectare a intensității luminii. 
 + 
 +În funcția `loop()`, se citește un cuvânt până la întâlnirea caracterului '​\n'​ și se apelează funcția `encryptToMorseCode()` pentru a cripta cuvântul în cod Morse și a stoca rezultatul în bufferul `buffer`. Apoi, se apelează funcția `decodeMorseCode()` pentru a decodifica codul Morse și a obține mesajul decodificat. Mesajul decodificat este trimis prin Bluetooth utilizând `BTSerial`, se afișează conținutul bufferului și se resetează bufferul. Am folosit ​aplicatia ​Arduino Blue Control. Cuvantul se ia de la tastarura in Serial ​Monitor si va fi afisat dupa tot procesul de codare si decodificare in terminalul de la aplicatia Android. 
 + 
 +Funcția `encryptToMorseCode()` primește un cuvânt și îl criptează în cod Morse. Fiecare caracter este verificat și, dacă este o literă mică, este convertită în literă mare. Pentru fiecare caracter, se obține codul Morse corespunzător din array-ul `letters[]` și se adaugă în bufferul `buffer`, apelând în același timp funcția `blinkMorseCode()` pentru a realiza efectul de blink pe LED. Se adaugă și un spațiu în buffer pentru a separa codurile Morse ale caracterelor. Se folosesc și delay-uri pentru a crea ritmul adecvat în blink-ul LED-ului. 
 + 
 +Funcția `blinkMorseCode()` primește un cod Morse și realizează blink-ul LED-ului în funcție de caracterul primit. Se folosește digitalWrite pentru a seta pinul `ledPin` ca HIGH pentru o durată specifică în funcție de codul Morse (punct sau linie) și apoi se setează pinul ca LOW pentru o perioadă scurtă de timp. 
 + 
 +Funcțiile `startReading()` și `endReading()` sunt folosite pentru a citi valorile de lumină de la fotoresistor în timpul blink-urilor LED-ului. `startReading()` este apelată atunci când apare o întrerupere pe pinul `ledPin` și setează flag-ul `readingFlag` ca fiind activat, semnalizând că citirea poate începe. `endReading()` este apelată la sfârșitul citirii și verifică valoarea de lumină de la fotoresistor. În funcție de valoare, adaugă codul Morse corespunzător în buffer și setează flag-ul `readingFlag` ca fiind dezactivat, semnalizând că citirea s-a încheiat. 
 + 
 +Funcțiile `printBuffer()`,​ `resetBuffer()`,​ `decodeMorseCode()` și `decodeMorseCharacter()` sunt folosite pentru afișarea și decodificarea bufferului `buffer` în mesajul final.
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 30: Line 43:
   * Breadboard   * Breadboard
   * Senzor lumina   * Senzor lumina
 +  * Rezistente
 +  * Fire tata-tata, mama-tata
 +
 +===== Downloads =====
 +
 +https://​ocw.cs.pub.ro/​courses/​start?​image=pm%3Aprj2023%3Adanieldd%3Acod_morse_code.zip&​ns=pm%3Aprj2023%3Adanieldd&​tab_details=view&​do=media
 +
 +===== Rezultate Obtinute =====
 +
 +Demo proiect:
 +
 +https://​drive.google.com/​file/​d/​1qtSOMZwuhkAhmybOxxt_7-lEc4UBH_tP/​view?​usp=sharing
  
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/danieldd/morselight.1684702941.txt.gz · Last modified: 2023/05/22 00:02 by diana.nucuta
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