Differences

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

Link to this comparison view

pm:prj2026:florin.stancu:cosmin.strugariu [2026/05/26 00:13]
cosmin.strugariu [Introducere]
pm:prj2026:florin.stancu:cosmin.strugariu [2026/05/26 01:23] (current)
cosmin.strugariu [Cod sursă și alte resurse ce trebuie să existe pe GitHub]
Line 23: Line 23:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip>+
 Claviatura este realizata din mai multe pushbuttons,​ care alaturi de o retea de rezistente, creeaza mai multe praguri de tensiune ce sunt citite de ADC-ul uC, asadar se poate diferentia notele una de alta sau de un semnal de comanda. Claviatura este realizata din mai multe pushbuttons,​ care alaturi de o retea de rezistente, creeaza mai multe praguri de tensiune ce sunt citite de ADC-ul uC, asadar se poate diferentia notele una de alta sau de un semnal de comanda.
  
Line 38: Line 38:
  
  
-</​note>​ 
  
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip>Aici puneți tot ce ține de hardware design: +Listă de componente
-  * listă de componente+
  
-^Reference ​                                                                                                                                                              ​^Qty^Value ​              ​+^ Reference ^ Qty ^ Value ^ 
-|A1                                                                                                                                                                      |1  |Arduino_Nano_v2.x ​  ​+| A1 | 1 | Arduino_Nano_v2.x | 
-|C1                                                                                                                                                                      ​|1  |1u                  ​+BT1 | 1 | 12.7 | 
-|C2                                                                                                                                                                      |1  |4.7n                ​+| C1,​C5,​C6,​C7,​C8,​C9 | 6 | 100n 
-|C3,C4                                                                                                                                                                   |2  ​|1n                  ​+| C2 | 1 | 220uf 
-|C5                                                                                                                                                                      ​|1  |0.47u               +| C3 | 1000uf ​
-|C6,C7                                                                                                                                                                   |2  ​|10n                 +C4 | 1 | 0.22u 
-|D1,​D2,​D3,​D4,​D5 ​                                                                                                                                                         ​|5  ​|1N4001 ​             ​+C10 4.7u 
-|D6,D7                                                                                                                                                                   |2  |LED                 +C11 10n 
-|J1                                                                                                                                                                      ​|1  |Screw_Terminal_01x02+C12,C15 | 2 | 10u 
-|Q1                                                                                                                                                                      ​|1  ​|TIP31 ​              | +C13 | 1 | 1n 
-|Q2                                                                                                                                                                      |1  |TIP32 ​              | +C14 | 1 | 2.2n 
-|Q3,​Q4 ​                                                                                                                                                                  |2  ​|2N2907 ​             ​+D4,D5,D6 
-|Q5,Q6                                                                                                                                                                   |2  ​|2N2222 ​             ​+D7,D8,D9 LED 
-|RPotentiometre ​                                                                                             ​|20 |100k                ​+LS1 Speaker ​
-|R|43 |10k                 +Q1 | 1 | NPN 
-|R9                                                                                                                                                                      ​|1  |560                 +R1-R26,R27,​R29,​R30,​R32,​R41 ​31 | 1k | 
-|R10,R73                                                                                                                                                                 |2  ​|1k                  +R36,R37,​R38,​R39,​R47,​RV1,​RV2,​RV5,​RV6,​RV7 ​10 100k 
-|R13,R24                                                                                                                                                                 |2  ​|2k                  ​+R40 | 1 | 560 
-|R14                                                                                                                                                                     |1  |470k                ​+R42,R43,R45,R51 | 4 | 10k 
-|R15                                                                                                                                                                     ​|1 ​ |4.7k                | +R44,R46 5.1k 
-|R16,R17,R21,R22                                                                                                                                                         |4  |220                 +R48,​R49,​R50 ​R_Photo ​
-|R51,R65,R66                                                                                                                                                             |3  ​|20k                 +R52,R53 | 2 | 470k 
-|R61                                                                                                                                                                     |1  ​|82k                 +SW1-SW15 ​| 15 | SW_Push | 
-|R64,R67                                                                                                                                                                 |2  |100                 +| U1 | 1 | uA7812 ​
-|Butoane ​                                                                                                     ​|15 |SW_Push ​            ​+| U3 | 1 | LM358 | 
-|U1                                                                                                                                                                      |1  |XL6009 BOOST        | +| U4,U5 TL072 
-|U2,​U6 ​                                                                                                                                                                  ​|2 ​ |TL072 ​              +U6 | 1 | Modul Amplificator Audio TPA3110D2 ​|
-|U3                                                                                                                                                                      |1  |LM358 ​              ​+
-|U4                                                                                                                                                                      |1  ​|TL074               +
-|U5                                                                                                                                                                      ​|1  |LM13700 ​            |+
  
-  * scheme electrice. Recomandăm să folosiți o aplicație dedicată pentru desenarea schemei electrice (KiCAD, Altium, Fusion360 etc.) sau, în cel mai rău caz, o diagramă desenată în Fritzing, Wokwi sau Tinkercad. +{{ :​pm:​prj2026:​florin.stancu:​poza1.png?direct&300 |}} 
-{{ :​pm:​prj2026:​florin.stancu:​cosmin.strugariu:​sursa.png?300 |}} +{{ :​pm:​prj2026:​florin.stancu:​poza2.png?direct&300 |}}
-{{ :​pm:​prj2026:​florin.stancu:​cosmin.strugariu:​envelope.png?​300 |}} +
-{{ :​pm:​prj2026:​florin.stancu:​cosmin.strugariu:​claviatura.png?​300 |}} +
-{{ :​pm:​prj2026:​florin.stancu:​cosmin.strugariu:​vcf.png?​300 |}} +
-{{ :​pm:​prj2026:​florin.stancu:​cosmin.strugariu:​vca.png?300 |}}+
  
