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:28]
cosmin.strugariu [Hardware Design]
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 91: Line 91:
  
  
-===== Software Design ​=====+==== Software Design ====
  
-<note tip>​Descrierea codului aplicației (firmware):​ +Proiectul a fost dezvoltat folosind mediul **PlatformIO**.
-  ​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 =====+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:
  
-<note tip>Care au fost rezultatele ​obținute în urma realizării proiectului vostru.</note>+  * **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''​ și ''​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 și 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 și redarea acestora pe baza unui BPM ajustabil în timp real printr-un potențiometru.
  
-===== Concluzii =====+Codul sursă complet și detaliile de implementare pot fi găsite pe repository-ul de GitHub asociat proiectului.
  
-===== Cod sursă ​și alte resurse ce trebuie să existe pe GitHub ​=====+===== Cod sursă ​ =====
  
-Codul sursă trebuie urcat într-un repo public, recomandăm GitHub.+https://​github.com/​strugariu/​proiect-pm/​tree/​main
  
-<note important>​Structurați-vă pagina de GitHub a proiectului pe mai multe directoare. De exemplu, creați un director numit **src** în care țineți tot codul sursă. Alt director **hardware** în care să țineți 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 
  
-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.1779744496.txt.gz · Last modified: 2026/05/26 00:28 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