Obsah:

Udržování stopky jednoduché internetové rádio: KISSIR: 13 kroků
Udržování stopky jednoduché internetové rádio: KISSIR: 13 kroků

Video: Udržování stopky jednoduché internetové rádio: KISSIR: 13 kroků

Video: Udržování stopky jednoduché internetové rádio: KISSIR: 13 kroků
Video: СЕКРЕТ БЫСТРОГО ЦВЕТЕНИЯ ОРХИДЕЙ, ЕСЛИ ОН ЕСТЬ! ЧЬЯ СТАВКА СЫГРАЛА? КАКАЯ СИСТЕМА ПОСАДКИ ВЫИГРАЛА? 2024, Červen
Anonim
Keeping It Stoopid Simple Internet Radio: KISSIR
Keeping It Stoopid Simple Internet Radio: KISSIR
Keeping It Stoopid Simple Internet Radio: KISSIR
Keeping It Stoopid Simple Internet Radio: KISSIR

Někdy to prostě musí být hmatové. Žádné rozhraní jakéhokoli druhu. Jen knoflíky.

Raspberry Pi jako přehrávač internetového rádia není nic nového a existuje spousta instrukcí, jak vytvořit přehrávač internetového rádia pomocí Raspberry Pi s monitorem nebo bez něj pro streamování internetových stanic z celého světa. Pokud byste se rozhodli jít bez hlavy (bez monitoru), stále byste potřebovali prostředek k propojení přehrávače pi, obvykle webové rozhraní, ne -li přímý způsob komunikace s hostitelem, například ssh. Tento pokyn se bude mírně lišit; použijeme jednoduché stisknutí tlačítka k odeslání příkazů na pí, čímž odstraníme potřebu webového rozhraní a LCD obrazovky. Zní to dost snadno, že? (?)

Začneme velmi jednoduchým designem pomocí barevně odlišených tlačítek, přičemž každá barva bude představovat internetovou rozhlasovou stanici. Zavedeme nějaký kód pythonu, který zvládne stisknutí tlačítka: Stisknutím se spustí příkaz k přehrání předem kódované internetové rozhlasové stanice pomocí MPG123, skvělého nástroje příkazového řádku pro přehrávání zvuku na našem pí.

Vaše dovednosti v pythonu nemusí být pokročilé. Ve skutečnosti jsem doslova přešel z „Hello World“na psaní tohoto textu, a jak uvidíte, půjčil jsem si spoustu kódu - takže pokud to dokážu a nechám to trochu zdokumentovat, kdokoli jiný by neměl mít problém.

Pojďme!

Zásoby:

Potřebné materiály

  • Raspberry pi/ pi nula w se všemi upevněními: Napájení, karta SD a Raspbian nebo Raspbian lite.
  • Wifi a přístup na internet
  • Další počítač, který provádí určité procházení webu a schopnost SSH na Raspberry Pi
  • Převodník digitálního signálu na analogový (DAC) - volitelný, ale budete vděční.
  • Zesilovač
  • Řečníci
  • Propojovací drát a propojky
  • Páječka a pájka
  • Perf Board pro tlačítka
  • Hmatová tlačítka: Normálně otevřená- jedno pro každý hudební žánr, tlačítko napájení a volitelné tlačítko ztlumení (doporučeno 7 tlačítek)
  • Bytová jednotka pro všechny výše uvedené (volitelná, ale uklizená)

Krok 1: Předpoklady:

Předpoklady
Předpoklady

Začneme za předpokladu, že jste již nastavili svůj malinový pi, DAC a zesilovač, a také budeme předpokládat, že máte přístup k internetu. Vzhledem k množství možností zvukového vybavení, preferencím a možnostem poslechu zvuku budeme předpokládat, že vaše nastavení je již dokončeno: z reproduktorů byste již měli vycházet, než zahájíte tento projekt. Budeme také muset ssh na malinový pi, takže pomocí konfigurace pi zajistěte, aby rozhraní měla povolený ssh. Budu používat Raspbian lite a doporučuji vám nainstalovat novou kopii na novou SD kartu určenou pro tento projekt. Pokud budeme úspěšní, budeme stavět samostatné zařízení, které lze nechat 24/7 napájené jako vyhrazené poslechové zařízení.

Krok 2: Nainstalujte Python a Pip