-  * diagrame de semnal 
  
-  * rezultatele simulării din Wokwi sau Tinkercad ​(dacă este posibilă simularea)+Butoane -> (Semnal Analogic prin divizor rezistiv-ADC Microcontroller
-</note>+
  
-===== Software Design =====+Microcontroller -> (Semnal Digital PWM) -> VCF
  
-<note tip>Descrierea codului aplicației ​(firmware)+Microcontroller -> (Semnal Digital Gate) -> Generator Anvelopă
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, PlatformIO) +
-  * biblioteci și surse 3rd-party folosite (e.g. Procyon AVRlib) +
-  * algoritmi și structuri pe care plănuiți să le implementați +
-  * (etapa 3) surse și funcții implementate +
-</​note>​+
  
-===== Rezultate Obținute =====+Generator Anvelopă -> (Semnal Analogic de Control - CV) -> VCA
  
-<note tip>Care au fost rezultatele obținute în urma realizării proiectului vostru.</​note>+VCF -(Semnal Audio Analogic Netezit) -VCA
  
-===== Concluzii =====+VCA -> (Semnal Audio Final) -> TPA3110D2 (Amplificator) -> Difuzor
  
-===== Cod sursă și alte resurse ce trebuie să existe pe GitHub ===== 
  
-Codul sursă trebuie urcat într-un repo public, recomandăm GitHub. 
  
-<note important>​Structurați-vă pagina de GitHub a proiectului ​pe mai multe directoareDe exemplu, creațun director numit **src** în care țineți tot codul sursă. Alt director ​**hardware** în care să ținețschemele ​și diagramele ​și alt director numit **images** în care să puneți toate fotografiile cu proiectul vostru, ​pe care le link-ați în README.md+==== Software Design ==== 
 + 
 +Proiectul a fost dezvoltat folosind mediul **PlatformIO**. 
 + 
 +Arhitectura aplicației este de tip **Interrupt-Driven** (bazată pe întreruperi) și folosește **Mașini de Stări (State Machines)** pentru logica principalăSistemul este împărțit în următoarele module cheie: 
 + 
 +  * **Managementul Timpului:** **Timer0** este configurat să genereze o întrerupere la exact 1 milisecundă. Aici se incrementează ​un contor global (''​systicks''​),​ folosit ulterior pentru calculul BPM-ului din sequencer și pentru debouncing-ul clapelor. 
 +  ​* **Generarea Audio (Hardware PWM):** Sunetul este generat folosind **Timer1** setat în modul Fast PWM. Frecvența notelor este calculată dinamic pe baza butoanelor apăsate, ajustând regiștrii ''​ICR1''​ ș''​OCR1A''​ pentru a obține nota dorită direct pe pinul de output, fără intervenția procesorului. 
 +  ​* **Citirea Senzorilor (ADC non-blocant):​** Conversia analog-digitală pentru butoane și potențiometre se face prin întreruperi (''​ADC_vect''​). ADC-ul scanează ciclic canalele șsalvează valorile într-un buffer, lăsând bucla principală (''​main''​) liberă să proceseze doar logica. 
 +  * **Logica Sintetizatorului ​și Sequencer-ului:​** 
 +    * **Clapele:​** Fiecare "​canal"​ analogic trece prin stările ''​IDLE'',​ ''​SETTLING'' ​și ''​PLAYING''​ pentru a elimina zgomotul (noise floor) și a stabiliza nota. 
 +    ​* **Sequencer-ul:​** Implementează stările ''​FREE_PLAY'',​ ''​RECORDING''​ și ''​PLAYBACK''​. Permite înregistrarea unei secvențe de note într-un array șredarea acestora ​pe baza unui BPM ajustabil în timp real printr-un potențiometru. 
 + 
 +Codul sursă complet șdetaliile de implementare pot fi găsite pe repository-ul de GitHub asociat proiectului. 
 + 
 +===== Cod sursă ​ ===== 
 + 
 +https://​github.com/​strugariu/​proiect-pm/​tree/​main 
  
-Pagina de GitHub a proiectului vostru trebuie să conțină **toate** fișierele relevante pentru realizarea proiectului vostru. Dacă există resurse externe pe care le-ați folosit, vă rugăm să le link-ați în README.md</​note>​ 
  
-<note important>​Sunteți încurajați să filmați un demo cu proiectul vostru și să îl încărcați pe YouTube. Faceți embed la video în README.md și în pagina de wiki OCW a proiectului vostru.</​note>​ 
  
-===== Jurnal ===== 
  
-<note tip>​Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** și **Resurse Hardware**.</note>+[[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf]] 
 + 
 +[[https://​www.ti.com/​lit/​ds/​symlink/​lm358.pdf]] 
 + 
 +[[https://​www.ti.com/​lit/​ds/​symlink/​tl072.pdf]] 
 + 
 +[[https://​www.ti.com/​lit/​ds/​symlink/​ua78.pdf?​ts=1779730004215]] 
 + 
 +[[https://​analogoutputblog.wordpress.com/​2022/​05/​04/​how-to-vactrol/​]] 
 + 
 +[[https://​www.ti.com/​lit/​an/​sboa226/​sboa226.pdf?​ts=1779690038815]] 
 + 
 +[[https://​synthnerd.wordpress.com/​2016/​04/​06/​envelope-circuits-a-simple-ar-design-using-op-amps/]] 
 + 
 +Placa de PM
pm/prj2026/florin.stancu/cosmin.strugariu.1779743631.txt.gz · Last modified: 2026/05/26 00:13 by cosmin.strugariu
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