Objavljeno: 21.4.2015 | Avtor: Simon Peter Vavpotič | Monitor Maj 2015

Glasba iz mikroračunalnika

Predvajalnik MP3 in drugih glasbenih datotek lahko z nekaj truda za nekaj evrov izdelamo tudi doma. Kako se lotiti projekta? Kakšne predvajalnike lahko izdelamo?

Brick MP3 player, predvajalnik MP3, podoben kocki Lego

Brick MP3 player, predvajalnik MP3, podoben kocki Lego

Razstavljen predvajalnik Brick MP3 player

Razstavljen predvajalnik Brick MP3 player

Enostaven predvajalnik glasbenih datotek je sorazmerno poceni, ne glede na to, ali ga kupimo ali pa izdelamo sami. Kljub temu je lastna izdelava zabavna, poučna, pa tudi uporabna v primerih, ko potrebujemo glasbeno komponento, katere delovanje lahko v celoti nadzorujemo iz osebnega računalnika ali mobilnega telefona. Po drugi strani se je velikost elektronskih komponent v zadnjih desetih letih tako zmanjšala, da lahko predvajalnik MP3 vgradimo že v škatlico bombonov ali izpraznjeno ohišje stare glasbene kasete, pri čemer slednji skoraj ne spremenimo videza. To poraja nešteto različnih zamisli, ki jih najdemo, če v spletni brskalnik vtipkamo »make MP3 player«. Med povezavami na razna spletna mesta najdemo med prvimi spletno mesto z navodili, kako izdelati predvajalnik MP3, ne da bi morali programirati. Sledi »kultni« predvajalnik, ki ga izdelamo v ohišju stare glasbene kasete. Najdemo tudi razne komplete za sestavljanje z odprtokodno programsko opremo, ki so dokaj dragi in stanejo tudi več kot 100 dolarjev. K sreči imamo še veliko drugih možnosti, ki stanejo manj kot 10 dolarjev.

Kako deluje?

Večina v spletu objavljenih projektov temelji na dveh čipih: enostavnem 8-bitnem mikrokrmilniku in digitalnem signalnem procesorju, ki omogoča dekodiranje MP3 in drugih glasbenih formatov. Nepogrešljiv del predvajalnika je tudi vtičnica za module mini SD, na katerih so shranjene glasbene datoteke (navadno z datotečnim sistemom FAT).

Potrebujemo le še nekaj stikal ali tipk, s katerimi upravljamo predvajanje glasbe: start, stop, skoči naprej, skoči nazaj … Večji predvajalniki si lahko privoščijo še enostaven zaslon LCD, na katerem navadno prikazujejo ime datoteke, ki jo trenutno predvajajo.

Mikrokrmilnik nima težkega dela, saj breme zajemanja glasbenih datotek s kartice mini SD in  razširjanja datotek v enostavno digitalno obliko, primerno za predvajanje prek analogno-digitalnega pretvornika, prevzame zmogljiv digitalni signalni procesor v enem čipu. Mikrokrmilnik mora zajemati le stanja tipk, pošiljati ukaze signalnemu procesorju in po možnosti izpisovati naslove skladb ali imena datotek. Povsem zadošča že enostaven 8-bitni mikrokrmilnik.

A to ni edina možnost. Novejši, 32-bitni mikrokrmilniki, kot je Microchipov PIC32, lahko vse funkcije združijo v enem čipu, tako da prevzamejo tudi vlogo signalnega procesorja in sami zajemajo in dekodirajo glasbene datoteke. Nanje je mogoče namestiti celo katerega od 32-bitnih operacijskih sistemov za delo v realnem času, ki podpirajo kodeke za MP3 in druge formate, funkcije delo z datotekami in celo več datotečnih sistemov. Potrebujemo le še vtičnico za kartico mini SD, opcijsko pa še zaslon LCD in kakovosten digitalno-analogni (D/A) pretvornik, če nimamo na voljo ojačevalnika Hi-Fi z digitalnim vhodom I2S ali SPI. Enostaven D/A pretvornik lahko izdelamo iz uporov ali impulzno-širinsko moduliramo signal in ga pretvorimo v analogno vrednost z operacijskim ojačevalnikom. Za kakovostnejše predvajanje zvoka pa si je kljub temu bolje omisliti namenski D/A pretvornik v čipu.

A tudi programerjem, ki si želijo razviti samostojno aplikacijo, ki ne potrebuje operacijskega sistema, ni treba biti v skrbeh, saj je programskih knjižnic za branje datotek s kartice mini SD s podporo različnim datotečnim sistemom in s programskimi kodeki za branje zvokovnih datotek v različnih formatih vsaj za Microchipove PIC32 dovolj. Ne manjkajo niti primeri in pomožna programska orodja, ki prihranijo veliko dela.

