Differences

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

Link to this comparison view

pm:prj2022:abirlica:lightsinger [2022/05/31 23:55]
ionut_cristian.tacu
pm:prj2022:abirlica:lightsinger [2022/06/01 00:56] (current)
ionut_cristian.tacu [Concluzii]
Line 10: Line 10:
  
 {{ :​pm:​prj2022:​abirlica:​schema_bloc_tic.png?​500 |}} {{ :​pm:​prj2022:​abirlica:​schema_bloc_tic.png?​500 |}}
- 
  
 Toate componentele sunt conectate la Arduino prin intermediul Breadboard-ului. Toate componentele sunt conectate la Arduino prin intermediul Breadboard-ului.
 +
 +===== Schema electrica =====
 +{{:​pm:​prj2022:​abirlica:​schema_electrica_tic.jpeg?​600 |}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 22: Line 24:
   * Wires   * Wires
  
 +{{:​pm:​prj2022:​abirlica:​poza_hard_tic.jpeg?​800|}}
 +
 +Avand in vedere conectarea elementelor am folosit un Breadboard, pentru reutilizarea componentelor,​ si usurarea mentenantei.
 ===== Software Design ===== ===== Software Design =====
  
Line 32: Line 37:
  
 ===== Software - Diagrama de activitati (Organigrama) ===== ===== Software - Diagrama de activitati (Organigrama) =====
-{{:​pm:​prj2022:​abirlica:​diagram_tic.png?​400 |}}+{{:​pm:​prj2022:​abirlica:​diagram_tic.png?​500|}} 
 + 
 +Programul are urmatorul flow: 
 + 
 + Se preia valoarea intensitatii luminoase de la fotorezistenta (marja de aproximativ 0 - 1000). 
 + 
 + In fiecare caz se afiseaza o imagine creata pe bitii lcd-ului, iar buzzer-ul canta o melodie care este corespunzatoare luminozitatii. 
 + 
 + ​Notele buzzer-ului sunt reprezentate de frecvente, iar ele sunt asociate unui array de litere (De exemplu C este nota Do, in notatia notelor). De asemenea, in melodie, fiecare nota are asociata o durata pentru a stii cat timp se canta nota. 
 + 
 + ​Pentru fiecare melodie se foloseste o viteza (speed), pentru a canta toate notele intr-un anumit tempo. 
 +  
 +   * Functia playTone(int tone, int duration, float speed) se ocupa cu activarea buzzer-ului (punerea pe HIGH) pentru a canta nota primita ca parametru intr-un anumit timp 
 +   * Functia playNote(char note, int duration, float speed) se ocupa de cautarea frecventei asociate in functie de litera primita ca parametru 
 +   * Fiecare cantec este reprezentat de o parcurgere a unui array de litere si a unuia de durate, reprezentand notele melodiei si timpul cat ele sunt activate. 
 +   * Fiecare imagine este reprezentata de o functie in care sunt activati doar anumiti pixeli din lcd 
 + 
 + 
 + In functie de intensitatea luminoasa, se poate ajunge in unul din cele 3 cazuri ​    
 +    - Cand intensitatea este sub 300, se foloseste ramura Dark. Se afiseaza o stea si se canta o melodie linistita 
 +    - Cand intensitatea este intre 300 si 650, se foloseste ramura Cloudy. Se afiseaza un nor si se canta o melodie intermediara 
 +    - Cand intensitatea este peste 650, se foloseste ramura Sunny. Se afiseaza un soare si se canta o melodie mai energica
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 41: Line 67:
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +In urma dezvoltarii proiectului am inteles mecanismele din spatele buzzer-ului pasiv pentru crearea unei melodii. Fiind pasionat de pian si creare de acompaniamente,​ am avut ocazia de a simula unele melodii preferate (corespunzatoare vremii din punctul meu de vedere) in buzzer.
 +
 +Cele mai mari provocari au reiesit din urmatoarele:​
 +  * Asocierea notelor cu frecventele,​ pana cand am obtinut notele reale
 +  * Gasirea timpilor potriviti pentru fiecare nota cantata si simularea tempo-ului cat mai potrivit
 +  * Crearea imaginilor pe pixelii lcd-ului
  
 ===== Download ===== ===== Download =====
pm/prj2022/abirlica/lightsinger.1654030542.txt.gz · Last modified: 2022/05/31 23:55 by ionut_cristian.tacu
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