Spletni in valovni radijski sprejemnik

Objavljeno: 29.10.2019 | Avtor: Simon Peter Vavpotič | Kategorija: Nasveti | Revija: November 2019

Spletni radio dobiva z vse hitrejšimi načini dostopa do interneta primat nad klasičnim valovnim radijem. Čeprav so sprejemniki spletnega radia v obliki avdio komponent sorazmerno dragi, jih lahko z malo truda in iznajdljivosti naredimo tudi sami. Izdelamo pa lahko tudi valovni radio.

Sredi osemdesetih let preteklega stoletja je bil analogni prenos radijskega signala samoumeven, valovni radijski sprejemniki pa natančno in premišljeno zasnovana analogna vezja iz nepregledne množice tuljav, kondenzatorjev, uporov in tranzistorjev. Internet je bil šele v povojih, saj smo s počasnimi in z dragimi modemi le s težavo prenesli večje količine podatkov. Čeprav naj bi prva spletna radijska postaja nastala že leta 1993, kakovosten avdio zvokovni tok prek interneta ni bil mogoč do uvedbe širokopasovnih priključkov.

Valovni radijski sprejemnik z digitalnim upravljanjem

Devetdeseta leta so prinesla večjo integracijo, ne le v digitalnih, temveč tudi v analognih integriranih vezjih. Gradnja kakovostnih dolgovalovnih (LW, angl. long wave), srednjevalovnih (MW, angl. middle wave), kratkovalovnih (SW, angl. short wave) in ultrakratkovalovnih (USW, angl. ultra short wave) radijskih sprejemnikov je s čipi, kot je TEA5710, postala enostavnejša. TEA5710 omogoča poslušanje amplitudno (AM) in frekvenčno moduliranih (FM) radijskih signalov. Vseeno pa samogradnja radijskega sprejemnika z njim ni za začetnike, saj moramo dodati še kopico zunanjih komponent, med katerimi so nastavljive tuljave, kondenzatorji in upori (trimerji), s katerimi uravnamo nihajne kroge in s tem zagotovimo dober sprejem na vseh frekvenčnih območjih.

Spletna stran, s katere lahko dosežemo avstralske spletne radijske postaje. Preklapljanje med postajami je enostavno, vendar je njihov nabor omejen.

Do čipov za enostavno (samo)gradnjo radijskega sprejemnika smo morali počakati še več kot dve desetletji, saj je šele TEA5767 uspešno združil krmilna digitalna in demodulatorska analogna vezja. Za delovanje radijskega sprejemnika pa smo morali na tiskanino z integriranim vezjem dodati le še peščico kondenzatorjev in uporov (vsega skupaj 18) ter povezavo s palično anteno. Čip upravljamo z računalnikom prek zaporednega digitalnega vodila I2C ali 3-wire (denimo TEA5767HN podpira oba protokola), a zaradi obilice drobnih priključkov, širine okoli 0,5 mm, ni primeren za ročno spajkanje, si pa lahko za domači projekt v kateri od svetovnih spletnih trgovin z elektronskimi komponentami omislimo že izdelano miniaturno tiskamo vezje z običajnim razmikom priključkov (2,54 mm), ki ima že vgrajene tudi vseh potrebne zunanje električne komponente. Povejmo še, da omenjena Philipsova čipa omogočata le sprejem signala na področju USW (od 76 do 108 MHz), pri čemer sta zajeta evropski in japonski standard.

Zakaj digitalni radio večinoma le prek spleta?

Razmah hitrih internetnih povezav po naših domovih je zabavno industrijo že pred več kot desetletjem spodbudil k množičnemu oddajanju radijskih in televizijskih programov prek spleta. Večina radijskih postaj danes prenaša programe tudi s svojih računalniških strežnikov. Po drugi strani lahko spletno »radijsko postajo« vzpostavi vsakdo, ki ima stalni internetni priključek in fiksno številko IP.

Prenos zvoka v digitalni obliki prek interneta je pogosto kakovostnejši od prenosa amplitudno ali frekvenčno moduliranega signala po zraku. Digitalni radio za kakovosten prenos signala ne potrebuje tako velike pasovne širine kot digitalna televizija, radijski signal v obliki podatkovnih paketov zato z lahkoto potuje tudi po širokopasovnem internetu.

