Kazalo:

Ohranjanje strahu Preprost internetni radio: KISSIR: 13 korakov
Ohranjanje strahu Preprost internetni radio: KISSIR: 13 korakov

Video: Ohranjanje strahu Preprost internetni radio: KISSIR: 13 korakov

Video: Ohranjanje strahu Preprost internetni radio: KISSIR: 13 korakov
Video: The Choice is Ours (2016) Official Full Version 2024, November
Anonim
Ohranjanje strahu Poenostavljen internetni radio: KISSIR
Ohranjanje strahu Poenostavljen internetni radio: KISSIR
Ohranjanje strahu Preprost internetni radio: KISSIR
Ohranjanje strahu Preprost internetni radio: KISSIR

Včasih mora biti le taktilna. Brez kakršnega koli vmesnika. Samo gumbi.

Raspberry Pi kot internetni radijski predvajalnik ni nič novega in obstaja veliko navodil o tem, kako ustvariti internetni radijski predvajalnik z uporabo maline pi z ali brez monitorja za pretakanje internetnih postaj z vsega sveta. Če bi se odločili brez glave (brez monitorja), bi še vedno potrebovali sredstva za vmesnik predvajalnika pi, običajno spletni vmesnik, če ne neposreden način komuniciranja z gostiteljem, na primer ssh. Ta navodila bodo nekoliko drugačna; za pošiljanje ukazov pi bomo uporabili preproste pritiske gumbov, s čimer bomo odpravili potrebo po spletnem vmesniku in LCD zaslonu. Sliši se dovolj enostavno, kajne (?)

Začeli bomo z zelo osnovnim dizajnom z uporabo barvno označenih gumbov, vsaka barva bo predstavljala internetno radijsko postajo. Predstavili bomo nekaj kode python, ki bo upravljala pritisk na gumb: Tiskalnik bo izvedel ukaz za predvajanje vnaprej kodirane internetne radijske postaje z uporabo MPG123, odličnega orodja ukazne vrstice za predvajanje zvoka na našem pi.

Vašega znanja pythona ni treba napredovati. Pravzaprav sem dobesedno prešel iz "Hello World" v pisanje tega, in kot boste videli, sem si sposodil veliko kode - tako da, če to zmorem in imam nekoliko dokumentirano, ne bi smel imeti kdo drug težav.

Pojdimo!

Zaloge:

Potrebni materiali

  • Raspberry pi/ pi zero w z vsemi pritrditvami: napajalnikom, kartico SD in Raspbian ali Raspbian lite.
  • Wifi in dostop do interneta
  • Še en računalnik za nekaj brskanja po spletu in možnost SSH do maline pi
  • Digitalno -analogni pretvornik (DAC) - neobvezno, vendar boste hvaležni.
  • Ojačevalnik
  • Zvočniki
  • Priključna žica in skakalci
  • Spajkalnik in spajkanje
  • Perf tabla za gumbe
  • Tipni gumbi: običajno odprti- po en za vsako zvrst glasbe, gumb za vklop in izbirni gumb za izklop zvoka (priporočenih 7 gumbov)
  • Stanovanjska enota za vse zgoraj navedeno (neobvezno, vendar urejeno)

1. korak: Predpogoji:

Predpogoji
Predpogoji

Začeli bomo ob predpostavki, da ste že nastavili svoj malinov pi, DAC in ojačevalnik, in tudi predpostavljali, da imate dostop do interneta. Zaradi velike izbire avdio opreme, nastavitev in možnosti poslušanja zvoka bomo domnevali, da je vaša nastavitev že končana: pred začetkom tega projekta bi morali zvočniki že zvoniti. Prav tako bomo morali ssh v malinovo pi, zato s konfiguracijo pi zagotovite, da so vmesniki omogočeni ssh. Uporabljal bom Raspbian lite in priporočam, da namestite najnovejšo kopijo na novo kartico SD, namenjeno temu projektu. Če bo uspešen, bomo zgradili samostojno napravo, ki jo lahko pustimo vklopljeno 24 ur na dan kot namensko poslušalno napravo.

2. korak: Namestite Python in Pip

Raje preidem v pi s pomočjo drugega računalnika in opravim vse potrebne funkcije s pomočjo seje ssh, vendar mislim, da je mogoče sprva nastaviti pi na monitor, tipkovnico in miško in delati neposredno na pi, dokler ni delujoči in nato nameščen kot samostojen.

