Turinys:

Lengvas interneto radijas: KISSIR: 13 žingsnių
Lengvas interneto radijas: KISSIR: 13 žingsnių

Video: Lengvas interneto radijas: KISSIR: 13 žingsnių

Video: Lengvas interneto radijas: KISSIR: 13 žingsnių
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Lapkritis
Anonim
„Keeping It Stoopid“paprastas interneto radijas: KISSIR
„Keeping It Stoopid“paprastas interneto radijas: KISSIR
„Keeping It Stoopid“paprastas interneto radijas: KISSIR
„Keeping It Stoopid“paprastas interneto radijas: KISSIR

Kartais tai tiesiog turi būti lytima. Jokios sąsajos. Tik mygtukai.

„Raspberry Pi“kaip interneto radijo grotuvas nėra nieko naujo, ir yra daug nurodymų, kaip sukurti interneto radijo grotuvą naudojant aviečių pi su monitoriumi arba be jo, kad būtų galima transliuoti interneto stotis iš viso pasaulio. Jei nuspręstumėte eiti be galvos (be monitoriaus), jums vis tiek reikės priemonių, leidžiančių sujungti „pi“grotuvą, paprastai žiniatinklio sąsają, jei ne tiesioginę komunikacijos priemonę prieglobai, pvz., Ssh. Šis nurodymas bus šiek tiek kitoks; mes naudosime paprastus mygtukų paspaudimus komandoms siųsti į pi, todėl nereikės žiniatinklio sąsajos ir LCD ekrano. Skamba pakankamai lengvai, tiesa (?)

Pradėsime nuo labai paprasto dizaino, naudodami spalvomis koduotus mygtukus, kiekviena spalva bus interneto radijo stotis. Mes pristatysime tam tikrą „Python“kodą, skirtą mygtukų paspaudimams valdyti: Spauda vykdys komandą paleisti iš anksto užkoduotą interneto radijo stotį, naudojant MPG123-puikų komandinės eilutės įrankį, leidžiantį garsą mūsų pi.

Jūsų python įgūdžių nereikia tobulinti. Tiesą sakant, aš tiesiog perėjau nuo „Labas pasaulis“prie šio rašymo ir, kaip matote, pasiskolinau daug kodo - taigi, jei galiu tai padaryti ir šiek tiek dokumentuoti, niekam kitam neturėtų kilti problemų.

Eime!

Priedai:

Reikalingos Medžiagos

  • Raspberry pi/ pi zero w su visais tvirtinimais: maitinimo šaltinis, SD kortelė ir Raspbian arba Raspbian lite.
  • Wifi ir interneto prieiga
  • Kitas kompiuteris, leidžiantis naršyti žiniatinklyje ir SSH prisijungti prie aviečių pi
  • Skaitmeninis į analoginį keitiklis (DAC) - neprivalomas, bet būsite dėkingas.
  • Stiprintuvas
  • Garsiakalbiai
  • Prijungimo viela ir džemperiai
  • Lituoklis ir lituoklis
  • Perf lenta už mygtukus
  • Liečiami mygtukai: paprastai atidaromas- vienas kiekvienam muzikos žanrui, maitinimo mygtukas ir pasirenkamas nutildymo mygtukas (rekomenduojami 7 mygtukai)
  • Korpusas visoms aukščiau paminėtoms (pasirinktinai, bet tvarkingai)

1 veiksmas: būtinos sąlygos:

Būtinos sąlygos
Būtinos sąlygos

Pradėsime darant prielaidą, kad jau nustatėte savo aviečių pi, DAC ir stiprintuvą, taip pat manysime, kad turite prieigą prie interneto. Atsižvelgiant į daugybę garso įrangos pasirinkimų, nuostatų ir garso klausymo parinkčių, manysime, kad jūsų sąranka jau baigta: prieš pradėdami šį projektą garsiakalbiai jau turėtų skleisti garsą. Mums taip pat reikės ssh prie aviečių pi, todėl naudodami pi konfigūraciją įsitikinkite, kad sąsajos įjungtos. Aš naudosiu „Raspbian lite“ir rekomenduoju naujai įdiegti naujausią kopiją į naują šiam projektui skirtą SD kortelę. Jei pavyks, mes kursime atskirą šviestuvą, kurį galima palikti įjungtą visą parą, kaip specialų klausymo įrenginį.

2 veiksmas: įdiekite „Python“ir „Pip“

Man labiau patinka ssh prie pi naudojant kitą kompiuterį ir visas reikalingas funkcijas atlikti naudojant ssh seansą, bet manau, kad iš pradžių galima nustatyti pi prie monitoriaus, klaviatūros ir pelės ir dirbti tiesiogiai su pi, kol jis bus veikia ir tada dislokuoja kaip atskirą.

Pirmiausia atlikite įprastą mūsų sistemos ir „python“versijos priežiūros patikrinimą:

sudo apt-get atnaujinimas

sudo apt-get atnaujinimas

Įsitikinkite, kad įdiegtas „Python“. Terminalo sesijoje komandų eilutėje įveskite:

python -versija

Jei matote python 2.7.13 (arba ankstesnę), įdiekime python 3.+:

sudo apt-get install python3

sudo apt-get įdiegti python-pip

sudo apt-get įdiegti python3-pip

sudo pip3 įdiegti -atnaujinti pip

3 veiksmas: įdiekite MPG123 ir „Adafruit Blinka“

Dabar, kai pamatas buvo padėtas, atlikite dar keletą įdiegimų:

MPG123 yra garso programinė įranga, kuri atkuria mūsų muziką. Diegimas yra tikrai paprastas:

sudo apt-get install mpg123

Atlikau daug tyrimų ir „Adafruit“svetainėje radau puikų šabloną apie garso failų leidimą naudojant mygtukų paspaudimus, todėl, o ne pradėti nuo nulio, leiskite tęsti kelią, kurį „Adafruit“žmonės mums jau užsidegė. Jų programa prašo įdiegti „Adafruit Blinka“:

$ sudo pip3 įdiegti adafruit-blinka

Prieš eidami toliau, atlikime greitą patikrinimą, kad įsitikintume, ar turime „Alsa“sąranką:

aplay -versija

mūsų rezultatai turėtų būti tokie: Jaroslavo Kysela 1.1.3 versija

4 žingsnis: sureguliuokite garsumą iki 50% „Alsamixer“

„Alsamixer“nustatykite garsumą iki 50%
„Alsamixer“nustatykite garsumą iki 50%
„Alsamixer“nustatykite garsumą iki 50%
„Alsamixer“nustatykite garsumą iki 50%

Dabar imkitės atsargumo priemonių ir sureguliuokite garsumą iki 50%, kad išvengtumėte kurtinančių netikėtumų:

Komandų eilutėje įveskite alsamixer:

alsamixer

Jei žiūrime į raudonai baltos ir žalios spalvos ekraną arba maksimalų 100% garsumą, norėdami išsaugoti ausų būgnelius, verta sumažinti garsumą iki 50%. Jei reikia, visada galime koreguoti vėliau (aukštyn arba žemyn).

5 žingsnis: kai kurie namų darbai: raskite 5 radijo stotis, kurių verta klausytis

Kai kurie namų darbai: raskite 5 radijo stotis, kurių verta klausytis
Kai kurie namų darbai: raskite 5 radijo stotis, kurių verta klausytis
Kai kurie namų darbai: raskite 5 radijo stotis, kurių verta klausytis
Kai kurie namų darbai: raskite 5 radijo stotis, kurių verta klausytis

Mums reikės vienos stoties kiekvienam mygtukui. Tiesą sakant, mums reikės stoties URL. Paspaudus mygtuką, interneto radijo stoties URL bus iškviestas paprastu vienos eilutės kodo bitu. Tačiau mes einame į priekį, todėl turime atlikti namų darbus; rasti 5 radijo stotis ir jų URL. Rasti 5 radijo stotis nėra sunku, tačiau jų URL rasti gali būti sudėtinga. Po minutės paaiškinsiu kodėl.

„SomaFm *“yra puikus šaltinis, nuo kurio pradėti, ypač jei dar neįsivaizduojate, ko norite klausytis. Jie turi daug įvairių eklektiškų muzikos pasirinkimų, nė vienas iš jų, mano manymu, nėra įžeidžiantis, nėra reklamos ir geriausia dalis: jie atvirai dalijasi savo URL. Norėdami paimti URL, spustelėkite jus dominančios stoties vaizdą, o kairėje naršymo juostoje spustelėkite „Tiesioginio srauto nuorodos“. Iš ten suraskite MP3 skyrių ir nukopijuokite aukščiausio atkūrimo greičio URL (ty 128 dūžiai 64). Šiuo metu įklijuokite URL į teksto rengyklę arba bloknotą.

Pavyzdžiui, norint nugramdyti Kalėdų uolas, URL būtų toks: (mums nereikia serverio aprašymo)

ice4.somafm.com/xmasrocks-128-mp3

Už „SomaFm“pasaulio ribų jis tampa šiek tiek prastesnis. Daugelis stočių naudoja tarpininką tarp klausytojo ir stoties, nesvarbu, ar tai būtų reklama, ar rinkodara, ar galbūt sekimas - ir aš paprastai stengiuosi vengti tokio tipo stočių. Kadangi tarpininkai nori, kad per juos klausytumėte stoties, paprastai rasti URL yra gana sunku; ir čia įeina Vtuneris.

*Būčiau bejėgis, jei neprašyčiau jūsų apsvarstyti galimybę paaukoti savo mėgstamai radijo stočiai, nes daugelis stočių priklauso tik nuo klausytojų palaikymo.

6 veiksmas: neprivaloma: nuskaitykite URL naudodami „Vtuner“

Pasirenkama: nukopijuokite URL naudodami „Vtuner“
Pasirenkama: nukopijuokite URL naudodami „Vtuner“
Pasirenkama: nukopijuokite URL naudodami „Vtuner“
Pasirenkama: nukopijuokite URL naudodami „Vtuner“

Dabar ateina linksmoji dalis…. „Vtuner“pagrindiniame puslapyje patikrinkite jų didžiulę stočių sąrašo nuorodą viršutiniame dešiniajame kampe. Pasirinkite jus dominančią muzikos žanrą, tada surūšiuokite didžiausiu greičiu, kur pamatysite stočių sąrašą. Pasirinkite stotį, kuri jums gali patikti, spustelėkite nuorodą arba atkūrimo mygtuką ir išbandykite muziką. Jei tai ne jums, nesijaudinkite, pakartokite procesą, kol rasite tą, kuris tinka ilgalaikiam malonumui. Ekrano nuotraukoje pasirinkau kantri muzikos skaitmeninę impulsinę versiją ir kitame ekrane pastebėjau, kad ji groja iš Kroatijos. Kantri muzika iš Kroatijos skamba gana įdomiai.

Man tai patinka. Bet kaip gauti URL? Tiesiog spustelėkite dešinįjį pelės klavišą ant stoties vaizdo dešinėje esančios baltos vietos, esančios po stoties pavadinimu, ir pasirinkite „Peržiūrėti puslapio šaltinį“ir slinkite žemyn iki maždaug 150 eilutės. Ieškome eilutės „// Pabandykite valdyti ledą “. Ir URL yra iškart po juo!

orion.shoutca.st:8110/stream

Gana slidus!

Kartokite šį veiksmą, kol mūsų sąraše bus bent 5 stotys.

Dvigubas pasirenkamas: jei reikia papildomos priemonės, jei galite rasti 5 jus dominančius muzikos žanrus (priešingai nei 5 stotys), sudarykite kiekvieno žanro radijo stočių sąrašą ir išsaugokite sąrašus kaip tekstinius failus. Prie to dar grįšime.

7 žingsnis: nustatykite mūsų mygtukus

Nustatykite mūsų mygtukus
Nustatykite mūsų mygtukus
Nustatykite mūsų mygtukus
Nustatykite mūsų mygtukus

Svarbiausia dalis! Nuvalykite dulkes nuo seno lituoklio arba bent jau prijunkite jį ir iškepkite dulkes. Laikas lituoti. Aš naudoju 4 trumpalaikius mygtukus, paprastai atidaromus. Aš sukursiu daugybę mygtukų (kairėje nuotraukoje) ir pritvirtinsiu juos prie kokios nors lentos. Nuotraukoje sunku pasakyti, tačiau mygtukų kryptis nukreipta iš šiaurės į pietus. Dešinėje pusėje galite pamatyti, kur aš įžeminau savo įžeminimo laidus ir prie kiekvieno mygtuko priešingos pusės pritvirtinau keletą laidų su trumpikliu. Vietoj to, kad turėtume 7 antžemines jungtis, bėgelis leis mums visiems bendrinti vieną įžeminimo jungtį su pi. Galutinis rezultatas yra subtili plokštelių plokštė, kuri bus pritvirtinta prie radijo viršaus, naudojant kai kuriuos varžtus per numatytas skylutes. Tik mygtukų viršūnės pasirodys per griovelį, kurį iškirpiau iš viršaus. Kadangi mano viršutinis paviršius yra tik 1/4 colio storio, noriu būti atsargus, kad neužsukčiau. Klijai gali būti naudingi, kad perf plokštė būtų pritvirtinta prie radijo.

8 veiksmas: nustatykite mūsų GPIO kaiščius

Nustatykite mūsų GPIO kaiščius
Nustatykite mūsų GPIO kaiščius
Nustatykite mūsų GPIO kaiščius
Nustatykite mūsų GPIO kaiščius

Vienintelis kitas pamokomas dalykas, aš pristatiau naują senų „Google AIY“1 versijos balso skrybėlių naudojimo būdą. Šiame plačiai nepopuliariame (arba menkai populiariame) nurodyme paminėjau, kaip mane sužavėjo pačios skrybėlės dizainas. Turiu keletą klojimų, todėl sukursiu prototipą naudodamas skrybėlę, nes joje yra ir dac, ir stiprintuvas.

Dabar nustatykime šešis kaiščius, kuriuose bus mūsų mygtukų paspaudimai. Paprašysiu sutelkti dėmesį į kairę „Google AIY“skrybėlės pusę, kur parašyta „servos“. Smeigtukui yra 6 kilpelės, skirtos smeigtukui, kuriame pritvirtinsiu ir lituosiu savo vyriško mygtuko pabaigą ankstesniame žingsnyje. Jei dirbate be „Google aiy“balso skrybėlės, nesijaudinkite, - nuotrauka dešinėje padės jums. Bet kuriuo atveju mes dirbsime su gpio (BCM) kaiščiais 26, 06, 13, 05, 12 ir 24 iš viršaus į apačią (arba 0-5). GPIO #24 bus rezervuotas pasirenkamam pristabdymo mygtukui.

Taip pat nepamirškite prijungti įžeminimo jungties.

9 žingsnis: kodas

Aš abejoju, kad kodas nuo čia labai pasikeis, tačiau norėdami gauti naujausią „python“kodo versiją, apsilankykite mano „github“. Pridėjau nuo 2019-12-18 kopiją, pavadintą pytiful3.py.

Tai nėra pats efektyviausias kodas, kurį kada nors matysite, ir gana daugžodžiaujantis, tačiau jis atlieka darbą.

Pradėkime nuo smėlio dėžės, kurioje galėsite žaisti, sukūrimo. Iš savo namų katalogo sukurkite katalogą mūsų aviečių pi pavadinime „kissir“:

mkdir kissir/

ir nukopijuokite failo pytiful3.py turinį į katalogą, atidarę failo pavyzdį teksto rengyklėje ir naudodami

sudo nano kissir/pytiful3.py

nukopijuokite / įklijuokite failo turinį į naujai sukurtą „python“scenarijų. Nepamirškite išsaugoti mūsų darbo naudodami Ctrl-x, Y ir įveskite.