Dávám přednost ssh k pí pomocí jiného počítače a provádím všechny požadované funkce pomocí relace ssh, ale myslím, že je možné zpočátku nastavit pi na monitor, klávesnici a myš a pracovat přímo na pi, dokud nebude pracovat a poté nasadit jako samostatný.

Nejprve provedeme rutinní kontrolu údržby našeho systému a verze pythonu:

sudo apt-get update

sudo apt-get upgrade

Zajistěte, aby byl nainstalován Python. V relaci terminálu zadejte na příkazovém řádku následující:

python --version

Pokud vidíte python 2.7.13 (nebo starší), nainstalujme python 3.+:

sudo apt-get install python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip

Krok 3: Nainstalujte MPG123 a Adafruit Blinka

Nyní, když byl položen základ, stačí několik dalších instalací:

MPG123 je zvukový software, který bude přehrávat naši hudbu. Instalace je opravdu jednoduchá:

sudo apt-get install mpg123

Udělal jsem spoustu průzkumů a našel jsem na webu Adafruit skvělou šablonu pro přehrávání zvukových souborů pomocí stisknutí tlačítek, takže než abychom začínali od nuly, pokračovali jsme po stezce, kterou pro nás už lidé z Adafruit obviňovali. Jejich program požaduje, abychom nainstalovali Adafruit Blinka:

$ sudo pip3 nainstalujte adafruit-blinka

Než půjdeme dále, proveďme rychlou kontrolu, abychom se ujistili, že máme nastavení Alsa:

aplay -verze

naše výsledky by měly číst: verze 1.1.3 od Jaroslava Kysely

Krok 4: Upravte hlasitost na 50% v Alsamixeru

Upravte hlasitost na 50% v Alsamixeru
Upravte hlasitost na 50% v Alsamixeru
Upravte hlasitost na 50% v Alsamixeru
Upravte hlasitost na 50% v Alsamixeru

Nyní provedeme předběžná opatření a upravíme hlasitost na 50%, abychom předešli ohlušujícím překvapením:

Na příkazovém řádku zadejte alsamixer:

alsamixer

Pokud se podíváme na obrazovku červené bílé a zelené nebo 100% maximální hlasitosti, je dobré snížit hlasitost na 50%, abychom ušetřili naše ušní bubínky. V případě potřeby se můžeme kdykoli později upravit (nahoru nebo dolů).

Krok 5: Některé domácí úkoly: Najděte 5 rozhlasových stanic, které stojí za poslech

Některé domácí úkoly: Najděte 5 rozhlasových stanic, které stojí za poslech
Některé domácí úkoly: Najděte 5 rozhlasových stanic, které stojí za poslech
Některé domácí úkoly: Najděte 5 rozhlasových stanic, které stojí za poslech
Některé domácí úkoly: Najděte 5 rozhlasových stanic, které stojí za poslech

Pro každé tlačítko budeme potřebovat jednu stanici. Ve skutečnosti budeme potřebovat adresu URL pro stanici. Stisknutím tlačítka se vyvolá adresa URL internetové rozhlasové stanice jednoduchým jednořádkovým bitem kódu. Nicméně předbíháme, takže máme nějaké domácí úkoly; najděte 5 rozhlasových stanic a jejich adresy URL. Najít 5 rozhlasových stanic není obtížné, ale najít jejich adresy URL může být složité. Za minutu vysvětlím proč.

SomaFm * je skvělý zdroj pro začátek, zvláště pokud ještě nemáte představu o tom, co chcete poslouchat. Mají širokou škálu eklektických hudebních možností, z nichž nic nepovažuji za urážlivé, žádné reklamy a nejlepší část: Otevřeně sdílejí své adresy URL. Chcete -li url získat, klikněte na obrázek stanice, která vás zajímá, a na navigačním panelu vlevo klikněte na „Přímé odkazy na stream“. Odtud najděte sekci MP3 a seškrábněte URL nejvyšší rychlosti přehrávání (tj. 128 tepů 64). Adresu URL zatím vložte do textového editoru nebo poznámkového bloku.

Například pro škrábání vánočních skal bude adresa URL: (nepotřebujeme popis serveru)

ice4.somafm.com/xmasrocks-128-mp3