Najprej naredimo rutinsko preverjanje vzdrževanja našega sistema in različice pythona:

sudo apt-get posodobitev

sudo apt-get nadgradnja

Prepričajte se, da je nameščen Python. V terminalski seji v ukazni poziv vnesite naslednje:

python --verzija

Če vidite python 2.7.13 (ali starejši), namestimo python 3.+:

sudo apt-get install python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip

3. korak: Namestite MPG123 in Adafruit Blinka

Zdaj, ko so bili postavljeni temelji, samo še nekaj namestitev:

MPG123 je zvočna programska oprema, ki predvaja našo glasbo. Namestitev je zelo preprosta:

sudo apt-get install mpg123

Naredil sem veliko raziskav in na spletnem mestu Adafruit našel odlično predlogo o predvajanju zvočnih datotek s pritiskom na gumbe, zato namesto da začnemo od začetka, nadaljujmo po poti, ki so nam jo ljudje v Adafruitu že planili. Njihov program zahteva, da namestimo Adafruit Blinka:

$ sudo pip3 namestite adafruit-blinka

Preden nadaljujemo, na hitro preverimo, ali imamo nastavljeno Also:

aplay --verzija

naši rezultati bi se morali glasiti: različica 1.1.3 avtorja Jaroslav Kysela

4. korak: V programu Alsamixer nastavite glasnost na 50%

V Alsamixerju nastavite glasnost na 50%
V Alsamixerju nastavite glasnost na 50%
V Alsamixerju nastavite glasnost na 50%
V Alsamixerju nastavite glasnost na 50%

Zdaj pa ukrepajmo previdno in prilagodimo glasnost na 50%, da se izognemo oglušujočim presenečenjem:

V ukazni poziv vnesite alsamixer:

alsamixer

Če gledamo zaslon rdeče -bele in zelene barve ali 100% največjo glasnost, je dobro, da glasnost znižamo na 50%, da prihranimo bobniče. Po potrebi se lahko kadar koli prilagodimo (gor ali dol).

5. korak: Nekaj domačih nalog: Poiščite 5 radijskih postaj, ki jih je vredno poslušati

Nekaj domačih nalog: Poiščite 5 radijskih postaj, ki jih je vredno poslušati
Nekaj domačih nalog: Poiščite 5 radijskih postaj, ki jih je vredno poslušati
Nekaj domačih nalog: Poiščite 5 radijskih postaj, ki jih je vredno poslušati
Nekaj domačih nalog: Poiščite 5 radijskih postaj, ki jih je vredno poslušati

Za vsak gumb potrebujemo eno postajo. Pravzaprav bomo za postajo potrebovali URL. Pritisk gumba bo poklical url internetne radijske postaje v preprostem kodu v eni vrstici. Vendar smo že pred nami, zato nas čaka nekaj domačih nalog; poiščite 5 radijskih postaj in njihove URL -je. Iskanje 5 radijskih postaj ni težko, vendar je iskanje njihovih url težko. Čez minuto bom razložil zakaj.

SomaFm * je odličen vir za začetek, še posebej, če še nimate pojma, kaj želite poslušati. Imajo široko paleto eklektičnih glasbenih možnosti, od katerih se mi nobena ne zdi žaljiva, brez reklam in najboljši del: odkrito delijo svoje URL -je. Če želite zajeti url, kliknite sliko postaje, ki vas zanima, in na levi strani navigacijske vrstice kliknite »Direct Stream Links«. Od tam poiščite razdelek MP3 in pobrišite URL najvišje stopnje predvajanja (tj. 128 utripov 64). URL za zdaj prilepite v urejevalnik besedil ali beležnico.

Na primer, če želite strgati božične skale, bi bil URL: (ne potrebujemo opisa strežnika)

ice4.somafm.com/xmasrocks-128-mp3

Zunaj sveta SomaFm -a postane nekoliko bolj umazano. Mnoge postaje uporabljajo posrednika med poslušalcem in postajo, pa naj gre za oglaševanje, trženje ali morda sledenje - in na splošno se poskušam izogniti tem vrstam postaj. Ker posredniki raje poslušajo postajo prek njih, je običajno zelo težko najti url; in tu pride Vtuner.