Jei norite greitai peržiūrėti scenarijų, importuojame mums reikalingus „python“modulius, tada apibrėžiame mygtukus ir kiekvienam iš 7 mygtukų priskiriame „gpio“kaištį. Bus 5 radijo stotys (nedvejodami redaguokite pagal savo stoties nuostatas), sustabdymo mygtukas ir išjungimo mygtukas. Tikroji ciklas veikia ir veikia tol, kol paspaudžiamas mygtukas, kuris daugeliu atvejų sustabdys esamą mpg123 atkūrimą ir pradės groti stotį, priskirtą paspaustam mygtukui. Pauzės/sustabdymo mygtukas iš tikrųjų nėra pauzės mygtukas, bet labiau nužudymo jungiklis, nes negalime pristabdyti interneto radijo. Interneto radijas nieko nelaukia.

10 veiksmas: išbandykite mūsų smėlio dėžėje

Išbandykite mūsų smėlio dėžėje
Išbandykite mūsų smėlio dėžėje

Prieš diegdami radiją, dar būdami ssh sesijoje, eikite į kissir aplanką, kuriame saugomas mūsų scenarijus. Mes galime tiesiog paleisti scenarijų iš komandinės eilutės rankiniu būdu, įvesdami:

python3 pytiful3.py

Jei pirmiausia pažvelgėte į kodą, tikriausiai pastebėjote, kad palikau keletą spausdintų pareiškimų, kad galėtume pasakyti, kas vyksta. Jei viskas pavyko gerai, turėsime raginimą „Paspausti mygtuką“. Tai mums sako, kad mūsų scenarijus veikia ir jis išlaikė preliminarų kodo patikrinimą. Mano pradiniame bandyme buvo begalinis ciklas „muzika pristabdyta - paspauskite mygtuką, jei norite tęsti“, ir aš sužinojau, kad mano pauzės mygtukas yra prijungtas, kad visada būtų uždarytas, o ne paprastai atidarytas. Tikimės, kad jums pasisekė su litavimo žingsniu.

Ctrl-C sustabdys scenarijų, jei reikės nutraukti.

Taigi, jei matote „Paspauskite mygtuką“, ko mes laukiame? Pasirinkite bet kurį iš penkių radijo stočių mygtukų.

Tikėtina, kad greičiausiai išgirsite garsiakalbio garsą, kuris pradės muzikos atkūrimą, ir aš šiuo metu negaliu padėti. „Mpg123“leidžia „-preload 1“priesagą po stoties adreso komandoje os.system, tačiau negalėjau pasakyti, ar tai pakeitė. Tai turėtų leisti nedidelį buferį.

Kitas kodas, apie kurį galbūt susimąstėte: po „mpg123“skambučio yra vėliava „-f 7000“. Tai sumažina garsumą iki maksimalaus garsumo. Visas tūris būtų 32 tūkst. Kaip suprantu, garsumo skalė nėra linijinė skalė, todėl negaliu sakyti, kad tai tik penktadalis maksimalaus garsumo, tačiau vis tiek labai garsiai. Aš turėjau tai padaryti, nes mano garso plokštė - „Google AIY“balso garso plokštė kartais nėra graži su „Alsamixer“.

Toliau pasirinkite pasirinktus mygtukus, atsisėskite, atsipalaiduokite ir mėgaukitės klausymosi patogumu.

11 veiksmas: nustatykite mūsų kodą, kad jis būtų paleistas automatiškai paleidžiant

Taigi, jei viskas veikia gerai ir jums patiko mūsų smėlio dėžės komandinė eilutė, dabar tinkamas laikas automatizuoti scenarijaus įkėlimą. Įsitikinkite, kad vis dar esate „kissir“kataloge, ir įdėkite scenarijaus kodą į vartotojo dėžę:

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

Padarykite jį vykdomu:

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

Parašykite apvalkalo scenarijų, kad paleistumėte jį paleidžiant:

sudo nano pytiful3.sh

Ir įterpkite šį tekstą:

#! /bin/sh ### BEGIN INIT INFO # Pateikiama: pytiful3.py # Required-Start: $ remote_fs $ syslog # Būtina-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # užtikrinti, kad garsumo lygis nebūtų garsus TODO # Atlikite konkrečias funkcijas, kai to paprašo sistemos dėklas „$ 1“pradžioje) echo „Starting pytiful3.py“/usr/local/bin/pytiful3.py &;; stop) echo "Stoping pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Naudojimas: /etc/init.d/pytiful3.sh {start | stop}" išėjimas 1;; esac išėjimas 0

Perkelkite jį į init.d:

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

Padarykite jį vykdomu:

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

Užregistruokite scenarijų, kad jis būtų paleistas paleidžiant:

sudo update-rc.d pytiful3.sh numatytieji nustatymai

12 žingsnis: išbandykite dar kartą

Dabar, kai mūsų scenarijus yra paleistas paleidžiant, tiesiog atminkite, kad visi mūsų atlikti pakeitimai turi būti perkelti į vartotojo šiukšliadėžę, o mūsų gražus, kissir/pytiful3.py scenarijus dabar yra tik našlaitis. Tačiau šviesioje pusėje mes vis dar turime žaisti smėlio dėžę. Tikriausiai ir toliau žaisiu su scenarijumi, atliksiu pakeitimus ir artimiausiu metu išsaugosiu jį kaip naują versiją. Tai vis dar veikiantis projektas.

Paleiskime iš naujo, palaukite, kol „pi“bus paleistas iš naujo, ir maždaug po minutės dar kartą paspauskite mygtuką.

Jei jūsų garso stiprumas yra labai mažas, atminkite, kad alsamixer garsumas yra 50%, todėl galime jį atitinkamai padidinti iš komandinės eilutės.

Pradedantiesiems vienas dalykas, kurio reikia, yra visuotinė garsumo vertė, o ne 5 kartus keisti garsumo lygį.

Ei, o kaip tas radijo stočių sąrašas, kurį sudarėme atlikdami 6 veiksmą? Na, pasirodo, MPG123 turi atsitiktinio pasirinkimo komandą. Tai taip paprasta, kaip sudaryti stoties URL sąrašą, o vietoj to, kad skambintumėte į vieną radijo stoties URL, tiesiog naudokite

"btn1234_choice = random.choice (btn1234)", iš karto nustačius mūsų stočių sąrašą, kur btn1234_choice yra mūsų sąrašas. Nepamirškite naudoti laužtinių skliaustų aplink stotelių sąrašą, atskirtą kableliais. Tada subproceso komandos skambutis atlieka mūsų atsitiktinį pasirinkimą:

subprocess.call (['mpg123', '-q', btn1234_choice, "-iš anksto įkelta 1"])

13 veiksmas: įkelkite dėžutę ir baigsime

Įdėkite dėžutę ir mes baigsime
Įdėkite dėžutę ir mes baigsime
Įdėkite dėžutę ir mes baigsime
Įdėkite dėžutę ir mes baigsime
Įdėkite dėžutę ir mes baigsime
Įdėkite dėžutę ir mes baigsime

Jei pasiekėte šį žingsnį, darbas baigtas! Sveikiname - jūs ką tik sukūrėte atskirą interneto radijo grotuvą.

Priklausomai nuo turimos įrangos (garsiakalbių, dac ir stiprintuvo), jums gali kilti klausimas, kaip paslėpti kai kuriuos laidus. Galbūt kita pamokoma kita diena, bet jei planuojate pastatyti būstą, į kurį įkišite kai kuriuos laidus, rekomenduoju suteikti sau daugiau vietos.

Kaip matote aukščiau esančiose nuotraukose - aš iš tikrųjų padariau du bučinius, vieną iš jų pirmą kartą panaudodamas klijų likimo nelaimės likučius (iš iškreipto humoro kyla iškreiptos lentos). Antrasis įrenginys naudoja garso žadintuvus, o ne įprastus garsiakalbius, ir jei vienoje iš mano ekrano kopijų pasirinkote įrenginio pavadinimą, aš pavadinau jį „slimbox“.

Man pasirodė, kad šis projektas yra gana įdomus. Abu kartus. Tikrai ne sunkus projektas, galbūt šiek tiek daug laiko reikalaujantis, bet labai naudingas. Tikiuosi, kad ir jums patiks klausytis.

Rekomenduojamas: