Back

2011_P18

Viewing page version #10
(Restore this version) 

Modified: 5 April 2010, 3:12 PM   User: Tonia Robitu  → TR

Instrument Muzical

Descrierea proiectului

Proiectul presupune redarea sunetului a trei instrumente muzicale cu ajutorul tastaturii placutei EV/Z3.

Doua din cele trei instrumente, pianul si chitara, vor fi actionate de la tastatura placutei, sunetul fiind redat cu ajutorul unui player prin intermediul calculatorului Al treilea instrument, flautul, va fi  actionat  cu ajutorul  tastaturii placii, in schimb sunetul va fi redat prin buzzer-ul incorporat pe placuta EV/Z3.

Cerintele proiectului

Placa EV/Z3 se concteaza la  PC  prin seriala.

La PC  vom reda sunete cu ajutorul  programului MIDIPlayer.

La pornirea aplicatiei, pe display va fi afisat instrumentul selectat, presetat este Pianul.

Pentru a face comutarea intre cele trei instrumente : Pian, Flaut si Chitara; se vor apasa tastele 1,2 sau 3. Aplicatia mai permite si redarea unei melodii aflate in memorie, tasta 0, cat si modificarea frecventelor notelor flautului, tasta 4.

Pentru a iesi din modulul de selectare al instrumentului se va apasa pe orice tasta in afara celor 5  (0-4). Se va realiza saltul catre instrumentul dorit, pe display ramanand numele  instrumentului  selectat  pana  se  va  apasa  prima nota,  apoi  afisandu-se  nota apasata cu frecventa acesteia.

Pian

Pentru simularea comportamentului pianului s-au atribuit fiecarei taste de la 1

pana la 9 cate o frecventa din cadrul primei octave.

Pentru iesirea din pian, se va apasa o tasta A-F sau 0, taste neatribuite cu nici o nota. Saltul se va realiza inapoi la selectia instrumentului.

Flaut

Functionalitatea flautului a fost simulata in mod asemanator cu cele ale chitarei si pianului,   variind   doar  frecventa  si  numarul  tastelor  ce  simuleaza  iesirile  din  cadrul flautului, trei la numar.

Pentru iesirea din programul de simulare a fluierului se va apasa orice tasta intre 4-F sau tasta 0.

Componente

INT 10H

Aceasta intrerupere comanda emiterea de sunete cu buzzer-ul. Este posibil

specificarea frecventei si duratei sunetului emis.

INPUT BX = duration

CX = frequency

OUTPUT none Altered none Registers

Z3ev_io.c

S-au implementat trei functii specializate: Afisare, Sound si Pred (predefinit)

Sound are ca parametrii frecventa si durata sunetului de redat, avand rolul de a accesa intreruperea buzzerului (10H), iar functia Pred are rolul de a reda o succesiune de frecvente predefinite si  de a accesa intreruperea de buzzer pentru fiecare frecventa in parte.

Functia de Afisare primeste ca parametru frecventa introdusa de la tastatura, o converteste intr-un string dupa care o afiseaza pe display-ul EVZ3.

Algoritmul se bazeaza pe impartirea numarului cu rest la 10 si pe urma impartirea numarului la  10, adaugarea resturilor intr-un vector de caractere, pornind de la dreapta spre stanga, exact in ordinea obtinerii resturilor. Pe pozitiile imediat urmatoare inserarii frecventei, se vor adauga caracterele H si z, de la Hertz.

 

o sa aveti un program care va asculta prin seriala notele de la instrumentul curent folsit (precum si gama) si le va randa. Puteti folosi un player de MIDI si uitati-va si pe specificatia protocolului.

La placa EV/Z3 utilizatorul va alege unul din cele 2 intrumente puse la dispozitie. Pe LCD-ul placii se va afisa instrumentul curent: "Chitara"

Apoi user-ul va alege o gama. Tot asa pe LCD se va pune gama posibila (2 game pentru fiecare instrument - puteti sa folositi 3 butoane)

Pentru a canta userul va apasa din tastele placii. Placa va trimite un caracter pentru fiecare tasta apasata prin seriala PC-ului. Acesta o va canta.

Atentie: cand trimiteti un caracter , acesta va encoda cei 3 parametrii folositi - instrument + gama + nota:

|1b instr| 1b gama| 6b nota curenta|

Un al 3-llea instrument reprezinta buzzerul. Acesta va actiona ca un subwoofer :) . Pentru notele joase < o valoare si o anumita gama acesta va bipaii pana cand utilizatorul nu apasa alta nota.

De asemenea bipaitul (frecventa) va fi data de nota apasata. Aceeasi nota se trimite pentru a fi randata si la PC

User Flow

Descriere cum poate un utilizator sa foloseasca proiectul. Pasii necesari pentru a-l pune in functiune. Elemente generale pe care le puneti la dispozitie unui utilizator.

Sectiunea aceasta va fi completata cu screenshot-uri ale proiectului vostru in functiune - frumos ar fi un film pe youtube.

Required components

Componentele pe care le-ati folosit:

- in cadrul proiectelor cu elemente hardware - lista de componente + poza facuta. De asemenea trebuie sa adaugati si o schema (poza) cu simularea aplicatiei vostre intr-un IDE.

Daca folositi schema cu PIC16F628A trebuie sa adaugati la ea componentele folosite (sa legati ledurile de exemplu la PIC) si sa puneti un screenshot,

- in cadrul proiectelor software - poza cu placa EV/Z3 pe care o editati in paint cu componentele folosit - gen LCD, tastatura.

De asemenea veti preciza si ce functii din interfata platform_io.h ati folosit si de ce.

Software Design

Descrierea codului aplicaţiei din punct de vedere software. Va include listing despre partea importanta a codului, algoritmi folositi. In caz ca folositi si un uC la placa secundara

codul pentru aceia. Se va adauga si modalitatea de compilare, ce IDE(Proteus, AVR Studio, Open Watcom) ati folosit in compilare

Results

O imagine de ansamblu a cum functioneaza proiectul, screenshoturi, filmulete cu proiectul functionand. Alte detalii care le credeti importante.

Download

Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.

Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)

Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX

Software design - template-ul Open Watcom folosit

Status

O pagina in care sa updatati saptamanal cum stati cu proiectul. Sa spuneti ziua in care ati realizat diferite componente

Eg

1 Mai - board finaly done

15 Mai - board working - starting to write EV/Z3 software part