*Če ne bi prosil, da razmislite o donaciji svoje najljubše radijske postaje, bi bil slab, saj se mnoge od njih zanašajo izključno na podporo poslušalcev.

Korak 6: Neobvezno: URL strgajte z uporabo Vtunerja

Izbirno: S pomočjo Vtunerja počistite URL
Izbirno: S pomočjo Vtunerja počistite URL
Izbirno: S pomočjo Vtunerja počistite URL
Izbirno: S pomočjo Vtunerja počistite URL

Zdaj prihaja zabavni del … Na domači strani Vtunerja si oglejte njihovo ogromno povezavo do seznama postaj v zgornjem desnem kotu. Izberite zvrst glasbe, ki vas zanima, in nato razvrstite po najhitrejši hitrosti, kjer boste videli seznam postaj. Izberite postajo, ki vam bo morda všeč, kliknite povezavo ali gumb za predvajanje in preizkusite glasbo. Če ni za vas, brez skrbi, ponovite postopek, dokler ne najdemo primernega za dolgotrajno uživanje. Na svojem posnetku zaslona sem izbral digitalno impulzno različico country glasbe in na naslednjem zaslonu sem opazil, da igra zunaj Hrvaške. Country glasba iz Hrvaške zveni precej zanimivo.

Všeč mi je. Kako pa dobim URL? Preprosto izvedite desni klik na presledku desno od slike postaje, pod imenom postaje, izberite »Ogled vira strani« in se pomaknite navzdol do približno vrstice 150. Iščemo vrstico z napisom »// Poskusite za rokovanje z ledom. URL se nahaja takoj spodaj!

orion.shoutca.st:8110/stream

Precej gladko!

Ta korak ponavljajte, dokler na našem seznamu ni vsaj 5 postaj.

Dvojno po izbiri: če želite najti 5 zvrsti glasbe, ki vas zanimajo (v nasprotju s 5 postajami), sestavite seznam radijskih postaj za vsak žanr in jih shranite kot besedilne datoteke. K temu se bomo vrnili kasneje.

7. korak: nastavite gumbe

Nastavite naše gumbe
Nastavite naše gumbe
Nastavite naše gumbe
Nastavite naše gumbe

Najpomembnejši del! Odstranite prah s starega spajkalnika ali ga vsaj priključite in specite prah. Čas je za spajkanje. Uporabljam 4 tipkovne trenutne gumbe, normalno odprte. Zgradil bom vrsto gumbov (leva fotografija) in jih pritrdil na neko ploščo perf. Na fotografiji je težko reči, toda smer gumbov teče od severa do juga. Na desni strani lahko vidite, kje sem speljal ozemljitveno žico za svoje ozemljitvene žice in na nasprotno stran vsakega gumba pritrdil nekaj moških kablov. Namesto 7 ozemljitvenih povezav nam bo tirnica omogočila skupno rabo ene ozemljitvene povezave s pi za vse. Končni rezultat je občutljiva plošča iz rezin, ki bo pritrjena na vrh radia z nekaj vijaki skozi priložene pilotne luknje. Skozi utor, ki sem ga izrezal na vrhu, se bodo prikazali le vrhovi gumbov. Ker je moja zgornja površina debela le 1/4 , želim biti previden, da ne privijem preveč. Lepilo je lahko v pomoč, da ploščo perf pritrdite na radio.

8. korak: Prepoznajte naše zatiče GPIO

Prepoznajte naše zatiče GPIO
Prepoznajte naše zatiče GPIO
Prepoznajte naše zatiče GPIO
Prepoznajte naše zatiče GPIO

V mojem edinem drugem navodilu sem predstavil novo uporabo starih zvočnih klobukov Google AIY različice 1. V tem zelo nepriljubljenem (ozko priljubljenem) navodilu sem omenil, kako sem navdušen nad oblikovanjem samega klobuka. Nekaj jih imam na razpolago, zato bom z klobukom izdelal prototip, saj ima vgrajen tako dac kot ojačevalnik.

Zdaj pa opredelimo šest zatičev, ki bodo gostili naše pritiske na gumbe. Prosil vas bom, da se osredotočite na levo stran klobuka Google AIY, kjer piše "servomotorji". Za pin je stolpec s 6 očesci, kamor bom pritrdil in spajkal zaključek moškega gumba iz prejšnjega koraka. Če bi delali brez google aiy glasovnega klobuka, brez skrbi, - vodila vas bo fotografija na desni. V vsakem primeru bomo delali z zatiči gpio (BCM) 26, 06, 13, 05, 12 in 24 od zgoraj navzdol (ali 0-5). GPIO #24 bo rezerviran za izbirni gumb za premor.

Ne pozabite priključiti tudi ozemljitvenega priključka.

9. korak: Koda

Dvomim, da se bo koda od tu močno spremenila, vendar za najnovejšo različico kode python obiščite moj github. Priložil sem kopijo z dne 18.12.2019, imenovano pytiful3.py.

To ni najučinkovitejša koda, ki jo boste kdaj videli, in je precej obsežna, vendar opravi delo.

Začnimo z ustvarjanjem peskovnika za igro. V našem domačem imeniku ustvarite imenik na našem maline pi, imenovan kissir:

mkdir kissir/

in kopirajte vsebino datoteke pytiful3.py v imenik tako, da odprete vzorčno datoteko v urejevalniku besedil in uporabite

sudo nano kissir/pytiful3.py

kopirajte / prilepite vsebino datoteke v novo ustvarjen skript python. Ne pozabite shraniti našega dela z uporabo Ctrl-x, Y in vnesite.

Če želite hiter pregled skripta, uvozimo module python, ki jih bomo potrebovali, nato pa definiramo gumbe in vsakemu od 7 gumbov dodelimo pin gpio. Na voljo bo 5 radijskih postaj (lahko jih uredite po želji), gumb za ustavitev in gumb za zaustavitev. Zanka while true teče in teče, dokler ne pritisnete gumba, kar v večini primerov ustavi predvajanje mpg123 in začne predvajati postajo, dodeljeno gumbu, ki je bil pritisnjen. Gumb za premor/zaustavitev v resnici ni gumb za premor, ampak bolj stikalo za ukinitev, saj internetnega radia ne moremo zaustaviti. Internetni radio ne čaka nikogar.

10. korak: Preizkusite v našem peskovniku

Preizkusite v našem peskovniku
Preizkusite v našem peskovniku

Preden namestimo radio, še vedno v seji ssh, se pomaknite do mape kissir, kjer je shranjen naš skript. Skript lahko preprosto zaženemo iz ukazne vrstice tako, da vnesemo:

python3 pytiful3.py

Če ste najprej pokukali v kodo, ste verjetno opazili, da sem pustil nekaj tiskanih izjav, da lahko povemo, kaj se dogaja. Če se je vse dobro izšlo, bomo imeli poziv, ki se glasi "Pritisnite gumb". To nam pove, da se skript izvaja in je opravil predhodno preverjanje kode. Moj prvi poskus je imel neskončno zanko "glasba začasno ustavljena - pritisnite gumb za nadaljevanje", in ugotovil sem, da imam gumb za pavzo ožičen, da je vedno zaprt, namesto da bi bil normalno odprt. Upajmo, da ste imeli več sreče s korakom spajkanja.

Ctrl-C bo ustavil skript, če morate prekiniti.

Če torej vidite "Pritisnite gumb", kaj čakamo? Izberite katerega koli od petih gumbov radijske postaje.

Verjetno boste verjetno slišali zvočnik, ki bo sprožil predvajanje glasbe, in pri tem si trenutno ne morem pomagati. Mpg123 dovoljuje pripravo "--preload 1" za naslovom postaje v ukazu os.system, vendar nisem mogel ugotoviti, ali je to kaj spremenilo. Omogoča rahel blažilec.

Še en kod, o katerem ste se morda spraševali: po klicu mpg123 je zastavica "-f 7000". To zmanjša glasnost na daleč največjo glasnost. Celotna glasnost bi bila 32K. Kot razumem, lestvica glasnosti ni linearna, zato ne morem reči, da je le petina največje glasnosti, vendar še vedno precej glasna. To sem moral storiti, ker se moja zvočna kartica - glasovna kartica Google AIY, včasih ne igra lepo z Alsamixerjem.

Še naprej izbirajte gumbe po vaši izbiri, sedite, se sprostite in zaenkrat uživajte v udobju poslušanja.

11. korak: Nastavite našo kodo za samodejno izvajanje ob zagonu

Če torej vse teče dobro in ste uživali v našem podvigu z ukaznim pozivom v peskovniku, je zdaj pravi čas za avtomatizacijo nalaganja skripta. Prepričajte se, da ste še vedno v imeniku kissir, in kodo skripta postavite v koš za uporabnike:

