Mihai-Valentin DUMITRU - Automatic Guitar Tuner

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul constă într-un acordor de chitară automat, capabil să regleze cheile.

Acesta are o modalitate de selecție a notei dorite, printr-o placă de control; potrivit sunetului primit de la un microfon, un DC stepper este controlat astfel încât să rotească corespunzător cheia asociată corzii curente.

Acest proiect este util deoarece acordarea unei chitare este un proces muncitoresc și stresant.

Descriere generală

Microcontroller-ul ATMega324 - controlează întregul proces. Preia date de la microfon, le compară cu coarda selectată și învârte motorul.
Butoane - folosite de utilizator pentru a seta coarda care se dorește acordată.
Microfon - preia sunetul de la chitară.
Motor - are la capăt un clip pentru a se potrivi pe cheiile corzilor. Prin rotire strânge sau eliberează o coardă.

Hardware Design

Listă de piese

  • placa de bază
  • plăcuță auxiliară cu:
    • 3 * LED roșu + 3 * rezistențe de 470 Ω
    • 2 * push-down button
    • pin header de 7 pini (din care doar 6 utilizați)
  • 28BYJ-48 Stepper Motor + ULN2003 Driver (optimusdigital.ro - 0104110000008091)
  • cablu USB pentru alimentare separată stepper
  • Modul Amplificator Microfon cu AGC MAX9814 (optimusdigital.ro - 0104110000012920)
  • Modul Convertor USB la Serial PL2303 - folosit pentru debugging (optimusdigital.ro - 0104110000003201)
  • 19 jumpere mamă-mamă



Schema

Software Design

Mediu de dezvoltare:

  • vim, GNUMake, avr-gcc 4.8.2, HIDBootFlash v1.0

Biblioteci și surse 3rd-party:

Algoritmi:

  1. la fiecare întrerupere de timer, tunerul determină diferența dintre frecvența reală și frecvența dorită.
  2. semnul diferenței determină sensul de rotire (considerând că rotirea în sens trigonometric tensionează coarda).
  3. tunerul are o valoare default de rotire (unghi) și memorează diferența anterioară.
  4. dacă, după o rotire, semnul diferenței curente diferă de cel al diferenței anterioare, înseamnă că s-a trecut de poziția dorită; tunerul își înjumătățește unghiul de rotire și schimbă sensul.
  5. când unghiul ajunge sub o anumită valoare de toleranță, procesul se oprește și LEDul PD7 este aprins.

Rezultate Obţinute

Microfonul nu detectează decât sunetele foarte puternice (pus lângă difuzor).
Pentru că nu am avut timp, algoritm de determinare a frecvenței este prost și nu funcționează corect.
Presupunând că ar putea face rost de frecvența, restul logicii programului funcționează .

Concluzii

  • Chiar dacă e un eșec, mi-a plăcut să lucrez la proiect.
  • Evident, trebuia să mă apuc din vreme ca să am timp să termin.

Sfaturi pentru ceilalți:

  • Nu vă pierdeți timpul încercând să faceți voi componente când nu e necesar. Un asistent mi-a zis “Ăsta e proiect de PM, nu de EEA.”
  • Nu întârziați cu comanda pentru piesa la nivel de serie. Eu a trebuit să merg singur pe Maica Domnului și am găsit un microcontroller cu 15 lei mai scump.
  • Înainte să vă duceți pe Maica Domnului, considerați alternative (e.g. optimusdigital care e lângă facultate).

Download

Arhiva conține:

  • README: conține informații despre proiect
  • src/: folder care conține toate sursele folosite. În ele se pot găsi informații suplimentare.
  • Makefile: regula default creează folderul “out/” cu fișierele necesare (.hex, .elf).

Textul fișierelor din arhivă este în engleză.

Jurnal

  • [22.04]: Am cercetat subiectul și am creat pagina de wiki.
  • [20.05]: Am terminat plăcuța de control (partea fizică)
  • [24.05]: Am implementat interfața software a plăcuței de control.
  • [26.05]: Am implementat interfața software pentru DC stepper și am realizat testele necesare.
  • [27.05]: Am achiziționat un microfon (ce aveam eu era nefuncțional) și am implementat sistemul de detectare a frecvenței. Am făcut ultimele teste ale proiectului.
  • [27.05]: Am completat pagina de wiki cu tot ce uitasem să adaug (lista de componente, schema electrică).

Bibliografie/Resurse

pm/prj2016/amusat/autoacordor.txt · Last modified: 2021/04/14 17:07 (external edit)
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