Page 48 - Fister jr., Iztok, and Andrej Brodnik (eds.). StuCoSReC. Proceedings of the 2016 3rd Student Computer Science Research Conference. Koper: University of Primorska Press, 2016
P. 48
Tabela 1: Kodiranje aktivacije in deaktivacije note.
Statusni bajt Podatkovni bajt 1 Podatkovni bajt 2 Sporoˇcilo
1000kkkk 0vvvvvvv 0ggggggg Aktivacija note
1001kkkk 0vvvvvvv 0ggggggg Deaktivacija note
Slika 5: Jedkano in oˇciˇsˇceno vezje ene izmed treh tipkovnic. • drugi bajt nosi informacijo o viˇsini note, npr. ˇstevilo
0 predstavlja noto C0, ˇstevilo 128 pa noto G10 in
3.2 Sestavljanje klaviatur
• tretji bajt nosi informacijo o glasnosti note pri ˇcemer
Sestavljanje klaviatur smo zaˇceli s sestavljanjem lesenega ˇstevilo 0 predstavlja minimalno glasnost in ˇstevilo 128
okvirja klaviatur. Ugotovili smo, da se tipkovnica teˇzko maksimalno glasnost.
prilagaja okvirju sintetizatorja, kar praktiˇcno nismo pre-
dvideli v naˇcrtovalski fazi. Na levi strani ˇcelne ploˇsˇce smo Vse tri bajte podatkov lahko prikaˇzemo tudi tabelariˇcno.
namestili ˇsest tipk, preko katerih lahko uporabnik spremi- Tabela 1 opisuje kodiranje toka podatkov, ki se pojavlja med
nja nastavitve zvoka (zadrˇzevanje note, viˇsino, transponira- prenosom MIDI. Aktivacija (angl. Note on) note je predsta-
nje,...). S pripadajoˇcimi prikazovalniki LED (diodami) lahko vljena vnaprej. Opisana je s statusnim bajtom, katerega prvi
uporabnik spremlja trenutno stanje nastavitev. Pod tipkami ˇstirje biti predstavljajo binarno vrednost 1000, zadnji ˇstirje
se nahajajo trije potenciometri, ki skrbijo za spreminjanje pa kanal MIDI (ˇcrka k ). Namen kanala MIDI se skriva v is-
glasnosti, ojaˇcanja vgrajenega ojaˇcevalca in kontrasta LCD toˇcasnem snemanju, oz. predvajanju veˇc skladb MIDI, zato
zaslona. Klaviaturam smo vgradili 1 W stereo ojaˇcevalec ter ima vsaka naprava rezerviran svoj kanal. Naprave, ki upo-
dva zvoˇcnika. Namestili smo tudi priklop za stereo izhod, rabljajo standard MIDI, namreˇc lahko medsebojno poljubno
ki ob preklopu klecnega stikala posreduje zvok iz vgrajenih poveˇzemo. Za deaktivacijo (angl. Note off) se binarna vre-
zvoˇcnikov v priklopljeno napravo. Za dodatno zaneljivost dnost spremeni v 1001. Podatkovna bajta sta sestavljena
smo namestili ˇse dva priklopa USB in sicer za baterijo in iz note (ˇcrka n) in pritiska (ˇcrka p), oba variirata med vre-
mikroraˇcunalnik (ali kakˇsni drugi shranjevalni medij). dnostmi 0-127, kar sovpada z vrednostjo 27.
3.3 Programiranje Postopek aktivacije note prikazuje algoritem 1, medtem ko
postopek deaktivacije note algoritem 2.
Za branje podatkov klaviatur smo uporabili mikrokrmilnik
MSP430F5529 druˇzine Texas Instruments. Program za mi- Algoritem 1 Serijski prenos aktivacije note
krokrmilnik je v celoti napisan v programskem jeziku C
v studiu IAR Embedded Workbench. Za ohranjanje pre- Serial.Init(); //naloˇzi modul serijske komunikacije
glednosti programa in omogoˇcitev kasnejˇse nadgradnje smo Serial.Begin(9600); //zaˇcni s komunikacijo s hitrostjo
program razdelili v ˇstevilne knjiˇznice. Jedro programa tako 9600 bitov na sekundo
predstavlja branje kanalov multiplekserja (tipk). Praktiˇcno Serial.Write(144); //poˇslji ukaz za aktivacijo note
to pomeni, da je glavna naloga mikrokrmilnika sprejemanje Serial.Write(48); //nota naj ima viˇsino C4
in obdelavo signalov. Serial.Write(50); //nota naj ima glasnost 50
Delay(500); //nota naj zveni 500 ms
Vsaka nota, ki jo predstavlja tipka, ima svojo lastno funkcijo
v programu. Po pritisku slednje, A/D pretvornik mikro- Algoritem 2 Serijski prenos deaktivacije note
krmilnika zazna spremembo napetosti in zaznane podatke
poˇslje mikroraˇcunalniku. Poˇsiljanje podatkov poteka v obliki Serial.Write(128) //poˇslji ukaz za deaktivacijo note
treh bajtov preko serijskega prenosa: Serial.Write(48); //nota naj ima viˇsino C4
Serial.Write(50); //nota naj ima glasnost 50
• v prvem bajtu je shranjen podatek o aktivaciji note
(npr. ˇstevilo 144(10) -> 010010001(2) nosi ukaz o pri- Algoritma 1 in 2 praktiˇcno prikazujeta serijski prenos podat-
tisku - aktivaciji note, medtem ko ˇstevilo 128(10) -> kov iz mikrokrmilnika na mikroraˇcunalnik. Sprva se iniciali-
10000000(2) o spustu - deaktivaciji), zira povezava med obema, nato se poˇslje ukaz za aktivacijo
note, kateremu sledita viˇsina in glasnost. Za izzvenjenje note
mora mikrokrmilnik poslati ukaz za deaktivacijo note, sicer
se nota ˇse vedno predvaja.
Mikroraˇcunalnik prejete podatke interpretira. Interpretacija
poteka s programom ttyMIDI, ki je prednaloˇzen na mikro-
raˇcunalniku (slika 6). Program ttyMIDI najprej poskuˇsa
prepoznati pravilnost poslanega toka podatkov v skladu z
Alg. 1, ˇsele nato v lupini po vrsticah izpiˇse poslane do-
godke (slika 7). Poleg tega, program ustvarja navidezna
StuCoSReC Proceedings of the 2016 3rd Student Computer Science Research Conference 48
Ljubljana, Slovenia, 12 October
Statusni bajt Podatkovni bajt 1 Podatkovni bajt 2 Sporoˇcilo
1000kkkk 0vvvvvvv 0ggggggg Aktivacija note
1001kkkk 0vvvvvvv 0ggggggg Deaktivacija note
Slika 5: Jedkano in oˇciˇsˇceno vezje ene izmed treh tipkovnic. • drugi bajt nosi informacijo o viˇsini note, npr. ˇstevilo
0 predstavlja noto C0, ˇstevilo 128 pa noto G10 in
3.2 Sestavljanje klaviatur
• tretji bajt nosi informacijo o glasnosti note pri ˇcemer
Sestavljanje klaviatur smo zaˇceli s sestavljanjem lesenega ˇstevilo 0 predstavlja minimalno glasnost in ˇstevilo 128
okvirja klaviatur. Ugotovili smo, da se tipkovnica teˇzko maksimalno glasnost.
prilagaja okvirju sintetizatorja, kar praktiˇcno nismo pre-
dvideli v naˇcrtovalski fazi. Na levi strani ˇcelne ploˇsˇce smo Vse tri bajte podatkov lahko prikaˇzemo tudi tabelariˇcno.
namestili ˇsest tipk, preko katerih lahko uporabnik spremi- Tabela 1 opisuje kodiranje toka podatkov, ki se pojavlja med
nja nastavitve zvoka (zadrˇzevanje note, viˇsino, transponira- prenosom MIDI. Aktivacija (angl. Note on) note je predsta-
nje,...). S pripadajoˇcimi prikazovalniki LED (diodami) lahko vljena vnaprej. Opisana je s statusnim bajtom, katerega prvi
uporabnik spremlja trenutno stanje nastavitev. Pod tipkami ˇstirje biti predstavljajo binarno vrednost 1000, zadnji ˇstirje
se nahajajo trije potenciometri, ki skrbijo za spreminjanje pa kanal MIDI (ˇcrka k ). Namen kanala MIDI se skriva v is-
glasnosti, ojaˇcanja vgrajenega ojaˇcevalca in kontrasta LCD toˇcasnem snemanju, oz. predvajanju veˇc skladb MIDI, zato
zaslona. Klaviaturam smo vgradili 1 W stereo ojaˇcevalec ter ima vsaka naprava rezerviran svoj kanal. Naprave, ki upo-
dva zvoˇcnika. Namestili smo tudi priklop za stereo izhod, rabljajo standard MIDI, namreˇc lahko medsebojno poljubno
ki ob preklopu klecnega stikala posreduje zvok iz vgrajenih poveˇzemo. Za deaktivacijo (angl. Note off) se binarna vre-
zvoˇcnikov v priklopljeno napravo. Za dodatno zaneljivost dnost spremeni v 1001. Podatkovna bajta sta sestavljena
smo namestili ˇse dva priklopa USB in sicer za baterijo in iz note (ˇcrka n) in pritiska (ˇcrka p), oba variirata med vre-
mikroraˇcunalnik (ali kakˇsni drugi shranjevalni medij). dnostmi 0-127, kar sovpada z vrednostjo 27.
3.3 Programiranje Postopek aktivacije note prikazuje algoritem 1, medtem ko
postopek deaktivacije note algoritem 2.
Za branje podatkov klaviatur smo uporabili mikrokrmilnik
MSP430F5529 druˇzine Texas Instruments. Program za mi- Algoritem 1 Serijski prenos aktivacije note
krokrmilnik je v celoti napisan v programskem jeziku C
v studiu IAR Embedded Workbench. Za ohranjanje pre- Serial.Init(); //naloˇzi modul serijske komunikacije
glednosti programa in omogoˇcitev kasnejˇse nadgradnje smo Serial.Begin(9600); //zaˇcni s komunikacijo s hitrostjo
program razdelili v ˇstevilne knjiˇznice. Jedro programa tako 9600 bitov na sekundo
predstavlja branje kanalov multiplekserja (tipk). Praktiˇcno Serial.Write(144); //poˇslji ukaz za aktivacijo note
to pomeni, da je glavna naloga mikrokrmilnika sprejemanje Serial.Write(48); //nota naj ima viˇsino C4
in obdelavo signalov. Serial.Write(50); //nota naj ima glasnost 50
Delay(500); //nota naj zveni 500 ms
Vsaka nota, ki jo predstavlja tipka, ima svojo lastno funkcijo
v programu. Po pritisku slednje, A/D pretvornik mikro- Algoritem 2 Serijski prenos deaktivacije note
krmilnika zazna spremembo napetosti in zaznane podatke
poˇslje mikroraˇcunalniku. Poˇsiljanje podatkov poteka v obliki Serial.Write(128) //poˇslji ukaz za deaktivacijo note
treh bajtov preko serijskega prenosa: Serial.Write(48); //nota naj ima viˇsino C4
Serial.Write(50); //nota naj ima glasnost 50
• v prvem bajtu je shranjen podatek o aktivaciji note
(npr. ˇstevilo 144(10) -> 010010001(2) nosi ukaz o pri- Algoritma 1 in 2 praktiˇcno prikazujeta serijski prenos podat-
tisku - aktivaciji note, medtem ko ˇstevilo 128(10) -> kov iz mikrokrmilnika na mikroraˇcunalnik. Sprva se iniciali-
10000000(2) o spustu - deaktivaciji), zira povezava med obema, nato se poˇslje ukaz za aktivacijo
note, kateremu sledita viˇsina in glasnost. Za izzvenjenje note
mora mikrokrmilnik poslati ukaz za deaktivacijo note, sicer
se nota ˇse vedno predvaja.
Mikroraˇcunalnik prejete podatke interpretira. Interpretacija
poteka s programom ttyMIDI, ki je prednaloˇzen na mikro-
raˇcunalniku (slika 6). Program ttyMIDI najprej poskuˇsa
prepoznati pravilnost poslanega toka podatkov v skladu z
Alg. 1, ˇsele nato v lupini po vrsticah izpiˇse poslane do-
godke (slika 7). Poleg tega, program ustvarja navidezna
StuCoSReC Proceedings of the 2016 3rd Student Computer Science Research Conference 48
Ljubljana, Slovenia, 12 October