Mimo svět SomaFm se to trochu zvrtne. Mnoho stanic používá prostředníka mezi posluchačem a stanicí, ať už jde o reklamu, marketing nebo případné sledování - a obecně se snažím těmto typům stanic vyhýbat. Protože zprostředkovatelé dávají přednost poslechu stanice jejich prostřednictvím, obvykle je docela obtížné najít URL; a to je místo, kde přichází Vtuner.

*Bylo by mi líto, kdybych nepožádal, abyste zvážili poskytnutí daru své oblíbené rozhlasové stanici, protože mnoho stanic spoléhá pouze na podporu posluchačů.

Krok 6: Volitelné: Oškrábejte adresy URL pomocí Vtuner

Volitelné: Oškrábejte URL pomocí Vtuner
Volitelné: Oškrábejte URL pomocí Vtuner
Volitelné: Oškrábejte URL pomocí Vtuner
Volitelné: Oškrábejte URL pomocí Vtuner

Nyní přichází zábavná část … Na domovské stránce Vtuner se podívejte na jejich obrovský odkaz na seznam stanic v pravém horním rohu. Vyberte si žánr hudby, který vás zajímá, a poté seřaďte nejvyšší rychlost, kde uvidíte seznam stanic. Vyberte si stanici, o které si myslíte, že by se vám mohla líbit, klikněte na odkaz nebo tlačítko přehrávání a vyzkoušejte hudbu. Pokud to není pro vás, nebojte se, opakujte postup, dokud nenajdeme vhodný pro dlouhodobé užívání. V mém snímku obrazovky jsem zvolil digitální impulzní verzi country hudby a na další obrazovce jsem si všiml, že hraje mimo Chorvatsko. Country hudba z Chorvatska zní docela zajímavě.

Líbí se mi to. Ale jak získám URL? Jednoduše klikněte pravým tlačítkem na prázdné místo napravo od obrázku stanice, pod názvem stanice, vyberte „Zobrazit zdroj stránky“a přejděte dolů na řádek přibližně 150. Hledáme řádek s nápisem „// Zkuste zvládnout ledový příliv “. A adresa URL se nachází hned pod ním!

orion.shoutca.st:8110/stream

Docela úhledné!

Tento krok opakujte, dokud nebudeme mít v seznamu alespoň 5 stanic.

Double Volitelné: Pokud navíc najdete 5 žánrů hudby, které vás zajímají (na rozdíl od 5 stanic), vytvořte si seznam rozhlasových stanic pro každý žánr a seznamy uložte jako textové soubory. K tomu se vrátíme později.

Krok 7: Nastavení našich tlačítek

Nastavit naše tlačítka
Nastavit naše tlačítka
Nastavit naše tlačítka
Nastavit naše tlačítka

Nejdůležitější část! Oprašte starou páječku, nebo ji alespoň zapojte a oprášte prach. Je čas pájet. Používám 4 hrotová momentální tlačítka, normálně otevřená. Postavím řadu knoflíků (levá fotka) a připevním je na desku perf. Na fotografii je to těžké poznat, ale směr hrotů knoflíků běží sever-jih. Na pravé straně vidíte, kde jsem spustil zemnící lištu pro své zemnící vodiče a připojil několik propojovacích kabelů zakončených zástrčkou na opačnou stranu každého tlačítka. Místo 7 pozemních spojení nám kolejnice umožní sdílet jedno zemní spojení s pí pro všechny. Konečným výsledkem je delikátní oplatková deska, která bude pomocí šroubů skrz dodané pilotní otvory připevněna k horní části rádia. Skrz drážku, kterou jsem vystřihl z vrcholu, se objeví pouze knoflíky. Vzhledem k tomu, že můj horní povrch je pouze 1/4 tlustý, chci dávat pozor, abych nepřešrouboval. Lepidlo může být užitečné, aby byla deska desky připevněna k rádiu.

Krok 8: Identifikujte naše GPIO piny

Identifikujte naše GPIO piny
Identifikujte naše GPIO piny
Identifikujte naše GPIO piny
Identifikujte naše GPIO piny

V mém jediném dalším pokynu jsem představil nové použití pro staré hlasové klobouky Google AIY verze 1. V tomto široce nepopulárním (nebo úzce populárním) pokynu jsem zmínil, jak mě zaujal samotný design klobouku. Několik jich mám kolem, takže budu stavět prototyp pomocí klobouku, protože má na palubě jak dac, tak zesilovač.

