Obsah:
- Krok 1: Predpoklady:
- Krok 2: Nainštalujte Python a Pip
- Krok 3: Nainštalujte MPG123 a Adafruit Blinka
- Krok 4: V Alsamixeri upravte hlasitosť na 50%
- Krok 5: Niektoré domáce úlohy: Nájdite si 5 rozhlasových staníc, ktoré by sa mali počúvať
- Krok 6: Voliteľné: Zoškriabajte adresy URL pomocou Vtuner
- Krok 7: Nastavte si naše tlačidlá
- Krok 8: Identifikujte naše piny GPIO
- Krok 9: Kód
- Krok 10: Testujte v našom karanténe
- Krok 11: Nastavte náš kód, aby sa automaticky spúšťal pri zavádzaní
- Krok 12: Testujte znova
- Krok 13: Zbaľte to a máme hotovo
Video: Udržiavanie stopky jednoduchého internetového rádia: KISSIR: 13 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Niekedy to musí byť iba hmatové. Žiadne rozhranie akéhokoľvek druhu. Len tlačidlá.
Raspberry Pi ako prehrávač internetového rádia nie je nič nové a existuje množstvo návodov na to, ako vytvoriť prehrávač internetového rádia pomocou malinového pi s monitorom alebo bez neho na streamovanie internetových staníc z celého sveta. Ak by ste sa rozhodli ísť bez hlavy (bez monitora), stále by ste potrebovali prostriedky na prepojenie prehrávača pi, zvyčajne webové rozhranie, ak nie priamy spôsob komunikácie s hostiteľom, ako napríklad ssh. Tento pokyn sa bude mierne líšiť; použijeme jednoduché stlačenie tlačidiel na odoslanie príkazov na pi, čím odstránime potrebu webového rozhrania a LCD obrazovky. Znie to dosť jednoducho, však (?)
Začneme úplne základným dizajnom pomocou farebne označených tlačidiel, každá farba bude predstavovať internetovú rozhlasovú stanicu. Zavedieme nejaký kód pythonu na zvládnutie stlačenia tlačidla: Stlačenie spustí príkaz na prehrávanie vopred kódovanej internetovej rozhlasovej stanice pomocou MPG123, skvelého nástroja príkazového riadka na prehrávanie zvuku na našom pi.
Vaše znalosti v jazyku python nie je potrebné zdokonaľovať. V skutočnosti som doslova prešiel od „Hello World“k napísaniu tohto textu, a ako uvidíte, požičal som si veľa kódu - takže ak to dokážem a budem mať trochu zdokumentované, ktokoľvek iný by nemal mať žiadny problém.
Poďme!
Zásoby:
Potrebné materiály
- Raspberry pi/ pi nula so všetkými upevňovacími prvkami: napájací zdroj, karta SD a Raspbian alebo Raspbian lite.
- Wifi a prístup na internet
- Ďalší počítač na určité prehliadanie webu a možnosť SSH na Raspberry Pi
- Digitálny analógový prevodník (DAC) - voliteľný, ale budete vďační.
- Zosilňovač
- Reproduktory
- Pripojovací drôt a prepojky
- Spájkovačka a spájkovačka
- Perf doska pre tlačidlá
- Hmatové tlačidlá: Normálne otvorené- jedno pre každý žáner hudby, tlačidlo napájania a voliteľné tlačidlo stlmenia zvuku (odporúča sa 7 tlačidiel)
- Bytová jednotka pre všetky vyššie uvedené (voliteľné, ale upratané)
Krok 1: Predpoklady:
Začneme za predpokladu, že ste už nastavili svoj malinový pi, DAC a zosilňovač, a tiež budeme predpokladať, že máte prístup na internet. Vzhľadom na množstvo možností zvukového zariadenia, preferencií a možností počúvania zvuku budeme predpokladať, že vaše nastavenie je už dokončené: z reproduktorov by ste už mali pred začatím tohto projektu vychádzať. Budeme tiež musieť ssh na Raspberry Pi, takže pomocou konfigurácie pi zaistite, aby boli rozhrania povolené ssh. Budem používať Raspbian lite a odporučím vám, aby ste si znova nainštalovali najnovšiu kópiu na novú SD kartu určenú pre tento projekt. V prípade úspechu budeme stavať samostatné zariadenie, ktoré bude možné nechať zapnuté 24/7 ako vyhradené zariadenie na počúvanie.
Krok 2: Nainštalujte Python a Pip
Dávam prednosť ssh k pí pomocou iného počítača a vykonávam všetky požadované funkcie pomocou relácie ssh, ale myslím, že je možné pôvodne nastaviť pi na monitor, klávesnicu a myš a pracovať priamo na pi, kým nebude fungujú a potom sa nasadia ako samostatné.
Najprv si urobme rutinnú kontrolu údržby nášho systému a verzie pythonu:
sudo apt-get aktualizácia
sudo apt-get upgrade
Uistite sa, že je nainštalovaný Python. V terminálovej relácii zadajte do príkazového riadka nasledujúce:
python -verzia
Ak vidíte python 2.7.13 (alebo starší), nainštalujme 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: Nainštalujte MPG123 a Adafruit Blinka
Teraz, keď je základ položený, stačí len niekoľko ďalších inštalácií:
MPG123 je zvukový softvér, ktorý bude prehrávať našu hudbu. Inštalácia je skutočne jednoduchá:
sudo apt-get install mpg123
Urobil som veľa prieskumov a na webovej stránke Adafruit som našiel skvelú šablónu na prehrávanie zvukových súborov pomocou stlačení tlačidiel, takže aby sme nezačali úplne od začiatku, pokračovali by sme po ceste, ktorú za nás ľudia v Adafruit už obvinili. Ich program požaduje, aby sme nainštalovali Adafruit Blinka:
$ sudo pip3 nainštalujte adafruit-blinka
Predtým, ako pôjdeme ďalej, vykonajme rýchlu kontrolu, aby sme sa presvedčili, že máme nastavenie Alsa:
aplay -verzia
naše výsledky by mali znieť: verzia 1.1.3 od Jaroslava Kyselu
Krok 4: V Alsamixeri upravte hlasitosť na 50%
Teraz urobme predbežné opatrenie a upravte hlasitosť na 50%, aby ste predišli ohlušujúcim prekvapeniam:
Do príkazového riadka zadajte príkaz alsamixer:
alsamixer
Ak sa pozrieme na obrazovku červeno -bielej a zelenej alebo 100% maximálnej hlasitosti, je dobré znížiť hlasitosť na 50%, aby sme ušetrili naše bubienky. V prípade potreby sa môžeme kedykoľvek prispôsobiť (hore alebo dole).
Krok 5: Niektoré domáce úlohy: Nájdite si 5 rozhlasových staníc, ktoré by sa mali počúvať
Na každé tlačidlo budeme potrebovať jednu stanicu. V skutočnosti budeme potrebovať adresu URL stanice. Stlačenie tlačidla vyvolá adresu URL internetovej rozhlasovej stanice jednoduchým, jednoriadkovým bitom kódu. Predbiehame sa však, takže máme niekoľko domácich úloh; nájdite 5 rozhlasových staníc a ich adresy URL. Nájsť 5 rozhlasových staníc nie je ťažké, ale nájsť ich adresy URL môže byť zložité. O minútu vysvetlím prečo.
SomaFm * je skvelý zdroj na začiatok, najmä ak ešte nemáte predstavu o tom, čo by ste chceli počúvať. Majú široký výber eklektických hudobných možností, z ktorých nič nepovažujem za urážlivé, žiadne reklamy a najlepšie na tom je, že otvorene zdieľajú svoje adresy URL. Ak chcete získať adresu URL, kliknite na obrázok stanice, ktorá vás zaujíma, a na ľavom navigačnom paneli kliknite na „Odkazy na priamy stream“. Odtiaľ vyhľadajte sekciu MP3 a zoškrabte adresu URL s najvyššou frekvenciou prehrávania (tj. 128 úderov 64). Adresu URL zatiaľ vložte do textového editora alebo poznámkového bloku.
Ak napríklad chcete zoškrabať vianočné skaly, adresa URL bude: (nepotrebujeme popis servera)
ice4.somafm.com/xmasrocks-128-mp3
Mimo sveta SomaFm sa to trochu zvrtne. Mnoho staníc používa prostredníka medzi poslucháčom a stanicou, či už ide o reklamu, marketing alebo prípadne sledovanie - a vo všeobecnosti sa snažím týmto typom staníc vyhýbať. Pretože sprostredkovatelia uprednostňujú, aby ste stanicu počúvali prostredníctvom nich, je zvyčajne ťažké nájsť adresu URL; a tu nastupuje Vtuner.
*Bolo by mi ľúto, keby som nepožiadal, aby ste zvážili poskytnutie daru svojej obľúbenej rozhlasovej stanici, pretože mnohé zo staníc sa spoliehajú výlučne na podporu poslucháčov.
Krok 6: Voliteľné: Zoškriabajte adresy URL pomocou Vtuner
Teraz prichádza zábavná časť … Na domovskej stránke Vtuner sa pozrite na ich obrovský odkaz na zoznam staníc v pravom hornom rohu. Vyberte si žáner hudby, ktorý vás zaujíma, a potom zoraďte podľa najvyššej rýchlosti, kde uvidíte zoznam staníc. Vyberte si stanicu, ktorá by sa vám mohla páčiť, kliknite na odkaz alebo tlačidlo prehrávania a ukážte hudbu. Ak to nie je pre vás, nebojte sa, opakujte postup, kým nenájdeme vhodný na dlhodobé užívanie si. V snímke obrazovky som si vybral digitálnu impulznú verziu country hudby a na ďalšej obrazovke som si všimol, že hrá mimo Chorvátska. Country hudba z Chorvátska znie dosť zaujímavo.
Páči sa mi to. Ako však získam adresu URL? Jednoducho kliknite pravým tlačidlom myši na biele miesto napravo od obrázku stanice, pod názvom stanice, zvoľte „Zobraziť zdrojový kód stránky“a posuňte sa nadol na riadok 150. Hľadáme riadok s textom „// Skúste zvládnuť ľadový ľad “. A adresa URL sa nachádza bezprostredne pod ním!
orion.shoutca.st:8110/stream
Docela úhľadné!
Tento krok opakujte, kým nebudeme mať v zozname najmenej 5 staníc.
Dvojité voliteľné: Ak okrem toho nájdete 5 žánrov hudby, ktoré vás zaujímajú (na rozdiel od 5 staníc), vytvorte si zoznam rozhlasových staníc pre každý žáner a uložte ich ako textové súbory. K tomuto sa ešte vrátime.
Krok 7: Nastavte si naše tlačidlá
Najdôležitejšia časť! Oprášte starú spájkovačku alebo ju aspoň zapojte a prach upečte. Je čas spájkovať. Používam 4 kolíkové chvíľkové tlačidlá, normálne otvorené. Postavím pole tlačidiel (ľavá fotografia) a pripevním ich k doske. Na fotografii je to ťažké rozpoznať, ale smer hrotov tlačidiel je spustený sever-juh. Na pravej strane vidíte, kde som použil uzemňovaciu koľajnicu pre svoje uzemňovacie vodiče a na opačnú stranu každého tlačidla pripevnil niekoľko prepojovacích káblov s koncovkou. Železnica nám namiesto 7 pozemných spojení umožní zdieľať jedno pozemné spojenie s pí pre všetkých. Konečným výsledkom je delikátna doska na oblátky, ktorá bude pripevnená k hornej časti rádia pomocou niekoľkých skrutiek cez poskytnuté pilotné otvory. Cez drážku, ktorú som vystrihol z vrchu, sa objavia iba vrchy gombíkov. Keďže môj horný povrch je hrubý iba 1/4 , chcem dávať pozor, aby som nepretrhol skrutku. Lepidlo môže byť užitočné pri uchytení dosky perf k rádiu.
Krok 8: Identifikujte naše piny GPIO
V mojom jedinom inom návode som predstavil nové použitie pre staré hlasové klobúky Google AIY verzie 1. V tomto veľmi nepopulárnom (alebo veľmi populárnom) návode som spomenul, ako na mňa zapôsobil samotný dizajn klobúka. Niekoľko som ich položil, takže budem stavať prototyp pomocou klobúka, pretože má na palube dac aj zosilňovač.
Poďme teraz identifikovať šesť kolíkov, ktoré budú hostiteľom našich stlačení tlačidiel. Poprosím vás, aby ste sa zamerali na ľavú stranu klobúka Google AIY, kde je napísané „servá“. Pre kolík je stĺpik so 6 očkami, na ktorý pripevním a spájkujem svoje mužské gombíky z predchádzajúceho kroku. Ak pracujete bez hlasového klobúka google aiy, nemusíte sa obávať - fotografia vpravo vás prevedie. V oboch prípadoch budeme pracovať s kolíkmi gpio (BCM) 26, 06, 13, 05, 12 a 24 zhora nadol (alebo 0-5). GPIO #24 bude vyhradené pre voliteľné tlačidlo pozastavenia.
Nezabudnite pripojiť aj uzemnenie.
Krok 9: Kód
Pochybujem, že sa odtiaľto kód veľmi zmení, ale pre najnovšiu verziu kódu pythonu navštívte môj github. Prikladám kópiu z 2019-12-18 s názvom pytiful3.py.
Nie je to najefektívnejší kód, aký kedy uvidíte, a je dosť podrobný, ale úlohu zvládne.
Začnime vytvorením pieskoviska, v ktorom sa bude hrať. Z nášho domovského adresára vytvorte adresár na našom malinovom pi s názvom kissir:
mkdir kissir/
a skopírujte obsah súboru pytiful3.py do adresára otvorením ukážkového súboru v textovom editore a pomocou
sudo nano kissir/pytiful3.py
skopírujte / prilepte obsah súboru do nášho novovytvoreného skriptu python. Nezabudnite uložiť našu prácu pomocou Ctrl-x, Y a zadať.
Ak chcete rýchlu prehliadku skriptu, importujeme moduly pythonu, ktoré budeme potrebovať, a potom definujeme naše tlačidlá a každému zo 7 tlačidiel priradíme pin gpio. K dispozícii bude 5 rozhlasových staníc (môžete ich upraviť podľa svojich preferencií), tlačidlo zastavenia a tlačidlo vypnutia. Skutočná slučka beží a beží, kým nestlačíte tlačidlo, čo vo väčšine prípadov zastaví akékoľvek existujúce prehrávanie mpg123 a začne prehrávať stanicu priradenú k stlačenému tlačidlu. Tlačidlo pozastavenia/zastavenia nie je v skutočnosti tlačidlom pauzy, ale skôr prepínačom zabíjania, pretože nemôžeme pozastaviť internetové rádio. Internetové rádio na nikoho nečaká.
Krok 10: Testujte v našom karanténe
Predtým, ako nasadíme rádio, keď sme ešte v relácii ssh, prejdite do priečinka kissir, kde je uložený náš skript. Skript môžeme jednoducho spustiť z príkazového riadka ručne zadaním:
python3 pytiful3.py
Ak ste sa najskôr pozreli na kód, pravdepodobne ste si všimli, že som zanechal niekoľko tlačových vyhlásení, aby sme mohli povedať, čo sa deje. Ak všetko dobre dopadne, zobrazí sa výzva s textom „Stlačte tlačidlo“. To nám hovorí, že náš skript je spustený a prešiel predbežnou kontrolou kódu. Môj počiatočný pokus mal nekonečnú slučku „hudba pozastavená - pokračujte stlačením tlačidla“a zistil som, že tlačidlo prerušenia je zapojené tak, aby bolo vždy zatvorené, a nie normálne otvorené. Našťastie ste mali viac šťastia pri spájkovaní.
Ctrl-C zastaví skript, ak ho potrebujete prerušiť.
Ak teda uvidíte „Stlačte tlačidlo“, na čo čakáme? Vyberte jedno z našich piatich tlačidiel rádiových staníc.
Je pravdepodobné, že budete počuť spustenie reproduktora, aby sa spustilo prehrávanie hudby, a v tejto chvíli vám nemôžem pomôcť. Mpg123 umožňuje za adresou stanice v príkaze os.system príponu „--preload 1“, ale nedokázal som povedať, či to má vplyv. Malo by to umožniť mierny nárazník.
Ďalší kúsok kódu, nad ktorým ste sa možno zamýšľali: po volaní mpg123 je príznak „-f 7000“. Tým sa zníži hlasitosť na veľkú vzdialenosť. Plný objem by bol 32 kB. Pokiaľ chápem, stupnica hlasitosti nie je lineárna stupnica, takže nemôžem povedať, že je to len jedna pätina maximálnej hlasitosti, ale stále dosť hlasná. Musel som to urobiť, pretože moja zvuková karta - hlasová zvuková karta Google AIY - s Alsamixerom niekedy nehrá dobre.
Pokračujte vo výbere tlačidiel podľa vlastného výberu, sadnite si, relaxujte a vychutnajte si zatiaľ pohodlie počúvania.
Krok 11: Nastavte náš kód, aby sa automaticky spúšťal pri zavádzaní
Ak teda všetko funguje dobre a páčil sa vám náš podnik príkazového riadka v karanténe, teraz je vhodný čas na automatizáciu načítania skriptu. Uistite sa, že ste stále v adresári Kissir, a umiestnite kód skriptu do používateľského priečinka:
sudo cp pytiful3.py/usr/local/bin/
Nastaviť ako spustiteľný:
sudo chmod +x /usr/local/bin/pytiful3.py
Napíšte skript shell, ktorý sa spustí pri spustení:
sudo nano pytiful3.sh
A vložte nasledujúci text:
#! /bin/sh ### BEGIN INIT INFO # Poskytuje: pytiful3.py # Povinný štart: $ remote_fs $ syslog # Požadovaný zastavenie: $ remote_fs $ syslog # Predvolený začiatok: 2 3 4 5 # Predvolené zastavenie: 0 1 6 ### END INIT INFO # uistite sa, že úroveň hlasitosti nie je hlasná TODO # Vykonajte konkrétne funkcie, keď vás to systémový prípad požiada „$ 1“pri štarte) echo „Starting pytiful3.py“/usr/local/bin/pytiful3.py &;; stop) echo „Stopping pytiful3.py“pkill -f /usr/local/bin/pytiful3.py;; *) echo "Použitie: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac exit 0
Presuňte ho na init.d:
sudo mv pytiful3.sh /etc/init.d/
Nastaviť ako spustiteľný:
sudo chmod +x /etc/init.d/pytiful3.sh
Zaregistrujte skript, ktorý sa má spustiť pri spustení:
predvolené nastavenia sudo update-rc.d pytiful3.sh
Krok 12: Testujte znova
Teraz, keď máme skript načítaný na spustenie pri spustení, nezabúdajte, že všetky zmeny, ktoré vykonáme, je potrebné preniesť do používateľského priečinka a náš krásny skript kissir/pytiful3.py je teraz sirota. Ale na druhej strane, máme stále pieskovisko, v ktorom sa budeme hrať. Pravdepodobne sa budem naďalej hrať so scenárom, vykonávať zmeny a uložiť ho ako novú verziu v blízkej budúcnosti. Je to stále funkčný projekt.
Vykonajte reštart, počkajte, kým sa pí reštartuje, a asi po minúte znova stlačte tlačidlo.
Ak je hlasitosť vášho zvuku veľmi nízka, pamätajte, že máme aj hodnotu alsamixer 50%, aby sme ju mohli zodpovedajúcim spôsobom zvýšiť z príkazového riadka.
Na začiatku je jedna vec, ktorá je potrebná, globálna hodnota hlasitosti, namiesto toho, aby ste museli meniť úroveň hlasitosti päťkrát.
Hej, čo ten zoznam rozhlasových staníc, ktorý sme urobili v kroku č. 6? Ukázalo sa, že MPG123 má príkaz náhodného výberu. Je to jednoduché ako zostavenie zoznamu adries URL staníc a namiesto telefonovania na jednu adresu URL rádiovej stanice jednoducho použite
"btn1234_choice = random.choice (btn1234)", bezprostredne po identifikácii nášho zoznamu staníc, kde btn1234_choice je náš zoznam. Nezabudnite použiť hranaté zátvorky okolo nášho zoznamu staníc oddelených čiarkami. Volanie príkazu podprocesu potom prehrá našu náhodnú voľbu:
subprocess.call (['mpg123', '-q', btn1234_choice, "--preload 1"])
Krok 13: Zbaľte to a máme hotovo
Ak ste sa dostali k tomuto kroku, práca je dokončená! Blahoželáme - práve ste postavili samostatný prehrávač internetového rádia.
V závislosti od vybavenia, ktoré máte (reproduktory, zosilňovač a zosilňovač), vás môže zaujímať, ako skryť niektoré káble. Možno ďalší návod na ďalší deň, ale ak plánujete výrobu bytovej jednotky, do ktorej by ste zapojili niektoré z drôtov, odporúčam vám dať si dostatok miesta navyše.
Ako môžete vidieť na fotografiách vyššie - v skutočnosti som urobil dva kissiry, jeden s použitím zvyškov nehody pri prvom pokuse (z pokrúteného humoru pochádzajú pokrčené dosky). Druhá jednotka používa skôr budiče zvuku ako konvenčné reproduktory a ak ste na jednom z mojich snímok obrazovky zistili názov zariadenia, pomenoval som ho slimbox.
Mne sa tento projekt zdal celkom zábavný. Oba razy. Určite to nie je náročný projekt, možno trochu časovo náročný, ale veľmi obohacujúci. Dúfam, že si užijete aj počúvanie.
Odporúča:
Výroba jednoduchého robota z vecí, ktoré nájdete vo svojom dome (verzia s horúcim kolesom): 5 krokov
Vytvorenie jednoduchého robota z vecí, ktoré nájdete vo svojom dome (verzia s horúcim kolesom): Tento návod vám ukáže, ako sa robí samotné horúce koleso, ktoré beží na batérie typu A. Budete musieť používať iba veci, ktoré pravdepodobne nájdete vo svojom dome. Upozorňujeme, že tento robot pravdepodobne nepôjde úplne rovno,
Bojujte proti koronavírusu: Časovač jednoduchého umývania rúk: 8 krokov (s obrázkami)
Boj s koronavírusom: Jednoduchý časovač umývania rúk: So súčasnou pandémiou vo svete sa situácia zdá byť strašidelná. Vírus Corona môže byť kdekoľvek. Pokiaľ vieme, jeden by mohol prenášať vírus niekoľko dní bez toho, aby dokonca vykazoval akékoľvek príznaky. Skutočne strašidelné. Ale hej, nebojte sa.
Aplikácia na udržiavanie skóre v Petanque / Jeu-de-Boules: 7 krokov
Aplikácia na udržiavanie skóre Petanque / Jeu-de-Boules: Toto je aplikácia na uchovávanie skóre v Petanque (niekedy označovaná ako Jeu de Boules) pre Android. Túto aplikáciu je možné používať tak, ako je a je plne funkčná. Alebo ho možno použiť v kombinácii s displejom Petanque Matrix [samostatný návod
Filtrovanie internetového obsahu pomocou DNS: 10 krokov
Filtrovanie internetového obsahu pomocou systému DNS: Aktualizované 3. februára 2021, aby v krokoch 8 & 9. Je všeobecne známe, že na internete je veľa obsahu, ktorý nie je práve vhodný na sledovanie deťmi. Čo však nie je tak známe, je skutočnosť, že
Autonómne auto na udržiavanie v jazdnom pruhu s použitím Raspberry Pi a OpenCV: 7 krokov (s obrázkami)
Autonómne auto na udržiavanie v jazdnom pruhu s použitím Raspberry Pi a OpenCV: V tomto návode bude implementovaný autonómny robot na udržiavanie v jazdnom pruhu, ktorý prejde týmito krokmi: Zhromažďovanie súčiastok Inštalácia softvérových predpokladov Zostava hardvéru Prvý test Detekcia línií jazdných pruhov a zobrazenie sprievodcu