INHOUDSOPGAWE:
- Stap 1: Voorvereistes:
- Stap 2: Installeer Python en Pip
- Stap 3: Installeer MPG123 en Adafruit Blinka
- Stap 4: Pas die volume aan op 50% in Alsamixer
- Stap 5: huiswerk: vind 5 radiostasies wat die moeite werd is om na te luister
- Stap 6: Opsioneel: skraap URL's met behulp van Vtuner
- Stap 7: Stel ons knoppies op
- Stap 8: Identifiseer ons GPIO -penne
- Stap 9: Kode
- Stap 10: Toets in ons sandkas
- Stap 11: Stel ons kode op om outomaties tydens opstart te begin
- Stap 12: Toets weer
- Stap 13: Pak dit in en ons is klaar
Video: Keeping It Stoopid Eenvoudige internetradio: KISSIR: 13 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Soms moet dit net tasbaar wees. Geen koppelvlak van enige aard nie. Net knoppies.
Raspberry Pi as 'n internetradiospeler is niks nuuts nie, en daar is baie instruksies oor hoe om 'n internetradiospeler te skep met 'n framboospi met of sonder 'n monitor om internetstasies van regoor die wêreld te stroom. As u sou kies om koploos te wees (sonder 'n monitor), sou u steeds 'n manier nodig hê om die pi -speler te koppel, gewoonlik 'n webkoppelvlak, indien nie 'n direkte manier om met die gasheer te kommunikeer nie, soos ssh. Hierdie instruksies sal effens anders wees; ons gebruik eenvoudige knoppies om opdragte na die pi te stuur, en sodoende word die behoefte aan 'n webkoppelvlak en 'n LCD -skerm uitgeskakel. Klink maklik genoeg, nie waar nie? (?)
Ons begin met 'n baie basiese ontwerp met behulp van gekleurde knoppies, elke kleur verteenwoordig 'n internetradiostasie. Ons sal 'n paar python-kode bekendstel om die druk op die knoppies te hanteer: Die pers sal 'n opdrag uitvoer om 'n vooraf gekodeerde internetradiostasie te speel met behulp van MPG123, 'n uitstekende opdragreëlinstrument om klank op ons pi te speel.
U python -vaardighede hoef nie gevorderd te wees nie. Eintlik het ek letterlik van "Hello World" gegaan om dit te skryf, en soos u sal sien, het ek baie kode geleen - so as ek dit kan doen en dit ietwat gedokumenteer het, behoort iemand anders geen probleem te hê nie.
Kom ons gaan!
Benodighede:
Benodige materiaal
- Framboos pi/ pi nul w met al die bevestigings: Kragtoevoer, SD -kaart en Raspbian of Raspbian lite.
- Wifi en internettoegang
- Nog 'n rekenaar om 'n bietjie webblaai te doen en SSH na die framboos pi toe te laat
- Digitaal na analoog omskakelaar (DAC) - opsioneel, maar u sal dankbaar wees.
- Versterker
- Sprekers
- Aansluitdraad en springers
- Soldeerbout en soldeer
- Perf Board vir die knoppies
- Taktiele knoppies: normaalweg oop- een vir elke musiekgenre, 'n aan / uit-knoppie en 'n opsionele dempknoppie (7 knoppies word aanbeveel)
- 'N Behuisingseenheid vir al die bogenoemde (opsioneel, maar netjies)
Stap 1: Voorvereistes:
Ons sal begin met die veronderstelling dat u reeds u framboos -pi, DAC en versterker opgestel het, en aanvaar ook dat u toegang tot die internet het. As gevolg van die aantal keuses, voorkeure en opsies vir klanktoerusting, sal ons aanvaar dat u opstelling reeds voltooi is: u moet reeds klank uit u luidsprekers hê voordat u met hierdie projek begin. Ons sal ook na die framboos -pi moet ssh, so met behulp van pi -opset, maak seker dat koppelvlakke ssh aangeskakel is. Ek gebruik Raspbian lite en beveel aan dat u die nuutste kopie op 'n nuwe SD -kaart installeer wat vir hierdie projek toegewy is. As dit suksesvol is, bou ons 'n losstaande toestel wat 24/7 as 'n toegewyde luisterapparaat aanskakel.
Stap 2: Installeer Python en Pip
Ek verkies om die pi te gebruik met 'n ander rekenaar en al die vereiste funksies uit te voer met 'n ssh -sessie, maar ek dink dit is moontlik om die pi aanvanklik op 'n monitor, sleutelbord en muis in te stel en direk aan die pi te werk totdat dit werk en implementeer dit dan as 'n selfstandige.
Laat ons eers ons stelsel- en python -weergawe gereeld onderhou:
sudo apt-get update
sudo apt-get upgrade
Maak seker dat Python geïnstalleer is. Tik in die terminale sessie die volgende by die opdragprompt:
luislang -weergawe
As u python 2.7.13 (of vroeër) sien, laat ons python 3.+installeer:
sudo apt-get install python3
sudo apt-get install python-pip
sudo apt-get install python3-pip
sudo pip3 installeer -upgrade pip
Stap 3: Installeer MPG123 en Adafruit Blinka
Noudat die fondament gelê is, nog 'n paar installasies:
MPG123 is die klanksagteware wat ons musiek speel. Die installasie is regtig eenvoudig:
sudo apt-get install mpg123
Ek het baie navorsing gedoen en op die Adafruit -webwerf 'n wonderlike sjabloon gevind oor hoe om klanklêers met knoppies te speel, sodat ons eerder as van nuuts af kan begin op die spoor wat die mense by Adafruit al vir ons aangevuur het. Hulle program vra dat ons Adafruit Blinka installeer:
$ sudo pip3 installeer adafruit-blinka
Voordat ons verder gaan, laat ons 'n vinnige ondersoek doen om seker te maak dat ons Alsa opgestel het:
aplay -weergawe
ons resultate behoort te lees: weergawe 1.1.3 deur Jaroslav Kysela
Stap 4: Pas die volume aan op 50% in Alsamixer
Kom ons neem nou 'n voorsorgmaatreël en pas ons volume aan tot 50% om oorverdowende verrassings te voorkom:
Tik alsamixer by die opdragprompt:
alsamixer
As ons kyk na 'n skerm van rooi wit en groen, of 100% maksimum volume, is dit 'n goeie idee om die volume tot 50% te verlaag om ons oordrom te bespaar. Ons kan altyd later (op of af) aanpas indien nodig.
Stap 5: huiswerk: vind 5 radiostasies wat die moeite werd is om na te luister
Ons benodig een stasie vir elke knoppie. Eintlik benodig ons die url vir die stasie. Met die druk op die knoppie word die url van die internetradiostasie met 'n eenvoudige kode van een reël gebel. Maar ons loop onsself vooruit, so ons moet huiswerk doen; vind 5 radiostasies en hul URL's. Dit is nie moeilik om 5 radiostasies te vind nie, maar dit kan moeilik wees om hul URL's te vind. Ek sal binne 'n minuut verduidelik hoekom.
SomaFm * is 'n uitstekende bron om mee te begin, veral as u nog nie 'n idee het waarna u nog wil luister nie. Hulle het 'n wye verskeidenheid eklektiese musiekkeuses, waarvan ek geen aanstootlik vind nie, geen advertensies nie, en die beste: hulle deel openlik hul url's. Om na die URL te gaan, klik op 'n beeld van die stasie waarin u belangstel, en klik op die "Direct Stream Links" in die navigasiebalk aan die linkerkant. Vind daarvandaan die MP3 -afdeling en skraap die url van die hoogste afspeelsnelheid (dws 128 slae 64). Plak die url vir eers in 'n teksredakteur of notaboek.
Byvoorbeeld, om Kersfees rotse te skraap, sou die url wees: (ons het nie die bedienerbeskrywing nodig nie)
ice4.somafm.com/xmasrocks-128-mp3
Dit word 'n bietjie duideliker buite die wêreld van SomaFm. Baie stasies gebruik 'n middelman tussen die luisteraar en die stasie, of dit nou vir advertensies, bemarking of moontlik opsporing is - en ek probeer gewoonlik hierdie tipe stasies vermy. Aangesien die middelmanne verkies dat u deur die stasie luister, is dit gewoonlik redelik moeilik om die url te vind; en dit is waar Vtuner inkom.
*Ek sou jammer wees as ek nie sou vra dat u 'n donasie aan u gunsteling radiostasie sou doen nie, aangesien baie van die stasies slegs op luisteraarsondersteuning staatmaak.
Stap 6: Opsioneel: skraap URL's met behulp van Vtuner
Nou kom die prettige deel … Op die Vtuner -tuisblad, kyk na hul groot stasie lys skakel in die regter boonste hoek. Kies 'n musiekgenre waarin u belangstel, en sorteer dan op die vinnigste spoed, waar u 'n lys met stasies sal sien. Kies 'n stasie waarvan u dink dat u daarvan hou, klik op die skakel of speel knoppie en proe die musiek. As dit nie vir u is nie, moenie bekommerd wees nie, herhaal die proses totdat ons een vind wat geskik is vir langtermyn -genot. In my skermopname het ek die digitale impulsweergawe van country -musiek gekies, en op die volgende skerm het ek opgemerk dat dit uit Kroasië afspeel. Country -musiek uit Kroasië klink nogal interessant.
Ek hou daarvan. Maar hoe kry ek die url? Klik eenvoudig met die rechtermuisknop op die wit spasie regs van die stasiebeeld, onder die naam van die stasie, en kies "Bekyk bladsybron" en blaai af na ongeveer ry 150. Ons soek die reël wat sê "// Probeer icecast te hanteer ". En die url word onmiddellik onder gevind!
orion.shoutca.st:8110/stroom
Redelik glad!
Herhaal hierdie stap totdat ons ten minste 5 stasies op ons lys het.
Dubbel opsioneel: as u meer as 5 genres musiek kan vind waarin u belangstel (in teenstelling met 5 stasies), bou 'n lys radiostasies vir elke genre en stoor die lyste as tekslêers. Ons kom later hierop terug.
Stap 7: Stel ons knoppies op
Die belangrikste deel! Stof die ou soldeerbout af of steek dit ten minste in en bak die stof af. Dit is tyd om te soldeer. Ek gebruik vier kort drukknoppies, gewoonlik oopgemaak. Ek sal 'n verskeidenheid knoppies bou (foto links) en dit op 'n perfekte bord vasmaak. Dit is moeilik om op die foto te sê, maar die rigting van die knopknoppe loop noord-suid. Aan die regterkant kan u sien waar ek 'n grondrail vir my aarddrade gehardloop het en 'n paar kabels aan die teenoorgestelde kant van elke knoppie vasgemaak het. In plaas van om 7 grondaansluitings te hê, sal die spoor ons toelaat om een grondverbinding met die pi vir almal te deel. Die eindresultaat is 'n delikate wafelbord wat met 'n paar skroewe aan die bokant van die radio gemonteer sal word deur die voorgestelde gate. Slegs die knoppies verskyn deur die groef wat ek aan die bokant uitgesny het. Aangesien my boonste oppervlak slegs 1/4 duim dik is, wil ek versigtig wees dat ek nie te veel skroef nie. Gom kan nuttig wees om die perf board aan die radio vas te hou.
Stap 8: Identifiseer ons GPIO -penne
In my enigste ander instruksies het ek 'n nuwe gebruik vir die ou Google AIY weergawe 1 stemhoede aangebied. In hierdie baie ongewilde (of eng gewilde) instruksie, het ek genoem hoe beïndruk ek was met die ontwerp van die hoed self. Ek het 'n paar rond, so ek sal 'n prototipe bou met behulp van die hoed, aangesien dit beide die dac en die versterker aan boord het.
Kom ons identifiseer nou ses penne wat ons knoppies druk. Ek sal u vra om op die linkerkant van die Google AIY -hoed te fokus, waar daar 'servo's' staan. Daar is 'n kolom van 6 ooglede vir die pen, waar ek my manlike knoppe van ons vorige stap sal heg en soldeer. As u sonder die google aiy voice hoed werk, hoef u nie bekommerd te wees nie - die foto aan die regterkant sal u lei. In beide gevalle werk ons met gpio (BCM) penne 26, 06, 13, 05, 12 en 24 van bo na onder (of 0-5). GPIO #24 sal gereserveer word vir 'n opsionele pouse -knoppie.
Moenie vergeet om ook die grondverbinding aan te sluit nie.
Stap 9: Kode
Ek twyfel of die kode hier baie sal verander, maar besoek die github vir die nuutste weergawe van die python -kode. Ek het 'n afskrif van 2019-12-18 aangeheg met die naam pytiful3.py.
Dit is nie die doeltreffendste kode wat u ooit sal sien nie, en dit is redelik breed, maar dit kry die werk gedoen.
Kom ons begin met die skep van 'n sandkas om in te speel. Skep in ons tuisgids 'n gids op ons framboos pi genaamd kissir:
mkdir kissir/
en kopieer die inhoud van die pytiful3.py -lêer in die gids deur die voorbeeldlêer in 'n teksredakteur oop te maak en te gebruik
sudo nano kissir/pytiful3.py
kopieer / plak die lêerinhoud in ons nuutgeskepte python -script. Moenie vergeet om ons werk te stoor deur Ctrl-x, Y te gebruik nie en voer in.
As u 'n vinnige rondleiding deur die script wil hê, voer ons die luislangmodules in wat ons benodig, en dan definieer ons ons knoppies en ken 'n gpio -pen aan elk van die 7 knoppies toe. Daar sal 5 radiostasies wees (wysig dit gerus volgens u voorkeure), 'n stopknoppie en 'n afsluitknoppie. Terwyl die ware lus loop en loop totdat 'n knoppie ingedruk word, wat in die meeste gevalle enige bestaande mpg123 -afspeel sal stop en die stasie begin speel wat aan die knoppie toegedien is. Die pouse/stop -knoppie is nie regtig 'n pouse -knoppie nie, maar meer 'n doodskakelaar, aangesien ons nie internetradio kan onderbreek nie. Internetradio wag vir niemand nie.
Stap 10: Toets in ons sandkas
Voordat ons ons radio ontplooi, terwyl ons nog in ons ssh -sessie is, gaan ons na die kissir -lêergids waar ons script gestoor word. Ons kan die script eenvoudig met die hand vanaf die opdragreël uitvoer deur te tik:
python3 pytiful3.py
As u eers na die kode gekyk het, het u waarskynlik opgemerk dat ek 'n paar gedrukte verklarings nagelaat het, sodat ons kan sien wat gebeur. As alles goed uitgewerk het, word 'n druk op 'n knoppie gegee. Dit vertel ons dat ons skrip werk en dat dit 'n voorlopige kode -toets afgelê het. My aanvanklike poging het 'n oneindige lus van "musiek onderbreek - druk op die knoppie om voort te gaan", en ek het uitgevind dat my pouse -knoppie altyd gesluit was, in plaas van normaalweg oop. Hopelik het u beter geluk met die soldeerstap.
Ctrl-C sal die skrip stop as u wil aborteer.
So, as u 'Druk op 'n knoppie' sien, waarop wag ons dan? Kies een van ons vyf radiostasie knoppies.
Die kans is goed dat u waarskynlik 'n luidspreker sal hoor pop om die musiek te begin speel, en ek kan nie op die oomblik help nie. Mpg123 maak voorsiening vir 'n "-voorlaai 1" agtervoegsel na die stasie adres in die opdrag os.system, maar ek kon nie weet of dit 'n verskil maak nie. Dit moet 'n effense buffer toelaat.
'N Ander stukkie kode waaroor u dalk gewonder het: daar is 'n vlag "-f 7000" na die oproep mpg123. Dit verminder die volume tot 'n ver afstand van die maksimum volume. Die volle volume sal 32K wees. Soos ek verstaan, is die volumeskaal nie 'n lineêre skaal nie, so ek kan nie sê dat dit slegs 'n vyfde van die maksimum volume is nie, maar steeds baie hard. Ek moes dit doen omdat my klankkaart - die Google AIY -stemklankkaart, soms nie lekker met Alsamixer speel nie.
Gaan voort met die knoppies wat u kies, sit terug, ontspan en geniet die gemak van u luister vir eers.
Stap 11: Stel ons kode op om outomaties tydens opstart te begin
Dus, as alles goed verloop en u ons opdragpromptuur met sandbox geniet het, is dit 'n goeie tyd om die skriplading te outomatiseer. Maak seker dat u nog steeds in die kissir -gids is en plaas die scriptkode in die gebruikersbak:
sudo cp pytiful3.py/usr/local/bin/
Maak dit uitvoerbaar:
sudo chmod +x /usr/local/bin/pytiful3.py
Skryf 'n dopskrip om dit by die aanvang uit te voer:
sudo nano pytiful3.sh
En voeg die volgende teks in:
#! /bin/sh ### BEGIN INIT INFO # Bied: pytiful3.py # Vereis-begin: $ remote_fs $ syslog # Vereis-stop: $ remote_fs $ syslog # standaard-begin: 2 3 4 5 # standaard-stop: 0 1 6 ### EINDE INIT INFO # verseker dat die volume nie te hard is nie TODO # Voer spesifieke funksies uit wanneer die stelselkas "$ 1" dit in die begin vra) echo "Begin pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) eggo "Stop pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) eggo "Gebruik: /etc/init.d/pytiful3.sh {begin | stop}" afrit 1;; esac afrit 0
Skuif dit na init.d:
sudo mv pytiful3.sh /etc/init.d/
Maak dit uitvoerbaar:
sudo chmod +x /etc/init.d/pytiful3.sh
Registreer die script om by die aanvang te begin:
sudo update-rc.d pytiful3.sh standaard
Stap 12: Toets weer
Noudat ons skrip gelaai is om by die opstart te begin, moet u net onthou dat alle veranderings wat ons aanbring, in die gebruikersbak moet oorgedra word, en ons pragtige, kissir/pytiful3.py -script is nou net 'n wees. Maar aan die ander kant het ons nog 'n sandkas om in te speel. Ek sal waarskynlik met die draaiboek gaan speel, veranderings aanbring en dit in die nabye toekoms as 'n nuwe weergawe stoor. Dit is nog steeds 'n werkende projek.
Laat ons weer begin, wag totdat die pi weer begin, en druk na ongeveer 'n minuut weer 'n knoppie.
As u klankvolume baie laag is, moet u onthou dat ons ook 'n mengvolume van 50%het, sodat ons dit dienooreenkomstig kan verhoog vanaf die opdragprompt.
Om mee te begin, is een ding wat nodig is 'n globale volume waarde, in plaas daarvan dat u die volume 5 keer moet verander.
Haai, wat van die lys radiostasies wat ons in stap 6 gemaak het? Dit blyk dat MPG123 'n ewekansige opdrag het. Dit is so eenvoudig soos om 'n lys met stasie -URL's op te stel, en in plaas daarvan om 'n URL vir een radiostasie te vra, gebruik dit eenvoudig
"btn1234_choice = random.choice (btn1234)", onmiddellik na die identifisering van ons lys stasies, waar btn1234_choice ons lys is. Moenie vergeet om vierkantige hakies te gebruik in ons lys van stasies wat deur kommas geskei is nie. Die subprosesopdragoproep speel dan ons ewekansige keuse:
subprocess.call (['mpg123', '-q', btn1234_choice, "--preload 1"])
Stap 13: Pak dit in en ons is klaar
As u hierdie stap bereik het, is die werk voltooi! Baie geluk - jy het pas 'n selfstandige internetradiospeler gebou.
Afhangende van die toerusting wat u het (luidsprekers, dac en versterker), wonder u miskien hoe u 'n paar drade wat lê, kan wegsteek. Miskien is nog 'n opdrag vir 'n ander dag, maar as u 'n wooneenheid wil maak om 'n paar drade in te steek, beveel ek aan dat u genoeg ekstra ruimte gee.
Soos u op die foto's hierbo kan sien - ek het eintlik twee kissirs gemaak, een met die oorblyfsels van 'n gom -ongeluk tydens my eerste poging (van verwronge humor kom verwronge planke). Die tweede eenheid gebruik klankopwekkers eerder as konvensionele luidsprekers, en as u die naam van die toestel op een van my kiekies opneem, noem ek dit slimbox.
Ek het gevind dat hierdie projek baie lekker was. Beide kere. Beslis nie 'n moeilike projek nie, miskien 'n bietjie tydrowend, maar baie lonend. Ek hoop jy geniet ook jou luister.
Aanbeveel:
BOSEBerry Pi internetradio: 4 stappe (met foto's)
BOSEBerry Pi internetradio: ek luister graag na die radio! Ek het 'n DAB -radio in my huis gebruik, maar ek het gevind dat die ontvangs effens swak was en dat die geluid steeds breek, en ek het besluit om my eie internetradio te bou. Ek het 'n sterk wifi -sein om my huis en die digitale bro
Raspberry Pi-aangedrewe internetradio: 5 stappe (met foto's)
Raspberry Pi-aangedrewe internetradio: daar is iets bevredigends aan die draai van die draaiknoppies en die druk op knoppies, soos dié op ou radio's. Ongelukkig is baie van hierdie radio's stukkend of is die stasies stil. Gelukkig is dit nie te moeilik om 'n radio op te dateer in 'n internetradio met behulp van
1964 Dansette Pi internetradio: 6 stappe (met foto's)
1964 Dansette Pi internetradio: Hierdie stylvolle Dansette-draagbare radio uit die middel van die 1960's speel nou die beste internetradiostasies van die 21ste eeu danksy 'n liefdevolle opgradering. Al die oorspronklike kontroles is hergebruik, en u sou nooit weet dat dit 'n omskakeling is nie - totdat u dit aanskakel
Roberts RM33 Raspberry Pi internetradio (nog 'n ander ): 8 stappe (met foto's)
Roberts RM33 Raspberry Pi internetradio (nog 'n ander …): Ja, dit is nog 'n Raspberry Pi internetradio, en ook nie my eerste nie. Ek weet nie hoekom hierdie gebou nog steeds so gewild is nie, maar ek geniet dit nog steeds en kan nie sê dat dit ook my laaste sal wees nie. Ek hou regtig van die voorkoms van die Robert
INTERNETRADIO / KAARTJIE / WEERSTASIE: 5 stappe
INTERNETRADIO / TICKER / WEATHERSTATION: Dit is 'n baie goeie internetradio, maar meer as dit, dit is ook 'n weerstasie, 'n kaartjie en 'n domotica -stelsel. En dit is: baie goedkoop werk baie goed, baie maklik om te bou en te bestuur draagbaar vanweë die maklike verbinding met wifi