Tartalomjegyzék:

Tartása halk Egyszerű internetes rádió: KISSIR: 13 lépés
Tartása halk Egyszerű internetes rádió: KISSIR: 13 lépés

Videó: Tartása halk Egyszerű internetes rádió: KISSIR: 13 lépés

Videó: Tartása halk Egyszerű internetes rádió: KISSIR: 13 lépés
Videó: Muay-Thai 🔞🔞🔞🥊🥊🙏🏻🙏🏻 2024, November
Anonim
Tartása halk Egyszerű internetes rádió: KISSIR
Tartása halk Egyszerű internetes rádió: KISSIR
Tartása halk Egyszerű internetes rádió: KISSIR
Tartása halk Egyszerű internetes rádió: KISSIR

Néha csak tapinthatónak kell lennie. Semmilyen interfész nincs. Csak gombok.

A Raspberry Pi internetes rádiólejátszóként nem újdonság, és rengeteg utasítás található arra vonatkozóan, hogyan lehet internetes rádiólejátszót létrehozni egy málna pi segítségével monitorral vagy anélkül, hogy internetes állomásokat közvetítsen a világ minden tájáról. Ha úgy dönt, hogy fejetlenül megy (monitor nélkül), akkor is szüksége lesz egy eszközre a pi lejátszó interfészéhez, általában egy webes felületre, ha nem közvetlen eszközre a kommunikációhoz, például az ssh -hoz. Ez az oktatható kissé más lesz; egyszerű gombnyomással küldünk parancsokat a pi -nek, így nincs szükség webes felületre és LCD képernyőre. Elég könnyűnek hangzik, igaz (?)

Kezdjük egy nagyon egyszerű dizájnnal, színkódolt gombokkal, minden szín egy internetes rádióállomást képvisel. Bevezetünk néhány python-kódot a gombnyomásra: A sajtó parancsot hajt végre egy előre kódolt internetes rádióállomás lejátszására az MPG123 segítségével, amely egy nagyszerű parancssori eszköz a pi-n lévő hang lejátszásához.

A python -készségeidet nem kell továbbfejleszteni. Valójában szó szerint elmentem a "Hello World" -től, hogy ezt megírjam, és amint látni fogjátok, sok kódot kölcsönöztem - tehát ha meg tudom csinálni, és dokumentálni kell, senkinek sem lehet gondja.

Gyerünk!

Kellékek:

Szükséges anyagok

  • Raspberry pi/ pi zero w minden rögzítéssel: Tápegység, SD kártya és Raspbian vagy Raspbian lite.
  • Wifi és internet -hozzáférés
  • Egy másik számítógép, amely némi webböngészést végez, és képes SSH -t adni a málna pi -nek
  • Digitális -analóg átalakító (DAC) - opcionális, de hálás lesz.
  • Erősítő
  • Hangszórók
  • Összekötő vezeték és jumper
  • Forrasztópáka és forrasztópáka
  • Perf Board a gombokhoz
  • Tapintható gombok: Általában nyitott- egy-egy zenei műfajhoz, egy bekapcsológomb és egy opcionális némító gomb (7 gomb ajánlott)
  • Egy ház a fentiekhez (opcionális, de rendezett)

1. lépés: Előfeltételek:

Előfeltételek
Előfeltételek

Feltételezzük, hogy már beállította a málna pi -t, a DAC -t és az erősítőt, és feltételezzük, hogy rendelkezik internet -hozzáféréssel. Az audioberendezések választéka, a preferenciák és az audiohallgatás lehetőségei miatt feltételezzük, hogy a beállítás már kész: a projekt megkezdése előtt hangot kell adnia a hangszóróiból. Ssh -t is kell adnunk a málna pi -re, így a pi konfiguráció használatával győződjön meg arról, hogy az interfészek engedélyezve vannak. A Raspbian lite -t fogom használni, és javaslom, hogy telepítse a legújabb példányt egy friss, erre a projektre szánt sd -kártyára. Ha sikerrel járunk, önálló berendezést fogunk építeni, amely dedikált hallgatóeszközként éjjel -nappal bekapcsolva maradhat.

2. lépés: Telepítse a Python és a Pip programot

Inkább ssh -t adok a pi -nek egy másik számítógéppel, és az összes szükséges funkciót ssh -munkamenet segítségével hajtom végre, de azt hiszem, lehetséges, hogy a pi -t kezdetben monitorra, billentyűzetre és egérre állítom be, és közvetlenül a pi -n dolgozom, amíg dolgozni, majd önállóan telepíteni.

Először végezzük el a rendszer és a python verzió rutinszerű karbantartási ellenőrzését:

sudo apt-get update

sudo apt-get upgrade

Győződjön meg arról, hogy a Python telepítve van. A terminál munkamenetében írja be a következőt a parancssorba:

python -verzió

Ha látja a python 2.7.13 (vagy korábbi) verzióját, telepítsük a python 3.+programot:+

sudo apt-get install python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip

3. lépés: Telepítse az MPG123 -at és az Adafruit Blinka szoftvert

Most, hogy az alapokat lefektették, még néhány telepítés:

Az MPG123 az audio szoftver, amely zenét játszik le. A telepítés valóban egyszerű:

sudo apt-get install mpg123

Rengeteget kutattam, és találtam egy nagyszerű sablont az Adafruit weboldalán a hangfájlok gombnyomással történő lejátszásáról, így ahelyett, hogy a nulláról kezdenénk, folytassuk az utat, amelyet az Adafruit emberei már felkaptak számunkra. Programjuk kéri, hogy telepítsük az Adafruit Blinka szoftvert:

$ sudo pip3 telepítse az adafruit-blinkát

Mielőtt továbbmennénk, végezzünk egy gyors ellenőrzést, hogy megbizonyosodjunk arról, hogy rendelkezünk -e Alsa beállítással:

aplay -változat

Eredményeink a következők: Jaroslav Kysela 1.1.3 verziója

4. lépés: Állítsa a hangerőt 50% -ra az Alsamixerben

Állítsa a hangerőt 50% -ra az Alsamixerben
Állítsa a hangerőt 50% -ra az Alsamixerben
Állítsa a hangerőt 50% -ra az Alsamixerben
Állítsa a hangerőt 50% -ra az Alsamixerben

Most tegyünk egy óvintézkedést, és állítsuk 50% -ra a hangerőt, hogy elkerüljük a fülsiketítő meglepetéseket:

A parancssorba írja be az alsamixer parancsot:

alsamixer

Ha vörös fehér és zöld képernyőt, vagy 100% -os maximális hangerőt nézünk, akkor érdemes a hangerőt 50% -ra csökkenteni, hogy megmentsük a dobhártyát. Később bármikor módosíthatjuk (felfelé vagy lefelé), ha szükséges.

5. lépés: Néhány házi feladat: keressen 5 rádióállomást, amelyeket érdemes meghallgatni

Néhány házi feladat: keressen 5 rádióállomást, amelyeket érdemes meghallgatni
Néhány házi feladat: keressen 5 rádióállomást, amelyeket érdemes meghallgatni
Néhány házi feladat: keressen 5 rádióállomást, amelyeket érdemes meghallgatni
Néhány házi feladat: keressen 5 rádióállomást, amelyeket érdemes meghallgatni

Minden gombhoz egy állomás kell. Valójában szükségünk lesz az állomás url -jére. A gomb megnyomásával az internetes rádióállomás url -je egyszerű, egy soros bitkódban hívható meg. Mindazonáltal megelőzzük magunkat, így van néhány házi feladatunk; talál 5 rádióállomást és azok URL -jeit. 5 rádióállomás megtalálása nem nehéz, de az URL -ek megtalálása bonyolult lehet. Egy perc múlva elmagyarázom, miért.

A SomaFm * kiváló forrás a kezdéshez, különösen akkor, ha fogalma sincs arról, hogy mit szeretne hallgatni. Az eklektikus zenei választékok széles választéka áll rendelkezésükre, egyiket sem tartom sértőnek, nincsenek reklámok, és a legjobb az egészben: nyíltan megosztják az URL -jüket. Az url lekéréséhez kattintson az Önt érdeklő állomás képére, majd a bal oldali navigációs sávon kattintson a "Közvetlen adatfolyam linkek" elemre. Innen keresse meg az MP3 részt, és kaparja le a legnagyobb lejátszási arányú url -t (azaz 128 ütés 64). Illessze be az URL -t egy szövegszerkesztőbe vagy jegyzettömbbe.

Például a karácsonyi sziklák kaparásához az URL a következő lenne: (nincs szükségünk a szerver leírására)

ice4.somafm.com/xmasrocks-128-mp3

Egy kicsit dicier lesz a SomaFm világán kívül. Sok állomás közvetítőt használ a hallgató és az állomás között, legyen szó reklámról, marketingről vagy esetleg nyomon követésről - és általában igyekszem elkerülni az ilyen típusú állomásokat. Mivel a közvetítők jobban szeretik, ha rajtuk keresztül hallgatja az állomást, általában elég nehéz megtalálni az URL -t; és itt jön be Vtuner.

