Laser Guitar

Autor: Denisa-Elena Zarioiu
Grupa: 333CD

Introducere

Acest proiect este o implementare a unei chitare electronice, care înlocuiește corzile tradiționale cu raze laser.

Scopul său principal este de a crea un instrument muzical interactiv care să combine elemente tradiționale ale chitarei cu tehnologia modernă, oferind o experiență muzicală neconvențională și distractivă.

Ideea acestui proiect a luat naștere din dorința mea personală de a învăța să cânt la chitară, combinată cu fascinația pentru tehnologia laser. Astfel, am considerat că este o oportunitate de a mă apropia de acest instrument și de a aprofunda, totodată, diverse concepte din electronică.

Utilitatea sa derivă din faptul că poate servi ca instrument didactic pentru începători, permițându-le să învețe pozițiile notelor și acordurile fără disconfortul fizic asociat corzilor metalice sau de nylon. De asemenea, reprezintă o alternativă atractivă pentru persoanele cu sensibilitate tactilă.

Descriere

Chitara este alcătuită din șase module laser, fiecare corespunzând unei “corzi”. Acestea emit fascicule luminoase paralele care sunt monitorizate constant de fototranzistori.

Când se întrerupe un fascicul, scăderea intensității luminii este detectată de fototranzistorul corespunzător, care transmite această modificare către Arduino Uno prin pinii analogici.

Microcontroller-ul procesează informația, identifică “coarda” activată și, în funcție de setările encoderului rotativ asociat acesteia, generează semnalul PWM corespunzător notei muzicale. Acest semnal este transmis către buzzer, care transformă impulsurile electrice în sunet.

Encoderele rotative permit reglarea caracteristicilor sonore ale fiecărei “corzi”, similar cu procesul de acordare a unei chitări reale.

Schema bloc

Design Hardware

Componente hardware

  • Arduino MEGA 2560 (ATmega2560 + CH340)
  • 6 x Diode laser
  • 6 x Fototranzistori Vishay BPW77NB
  • 6 x Rotary encoders
  • 6 × rezistențe de 10 kΩ
  • 6 × rezistențe de 220 Ω
  • 1 × rezistență de 100–330 Ω
  • 12 × condensatoare ceramice de 100 nF
  • 3 x Breadboards
  • Buzzer pasiv
  • Baterie 9V
  • Regulator de tensiune
  • Fire jumper mama-tata
  • Fire jumper tata-tata

BOM

Name Cantitate Link
Arduino Mega 2560 1 Link Arduino Mega 2560
Cablu Arduino USB 1 Link Cablu USB
Diode laser 6 Link Diode Laser
Fototranzistori Vishay BPW77NB 6 Link Fototranzistori
Encodere rotative KY-040 6 Link Encodere Rotative
Rezistențe 13 Link Set Rezistențe
Condensatoare ceramice (100 nF) 12 Link Condensator 100nF
Baterie 9V 1 Link Baterie
Regulator de tensiune 1 Link regulator de tensiune

Descriere detaliată

Microcontroller – Arduino Mega 2560

Am ales o placă Arduino Mega 2560, datorită numărului mare de pini digitali și analogici, necesari pentru cei 6 senzori (fototranzistori), 6 encodere rotative și buzzer.

Componentă Pin Arduino
Senzori lumină A0-A5
Encodere rotative D22-D25, D34-D37, D46-D49
Buzzer D9 (PWM)
Alimentare componente 5V
GND componente GND

Fototranzistori Vishay BPW77NB

Sunt folosiți 6 fototranzistori pentru a detecta întreruperea fasciculului laser, fiecare conectat într-o configurație de divizor de tensiune.

Pin componentă Pin Arduino
Emitor A0-A5
Colector 5V

Diode Laser

Fiecare fascicul laser acționează ca o „coardă invizibilă” care, atunci când este întrerupt, declanșează redarea unui sunet. Se folosește un rezistor de 220 Ω pentru limitarea curentului.

Pin componentă Pin Arduino
Anod (+) 5V
Catod (–) GND

Encodere Rotative KY-040

Folosite pentru controlul interactiv al sunetului fiecărei corzi.

Pin componentă Pin Arduino
GND GND
VCC 5V
CLK (RE_A) D22–D32
DT (RE_B) D23–D33

Buzzer Pasiv

Folosit pentru a reda tonuri sonore prin funcția `tone()` din Arduino. Este înseriat cu un rezistor de 220 Ω pentru protecție.

Pin componentă Pin Arduino
+ D9
GND

Baterie si regulator de tensiune

Bateria este folosita pentru alimentarea diodelor laser, iar regulatorul de tensiune pentru coborârea tensiunii de la 9V la 5V.

Schema electrică

Design Software

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.

Motivația alegerii bibliotecilor

Nu au fost necesare biblioteci externe, deoarece funcționalitățile dorite sunt acoperite de bibliotecile native Arduino:

  • `tone()` – pentru generarea de semnal audio PWM
  • `Serial` – pentru debugging via UART

Utilizarea funcționalităților din laborator

Laborator Utilizare în proiect
GPIO (Lab 0) Controlul pinii pentru senzori, buzzer, lasere
Timere, PWM (Lab 2) Comandarea semnalului catre buzzer
ADC (Lab 4) Citirea semnalelor de la pini

Structura proiectului

Structura codului se bazează pe 3 secțiuni:

  1. Definirea pinilor și notelor corespunzătoare
  2. Inițializarea componentelor în `setup()` (inclusiv Serial)
  3. Bucla `loop()` care:
    • Citește valorile analogice de la senzori (ADC)
    • Compară fiecare valoare cu un prag (threshold)
    • Dacă un fascicul este întrerupt, redă o notă folosind `tone()`
    • Dacă niciun fascicul nu este întrerupt, oprește sunetul (`noTone()`)

Funcționalitatea a fost validată prin:

  • Monitorizarea valorilor senzorilor în `Serial Monitor`
  • Testarea individuală a notelor prin întreruperea fasciculelor
  • Confirmarea generării corecte a sunetelor pe buzzer

Rezultate

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”.

pm/prj2025/iotelea/denisa.zarioiu.txt · Last modified: 2025/05/28 07:44 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