sudo cp pytiful3.py/usr/local/bin/

Naj bo izvedljiv:

sudo chmod +x /usr/local/bin/pytiful3.py

Napišite lupinski skript, ki ga želite zagnati ob zagonu:

sudo nano pytiful3.sh

In vstavite naslednje besedilo:

#! /bin/sh ### BEGIN INIT INFO # Zagotavlja: pytiful3.py # Zahtevan zagon: $ remote_fs $ syslog # Zahtevan ustavitev: $ remote_fs $ syslog # Privzeti zagon: 2 3 4 5 # Privzeto-zaustavitev: 0 1 6 ### END INIT INFO # zagotovite, da raven glasnosti ni glasna TODO # Izvedite posebne funkcije, ko to zahteva sistemski primer "$ 1" na začetku) odmev "Zagon pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) echo "Ustavljanje pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) odmev "Uporaba: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac izhod 0

Premaknite ga na init.d:

sudo mv pytiful3.sh /etc/init.d/

Naj bo izvedljiv:

sudo chmod +x /etc/init.d/pytiful3.sh

Registrirajte skript za zagon ob zagonu:

privzete nastavitve sudo update-rc.d pytiful3.sh

12. korak: Preizkusite znova

Zdaj, ko imamo naloženi skript za zagon ob zagonu, ne pozabite, da moramo vse spremembe, ki jih naredimo, prenesti v koš za uporabnike, naš lep skript kissir/pytiful3.py pa je zdaj le še sirota. Na svetli strani pa imamo še peskovnik za igranje. Verjetno se bom še naprej igral s scenarijem, spreminjal in ga v bližnji prihodnosti shranil kot novo različico. Še vedno je delujoč projekt.

Naredimo ponovni zagon, počakamo, da se pi znova zažene, in po približno minuti znova pritisnemo gumb.

Če je vaš zvok zelo nizek, ne pozabite, da imamo glasnost alsamixerja 50%, zato jo lahko ustrezno povečamo iz ukaznega poziva.

Za začetek je potrebna ena globalna vrednost glasnosti, namesto da bi morali glasnost spremeniti petkrat.

Hej, kaj pa tisti seznam radijskih postaj, ki smo ga naredili v 6. koraku? Izkazalo se je, da ima MPG123 ukaz za naključno izbiro. Preprosto je, kot da sestavite seznam URL -jev postaj in namesto da pokličete en naslov radijske postaje, preprosto uporabite

"btn1234_choice = random.choice (btn1234)", takoj po identifikaciji našega seznama postaj, kjer je btn1234_choice naš seznam. Ne pozabite uporabiti oglatih oklepajev okoli našega seznama postaj, ločenih z vejicami. Klic ukaza podproces nato predvaja našo naključno izbiro:

subprocess.call (['mpg123', '-q', btn1234_choice, "--preload 1"])

Korak 13: Zložite ga in končali smo

Zbirajte in končali smo
Zbirajte in končali smo
Zbirajte in končali smo
Zbirajte in končali smo
Zbirajte in končali smo
Zbirajte in končali smo

Če ste prišli do tega koraka, je delo končano! Čestitamo - pravkar ste zgradili samostojen internetni radijski predvajalnik.

Odvisno od opreme, ki jo imate (zvočniki, krmilnik in ojačevalnik), se morda sprašujete, kako skriti nekatere žice, ki jih položite. Morda še en pouk za kakšen dan, če pa nameravate narediti stanovanjsko enoto, v katero boste vtaknili nekaj žic, vam priporočam, da si zagotovite dovolj dodatnega prostora.

Kot lahko vidite na zgornjih fotografijah - pravzaprav sem naredil dva poljubljanja, pri čemer je eden uporabil ostanke lepila, ki je nastala pri prvem poskusu (iz popačenega humorja prihajajo deformirane deske). Druga enota uporablja zvočne vzbujalce namesto običajnih zvočnikov, in če ste na eni od posnetkov zaslona pobrali ime naprave, sem jo poimenoval slimbox.

Ta projekt se mi je zdel zelo zabaven. Obakrat. Zagotovo ni težak projekt, morda malo zamuden, a zelo koristen. Upam, da boste uživali tudi v poslušanju.

Priporočena: