Sisällysluettelo:
- Vaihe 1: Edellytykset:
- Vaihe 2: Asenna Python ja Pip
- Vaihe 3: Asenna MPG123 ja Adafruit Blinka
- Vaihe 4: Säädä äänenvoimakkuus 50%: iin Alsamixerissa
- Vaihe 5: Jotkut kotitehtävät: Etsi viisi radiokanavaa, jotka kannattaa kuunnella
- Vaihe 6: Valinnainen: Raaputa URL -osoitteet Vtunerin avulla
- Vaihe 7: Määritä painikkeet
- Vaihe 8: Tunnista GPIO -nastamme
- Vaihe 9: Koodi
- Vaihe 10: Testaa hiekkalaatikkossamme
- Vaihe 11: Aseta koodimme toimimaan automaattisesti käynnistyksen yhteydessä
- Vaihe 12: Testaa uudelleen
- Vaihe 13: Laatikko ylös ja olemme valmiit
Video: Yksinkertaisen Internet -radion säilyttäminen: KISSIR: 13 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Joskus sen on oltava vain kosketeltavaa. Ei minkäänlaista käyttöliittymää. Vain napit.
Raspberry Pi Internet -radio -soittimena ei ole mitään uutta, ja on olemassa paljon ohjeita Internet -radio -soittimen luomiseksi käyttämällä vadelmapiä monitorin kanssa tai ilman, jotta voit suoratoistaa Internet -asemia ympäri maailmaa. Jos päätät mennä ilman päätä (ilman näyttöä), tarvitset silti keinon liittää pi -soittimen, yleensä web -käyttöliittymän, ellei suoraa keinoa viestiä isännälle, kuten ssh. Tämä ohje on hieman erilainen; käytämme yksinkertaisia painalluksia komentojen lähettämiseen pi: lle, jolloin web -käyttöliittymän ja LCD -näytön tarve poistuu. Kuulostaa riittävän helpolta, eikö (?)
Aloitamme hyvin yksinkertaisella suunnittelulla käyttäen värikoodattuja painikkeita, jokainen väri edustaa Internet -radioasemaa. Esittelemme joitakin python-koodeja painikkeiden painalluksen käsittelemiseksi: Lehdistö suorittaa komennon toistaa ennalta koodatun Internet-radioaseman käyttämällä MPG123: a, joka on loistava komentorivityökalu äänen toistamiseen pi-laitteessamme.
Python -taitojasi ei tarvitse kehittää. Itse asiassa menin kirjaimellisesti "Hello World" -kirjoituksesta kirjoittamaan tätä, ja kuten huomaat, lainasin paljon koodia - joten jos voin tehdä sen ja saada sen jonkin verran dokumentoitua, kenelläkään muulla ei pitäisi olla ongelmia.
Mennään!
Tarvikkeet:
Tarvittavat materiaalit
- Vadelma pi/ pi nolla w kaikilla kiinnityksillä: virtalähde, SD -kortti ja Raspbian tai Raspbian lite.
- Wifi ja internetyhteys
- Toinen tietokone, joka suorittaa jonkin verran verkkoselausta ja kykyä SSH: lle vadelmapi: lle
- Digital to Analog Converter (DAC) - valinnainen, mutta olet kiitollinen.
- Vahvistin
- Kaiuttimet
- Liitäntäjohto ja puserot
- Juotin ja juote
- Perf Board painikkeille
- Kosketuspainikkeet: Normaalisti avoin- yksi jokaiselle musiikkilajille, virtapainike ja valinnainen mykistyspainike (suositeltu 7 painiketta)
- Asuntoyksikkö kaikille edellä mainituille (valinnainen, mutta siisti)
Vaihe 1: Edellytykset:
Aloitamme olettaen, että olet jo asentanut vadelmapi, DAC: n ja vahvistimen, ja oletamme myös, että sinulla on Internet -yhteys. Äänilaitevalintojen, asetusten ja äänen kuunteluvaihtoehtojen määrän vuoksi oletamme, että asennus on jo valmis: kaiuttimista pitäisi kuulua ääntä jo ennen tämän projektin aloittamista. Meidän on myös siirryttävä vadelmaan pi, joten käytä pi -kokoonpanoa varmistaaksesi, että käyttöliittymissä on ssh käytössä. Käytän Raspbian lite -ohjelmaa ja suosittelen, että asennat uusimman kopion tuoretta tätä projektia varten omistetulle sd -kortille. Jos onnistumme, rakennamme erillisen valaisimen, joka voidaan jättää päälle 24/7 erilliseksi kuuntelulaitteeksi.
Vaihe 2: Asenna Python ja Pip
Haluan mieluummin ssh: n pi: lle eri tietokoneella ja suorittaa kaikki vaaditut toiminnot ssh -istunnon avulla, mutta luulen, että on mahdollista aluksi asentaa pi näyttöön, näppäimistöön ja hiireen ja työskennellä suoraan pi: llä, kunnes se on toimii ja ottaa sen sitten käyttöön itsenäisenä.
Tehdään ensin järjestelmämme ja python -version rutiininomainen huoltotarkistus:
sudo apt-get päivitys
sudo apt-get päivitys
Varmista, että Python on asennettu. Kirjoita pääteistunnossa komentokehotteeseen seuraava:
python -versio
Jos näet python 2.7.13 (tai aiemmin), asennetaan python 3.+:
sudo apt-get install python3
sudo apt-get install python-pip
sudo apt-get install python3-pip
sudo pip3 install -päivitä pip
Vaihe 3: Asenna MPG123 ja Adafruit Blinka
Nyt kun perusta on laskettu, vain muutama asennus:
MPG123 on ääniohjelmisto, joka toistaa musiikkiamme. Asennus on todella yksinkertaista:
sudo apt-get install mpg123
Tein paljon tutkimusta ja löysin Adafruitin verkkosivustolta loistavan mallin äänitiedostojen toistamisesta painikkeen painalluksilla, joten sen sijaan että aloittaisimme tyhjästä, jatkamme polkua, jonka Adafruitin ihmiset ovat jo loistaneet meille. Heidän ohjelmansa pyytää meitä asentamaan Adafruit Blinka:
$ sudo pip3 asenna adafruit-blinka
Ennen kuin menemme pidemmälle, tarkistamme nopeasti, että meillä on Alsa -asetukset:
aplay --versio
tulostemme pitäisi olla: versio 1.1.3, kirjoittanut Jaroslav Kysela
Vaihe 4: Säädä äänenvoimakkuus 50%: iin Alsamixerissa
Otetaan nyt varotoimenpide ja säädetään äänenvoimakkuus 50%: iin, jotta vältytään kuuroilta yllätyksiltä:
Kirjoita komentokehotteeseen alsamixer:
alsamixer
Jos katsomme punaisen valkoisen ja vihreän näytön tai 100%: n enimmäistilavuutta, on hyvä alentaa äänenvoimakkuus 50%: iin, jotta voimme säästää tärykalvoja. Voimme aina säätää myöhemmin (ylös tai alas) tarvittaessa.
Vaihe 5: Jotkut kotitehtävät: Etsi viisi radiokanavaa, jotka kannattaa kuunnella
Tarvitsemme yhden aseman kutakin painiketta varten. Itse asiassa tarvitsemme aseman URL -osoitteen. Painikkeen painallus kutsuu Internet -radioaseman URL -osoitteen yksinkertaisella yhden rivin koodibitillä. Olemme kuitenkin edellä itseämme, joten meillä on muutama kotitehtävä; löytää viisi radioasemaa ja niiden URL -osoitteet. Viiden radioaseman löytäminen ei ole vaikeaa, mutta niiden URL -osoitteiden löytäminen voi olla hankalaa. Selitän miksi minuutin kuluttua.
SomaFm * on hyvä lähde aloittaa, varsinkin jos sinulla ei ole vielä aavistustakaan siitä, mitä haluat kuunnella. Heillä on laaja valikoima eklektisiä musiikkivalintoja, joista mikään ei ole loukkaavaa, ei mainoksia ja mikä parasta: he jakavat avoimesti URL -osoitteensa. Napsauta URL -osoitetta napsauttamalla kiinnostavan aseman kuvaa ja napsauttamalla vasemmanpuoleista navigointipalkkia "Suorat stream -linkit". Etsi sieltä MP3 -osio ja kaavi suurimman toistotaajuuden url (eli 128 lyöntiä 64). Liitä URL -osoite tekstieditoriin tai muistilehtiöön toistaiseksi.
Joulukivien raapimiseen URL -osoite olisi esimerkiksi seuraava: (emme tarvitse palvelinkuvausta)
ice4.somafm.com/xmasrocks-128-mp3
Se muuttuu hieman maukkaammaksi SomaFmin maailman ulkopuolella. Monet asemat käyttävät välittäjää kuuntelijan ja aseman välillä, olipa kyse mainonnasta, markkinoinnista tai mahdollisesti seurannasta - ja yritän yleensä välttää tällaisia asemia. Koska välittäjät mieluummin kuuntelevat asemaa heidän kauttaan, yleensä on melko vaikea löytää URL -osoitetta; ja sieltä Vtuner tulee.
*Olisin epätoivoinen, jos en pyytäisi sinua harkitsemaan lahjoitusta suosikkiradioasemallesi, koska monet kanavat luottavat yksinomaan kuuntelijan tukeen.
Vaihe 6: Valinnainen: Raaputa URL -osoitteet Vtunerin avulla
Nyt tulee hauska osa…. Vtunerin kotisivulla on heidän valtava asemaluettelolinkki oikeassa yläkulmassa. Valitse musiikkilaji, josta olet kiinnostunut, ja lajittele sitten nopeimmalla nopeudella, jossa näet luettelon asemista. Valitse asema, josta pidät, napsauta linkkiä tai toistopainiketta ja näytä musiikkia. Jos se ei ole sinua varten, älä huoli, toista prosessi, kunnes löydämme sopivan pitkän aikavälin nautintoon. Valitsin kuvakaappauksessani Country -musiikin digitaalisen impulssiversion ja seuraavalla näytöllä huomasin sen soivan Kroatiasta. Kroatian kantrimusiikki kuulostaa varsin mielenkiintoiselta.
Pidän siitä. Mutta miten saan URL -osoitteen? Napsauta vain hiiren kakkospainikkeella aseman kuvan alapuolella olevaa tyhjää tilaa aseman nimen alla, valitse "Näytä sivun lähde" ja vieritä alaspäin noin riville 150. Etsimme riviä, joka sanoo "// Kokeile käsittelemään jäätä ". Ja URL -osoite löytyy heti alta!
orion.shoutca.st:8110/stream
Aika liukas!
Toista tämä vaihe, kunnes luettelossamme on vähintään 5 asemaa.
Kaksinkertainen valinnainen: Jos löydät ylimääräistä mittausta, jos löydät 5 kiinnostavaa musiikkilajia (toisin kuin viisi asemaa), luo luettelo radioasemista kullekin lajityypille ja tallenna luettelot tekstitiedostoina. Palataan tähän myöhemmin.
Vaihe 7: Määritä painikkeet
Tärkein osa! Pöly pois vanhalta juotosraudalta tai ainakin liitä se ja paista pöly pois. On aika juottaa. Käytän 4 -piikkisiä hetkellisiä painikkeita, jotka ovat normaalisti auki. Rakennan joukon painikkeita (vasen kuva) ja kiinnitän ne johonkin perf -levyyn. Valokuvasta on vaikea sanoa, mutta painikkeiden suunta kulkee pohjoisesta etelään. Oikealta puolelta näet, missä juoksin maadoituskiskoa maadoitusjohtoja varten ja kiinnitin joitakin urospäätteisiä hyppyjohtoja jokaisen painikkeen vastakkaiselle puolelle. Sen sijaan, että meillä olisi 7 maaliitäntää, kiskon avulla voimme jakaa yhden maaliitännän pi: lle kaikille. Lopputuloksena on herkkä kiekkolevy, joka asennetaan radion yläosaan käyttämällä ruuveja mukana toimitettujen ohjausreikien läpi. Vain napin yläosat tulevat näkyviin yläosasta leikatun uran läpi. Koska yläpintani on vain 1/4 paksu, haluan olla varovainen, ettet ruuvaa liikaa. Liima voi olla hyödyllistä, kun haluat pitää perf -levyn kiinni radiossa.
Vaihe 8: Tunnista GPIO -nastamme
Ainoassa muussa ohjeessani esittelin uuden käyttötarkoituksen vanhoille Google AIY -version 1 puhehattuille. Tässä laajalti epäsuositussa (tai suppeasti suositussa) ohjeessa mainitsin, kuinka vaikuttunut olin itse hatun suunnittelusta. Minulla on muutamia asennuksia, joten aion rakentaa prototyypin hattua käyttäen, koska siinä on sekä dac että vahvistin.
Tunnistetaan nyt kuusi nastaa, jotka isännöivät painikkeitamme. Pyydän teitä keskittymään Googlen AIY -hatun vasempaan reunaan, jossa lukee "servot". Tapissa on 6 silmukan sarake, johon kiinnitän ja juotan urospainikkeeni edellisestä vaiheestamme. Jos työskentelet ilman google aiy äänihattua, älä huoli - oikealla oleva kuva opastaa sinua. Kummassakin tapauksessa työskentelemme gpio (BCM) -tapeilla 26, 06, 13, 05, 12 ja 24 ylhäältä alas (tai 0-5). GPIO #24 on varattu valinnaiselle taukopainikkeelle.
Muista liittää myös maadoitusliitäntä.
Vaihe 9: Koodi
Epäilen, että koodi muuttuu paljon tästä, mutta uusimman python -koodin version saat käymällä githubissani. Olen liittänyt 18.12.2019 kopion nimeltä pytiful3.py.
Se ei ole tehokkain koodi, jonka koskaan näet, ja se on melko monimutkainen, mutta se saa työn tehtyä.
Aloitetaan luomalla hiekkalaatikko pelattavaksi. Luo kotihakemistostamme vadelmapi -hakemisto kissir:
mkdir kissir/
ja kopioi pytiful3.py -tiedoston sisältö hakemistoon avaamalla mallitiedosto tekstieditorissa ja käyttämällä
sudo nano kissir/pytiful3.py
kopioi / liitä tiedoston sisältö juuri luotuun python -skriptiimme. Muista tallentaa työmme painamalla Ctrl-x, Y ja enter.
Jos haluat nopean esittelyn komentosarjasta, tuomme tarvitsemamme python -moduulit ja määritämme sitten painikkeet ja määritämme gpio -nastan kullekin 7 painikkeelle. Mukana on 5 radioasemaa (muokkaa vapaasti asemaasi), pysäytyspainike ja sammutuspainike. Todellinen silmukka kulkee ja kulkee, kunnes painiketta painetaan, mikä useimmissa tapauksissa pysäyttää olemassa olevan mpg123 -toiston ja alkaa toistaa painikkeelle määritettyä asemaa. Tauko/pysäytys -painike ei todellakaan ole taukopainike, vaan enemmän tappokytkin, koska emme voi keskeyttää Internet -radiota. Internet -radio ei odota ketään.
Vaihe 10: Testaa hiekkalaatikkossamme
Ennen kuin otamme radion käyttöön ssh -istunnon aikana, siirry kissir -kansioon, johon käsikirjoituksemme on tallennettu. Voimme yksinkertaisesti suorittaa komentosarjan komentoriviltä manuaalisesti kirjoittamalla:
python3 pytiful3.py
Jos vilkaisit koodia ensin, huomasit luultavasti jättäneeni joitakin painettuja lausuntoja, jotta voimme kertoa, mitä tapahtuu. Jos kaikki toimi hyvin, saat kehotteen "Paina painiketta". Tämä kertoo meille, että skriptimme on käynnissä ja se läpäisi alustavan kooditarkastuksen. Ensimmäisessä yrityksessäni oli ääretön silmukka "musiikki keskeytetty - paina painiketta jatkaaksesi", ja huomasin, että tauko -painikkeeni oli kytketty aina kiinni normaalisti auki. Toivottavasti sinulla oli parempi tuuri juotosvaiheessa.
Ctrl-C pysäyttää komentosarjan, jos haluat keskeyttää.
Joten jos näet "Paina painiketta", mitä odotamme? Valitse jokin viidestä radioasemamme painikkeesta.
On todennäköistä, että kuulet todennäköisesti kaiuttimen ponnahduksen musiikin toiston aloittamiseksi, enkä voi auttaa sitä tällä hetkellä. Mpg123 sallii "-preload 1" -pääteaseman os-järjestelmän jälkeen os.system-komennossa, mutta en voinut sanoa, onko sillä väliä. Sen pitäisi sallia pieni puskuri.
Toinen koodi, jota olet ehkä ihmetellyt: mpg123 -puhelun jälkeen on "-f 7000" -lippu. Tämä pienentää äänenvoimakkuuden kaukana enimmäisäänenvoimakkuudesta. Koko äänenvoimakkuus olisi 32K. Kuten ymmärrän, äänenvoimakkuusasteikko ei ole lineaarinen asteikko, joten en voi sanoa, että se on vain viidennes enimmäisäänenvoimakkuudesta, mutta silti erittäin kova. Minun piti tehdä tämä, koska äänikorttini - Google AIY -äänikortti - ei toistu joskus hyvin Alsamixerin kanssa.
Jatka valitsemiesi painikkeiden valitsemista, istu alas, rentoudu ja nauti kuuntelun mukavuudesta toistaiseksi.
Vaihe 11: Aseta koodimme toimimaan automaattisesti käynnistyksen yhteydessä
Joten jos kaikki toimii hyvin ja olet nauttinut hiekkalaatikon komentokehotteesta, nyt on hyvä aika automatisoida komentosarjan lataus. Varmista, että olet edelleen kissir -hakemistossa, ja kirjoita komentosarjan koodi käyttäjälaatikkoon:
sudo cp pytiful3.py/usr/local/bin/
Tee siitä suoritettava:
sudo chmod +x /usr/local/bin/pytiful3.py
Kirjoita komentosarja, joka suorittaa sen käynnistyksen yhteydessä:
sudo nano pytiful3.sh
Ja lisää seuraava teksti:
#! /bin/sh ### BEGIN INIT INFO # Tarjoaa: 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 # varmista, että äänenvoimakkuus ei ole kova TODO # Suorita tiettyjä toimintoja, kun järjestelmätapaus "$ 1" pyytää sitä aluksi) echo "Starting pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) echo "Stoping pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Käyttö: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac exit 0
Siirrä se init.d:
sudo mv pytiful3.sh /etc/init.d/
Tee siitä suoritettava:
sudo chmod +x /etc/init.d/pytiful3.sh
Rekisteröi komentosarja käynnistettäväksi:
sudo update-rc.d pytiful3.sh oletusarvot
Vaihe 12: Testaa uudelleen
Nyt kun skriptimme on ladattu käynnistettäväksi, muista vain, että tekemämme muutokset on saatettava käyttäjälaatikkoon, ja kaunis kissir/pytiful3.py -skriptimme on nyt vain orpo. Mutta valoisalta puolelta meillä on vielä hiekkalaatikko pelattavana. Luultavasti jatkan leikkimistä käsikirjoituksella, teen muutoksia ja tallennan sen uutena versiona lähitulevaisuudessa. Se on edelleen toimiva projekti.
Tehdään uudelleenkäynnistys, odota pi: n uudelleenkäynnistystä ja paina noin minuutin kuluttua painiketta uudelleen.
Jos äänenvoimakkuus on hyvin alhainen, muista, että alsamixer -äänenvoimakkuus on 50%, joten voimme nostaa sitä vastaavasti komentokehotteesta.
Ensinnäkin yksi asia, joka tarvitaan, on maailmanlaajuinen äänenvoimakkuus, sen sijaan, että joutuisi muuttamaan äänenvoimakkuutta 5 kertaa.
Hei, entä luettelo radioasemista, jotka teimme vaiheessa 6? No, käy ilmi, että MPG123: lla on satunnainen valintakomento. Se on yhtä yksinkertaista kuin luoda luettelo asemien URL -osoitteista, ja käytä sen sijaan, että pyydät yhden radioaseman URL -osoitetta
"btn1234_choice = random.choice (btn1234)", heti asemaluettelomme tunnistamisen jälkeen, missä btn1234_choice on luettelomme. Älä unohda käyttää hakasulkeita pilkuilla erotettujen asemaluettelojemme ympärillä. Aliprosessikomento soittaa sitten satunnaisen valintamme:
aliprosessi.call (['mpg123', '-q', btn1234_choice, "-preload 1"])
Vaihe 13: Laatikko ylös ja olemme valmiit
Jos olet päässyt tähän vaiheeseen, työ on valmis! Onnittelut - olet juuri rakentanut itsenäisen internetradiotoistimen.
Riippuen laitteistosta (kaiuttimet, dac ja vahvistin), saatat ihmetellä, kuinka piilottaa joitakin johtoja. Ehkä toinen opettavainen toiselle päivälle, mutta jos aiot tehdä asuntoyksikön joidenkin johtojen kiinnittämiseksi, suosittelen antamaan itsellesi runsaasti ylimääräistä tilaa.
Kuten yllä olevista kuvista näet - tein itse asiassa kaksi kissiriiriä, joista toinen käytti ensimmäisellä yritykselläni liiman aiheuttaman onnettomuuden jäänteitä (vääntyneestä huumorista tulee vääntyneet levyt). Toinen yksikkö käyttää äänivirittimiä perinteisten kaiuttimien sijasta, ja jos valitsit laitteen nimen yhdestä kuvakaappauksestani, annoin sille nimen slimbox.
Minusta tämä projekti oli varsin hauska. Molemmat kertaa. Ei varmasti vaikea projekti, ehkä vähän aikaa vievä, mutta erittäin palkitseva projekti. Toivottavasti nautit myös kuuntelustasi.
Suositeltava:
Yksinkertaisen Nintendo LABO -tavoiteharjoituksen tekeminen: 13 vaihetta
Yksinkertaisen Nintendo LABO -tavoiteharjoituksen tekeminen: Sisareni ja minä ostimme äskettäin Nintendo Switchin. Joten tietysti meillä on joitain pelejä sen kanssa. Ja yksi niistä oli Nintendo LABO Variety Kit. Lopulta törmäsin Toy-Con Garageen. Kokeilin joitain asioita, ja silloin
Yksinkertaisen robotin tekeminen kotoa löytyvistä asioista (hotwheel -versio): 5 vaihetta
Yksinkertaisen robotin tekeminen kotoa löytyvistä asioista (hotwheel-versio): Tämä opaskirja näyttää sinulle, miten voit tehdä itsestään toimivan hotwheelin, joka toimii kaksois-A-paristoilla. Sinun tarvitsee käyttää vain tavaroita, joita todennäköisesti löydät kotoasi. Huomaa, että tämä robotti ei todennäköisesti mene aivan suoraan
Yksinkertaisen laskimen tekeminen Javassa: 10 vaihetta
Yksinkertaisen laskimen tekeminen Javalla: Tämä on yksinkertainen johdanto Java -ohjelmointikielelle, joka on tarkoitettu ihmisille, joilla on vähän tai ei lainkaan ohjelmointitaitoja. eclipse.org/downloads
Yksinkertaisen sääaseman tekeminen: 8 vaihetta
Yksinkertaisen sääaseman tekeminen: Hei kaverit, tässä videossa näytän teille, kuinka tehdä yksinkertainen sääasema mittaamaan lämpötila ja kosteus DHT11 -anturin avulla
Päivitä Apple MacBookisi: Tietojen varmuuskopiointi ja säilyttäminen: 9 vaihetta (kuvilla)
Päivitä Apple MacBookisi: Tietojen varmuuskopiointi ja säilyttäminen: Mac -kiintolevyni tuli todella lihava ja täynnä, se oli inhottavaa. Tämä ongelma ilmenee monille ihmisille, jotka ovat ostaneet alkuperäiset MacBookit. He tuntevat pienen kiintolevyn selvästi tiukan puristuksen. Ostin MacBookin ~ 2 vuotta sitten ja se