Pojďme nyní identifikovat šest pinů, které budou hostit naše stisknutí tlačítek. Požádám vás, abyste se zaměřili na levou stranu klobouku Google AIY, kde je napsáno „serva“. Pro Pin je sloupec se 6 očky, kam připevním a připájím své mužské knoflíky z našeho předchozího kroku. Pokud pracujete bez hlasového klobouku google aiy, žádné starosti - fotografie vpravo vás provede. V obou případech budeme pracovat s piny 26, 06, 13, 05, 12 a 24 gpio (BCM) shora dolů (nebo 0-5). GPIO #24 bude vyhrazeno pro volitelné tlačítko pozastavení.

Nezapomeňte také připojit uzemnění.

Krok 9: Kód

Pochybuji, že se odtud kód hodně změní, ale pro nejnovější verzi kódu pythonu navštivte můj github. Připojil jsem kopii z 2019-12-18 s názvem pytiful3.py.

Není to nejúčinnější kód, jaký kdy uvidíte, a je docela podrobný, ale svou práci zvládne.

Začněme vytvořením sandboxu, ve kterém se bude hrát. Z našeho domovského adresáře vytvořte adresář na našem malinovém pi s názvem kissir:

mkdir kissir/

a zkopírujte obsah souboru pytiful3.py do adresáře otevřením ukázkového souboru v textovém editoru a pomocí

sudo nano kissir/pytiful3.py

zkopírujte / vložte obsah souboru do našeho nově vytvořeného skriptu pythonu. Nezapomeňte uložit naši práci pomocí Ctrl-x, Y a zadat.

Pokud chcete rychlou prohlídku skriptu, importujeme moduly pythonu, které budeme potřebovat, a poté definujeme naše tlačítka a každému ze 7 tlačítek přiřadíme pin gpio. K dispozici bude 5 rozhlasových stanic (můžete je upravit podle svých preferencí), tlačítko pro zastavení a tlačítko pro vypnutí. Zatímco skutečná smyčka běží a běží, dokud není stisknuto tlačítko, které ve většině případů zastaví jakékoli stávající přehrávání mpg123 a začne hrát stanici přiřazenou k tlačítku, které bylo stisknuto. Tlačítko pozastavení/zastavení není ve skutečnosti tlačítko pozastavení, ale spíše přepínač zabíjení, protože nemůžeme pozastavit internetové rádio. Internetové rádio na nikoho nečeká.

Krok 10: Testujte v našem sandboxu

Otestujte v našem sandboxu
Otestujte v našem sandboxu

Než nasadíme rádio, zatímco jsme stále v relaci ssh, přejděte do složky kissir, kde je uložen náš skript. Skript můžeme jednoduše spustit z příkazového řádku ručně zadáním:

python3 pytiful3.py

Pokud jste se nejprve podívali na kód, pravděpodobně jste si všimli, že jsem nechal nějaké tiskové prohlášení, abychom mohli říct, co se děje. Pokud vše dobře dopadlo, zobrazí se výzva „Stiskněte tlačítko“. To nám říká, že náš skript běží a prošel předběžnou kontrolou kódu. Můj první pokus měl nekonečnou smyčku „hudba pozastavena - pokračujte stisknutím tlačítka“a zjistil jsem, že jsem měl tlačítko pauzy zapojené tak, aby bylo vždy zavřené, místo normálně otevřeného. Naštěstí jste měli s pájecím krokem větší štěstí.

Ctrl-C zastaví skript, pokud potřebujete přerušit.

Takže pokud uvidíte „Stiskněte tlačítko“, na co čekáme? Vyberte jedno z našich pěti tlačítek rozhlasových stanic.

Je pravděpodobné, že pravděpodobně uslyšíte zvuk reproduktoru, který zahájí přehrávání hudby, a v tuto chvíli s tím nemohu pomoci. Mpg123 umožňuje příponu „--preload 1“za adresou stanice v příkazu os.system, ale nemohl jsem zjistit, jestli to má nějaký význam. Mělo by to umožnit mírný nárazník.

Další kousek kódu, o kterém jste možná přemýšleli: po volání mpg123 je příznak „-f 7000“. Tím se sníží hlasitost na velkou vzdálenost. Plný objem by byl 32 kB. Jak jsem pochopil, stupnice hlasitosti není lineární stupnice, takže nemohu říci, že je to pouze jedna pětina maximální hlasitosti, ale stále dost hlasitá. Musel jsem to udělat, protože moje zvuková karta - hlasová zvuková karta Google AIY, někdy s Alsamixerem nehraje dobře.

Pokračujte ve výběru tlačítek podle svého výběru, sedněte si, relaxujte a prozatím si užívejte pohodlí při poslechu.

Krok 11: Nastavte náš kód pro automatické spouštění při spuštění

Pokud tedy vše funguje dobře a užili jste si náš podnik příkazového řádku sandboxu, nyní je vhodná doba pro automatizaci načítání skriptů. Ujistěte se, že jste stále v adresáři Kissir, a vložte kód skriptu do bin uživatele:

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

Nastavit jej jako spustitelný:

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

Napište skript prostředí, který se spustí při spuštění:

sudo nano pytiful3.sh

A vložte následující text:

#! /bin/sh ### BEGIN INIT INFO # Poskytuje: pytiful3.py # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # zajistěte, aby úroveň hlasitosti nebyla hlasitá TODO # Proveďte konkrétní funkce, když vás systémový případ vyzve „$ 1“při spuštění) echo „Starting pytiful3.py“/usr/local/bin/pytiful3.py &;; stop) echo "Stopping pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Použití: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac exit 0

Přesuňte jej na init.d:

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

Nastavit jej jako spustitelný:

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

Zaregistrujte skript, který se má spustit při spuštění:

výchozí nastavení sudo update-rc.d pytiful3.sh

Krok 12: Test znovu

Nyní, když máme skript načtený ke spuštění při spuštění, nezapomeňte, že všechny změny, které provedeme, je třeba přenést do uživatelského koše a náš krásný skript kissir/pytiful3.py je nyní sirotek. Ale na druhou stranu je tu ještě sandbox, ve kterém budeme hrát. Pravděpodobně si budu nadále hrát se skriptem, provádět změny a v blízké budoucnosti jej uložit jako novou verzi. Je to stále funkční projekt.

Provedeme restart, počkáme, až se pí restartuje, a asi po minutě znovu stiskneme tlačítko.

Pokud je hlasitost zvuku velmi nízká, pamatujte, že máme také hlasitost alsamixeru 50%, takže ji můžeme odpovídajícím způsobem zvýšit z příkazového řádku.

Pro začátek je jedna věc, kterou je potřeba, globální hodnota objemu, místo toho, abyste museli úroveň hlasitosti měnit 5krát.

Hej, co ten seznam rozhlasových stanic, který jsme vytvořili v kroku #6? Ukázalo se, že MPG123 má příkaz náhodného výběru. Je to stejně jednoduché jako sestavení seznamu adres URL stanic a místo volání na jednu adresu URL rozhlasové stanice jednoduše použijte

"btn1234_choice = random.choice (btn1234)", bezprostředně po identifikaci našeho seznamu stanic, kde btn1234_choice je náš seznam. Kolem našeho seznamu stanic oddělených čárkami nezapomeňte použít hranaté závorky . Volání příkazu podprocesu pak přehraje naši náhodnou volbu:

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

Krok 13: Zabalte to a máme hotovo

Zabalte to a máme hotovo
Zabalte to a máme hotovo
Zabalte to a máme hotovo
Zabalte to a máme hotovo
Zabalte to a máme hotovo
Zabalte to a máme hotovo

Pokud jste se dostali k tomuto kroku, práce je dokončena! Gratulujeme - právě jste vytvořili samostatný přehrávač internetového rádia.

V závislosti na vybavení, které máte (reproduktory, zesilovač a zesilovač), si možná říkáte, jak skrýt některé z vodičů, které se válejí. Možná další instrukce na další den, ale pokud plánujete výrobu bytové jednotky, do které zastrčíte některé dráty, doporučuji dát si dostatek místa navíc.

Jak můžete vidět na fotografiích výše - ve skutečnosti jsem udělal dva polibky, jeden pomocí zbytků lepidla na nehodu při svém prvním pokusu (z pokřiveného humoru pochází pokřivené desky). Druhá jednotka používá spíše zvukové budiče než konvenční reproduktory, a pokud jste na jednom z mých screenshotů vyzvedli název zařízení, pojmenoval jsem ho slimbox.

Zjistil jsem, že tento projekt je docela zábavný. Oba časy. Určitě to není obtížný projekt, možná trochu časově náročný, ale velmi přínosný. Doufám, že si také užijete svůj poslech.

Doporučuje: