Differences

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

Link to this comparison view

pm:prj2025:iotelea:denisa.zarioiu [2025/05/26 21:01]
denisa.zarioiu [Design Software]
pm:prj2025:iotelea:denisa.zarioiu [2025/05/28 07:44] (current)
denisa.zarioiu [Rezultate]
Line 23: Line 23:
 Encoderele rotative permit reglarea caracteristicilor sonore ale fiecărei "​corzi",​ similar cu procesul de acordare a unei chitări reale. Encoderele rotative permit reglarea caracteristicilor sonore ale fiecărei "​corzi",​ similar cu procesul de acordare a unei chitări reale.
 ===== Schema bloc ===== ===== Schema bloc =====
-{{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​schema_bloc_v2.png?800|}}+{{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​schema_bloc_updated.png?800|}}
  
 ===== Design Hardware ===== ===== Design Hardware =====
Line 35: Line 35:
   * 6 × rezistențe de 220 Ω   * 6 × rezistențe de 220 Ω
   * 1 × rezistență de 100–330 Ω   * 1 × rezistență de 100–330 Ω
-  * × condensatori ceramici ​de 100 nF+  * 12 × condensatoare ceramice ​de 100 nF
   * 3 x Breadboards   * 3 x Breadboards
   * Buzzer pasiv   * Buzzer pasiv
 +  * Baterie 9V
 +  * Regulator de tensiune
   * Fire jumper mama-tata   * Fire jumper mama-tata
   * Fire jumper tata-tata   * Fire jumper tata-tata
Line 47: Line 49:
 | Diode laser                     | 6                        | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-laser/​605-modul-dioda-laser.html|Link Diode Laser]] | | Diode laser                     | 6                        | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-laser/​605-modul-dioda-laser.html|Link Diode Laser]] |
 | Fototranzistori Vishay BPW77NB ​ | 6                        | [[https://​www.tme.eu/​ro/​details/​bpw77nb/​fototranzistori/​vishay/​|Link Fototranzistori]] | | Fototranzistori Vishay BPW77NB ​ | 6                        | [[https://​www.tme.eu/​ro/​details/​bpw77nb/​fototranzistori/​vishay/​|Link Fototranzistori]] |
-| Encodere rotative KY-040 ​       | 6                        | [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-atingere/​7150-modul-encoder-rotativ.html|Link ​Rotary Encoder]] |+| Encodere rotative KY-040 ​       | 6                        | [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-atingere/​7150-modul-encoder-rotativ.html|Link ​Encodere Rotative]] |
 | Rezistențe ​                     | 13                       | [[https://​ardushop.ro/​ro/​componente-discrete/​1444-set-rezistori-1-4w-600buc-30-valori-10r-1m-6427854021199.html|Link Set Rezistențe]] | | Rezistențe ​                     | 13                       | [[https://​ardushop.ro/​ro/​componente-discrete/​1444-set-rezistori-1-4w-600buc-30-valori-10r-1m-6427854021199.html|Link Set Rezistențe]] |
-| Condensatoare ceramice (100 nF) |                        | [[https://​ardushop.ro/​ro/​componente-discrete/​571-948-condensator-ceramic-50v-alege-valoarea.html#/​348-capacitate-100_nf|Link Condensator 100nF]] | +| Condensatoare ceramice (100 nF) | 12                        | [[https://​ardushop.ro/​ro/​componente-discrete/​571-948-condensator-ceramic-50v-alege-valoarea.html#/​348-capacitate-100_nf|Link Condensator 100nF]] | 
 +| Baterie 9V                      | 1                        | [[https://​www.emag.ro/​baterie-alkaline-varta-industrial-pro-9v-varta-industrial-9v-elem-6lr61/​pd/​D9CX4KBBM/?​cmpid=146119&​utm_source=google&​utm_medium=cpc&​utm_content=82270117088&​utm_campaign=(RO:​Whoop!)_3P-Y_%3e_Aparate_foto_and_accesorii_order_test&​gad_source=1&​gad_campaignid=2078923567&​gbraid=0AAAAACvmxQhNUOUK50kjS4qMoFwttWh6v&​gclid=Cj0KCQjwxdXBBhDEARIsAAUkP6jksBcGlkQnjr6OCs3glbivOMHder54c8436dyOPY3NoJfamUpCY6UaAiLhEALw_wcB | Link Baterie]] | 
 +| Regulator de tensiune | 1 | [[https://​sigmanortec.ro/​Modul-coborator-tensiune-adjustabil-LM2596-DC-DC-4-5-40V-3A-p134532509?​SubmitCurrency=1&​id_currency=2&​gad_source=1&​gad_campaignid=22174019478&​gbraid=0AAAAAC3W72P7uePZHEWT8d0tfS92IQjN2&​gclid=Cj0KCQjwxdXBBhDEARIsAAUkP6idtT-sRe4KMirBcyyF8pvKajNQWoZ4Bu0Gj5D0C9pPOYh9zl4gJGcaAvjiEALw_wcB|Link regulator de tensiune]] |
 ==== Descriere detaliată ==== ==== Descriere detaliată ====
 === Microcontroller – Arduino Mega 2560 === === Microcontroller – Arduino Mega 2560 ===
Line 95: Line 98:
 | –              | GND                    | | –              | GND                    |
  
-=== Condensatori ​de decuplare ​=== +=== Baterie si regulator ​de tensiune ​=== 
-Sunt utilizați ​pentru ​stabilizarea tensiunii și reducerea zgomotuluisunt poziționați lângă fototranzistori,​ între ​5V și GND. +Bateria este folosita ​pentru ​alimentarea diodelor laseriar regulatorul de tensiune pentru coborârea tensiunii de la 9V la 5V. 
  
  
 ==== Schema electrică ==== ==== Schema electrică ====
-{{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​schematic.png?800|}}+{{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​schematic_final_trimmed.png?800|}}
  
  
 ===== Design Software ===== ===== Design Software =====
-Pentru dezvoltarea proiectului,​ am folosit ​Arduino IDE.+Pentru dezvoltarea proiectului,​ am folosit ​ArduinoIDE.
  
 Codul permite citirea valorilor de la cei 6 senzori optici (fototranzistori) conectați pe pinii analogici A0–A5. Când un fascicul laser este întrerupt, se detectează o scădere de tensiune, iar Arduino redă un sunet corespunzător pe un buzzer conectat la pinul D9. Codul permite citirea valorilor de la cei 6 senzori optici (fototranzistori) conectați pe pinii analogici A0–A5. Când un fascicul laser este întrerupt, se detectează o scădere de tensiune, iar Arduino redă un sunet corespunzător pe un buzzer conectat la pinul D9.
- 
-De asemenea, proiectul integrează 6 encodere rotative, fiecare conectat la un pin de întrerupere externă (D2, D3, D18–D21) și un pin digital obișnuit (DT). Fiecare encoder controlează o valoare de offset care este aplicată frecvențelor din tabloul `notes[]`, permițând astfel modificarea în timp real a sunetelor redate. Direcția de rotație este determinată prin compararea stării pinilor `CLK` și `DT` în cadrul rutinei de întrerupere. 
  
 === Motivația alegerii bibliotecilor === === Motivația alegerii bibliotecilor ===
 Nu au fost necesare biblioteci externe, deoarece funcționalitățile dorite sunt acoperite de bibliotecile native Arduino: Nu au fost necesare biblioteci externe, deoarece funcționalitățile dorite sunt acoperite de bibliotecile native Arduino:
   * `tone()` – pentru generarea de semnal audio PWM   * `tone()` – pentru generarea de semnal audio PWM
-  * `analogRead()` – pentru conversia tensiunii în valoare numerică (ADC) 
-  * `attachInterrupt()` – pentru tratarea întreruperilor encoderelor 
   * `Serial` – pentru debugging via UART   * `Serial` – pentru debugging via UART
  
 === Utilizarea funcționalităților din laborator === === Utilizarea funcționalităților din laborator ===
  
-^ Laborator ​            ​^ Utilizare în proiect ​                                                           +^ Laborator ​      ​^ Utilizare în proiect ​                                       
-| GPIO (Lab 0)          | Controlul pinii pentru senzori, buzzer, lasere, encodere ​                       | +| GPIO (Lab 0)    | Controlul pinii pentru senzori, buzzer, lasere ​             
-| Întreruperi (Lab 2)   | Determinarea direcției de rotație a encoderelor în ISR-uri ​                     ​+| TimerePWM (Lab 2   Comandarea semnalului catre buzzer ​          ​
-| Timere ​PWM (Lab 3 Redarea de tonuri audio pe buzzer ​folosind funcția `tone()` ​                    +| ADC (Lab 4)     ​| Citirea semnalelor de la pini                               |
-| ADC (Lab 4)           ​| Citirea semnalelor ​analogice ​de la fototranzistori pentru detecția laserelor ​   | +
-| UART (Lab 1)          | Afișarea valorilor senzorilor și a offset-urilor prin `Serial Monitor` ​         ​|+
  
 === Structura proiectului === === Structura proiectului ===
-Structura codului se bazează pe secțiuni ​principale+Structura codului se bazează pe secțiuni:​ 
-  - Definirea pinilor, frecvențelor ​și vectorilor de offset +  - Definirea pinilor și notelor corespunzătoare 
-  - Inițializarea componentelor în `setup()` (inclusiv Serial ​și întreruperi) +  - Inițializarea componentelor în `setup()` (inclusiv Serial)
-  - Rutine de întrerupere (`ISR`) pentru fiecare encoder, în care se actualizează direcția și offsetul+
   - Bucla `loop()` care:   - Bucla `loop()` care:
     * Citește valorile analogice de la senzori (ADC)     * Citește valorile analogice de la senzori (ADC)
     * Compară fiecare valoare cu un prag (threshold)     * Compară fiecare valoare cu un prag (threshold)
-    * Dacă un fascicul este întrerupt, redă o notă ajustată cu offsetul specific encoderului+    * Dacă un fascicul este întrerupt, redă o notă folosind `tone()`
     * Dacă niciun fascicul nu este întrerupt, oprește sunetul (`noTone()`)     * Dacă niciun fascicul nu este întrerupt, oprește sunetul (`noTone()`)
  
 Funcționalitatea a fost validată prin: Funcționalitatea a fost validată prin:
-  * Monitorizarea valorilor senzorilor ​și a offseturilor ​în `Serial Monitor`+  * Monitorizarea valorilor senzorilor în `Serial Monitor`
   * Testarea individuală a notelor prin întreruperea fasciculelor   * Testarea individuală a notelor prin întreruperea fasciculelor
-  * Rotirea encoderelor și confirmarea schimbării frecvențelor redate +  * Confirmarea generării corecte a sunetelor pe buzzer 
-  * Verificarea reacției ​corecte a buzzerului la orice întrerupere de fascicul ​în timp real+ 
 +===== Rezultate ===== 
 +^ ^ ^ 
 +|{{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​photo2.jpg?​300|}} | {{:​pm:​prj2025:​iotelea:​denisa.zarioiu:​photo1.jpg?​300|}} | 
 + 
 + 
 +===== Concluzii ===== 
 + 
 +A fost un proiect foarte interesant și distractiv, ​în care am întâmpinat pe alocuri provocări, însă din care am învățat multe atât pe partea tehnică, cât și pe partea de abilități „meșteșugărești”.
  
 ===== Link Github ===== ===== Link Github =====
 https://​github.com/​denisa0230/​laser-guitar https://​github.com/​denisa0230/​laser-guitar
  
pm/prj2025/iotelea/denisa.zarioiu.1748282512.txt.gz · Last modified: 2025/05/26 21:01 by denisa.zarioiu
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