Predvajalnik MP3, vgrajen v škatlico za bonbone

Predvajalnik MP3, vgrajen v škatlico za bonbone

Predelava

Začetniki, ki si želijo le predvajalnika MP3 v izvirnem ohišju, lahko predelajo katerega od serijskih izdelkov, kot je Brick MP3 player (stane okoli 4 dolarje). Miniaturni predvajalnik MP3 je v »kultnem« ohišju, podobnem najbolj znani kocki Lego, z osmimi okroglimi izboklinami. Tri izmed slednjih so fiksne, pet pa jih uporabljamo kot gumbe: za predvajanje, za skok na predhodno datoteko, skok na naslednjo datoteko ter za povečanje ali zmanjšanje glasnosti.

Najprej moramo predvajalnik povsem razstaviti in iz njega potegniti elektroniko. Potrebujemo še staro glasbeno kaseto in nekaj mikrostikal, s katerimi nadomestimo gumbe. Nato razstavimo staro glasbeno kaseto, izrežemo potrebne odprtine in vanjo razporedimo mikrostikala in elektroniko predvajalnika MP3. Ostane le še povezava mikrostikal s predvajalnikom MP3. Potrebujemo le nekaj žičk (lahko transformatorskih) in spajkalnik.

Podroben način sestavljanja predvajalnika MP3 v ohišju stare glasbene kasete je predstavljen na spletni strani: www.instructables.com/id/Cassette-MP3-Player/?ALLSTEPS). Projekt je vznemirljiv tudi, ker moramo za osnovo uporabiti prav Brick MP3 player.

Zanimivi so tudi projekti, ki se opirajo na poceni Arduinove in podobne »igračke« na osnovi različnih splošnonamenskih mikrokrmilnikov z vtičnimi moduli in z odprtokodno programsko podporo. Še posebej so zanimivi za tiste, ki podobne rešitve že uporabljajo pri drugih projektih, saj gre le za nadgradnjo oziroma dodatne module, ali pa več enostavnih modulov z nekaj med seboj povezanimi žicami. Na spletnih dverih www.youtube.com najdemo tudi videe, v katerih avtorji iz osnovnih komponent v nekaj minutah sestavijo predvajalnike MP3 (npr.: www.youtube.com/watch?v=4XAIAafVdb8). Toda treba je priznati, da avtorji pogosto uporabijo izdelan modul za predvajanje MP3, na katerega priključijo tipke za upravljanje, zvočnik in napajanje iz stabiliziranega napetostnega vira. To je podobno kot predelava obstoječe naprave.

Ploščica tiskanega vezja za predvajalnik MP3 med ročnim spajkanjem elektronskih komponent

Ploščica tiskanega vezja za predvajalnik MP3 med ročnim spajkanjem elektronskih komponent

Vellemanov predvajalnik MP3 iz kompleta za sestavljanje, K8095

Vellemanov predvajalnik MP3 iz kompleta za sestavljanje, K8095

Sestavljanje

Kompleti za sestavljanje (npr.: Vellemanov K8095: www.velleman.eu/products/view/?country=fr&lang=en&id=380100) vsebujejo tiskanino in vse elektronske komponente. Navodila za sestavljanje navadno potegnemo iz spleta. Pametno je, da izberemo komplet, ki mu bomo s svojim znanjem elektrotehnike in računalništva kos. Nekateri izdelovalci sicer označujejo težavnostno stopnjo za sestavljanje, a ta ni standardizirana. Zato je dobro, če pred nakupom vsaj površno preberemo navodila.

Dobro je preveriti, ali bomo morali prispajkati tudi površinsko nameščene komponente (angl. SMD, surface mounted devices), ki imajo navadno 1,27 mm razmik med kontakti. To je dvakrat manj od običajnega 2,54 mm razmika kot pri komponentah, katerih nožice vtaknemo v luknjice na tiskanimi in jih prispajkamo s spodnje strani. Tehnika spajkanja SMD zahteva veliko natančnost, spajkalnik z milimetrsko špico in nemalokrat tudi uporabo pincete. Zato jo domačim elektrotehnikom z malo izkušnjami odsvetujemo.

Alternativa kompletom za sestavljanje je nakup ali lastna izdelava tiskanine ter nakup drugih potrebnih komponent (npr.: learn.adafruit.com/minty-mp3). Po drugi strani bo izkušenim domačim elektrotehnikom treba kupiti predvsem namenske komponente, kot je digitalni signalni procesor. Preostale, z mikrokrmilnikom vred, morda že imajo. Kljub temu velja upoštevati tudi stroške dostave, če bomo morali naročati v različnih spletnih trgovinah.

Najzahtevnejši so ljubiteljski projekti, pri katerih je v spletu na voljo zgolj električna shema in datoteke s podatki za strojno izdelavo tiskanine. Slednje se lahko lotimo tudi ročno, po foto postopku, a tudi pri slednjem potrebujemo kar nekaj opreme, denimo svetilko z ultravijolično svetlobo in banjico za jedkanje. Kupiti moramo tudi ustrezne kemikalije. Pri jedkanju tiskanine potrebujemo kar precej praktičnih izkušenj. Zato je vsaj za začetnike bolje, če izdelavo tiskanine naročijo prek spleta. Ker bomo potrebovali eno ali največ nekaj kosov tiskanine, se splača poiskati izdelovalca, ki omogoča tako naročilo (npr.: www.svet-el.si/proizvodi-in-storitve/tiskana-vezja).

Akumulatorsko napajanje in daljinsko upravljanje

Akumulatorsko ali baterijsko napajanje navadno izključuje daljinsko upravljanje, saj ga za ročne naprave ne potrebujemo. Prav nasprotno pri namiznih predvajalnikih MP3.

Če se ne želimo ukvarjati s polnjenjem akumulatorskih baterij, je gotovo najelegantnejša rešitev, da v predvajalnik MP3 preprosto vgradimo nosilec za izmenljive baterije. Alternativa so akumulatorske baterije, ki jih lahko polnimo z enosmernim tokom iz zunanjega napetostnega vira in pri tem ne potrebujejo krmilne enote. Zadnja možnost je uporaba mikrokrmilnika z vgrajeno strojno podporo zahtevnejšim polnjenjem baterij (npr. litijevih), katere uporabo podpremo z vključitvijo dodatne programske knjižnice.

Večina odprtokodnih predvajalnikov MP3 nima podpore daljinskemu upravljanju. Za vzpostavitev daljinskega upravljanja potrebujemo podporo brezžični komunikaciji po radijski zvezi ali za infrardečo komunikacijo. Oboje zahteva dodatno strojno opremo, dodatno vgrajeno programsko opremo in daljinski upravljalnik ...

Veliko zamisli za lastno implementacijo brezžične komunikacije v kombinaciji z 32-bitnim mikrokrmilnikom dobimo s spletne strani PC USB Projects (sites.google.com/site/pcusbprojects). Veliko zanimivih rešitev, ki so sicer prirejene za 8-bitni mikrokrmilnik, PIC18, ponuja tudi Vellemanov komplet za sestavljanje, K8095.

Notranjost v glasbeno kaseto vgrajenega predvajalnika MP3

Notranjost v glasbeno kaseto vgrajenega predvajalnika MP3

Programska oprema

Večina kompletov za sestavljanje vsebuje že sprogramirane mikrokrmilnike. Pri drugih projektih v spletu so večinoma na voljo datoteke z vgrajeno programsko kodo, prevedeno v strojni jezik (npr. *.HEX), ki jo moramo z ustreznim programatorjem prenesti v mikrokrmilnik.

Čeprav bi morda mislili, da je programiranje zelo enostavno, se v majhnem predvajalniku skriva precej programske logike. Vgrajeno programsko opremo razdelimo na dva nivoja: na nižjem so komunikacijski podprogrami, ki omogočajo branje podatkov s kartice mini SD (najpogosteje vmesnik SPI). Večine ne programiramo, temveč so na voljo v raznih programskih knjižnicah.

Denimo, če hočemo 32-bitni mikrokontroler spremeniti v predvajalnik glasbenih datotek, moramo izbrati module za: komunikacijo SPI s kartico mini SD in zaslonom, datotečni sistem, kodeke za dekodiranje MP3 in drugih formatov zapisa zvoka, podporo delu z zaslonom in po izbiri še modul za komunikacijo prek USB, če želimo omogočiti krmiljenje iz osebnega računalnika ali uporabo ključkov USB namesto kartice mini SD. Opcijska dodatna funkcionalnost je tudi podpora daljinskemu upravljanju ali upravljanje iz PC prek vrat USB.

Višji nivo vgrajene programske opreme predstavlja glavni program, ki vse našteto povezuje v celoto in hkrati omogoča prikaz imena trenutno predvajane skladbe na zaslonu, zajema pritiske tipk s tipkovnice in izvaja uporabniške zahteve, kot so: začetek predvajanja, premor, zaustavitev predvajanja, …

Za vse, ki bi se kljub vsemu radi lotili programiranja, povejmo, da novejša okolja za programiranje 32-bitnih mikrokrmilnikov temeljijo na programskem jeziku C in omogočajo uporabo konfiguratorjev vgrajene programske kode, s katerimi lahko enostavno izberemo vse potrebne osnovne funkcionalnosti, ne da bi morali programirati.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji