Alexandru MOCANU (66820) - SynPi

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul ales propune implementarea unui pian care poate, de asemenea, sa genereze sunete asemanatoare unui sintetizator.

Vor exista trei moduri de lucru:

  1. Pian cu posibilitati de modulatie in frecventa
  2. Pian cu posibilitati de modulatie in amplitudine si frecventa
  3. Pian care interpreteaza o melodie si apoi asteapta reproducerea ei

Descriere generală

Comunicarea cu microcontroller-ul se va face prin intermediul claviaturii propriu-zise a pianului si a potentiometrelor.

Microcontroller-ul va genera sunete cu ajutorul a 2 difuzoare.

Hardware Design

Lista de piese:

Componenta Cantitate
Placa de baza 1
Clape 54
Afisaje 7 segmente 3
Potentiometre 9
Difuzor 2

Software Design

Mediul de dezvoltare

  • Programmers Notepad [WinAvr]
  • bootloadHID

Biblioteci

  • avr/interrupt.h
  • util/delay.h
  • avr/io.h

Implementare

Orga prezinta doua moduri de generare a sunetelor:

  1. folosind Timer2 in modul fastPWM, cu toggle pe OCR2A
  2. folosind Timer1 in modul CTC pentru esantionare la 20kHz si Timer2 in modul fastPWM cu TOP la 0xFF pentru generarea undei sonore

Selectarea modului de lucru se realizeaza prin 2 potentiometre, PA5 pentru selectarea modului de generare a sunetului si PA6 pentru selectarea modului de interpretare a melodiei.

Pentru citirea tastelor orgii se activeaza pe rand liniile PB0, …, PB6 si se verifica pinii PC0, …, PC7. Tasta x este apasata daca la activarea iesirii PB(x/8), pinul PC(x%8) este high.

In ambele moduri de generare sunetele sunt produse prin varierea lui OCR2A si OCR2B, care in primul caz joaca rol de TOP, iar in al doilea caz fac clear pe intreruperi.

In timp ce o clapa este apasata, frecventa sunetului poate fi modificata folosind potentiometrul conectat la PA3.

In al doilea mod de functionare, amplitudinea semnalului poate fi modificata prin varierea factorului de umplere, lucru ce se poate realiza prin modificarea OCR2A si OCR2B. Controlul acestor schimbari se realizeaza cu potentiometrul conectat la PA4.

Rezultate Obţinute

Orga este functionala, putandu-se alege din doua moduri de generare a sunetelor.

De asemenea, se poate alege sa se asculte o melodie ce apoi sa trebuiasca reprodusa. Programul asteapta introducerea fiecarei note a melodiei, in ordine. In cazul in care o nota este introdusa necorespunzator se va auzi un bazait si se va trece in modul normal. Altfel, daca notele au fost introduse corect, afisajele cu 7 segmente vor palpai la final, dupa care se va trece in modul normal.

Un video demonstrativ se gaseste aici:

https://www.youtube.com/watch?v=wFTxuhYkyTM

Concluzii

Proiectul poate fi continuat, avand si alte componente pe care doream sa le folosesc in generarea de semnale sonore mai complexe prin suprapunerea de semnale sinusoidale cu mai multe armonici pentru fiecare clapa apasata. Mai multe detalii cu privire la planul initial se pot gasi in urmatoarea prezentare:

edit

Per total, proiectul a fost fun, rezultatul final fiind unul multumitor. Desi au fost multe momente in care nu au mers toate chiar struna, consider ca am avut multe de invatat si ma consider multumit. :)

Download

Sursele proiectului pot fi gasite mai jos:

331cb_mocanu_alexandru.zip

Jurnal

24.04.2017: Placa de baza este finalizata.

08.05.2017: Hardware-ul este complet, dupa cum se poate vedea mai jos:

24.05.2017: Software-ul este definitivat.

Bibliografie/Resurse

Atmega324a datasheet: doc8272.pdf

* Documentația în format PDF

pm/prj2017/mandrei/alexandru.mocanu.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