V zadnjem času postaja vse bolj popularen tudi RDA Microelectronicsov enočipni radijski sprejemnik RDA5807M, ki zna zajemati tudi tekstovne podatke RDS in RBDS (navadno le ime radijske postaje), ki jih radijske postaje prilepijo v avdio signalu, da jih lažje poiščemo. Vendar RDA5807M namesto analognih vezij za dekodiranje frekvenčno moduliranega signala uporablja pretvornik A/D in digitalno logiko ter šele na koncu signal s pretvornikom D/A ponovno spremeni v analogno obliko za levi in desni kanal. Prav zato pogrešamo tudi digitalni avdio izhod (npr. I2S).

Tega (priključek DOUT, po standardu I2S) ima Silicon Labsova družina enočipnih radijskih sprejemnikov Si473x, v kateri je najzmogljivejši Si4735, ki lahko sprejema modulirane valovne radijske signale AM in FM na frekvenčnih področjih LW, MW, SW in USW. Vsekakor velja poudariti, da potrebujemo tudi ustrezne antene, ki si jih lahko izposodimo tudi s kakega starega analognega radia.

Kot kovanec za četrt dolarjev velik digitalni enočipni valovni radijski sprejemnik Si4735 na tiskanem vezju za prototipiranje.

Spletni radijski sprejemnik

Konec devetdesetih let je prinesel v naše domove prve različice širokopasovnih internetnih povezav (xDSL). Telefonske parice so nekaj let kasneje začeli nadomeščati tudi koaksialni in optični kabli, vendar so vsi trije mediji za prenos podatkov z vse zmogljivejšimi modemi že kmalu omogočili nemoteno poslušanje spletnih radijskih z osebnimi računalniki. Čeprav je za poslušanje zadoščal že sodoben spletni brskalnik, so si mnogi želeli, da bilo menjavanje radijskih programov podobno enostavno kot pri valovnem radiu. Nastale so namenske aplikacije, ki so poznale različne tipe podatkovnih datotek z obsežnimi zbirkami dostopnih podatkov spletih radijskih postaj.

Vendar je šele prihod prvih mikroračunalnikov, kot sta Raspberry Pi in Banana Pi, omogočil samogradnjo spletnih radiev v obliki avdio komponent, ki imajo možnost prikazovanja informacij o izbrani radijski postaji in drugih nastavitvah na preprostih vgradnih prikazovalnikih LCD, možnosti priklopa stikal, vrtljivih stikalnih gumbov, zaslonov na dotik in drugih analognih ter digitalnih pripomočkov za enostavno izbiro postaj in nastavitev glasnosti. Lahko delujejo tudi kot spletni strežniki. Z ustrezno programsko opremo jih lahko upravljamo iz vseh pametnih telefonov, tabličnih računalnikov in domačih drugih računalnikov z žično ali brezžično ethernetno povezavo (WiFi). Prav zato ne potrebujemo klasičnih infrardečih daljinskih upravljalnikov, a jih lahko kljub temu najdemo v pestri ponudbi komponent za samogradnjo spletnih radiev. Ker imajo novejši mikroračunalniki na voljo tudi vmesnik WiFi, s katerim se lahko povežejo z domačim brezžičnim usmerjevalnikom, zadošča za delovaje spletnega radia že napajalni kabel.

Za nostalgike

Številni se navdušujejo nad predelavami prvih radijskih sprejemnikov na elektronke v spletne radie ali sodobne digitalno krmiljene valovne radie. Nekateri pri tem celo ohranijo ojačevalnik na elektronke, na katerega pripeljejo signal iz mikroračunalnika, ki služi kot spletni radijski sprejemnik. Pri tem se morajo pogosto odreči stereofonskemu zvoku in avdio kanala prek preprostega uporovnega vezja združiti v enega. Drugi namesto tega vgradijo sodoben tranzistorski ojačevalnik in dva srednjetonska zvočnika oziroma kompleta zvočnikov, ki pa sta pogosto preblizu skupaj za kakovosten stereofonski zvok.

Zanimivo, da se pri tem le malokdo spomni, da bi namesto tega uporabil dva (enaka ali podobna) stara radia, od katerih bi vsakega uporabil kot ojačevalnik po enega avdio kanala.

Pametni telefoni

Skoraj vsi novejši mobilni telefoni imajo vgrajeno aplikacijo za sprejem valovnega radijskega signala. Pametni telefoni omogočajo tudi poslušanje spletnega radia, vendar z običajno programsko opremo nudijo manj možnosti upravljanja od namenskega spletnega radijskega sprejemnika, obenem so namenjeni predvsem enoosebni rabi. Kot predvajalnik glasbe in radijski sprejemnik bi lahko zato uporabili kvečjemu odslužen pametni telefon.

Kakorkoli, za poslušanje spletnega radia na pametnem telefonu lahko namestimo tudi katero od namenskih aplikacij, kot so TuneIn (iOS/Android/Windows phone), Earbits (iOS/Android) in Beats 1 (iOS), ki znajo same poiskati sezname aktivnih internetnih radijskih postaj. Za sobno predvajanje radia iz mobilnega telefona je dovolj kabel, s katerim izhod za slušalke povežemo z avdio ojačevalnikom, ali pa seveda povezava bluetooth.

Vseeno opozorimo, da se izplača internetni radio poslušati prek povezave WiFi z domačim brezžičnim usmerjevalnikom in ne prek mobilnih podatkovnih omrežij (3G ali 4G), če seveda nimamo dovolj velikega podatkovnega paketa.

Kako začeti?

Ob poplavi zmogljivih 32-bitnih mikrokrmilnikov in mikroračunalnikov lahko začnemo radijski sprejemnik načrtovati okoli kateregakoli izmed njih, a veliko prikladneje je uporabiti že izdelan mikrokrmilniški modul (npr. Arduino UNO) ali mikroračunalnik (npr. Raspberry Pi). Za izdelavo klasičnega valovnega radijskega sprejemnika z digitalnim upravljanjem potrebujemo le malo procesorske moči (razen če želimo digitalno obdelavo zvoka), zato lahko uporabimo Arduino UNO ali katerokoli drugo mikrokrmilniško razvojno ploščo, ki podpira ustrezno zaporedno povezavo (npr. I2C, 3-wire …). Za upravljanje miniaturnega radijskega modula potrebujemo le še grafični prikazovalnik in enostavno tipkovnico, zaslon na dotik ali drugo vhodno napravo za preklapljanje med radijskimi kanali ter 5-voltni napajalnik.

Vendar se zdi, da je Raspberry Pi (ali drug mikroračunalnik z operacijskim sistemom) glede na svojo zmogljivost vseeno cenovno najugodnejši, saj omogoča tudi poslušanje spletnega radia. Raspberry Pi 3b+ vsebuje priključek na žično ethernetno omrežje, vmesnik WiFi ter 4 priključke USB, prek katerih lahko povežemo monitor, tipkovnico in druge naprave USB. Po drugi strani lahko celo za oskubljeni Raspberry Pi Zero dokupimo ethernetni mostni modul, ki ga vtaknemo v prosto vtičnico USB in hkrati dodamo zaslon LCD za prikaz izbranega radijskega programa ter drugih nastavitev. Pri vseh različicah Raspberry Pi je več kot dovolj tudi pomnilnika. Očitamo mu lahko le precej večjo porabo električne energije v primerjavi z mikrokrmilniki.

Med popularnimi mikroračunalniki omenimo še zmogljivejšo in dražjo družino Banana Pi, zasnovano na procesorskih jedrih ARM. Nekateri Banana Pi pa omogočajo celo priklop 2,5-palčnih pogonov SSD in diskov. Spletni radio lahko zgradimo celo na osnovi odprtokodnega usmerjevalnika (npr. Asus WL-520GU).

Videz in funkcionalnosti

V navodilih za izdelavo spletnega radia na osnovi Raspberry Pi najdemo kopico zanimivih projektov, katerih avtorji so za ohišja uporabili najrazličnejše predmete, od prastarih radiev na elektronke, škatel za drage pijače in ekstravagantnih kovčkov do ličnih doma narejenih lesenih ohišij ter industrijskih kovinskih in plastičnih ohišij za samogradnjo elektronskih naprav, v katerih je treba izrezati le odprtine.

Digitalni radijski sprejemnik v ličnem lesenem ohišju domače izdelave z vgrajenimi zvočniki in ojačevačnikom ter daljinskim upravljanjem.

Najmanjša velikost ohišja je odvisna od tega, ali nameravamo vanj vgraditi le mikroračunalnik z radijskim sprejemnikom in vtičnici RCA (ali podobni) za povezavo z avdio ojačevalnikom ali pa si želimo kompakten radio z vgrajenimi ojačevalnikom in zvočniki, ki ga bomo lahko vzeli na počitnice.

Velikost ohišja je odločilna tudi pri izbiri zaslona za prikaz radijskega programa in ostalih nastavitev. Nostalgiki nimajo težav, saj je bila večina prvih radiev na elektronke v velikih lesenih škatlah, ki so se uporabljale tudi kot resonančne skrinje. Vanje je mogoče namesto originalne programske skale vgraditi tudi sodobne prikazovalnike TFT in LCD z zasloni na dotik, ki lahko prikazujejo programsko skalo v bolj ali manj izvirni grafiki. Mnogi so se kljub temu raje odločili za nekajkrat cenejše dvobarvne (znakovne) zaslone LCD.

Načine upravljanja radijskega sprejemnika lahko v celoti prilagodimo svojim željam. V samostojni radijski sprejemnik navadno vgradimo gumbe in stikala za izbiranje kanalov. Avtorji različnih projektov radi uporabljajo tudi preklopne gumbe, potenciometre itn. ali pa vse nadomestijo z zaslonom na dotik. Nekateri mikroračunalniki Banana Pi imajo vgrajen tudi infrardeči sprejemnik za upravljanje s klasičnim daljinskim upravljalnikom.

Kot daljinski upravljalnik sodobnega digitalnega radia lahko uporabimo tudi pametni telefon.

Za gradnjo valovnega radijskega sprejemnika navadno ne potrebujemo veliko procesne zmogljivosti, saj radijski modul zgolj krmilimo, medtem ko potekata demodulacija in prenos zvoka v avdio ojačevalnik po dveh analognih kanalih. Valovni sprejemnik lahko dodamo tudi sprejemniku spletnega radia, vendar moramo v tem primeru ustrezno prilagoditi programsko opremo, oziroma njene nastavitve. Le redki enočipni radijski sprejemniki premorejo tudi digitalni avdio izhod. Če se odločimo za uporabo teh, enostaven mikrokontroler (npr. tisti na Arduinu UNO) ne bo dovolj. Tako se ponovno vrnemo k že omenjenim mikroračunalnikom, med katerimi je trenutno najbolj priljubljen Rasberry Pi. Res pa je, da pri digitalni obdelavi zvoka ne potrebujemo dodatnih analognih vezij za nastavljanje jakosti in barve zvoka.

Digitalni radijski sprejemnik v ohišju LEGO z zunanjim ojačevalnikom in zvočniki.

Programska oprema

Če nameravamo pri gradnji radia uporabiti programsko opremo s spleta, pri kateri bomo izbrali zgolj ustrezne nastavitve, moramo pri izbiri komponent paziti na združljivost. Programski paketi, kot je piRadio, vselej podpirajo le omejen nabor strojnih komponent, za nepodprte komponente pa moramo sami izdelati ustrezne programske vmesnike. Veliko programske opreme omogoča izbiro priključkov za zaporedna podatkovne vodila (npr. I2C), prek katerih povežemo prikazovalnik LCD, valovni radijski sprejemnik in druge periferne module. Pri sestavljanju spletnega radia imamo zato precej svobode in se nam ni vedno treba držati referenčnih načrtov.

Na svetovnem spletnem portalu GitHub najdemo številne programske knjižnice za komunikacijo z različnimi perifernimi moduli za mikrokrmilniške razvojne plošče in mikroračunalnike, kot so Arduino UNO, Rasberry Pi in Banana Pi. V programskem jeziku Python tako ni težko izdelati enostavne aplikacije za upravljanje valovnega radia. Za osnovno upravljanje valovnega radia prek tipkovnice lahko z GitHuba prenesemo katero od aplikacij v programskem jeziku Python, ki jo lahko tudi dokaj enostavno prilagodimo svojim potrebam.

Pestra izbira podprtih grafičnih prikazovalnikov, ki jih lahko izberemo med izvedbo nastavitev spletnega radia.

Med izdelanimi aplikacijami za poslušanje spletnega radia z Raspberry Pi so KRadio, Gnomeradio, RDS-Surveyer in ipRadio z vtičnikom za valovni radio, katerih zasnova je bolj ali manj prilagojena namenski strojni opremi za gradnjo spletnih radiev. Večina programskih paketov se lahko prilagodi majhnim vgradnim zaslonom, ki jih uporabljajo spletni in valovni radii namesto monitorja s priključkom HDMI ali DVI. Ustrezen gonilnik lahko izberemo ob namestitvi.

Prenos, namestitev in prilagajanje programske opreme

Programsko opremo za mikrokrmilnike navadno dobimo v oblikah izvorne kode in izvedljive kode. Izvedljive kode ni treba prevajati, zato nam ni treba iskati potrebnih programskih knjižnic in prevajalnikov, imamo pa zato veliko manj svobode pri dodajanju nepodprtih perifernih enot. Prevajanje izvorne kode je mogoče samo, če imamo na voljo ustrezno razvojno okolje, katerega namestitev navadno ni ravno trivialna.

Večina mikroračunalnikov ima tak ali drugačen operacijski sistem. Nekatere vrste programske opreme so na spletu na voljo v obliki slik podatkovnih pogonov (*.img), zato ni potrebno nameščanje operacijskega sistema in podatkovnih paketov, temveč le izvedba nastavitev.

Po drugi strani je ročno nameščanje zastonjske programske opreme v Linux sorazmerno dobro avtomatizirano, a se vseeno pogosto ne moremo izogniti branju navodil, saj moramo pred namestitvijo in izvedbo nastavitev nemalokrat dodati še manjkajoče sistemske module in programske knjižnice.

Namestitev spletnega radia na Raspberry Pi

Večina namestitvenih vodnikov predlaga, da kot prvi korak namestitve izvedemo ukaz sudo apt-get update, s katerim v vlogi skrbnika na spletnih strežnikih posodobimo zbirko razpoložljivih dodatnih programskih modulov. Z ukazom sudo rpi-update lahko nadgradimo tudi vgrajeno programsko opremo. Ta posodobitev je namenjena starejšim mikroračunlanikom. Sledi obvezen ponovni zagon z ukazom reboot, nakar ponovno izvedemo sudo apt-get update, ki prenese dodatne posodobitve, če smo prej uporabili sudo rpi-update.

Poslušanje spletnega radia na Raspberry Pi z namensko programsko opremo: sodoben videz kanalnika (levo) in starinski (desno).

Spletna varnost mikroračunalnikov

Operacijski sistemi in programski paketi, s katerimi vzpostavimo delovanje spletnega radia, imajo navadno prednastavljena gesla, ki jih moramo obvezno spremeniti pred povezavo naprave z internetom. V nasprotnem tvegamo možnost naključnega hekerskega vdora v mikroračunalnik

Naslednji korak je prilagajanje nastavitev Linuxa z ukazom sudo raspi-config, s katerim v vlogi skrbnika zaženemo orodje za izbiro nastavitev Linuxa v tekstovni grafiki. Z njim lahko spremenimo način zagona računalnika, tako da se izvede samodejna prijava v operacijski sistem in se hkrati zažene aplikacija za upravljanje radia. Po želji lahko izklopimo namizje operacijskega sistema in zahtevamo, da se ta zažene v konzolnem načinu, še posebej, če za prikazovanje uporabljamo namenski zaslon. Izberemo lahko tudi jezikovne možnosti in časovni pas ter prednastavimo omrežna vmesnika za žični ethernet in WiFi.

Če uporabljamo prikazovalnik HDMI (z zaslonim na dotik), je zdaj pravi čas za namestitev pretvornika za video, ffmeg, ki jo izvedemo z ukazom sudo apt-get install ffmpeg. Veliko samograditeljev se raje odloči za majhen in priročen zaslon Olimex OLED s 128 x 64 pikami

(ali združljivega), za katerega lahko z ukazoma sudo apt-get install libffi-dev in sudo apt-get install build-essential libi2c-dev i2c-tools python-dev prenesemo tudi ustrezne gonilnike. Če smo namestili okrnjeno različico Linuxa za Raspberry Pi, Rasbian-Lite, ki porabi manj pomnilnika in veliko manj prostora na kartici SD kot običajna različica, je zdaj čas za namestitev programskega paketa python-pil, ki ga izvedemo z ukazom sudo apt-get install python-pil.

Opcijski programski paket Anarcon, ki ga namestimo z ukazom sudo apt-get install anarcon, omogoča samodejni tedenski prenos in posodobitev seznamov spletnih radijskih postaj. V zadnje različice Rasbiana je treba namestiti tudi Scratch (sudo apt-get install scratch), ki omogoča poljubno izbiro ozadja namizja. Z ukazom reboot ponovno zaženemo Raspberry Pi.

Končno se lahko lotimo namestitve aplikacije za predvajanje spletnega radia, z ustreznim vtičnikom pa tudi valovnega radia. Najprej namestimo storitev za predvajanje glasbe Music Player Demon:

sudo apt-get install mpd mpc python-mpd.

Če apt-get ne najde namestitve, predhodno poženemo še sudo apt-get update.

Zdaj lahko po želji namestimo aplikacijo pulseradio (sudo apt-get install pulseradio), ki doda funkcionalnost espeak. Ta omogoča branje tekstovnih besedil v različnih jezikih. Če je ne potrebujemo, je bolje, da aplikacije pulseradio ne nameščamo.

Zadnji korak je namestitev storitve za upravljanje spletnega radijskega sprejemnika, Raspberry PI Internet Radio. Programski paket najprej z ukazom

wget www.bobrathbone.com/raspberrypi/packages/radiod_<različica>.<podrazličica>_armhf.deb

prenesemo na Raspberry Pi, nato pa ga z ukazom

sudo dpkg -i radiod_<različica>.<podrazličica>_armhf.deb namestimo.

(Seveda namesto besedila <različica>.<podrazličica> vnesemo dejansko različico in podrazličico programskega paketa, npr. 6.10).

Sledi izvedba nastavitev, ki jo iz datotečne mape /usr/share/radio zaženemo z ukazom sudo ./configure_radio.sh. Nastavitve nato izvedemo v tekstovnih oknih. Velja omeniti še pestro izbiro različnih podprtih prikazovalnikov, med katerimi so popularni prikazovalniki LCD in OLED pa tudi možnost, da še naprej uporabljamo zaslon HDMI z zaslonom na dotik. Pogosto pride prav tudi možnost, da izpis na prikazovalniku obrnemo na glavo, saj lahko tako v nekaterih primerih bolje izkoristimo ohišje radijskega sprejemnika.

Jakost in barva zvoka

Le boljši in novejši digitalno krmiljeni enočipni radijski sprejemniki omogočajo digitalno nastavljanje barve in jakosti zvoka, medtem ko lahko pri ostalih v serijo vežemo dodatne digitalno krmiljene analogne čipe, ki jih prav tako upravljamo prek zaporednega podatkovnega vodila (npr. I2C). Denimo kot digitalno krmiljen analogni potenciometer lahko uporabimo čip PT2257.

Po drugi strani z enočipnimi valovnimi radijskimi sprejemniki z digitalnim izhodom in prek spletnega radia zvok sprejmemo v digitalni obliki in ga lahko z aplikacijami za sprotno obdelavo zvoka v mikroračunalnikih tudi programsko obdelamo, še preden ga pretvorimo v analogno obliko za predvajanje. Dodatnih analognih vezij zato ne potrebujemo.

Številni projekti samogradnje radijskega sprejemnika vključujejo tudi avdio ojačevalnik in zvočnika, saj tako za predvajanje zvoka ne potrebujemo dodatnih naprav, a to področje prepuščamo bralcem, saj je na spletu več kot dovolj načrtov za vsakovrstne glasbene sladokusce. Predloge in povezave na načrte najdete tudi v priročniku za samograditelje spletnega radia Rasberry Pi Internet Radio Constructors Manual …

Koristni spletni naslovi

Priročniki za samograditelje spletnih radijev

bobrathbone.com/raspberrypi/pi_internet_radio.html

www.elektormagazine.de/labs/fm-radio-receiver-rds-for-rasbery-pi

mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction

Predelava starodobnega valovnega radia

www.bobrathbone.com/raspberrypi/documents/Raspberry%20PI%20Radio.pdf

Gradnja brezžičnega spletnega radia iz Asusovega usmerjevalnika

mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/

Portal za razvijalce programske opreme, GitHub

www.github.com

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

ph

Komentirajo lahko le prijavljeni uporabniki