*Elnézést kérnék, ha nem kérném, hogy fontolja meg adományozását kedvenc rádióállomásának, mivel sok állomás kizárólag a hallgatók támogatására támaszkodik.

6. lépés: Választható: Kaparja le az URL -eket a Vtuner használatával

Választható: Kaparja le az URL -eket a Vtuner segítségével
Választható: Kaparja le az URL -eket a Vtuner segítségével
Választható: Kaparja le az URL -eket a Vtuner segítségével
Választható: Kaparja le az URL -eket a Vtuner segítségével

Most jön a szórakoztató rész…. A Vtuner honlapján nézze meg hatalmas állomáslistájukat a jobb felső sarokban. Válasszon egy olyan zenei műfajt, amely érdekli, majd rendezze a leggyorsabb sebességet, ahol megjelenik az állomások listája. Válassza ki a kívánt rádióállomást, kattintson a linkre vagy a lejátszás gombra, és próbálja ki a zenét. Ha nem Önnek való, ne aggódjon, ismételje meg az eljárást, amíg nem találunk megfelelőt a hosszú távú élvezethez. A képernyőképemben a Country music digitális impulzus verzióját választottam, és a következő képernyőn észrevettem, hogy Horvátországból játszik. A horvát country zene meglehetősen érdekesnek hangzik.

Tetszik. De hogyan szerezhetem meg az url -t? Egyszerűen kattintson a jobb egérgombbal az állomás képétől jobbra, az állomás neve alatt található fehér mezőre, és válassza az "Oldalforrás megtekintése" lehetőséget, és görgessen lefelé a 150. sorig. Keresjük a "// Próbálja ki" sort. jégverést kezelni ". És az URL közvetlenül alatta található!

orion.shoutca.st:8110/stream

Elég sima!

Ismételje meg ezt a lépést, amíg legalább 5 állomás szerepel a listánkon.

Dupla opcionális: Ha további öt műfajt talál, amelyek érdekelhetik Önt (5 állomással szemben), akkor minden műfajhoz állítsa össze a rádióállomások listáját, és mentse a listákat szöveges fájlként. Erre még visszatérünk.

7. lépés: Állítsa be a gombjainkat

Állítsa be gombjainkat
Állítsa be gombjainkat
Állítsa be gombjainkat
Állítsa be gombjainkat

A legfontosabb rész! Porolja le a régi forrasztópáka -t, vagy legalább dugja be, és süsse le a port. Ideje forrasztani. 4 fogú pillanatnyi nyomógombot használok, normál esetben nyitva. Felépítek egy sor gombot (bal oldali fotó), és rögzítem őket egy perf táblára. A fotón nehéz megmondani, de a gombok iránya észak-déli irányban halad. A jobb oldalon láthatja, hogy hol húztam földelősínt a földelő vezetékeimhez, és néhány gombos végű áthidaló kábelt csatoltam minden gomb másik oldalához. A 7 földi csatlakozás helyett a sín lehetővé teszi számunkra, hogy egy földi csatlakozást osszunk meg a pi -vel mindenki számára. A végeredmény egy finom ostyalap, amelyet a mellékelt kísérleti lyukakon keresztül néhány csavar segítségével a rádió tetejére kell felszerelni. Csak a gombok teteje jelenik meg azon a horonyon keresztül, amelyet kivágtam a tetejéről. Mivel a felső felületem csak 1/4 vastag, szeretnék vigyázni, hogy ne csavarjam túl. A ragasztó segíthet abban, hogy a perforált tábla a rádióhoz legyen rögzítve.

8. lépés: Azonosítsa GPIO -csapjainkat

Határozza meg GPIO csapjainkat
Határozza meg GPIO csapjainkat
Határozza meg GPIO csapjainkat
Határozza meg GPIO csapjainkat

Az egyetlen másik tanulságos témámban a Google AIY 1 -es verziójú hangkalapok új felhasználását mutattam be. Ebben a széles körben népszerűtlen (vagy szűk körben népszerű) utasításban megemlítettem, mennyire lenyűgözött a kalap kialakítása. Van néhány fekvésem, ezért prototípust fogok készíteni a kalap használatával, mivel a dac és az erősítő is benne van.

Most azonosítsunk hat csapot, amelyek a gombnyomásainkat fogják szolgálni. Megkérem Önt, hogy összpontosítson a Google AIY kalapjának bal oldalára, ahol azt írja: "szervók". Van egy 6 hurokból álló oszlop a csaphoz, ahová rögzítem és forrasztom a férfi gombom végét az előző lépésből. Ha a google aiy hangkalapja nélkül dolgozik, ne aggódjon - a jobb oldali fotó útmutatást nyújt. Mindkét esetben gpio (BCM) 26, 06, 13, 05, 12 és 24 csapokkal fogunk dolgozni felülről lefelé (vagy 0-5). A GPIO #24 egy opcionális szünetgombra van fenntartva.

Ne felejtse el csatlakoztatni a földelő csatlakozót.

9. lépés: Kód

Kétlem, hogy a kód innen sokat fog változni, de a python -kód legújabb verziójáért látogasson el a github -ra. 2019.12.18 -tól mellékeltem egy pytiful3.py nevű példányt.

Ez nem a leghatékonyabb kód, amit valaha látni fog, és elég bőbeszédű, de elvégzi a munkát.

Kezdjük azzal, hogy létrehozunk egy homokozót a játékhoz. Házi könyvtárunkból hozzunk létre egy könyvtárat a málna pi -n kissir néven:

mkdir kissir/

és másolja a pytiful3.py fájl tartalmát a könyvtárba a mintafájl szövegszerkesztőben történő megnyitásával és a

sudo nano kissir/pytiful3.py

másolja / illessze be a fájl tartalmát újonnan létrehozott python szkriptünkbe. Ne felejtse el menteni a munkánkat a Ctrl-x, Y billentyűkombinációval és az Enter billentyűvel.

Ha gyors áttekintést szeretne a szkriptről, akkor importáljuk a szükséges python modulokat, majd meghatározzuk a gombjainkat, és mindegyikhez hozzárendelünk egy gpio tűt. Lesz 5 rádióállomás (bátran szerkesztheti az állomás preferenciái szerint), a leállítás gomb és a leállítás gomb. A while valódi ciklus addig fut és fut, amíg le nem nyom egy gombot, ami a legtöbb esetben leállítja a meglévő mpg123 lejátszást, és elkezdi lejátszani a megnyomott gombhoz rendelt állomást. A szünet/leállítás gomb valójában nem szünet gomb, hanem inkább egy kill kapcsoló, mivel nem tudjuk szüneteltetni az internetes rádiót. Az internetes rádió senkit sem vár.

10. lépés: Tesztelje a homokozónkban

Teszt a homokozóban
Teszt a homokozóban

Mielőtt bekapcsolnánk a rádiónkat, még az ssh munkamenetünk alatt, navigáljunk a kissir mappába, ahol a szkriptünk tárolódik. Egyszerűen futtathatjuk a parancsfájlt a parancssorból manuálisan, ha beírjuk:

python3 pytiful3.py

Ha először bekukkantott a kódba, valószínűleg észrevette, hogy hagytam néhány nyomtatott nyilatkozatot, hogy elmondhassuk, mi történik. Ha minden jól sikerült, akkor megjelenik egy „Nyomj meg egy gombot” felirat. Ez azt jelenti, hogy a szkriptünk fut, és megfelelt az előzetes kódellenőrzésen. Az első próbálkozásom végtelen ciklusa volt: "zene szüneteltetve - nyomd meg a gombot a folytatáshoz", és rájöttem, hogy a szünet gombom be van kötve, hogy mindig zárva legyen, ahelyett, hogy normálisan nyitva lenne. Remélhetőleg nagyobb szerencséje volt a forrasztási lépéssel.

A Ctrl-C leállítja a szkriptet, ha meg kell szakítania.

Tehát ha látod a "Nyomj meg egy gombot" feliratot, mire várunk? Válassza ki bármelyik öt rádióadó gombját.

Valószínűleg hallhat egy hangszóró pattanást a zene lejátszásának kezdeményezéséhez, és ebben jelenleg nem tudok segíteni. Az Mpg123 lehetővé teszi az "--preload 1" utótagot az állomás címe után az os.system parancsban, de nem tudtam megmondani, hogy ez változott-e. Enyhe puffert kell engednie.

Egy másik kódrészlet, amire gondolhatott: az "-f 7000" jelző az mpg123 hívás után van. Ez csökkenti a hangerőt a maximális hangerőre. A teljes hangerő 32K lenne. Ahogy értem, a hangerőskála nem lineáris skála, ezért nem mondhatom, hogy ez csak a maximális hangerő egyötöde, de még mindig nagyon hangos. Ezt azért kellett megtennem, mert a hangkártyám - a Google AIY hangkártyája - néha nem játszik jól az Alsamixerrel.

Továbbra is válassza ki a kívánt gombokat, dőljön hátra, pihenjen és élvezze a hallgatás kényelmét.

11. lépés: Állítsa be a kódot, hogy automatikusan elinduljon rendszerindításkor

Tehát ha minden jól működik, és élvezte a sandbox parancssori vállalkozásunkat, akkor itt az ideje, hogy automatizálja a szkript betöltését. Győződjön meg arról, hogy még mindig a kissir könyvtárban van, és helyezze el a szkript kódját a felhasználói fiókba:

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

Legyen végrehajtható:

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

Írjon shell parancsfájlt az indításhoz:

sudo nano pytiful3.sh

És illessze be a következő szöveget:

#! /bin/sh ### BEGIN INIT INFO # Biztosítja: pytiful3.py # Kötelező-Start: $ remote_fs $ syslog # Kötelező-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # győződjön meg arról, hogy a hangerő nem hangos TODO # Hajtson végre bizonyos funkciókat, ha a rendszer „$ 1” indításkor kéri) echo „Pytiful3.py indítása” /usr/local/bin/pytiful3.py &;; stop) echo "A pytiful3.py leállítása" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Használat: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac kilépés 0

Vigye az init.d mappába:

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

Legyen végrehajtható:

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

Regisztrálja a szkriptet az indításkor:

sudo update-rc.d pytiful3.sh alapértelmezések

12. lépés: Tesztelje újra

Most, hogy betöltöttük a szkriptünket az indításkor történő futtatásra, ne feledje, hogy az általunk végrehajtott módosításokat át kell vinni a felhasználói fiókba, és a gyönyörű, kissir/pytiful3.py szkriptünk most csak árva. De a jó oldalról még mindig van egy homokozó, amiben játszanunk kell. Valószínűleg folytatom a forgatókönyvet, módosítok és a közeljövőben új verzióként mentem. Ez még mindig egy működő projekt.

Végezzük el az újraindítást, várjuk meg, amíg a pi újraindul, majd körülbelül egy perc múlva nyomja meg újra a gombot.

Ha a hang hangereje nagyon alacsony, ne feledje, hogy az alsamixer hangereje 50%-os, így ennek megfelelően növelhetjük a parancssorból.

Kezdetben egy dologra van szükség, amely egy globális hangerőérték, ahelyett, hogy a hangerőt 5 különböző alkalommal kellene megváltoztatni.

Hé, mi a helyzet a rádióállomások listájával, amelyet a 6. lépésben készítettünk? Nos, kiderül, hogy az MPG123 véletlenszerű kiválasztási paranccsal rendelkezik. Ez olyan egyszerű, mint az állomás URL -ek listájának összeállítása, és ahelyett, hogy egy rádióállomás URL -jét hívná, egyszerűen használja

"btn1234_choice = random.choice (btn1234)", közvetlenül az állomások listájának azonosítása után, ahol a btn1234_choice a mi listánk. Ne felejtse el szögletes zárójelekkel használni az állomások listáját vesszővel elválasztva. Az alfolyamat parancshívása ezután véletlenszerű választást játszik le:

subprocess.call (['mpg123', '-q', btn1234_choice, "-előtöltés 1"])

13. lépés: Dobozd be, és kész

Dobozd be, és kész
Dobozd be, és kész
Dobozd be, és kész
Dobozd be, és kész
Dobozd be, és kész
Dobozd be, és kész

Ha elérte ezt a lépést, a munka befejeződött! Gratulálunk - most épített önálló internetes rádiólejátszót.

Attól függően, hogy milyen eszközökkel rendelkezik (hangszórók, dac és erősítő), elgondolkodhat azon, hogyan lehet elrejteni néhány vezetéket. Talán egy másik tanulságos egy másik napra, de ha azt tervezi, hogy olyan házat készít, amelybe be kell húzni a vezetékek egy részét, azt javaslom, hogy adjon magának bőven több helyet.

Amint az a fenti képeken is látható - valójában két csípőt készítettem, az egyiket egy ragasztásos szerencsétlenség maradványait használva az első próbálkozásom során (az elvetemült humorból az elvetemült táblák származnak). A második egység hangkeltőket használ a hagyományos hangszórók helyett, és ha az egyik képernyőképen felvette a készülék nevét, akkor slimboxnak neveztem el.

Ezt a projektet nagyon szórakoztatónak találtam. Mindkét alkalommal. Természetesen nem nehéz projekt, talán egy kicsit időigényes, de nagyon hasznos. Remélem, ön is élvezi a hallgatást.

Ajánlott: