Sadržaj:

Zadržavanje strpljenja Jednostavan internetski radio: KISSIR: 13 koraka
Zadržavanje strpljenja Jednostavan internetski radio: KISSIR: 13 koraka

Video: Zadržavanje strpljenja Jednostavan internetski radio: KISSIR: 13 koraka

Video: Zadržavanje strpljenja Jednostavan internetski radio: KISSIR: 13 koraka
Video: Connecting the Dots Between EDS and POTS - Presented by Dr. Satish R. Raj and Dr. Peter C. Rowe 2024, Studeni
Anonim
Držite ga stoopidnim Jednostavan internetski radio: KISSIR
Držite ga stoopidnim Jednostavan internetski radio: KISSIR
Zadržavanje strpljenja Jednostavan internetski radio: KISSIR
Zadržavanje strpljenja Jednostavan internetski radio: KISSIR

Ponekad to jednostavno mora biti taktilno. Nema sučelja bilo koje vrste. Samo gumbi.

Raspberry Pi kao internetski radijski player nije ništa novo, a postoji mnogo uputstava o tome kako stvoriti internetski radijski player pomoću maline pi sa ili bez monitora za strujanje internetskih postaja iz cijelog svijeta. Ako odlučite ostati bez glave (bez monitora), i dalje će vam trebati sredstvo za povezivanje pi playera, obično web sučelje, ako ne i izravno sredstvo komunikacije s domaćinom, poput ssh -a. Ova instrukcija bit će malo drugačija; upotrijebit ćemo jednostavne pritiske tipki za slanje naredbi pi, čime ćemo eliminirati potrebu za web sučeljem i LCD zaslonom. Zvuči dovoljno lako, zar ne (?)

Započet ćemo s vrlo osnovnim dizajnom pomoću gumba kodiranih u boji, a svaka boja predstavlja internetsku radijsku postaju. Uvest ćemo neki python kod za rukovanje pritiskom na gumb: Press će izvršiti naredbu za reprodukciju unaprijed kodirane internetske radijske postaje pomoću MPG123, izvrsnog alata za naredbeni redak za reprodukciju zvuka na našem pi.

Vaše python vještine ne moraju biti napredne. Zapravo, doslovno sam prešao s "Hello World" na pisanje ovoga, i kao što ćete vidjeti, posudio sam mnogo koda - pa ako to mogu učiniti i imati to dokumentirano, nitko drugi ne bi trebao imati problema.

Idemo!

Pribor:

Potrebni materijali

  • Raspberry pi/ pi zero w sa svim učvršćenjima: napajanjem, SD karticom i Raspbian ili Raspbian lite.
  • Wifi i pristup internetu
  • Još jedno računalo za izvođenje pregledavanja weba i mogućnost SSH -a do maline pi
  • Digitalno -analogni pretvarač (DAC) - izborno, ali bit ćete zahvalni.
  • Pojačalo
  • Zvučnici
  • Spojna žica i kratkospojnici
  • Lemilica i lemljenje
  • Perf ploča za gumbe
  • Taktilni gumbi: normalno otvoreni- jedan za svaki žanr glazbe, gumb za uključivanje i dodatni gumb za isključivanje zvuka (preporuča se 7 gumba)
  • Stambena jedinica za sve gore navedeno (izborno, ali uredno)

1. korak: Preduvjeti:

Preduvjeti
Preduvjeti

Počet ćemo pod pretpostavkom da ste već postavili svoj maline pi, DAC i pojačalo, a pretpostavit ćemo i da imate pristup internetu. Zbog količine izbora audio opreme, postavki i mogućnosti slušanja zvuka, pretpostavit ćemo da je vaše postavljanje već dovršeno: trebali biste već čuti zvuk iz zvučnika prije nego započnete ovaj projekt. Također ćemo trebati ssh na malinu pi, pa pomoću konfiguracije pi osigurajte da sučelja imaju omogućen ssh. Koristit ću Raspbian lite i preporučujem da imate novu instalaciju najnovije kopije na svježoj SD kartici namijenjenoj ovom projektu. Ako bude uspješno, izgradit ćemo samostalno učvršćenje koje se može ostaviti uključeno 24 sata dnevno kao namjenski uređaj za slušanje.

Korak 2: Instalirajte Python i Pip

Radije prelazim ssh na pi pomoću drugog računala i izvršavam sve potrebne funkcije pomoću ssh sesije, ali pretpostavljam da je moguće inicijalno postaviti pi na monitor, tipkovnicu i miš i raditi izravno na pi dok ne postane rade, a zatim se primjenjuju kao samostalni.

Prvo napravimo rutinsku provjeru održavanja našeg sustava i verzije pythona:

sudo apt-get ažuriranje

sudo apt-get nadogradnja

Provjerite je li instaliran Python. U terminalskoj sesiji upišite sljedeće u naredbeni redak:

python --verzija

Ako vidite python 2.7.13 (ili ranije), instalirajmo python 3.+:

sudo apt-get install python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip

Korak 3: Instalirajte MPG123 i Adafruit Blinka

Sada kada su postavljeni temelji, samo još nekoliko instalacija:

MPG123 je audio softver koji će reproducirati našu glazbu. Instalacija je vrlo jednostavna:

sudo apt-get install mpg123

Puno sam istraživao i našao sam sjajan predložak na web stranici Adafruit o reproduciranju zvučnih datoteka pritiskom na tipke, pa umjesto da počnemo ispočetka, nastavimo putem koji su nam već učinili ljudi na Adafruitu. Njihov program traži da instaliramo Adafruit Blinka:

$ sudo pip3 instalirajte adafruit-blinka

Prije nego idemo dalje, izvršimo brzu provjeru kako bismo bili sigurni da imamo postavljenu Alsu:

aplay --verzija

naši rezultati trebali bi glasiti: verzija 1.1.3 Jaroslava Kysele

Korak 4: Podesite glasnoću na 50% u Alsamixeru

Podesite glasnoću na 50% u Alsamixeru
Podesite glasnoću na 50% u Alsamixeru
Podesite glasnoću na 50% u Alsamixeru
Podesite glasnoću na 50% u Alsamixeru

Uzmimo sada mjere opreza i prilagodimo glasnoću na 50% kako bismo izbjegli zaglušujuća iznenađenja:

U naredbeni redak upišite alsamixer:

alsamixer

Ako gledamo zaslon crveno -bijele i zelene boje ili 100% maksimalni volumen, dobra je ideja smanjiti glasnoću na 50% kako bismo sačuvali bubne opne. Uvijek se kasnije možemo prilagoditi (gore ili dolje) ako je potrebno.

Korak 5: Neka domaća zadaća: Pronađite 5 radio stanica koje vrijedi slušati

Neke domaće zadaće: Pronađite 5 radio stanica vrijednih slušanja
Neke domaće zadaće: Pronađite 5 radio stanica vrijednih slušanja
Neke domaće zadaće: Pronađite 5 radio stanica vrijednih slušanja
Neke domaće zadaće: Pronađite 5 radio stanica vrijednih slušanja

Za svaki gumb trebat će nam jedna postaja. Zapravo, trebat će nam url za postaju. Pritiskom na gumb pozvat će se url internetske radijske postaje jednostavnim, jednim redom koda. Međutim, idemo ispred sebe pa moramo obaviti domaću zadaću; pronaći 5 radio postaja i njihove URL -ove. Pronalaženje 5 radio postaja nije teško, ali pronalaženje njihovih URL -ova može biti teško. Objasnit ću zašto za minutu.

SomaFm * izvrstan je izvor za početak, pogotovo ako još nemate pojma što želite slušati. Imaju veliki izbor eklektičnih glazbenih izbora, od kojih ništa ne smatram uvredljivim, nema reklama, a najbolji dio: Otvoreno dijele svoje URL -ove. Da biste dohvatili URL, kliknite sliku stanice koja vas zanima, a na navigacijskoj traci s lijeve strane kliknite "Izravne veze streama". Odatle pronađite odjeljak MP3 i sastružite url najveće brzine reprodukcije (tj. 128 otkucaja 64). Za sada zalijepite url u uređivač teksta ili bilježnicu.

Na primjer, za brisanje Božićnih stijena url bi bio: (ne treba nam opis poslužitelja)

ice4.somafm.com/xmasrocks-128-mp3

Postaje malo gušći izvan svijeta SomaFm -a. Mnoge postaje koriste posrednike između slušatelja i postaje, bilo da se radi o oglašavanju, marketingu ili eventualno praćenju - i općenito pokušavam izbjeći ove vrste postaja. Budući da posrednici više vole da slušate postaju preko njih, obično je prilično teško pronaći url; i tu ulazi Vtuner.

*Bio bih nemaran da vas ne zamolim da razmislite o donaciji svojoj omiljenoj radijskoj postaji jer se mnoge stanice oslanjaju samo na podršku slušatelja.

Korak 6: Izborno: ostružite URL -ove pomoću Vtunera

Izborno: ostružite URL -ove pomoću Vtunera
Izborno: ostružite URL -ove pomoću Vtunera
Izborno: ostružite URL -ove pomoću Vtunera
Izborno: ostružite URL -ove pomoću Vtunera

Sada slijedi zabavni dio …. Na Vtuner početnoj stranici provjerite njihovu ogromnu vezu s popisom stanica u gornjem desnom kutu. Odaberite žanr glazbe koji vas zanima, a zatim sortirajte najvećom brzinom, gdje ćete vidjeti popis postaja. Odaberite postaju za koju mislite da bi vam se mogla svidjeti, kliknite vezu ili gumb za reprodukciju i isprobajte glazbu. Ako nije za vas, bez brige, ponavljajte postupak dok ne pronađemo onu pogodnu za dugotrajno uživanje. Na svom snimku zaslona odabrao sam digitalnu impulsnu verziju Country glazbe, a na sljedećem ekranu primijetio sam da svira izvan Hrvatske. Country glazba iz Hrvatske zvuči prilično zanimljivo.

Sviđa mi se. Ali kako mogu dobiti URL? Jednostavno desnom tipkom miša kliknite bijeli prostor desno od slike postaje, ispod naziva postaje, a zatim odaberite "Prikaži izvor stranice" i pomaknite se dolje do otprilike reda 150. Tražimo redak koji kaže "// Pokušajte za rukovanje ledom ". Url se nalazi odmah ispod!

orion.shoutca.st:8110/stream

Prilično glatko!

Ponavljajte ovaj korak dok na popisu nemamo barem 5 postaja.

Dvostruki izborni izbor: Za dodatnu mjeru, ako možete pronaći 5 žanrova glazbe za koje vas zanima (za razliku od 5 postaja), sastavite popis radijskih postaja za svaki žanr i spremite popise kao tekstualne datoteke. Na ovo ćemo se vratiti kasnije.

Korak 7: Postavite naše gumbe

Postavite naše gumbe
Postavite naše gumbe
Postavite naše gumbe
Postavite naše gumbe

Najvažniji dio! Sa starog lemilnika uklonite prašinu ili ga barem ukopčajte i ispecite prašinu. Vrijeme je za lemljenje. Koristim 4 trenutna gumba za zatvaranje, normalno otvorena. Napravit ću niz gumba (lijeva fotografija) i pričvrstiti ih na neku perf ploču. Na fotografiji je teško reći, ali smjer gumba gumba ide prema sjeveru-jugu. Na desnoj strani možete vidjeti gdje sam vodio uzemljenje za svoje uzemljene žice i pričvrstio neke kratkospojne kabele s muškim krajevima na suprotnu stranu svakog gumba. Umjesto da ima 7 spojeva na tlo, tračnica će nam omogućiti da dijelimo jednu vezu uzemljenja s pi za sve. Krajnji rezultat je osjetljiva ploča od pločica koja će se ispod pričvrstiti na gornji dio radija pomoću nekih vijaka kroz predviđene probne rupe. Kroz utor koji sam izrezao na vrhu pojavit će se samo vrhovi gumba. Budući da mi je gornja površina samo 1/4 debela, želim paziti da ne prevrnem vijke. Ljepilo može biti od pomoći da zadržite perf ploču pričvršćenu na radio.

Korak 8: Identificirajte naše GPIO igle

Identificirajte naše GPIO igle
Identificirajte naše GPIO igle
Identificirajte naše GPIO igle
Identificirajte naše GPIO igle

U svom jedinom drugom uputstvu predstavio sam novu upotrebu starih Google AIY verzija 1 glasovnih šešira. U ovom nadaleko nepopularnom (ili usko popularnom) uputstvu spomenuo sam koliko sam zadivljen dizajnom samog šešira. Imam nekoliko mjesta okolo pa ću izgraditi prototip koristeći šešir budući da ima i dac i pojačalo.

Idemo sada identificirati šest pinova koji će ugostiti naše pritiske na gumbe. Zamolit ću vas da se usredotočite na lijevu stranu Google AIY šešira, gdje piše "servo". Postoji stupac od 6 ušica za pin gdje ću pričvrstiti i zalemiti moje muško dugme iz našeg prethodnog koraka. Bez brige, ako radite bez google aiy glasovnog šešira, vodit će vas fotografija s desne strane. U oba slučaja radit ćemo s pinovima gpio (BCM) 26, 06, 13, 05, 12 i 24 od vrha do dna (ili 0-5). GPIO #24 bit će rezerviran za izborni gumb za pauzu.

Ne zaboravite priključiti i uzemljenje.

Korak 9: Kodirajte

Sumnjam da će se kôd odavde mnogo promijeniti, međutim za najnoviju verziju python koda posjetite moj github. Priložio sam kopiju od 18.12.2019 pod nazivom pytiful3.py.

To nije najučinkovitiji kôd koji ćete ikada vidjeti, i prilično je opsežan, ali posao obavi.

Počnimo stvaranjem pješčanika za igru. Iz našeg kućnog imenika stvorite direktorij na našem maline pi pod nazivom kissir:

mkdir kissir/

i kopirajte sadržaj datoteke pytiful3.py u direktorij otvaranjem datoteke uzorka u uređivaču teksta i korištenjem

sudo nano kissir/pytiful3.py

kopirajte / zalijepite sadržaj datoteke u našu novostvorenu python skriptu. Ne zaboravite spremiti naš rad pomoću Ctrl-x, Y i unesite.

Ako želite brzi pregled skripte, uvozimo python module koji će nam biti potrebni, a zatim definiramo naše gumbe i dodjeljujemo gpio pin svakom od 7 gumba. Bit će 5 radijskih postaja (slobodno ih uredite prema svojim željama), gumb za zaustavljanje i gumb za isključivanje. Dok petlja true traje i radi sve dok se ne pritisne tipka, što će u većini slučajeva zaustaviti bilo koju postojeću reprodukciju mpg123 i početi reproducirati postaju dodijeljenu gumbu koji je pritisnut. Gumb za pauziranje/zaustavljanje zapravo nije gumb za pauzu, već više kao prekidač za isključivanje jer ne možemo pauzirati internetski radio. Internet radio nikoga ne čeka.

Korak 10: Testirajte u našem pješčaniku

Testirajte u našem pješčaniku
Testirajte u našem pješčaniku

Prije nego što aktiviramo radio, dok smo još u ssh sesiji, idite do mape kissir u kojoj je pohranjena naša skripta. Skriptu jednostavno možemo ručno pokrenuti iz naredbenog retka upisivanjem:

python3 pytiful3.py

Ako ste prvo zavirili u kôd, vjerojatno ste primijetili da sam ostavio neke ispise kako bismo mogli reći što se događa. Ako je sve dobro prošlo, imat ćemo upit s natpisom "Pritisnite gumb". To nam govori da je naša skripta pokrenuta i da je prošla preliminarnu provjeru koda. Moj prvi pokušaj imao je beskonačnu petlju "glazba je pauzirana - pritisnite gumb za nastavak", a ja sam otkrio da je moja tipka za pauzu ožičena da bude uvijek zatvorena, umjesto normalno otvorena. Nadamo se da ste imali više sreće s korakom lemljenja.

Ctrl-C će zaustaviti skriptu ako trebate prekinuti.

Dakle, ako vidite "Pritisnite gumb", što čekamo? Odaberite bilo koji od naših pet gumba za radiopostaju.

Velike su šanse da ćete vjerojatno čuti zvuk zvučnika koji će pokrenuti reprodukciju glazbe, a ja u tome trenutno ne mogu pomoći. Mpg123 dopušta sufiks "--preload 1" nakon adrese postaje u naredbi os.system, međutim nisam mogao reći je li to promijenilo. Trebao bi omogućiti blagi međuspremnik.

Još jedan dio koda za koji ste se možda pitali: postoji zastavica "-f 7000" nakon poziva mpg123. Time se smanjuje glasnoća na daleko najveću udaljenost. Puni volumen bio bi 32K. Koliko sam shvatio, ljestvica glasnoće nije linearna, pa ne mogu reći da je to samo jedna petina maksimalne glasnoće, ali je ipak dosta glasna. Morao sam to učiniti jer se moja zvučna kartica - Google AIY glasovna zvučna kartica, ponekad ne svira lijepo s Alsamixerom.

Nastavite birati gumbe po svom izboru, sjednite, opustite se i za sada uživajte u udobnosti slušanja.

Korak 11: Postavite naš kôd da se automatski pokreće pri pokretanju

Dakle, ako sve radi dobro i uživali ste u našem pothvatu naredbenog retka u pješčaniku, sada je pravo vrijeme za automatiziranje učitavanja skripte. Provjerite jeste li još uvijek u direktoriju kissir i postavite skriptni kod u korisničku korpu:

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

Neka bude izvršno:

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

Napišite shell skriptu da biste je pokrenuli pri pokretanju:

sudo nano pytiful3.sh

I umetnite sljedeći tekst:

#! /bin/sh ### BEGIN INIT INFO # Pruža: pytiful3.py # Obavezno-Pokreni: $ remote_fs $ syslog # Obavezno-Zaustavi: $ remote_fs $ syslog # Zadano-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # pobrinite se da razina glasnoće nije glasna TODO # Izvršite određene funkcije kada to zatraži slučaj sustava "$ 1" u početku) odjek "Pokretanje pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) echo "Zaustavljanje pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Upotreba: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac izlaz 0

Premjestite ga na init.d:

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

Neka bude izvršno:

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

Registrirajte skriptu za pokretanje pri pokretanju:

zadane postavke sudo update-rc.d pytiful3.sh

Korak 12: Ponovno testirajte

Sada kada smo učitali skriptu za pokretanje pri pokretanju, sjetite se samo da se sve promjene koje napravimo moraju prenijeti u korisničku kantu, a naša prekrasna skripta kissir/pytiful3.py sada je samo siroče. Ali sa svjetlije strane, još uvijek imamo pješčanik za igru. Vjerojatno ću se nastaviti igrati sa scenarijem, unositi izmjene i spremiti ga kao novu verziju u bliskoj budućnosti. To je još uvijek radni projekt.

Napravimo ponovno podizanje sustava, pričekamo da se pi ponovno pokrene i nakon otprilike minute ponovno pritisnemo gumb.

Ako je vaša jakost zvuka vrlo niska, imajte na umu da imamo jačinu zvuka alsamixera na 50%, pa je možemo prema tome povećati iz naredbenog retka.

Za početak, jedna stvar koja je potrebna je globalna vrijednost glasnoće, umjesto da morate mijenjati razinu glasnoće 5 različitih puta.

Hej, što je s onim popisom radio postaja koji smo napravili u koraku 6? Pa, pokazalo se da MPG123 ima naredbu za slučajni odabir. Jednostavno je poput sastavljanja popisa url postaja i umjesto pozivanja na jedan url radijske postaje, jednostavno upotrijebite

"btn1234_choice = random.choice (btn1234)", odmah nakon identifikacije našeg popisa stanica, gdje je btn1234_choice naš popis. Ne zaboravite koristiti uglate zagrade oko našeg popisa stanica odvojenih zarezima. Poziv naredbe podprocesa tada reproducira naš slučajni izbor:

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

Korak 13: Opremite ga i gotovi smo

Opremite ga i gotovi smo
Opremite ga i gotovi smo
Opremite ga i gotovi smo
Opremite ga i gotovi smo
Opremite ga i gotovi smo
Opremite ga i gotovi smo

Ako ste prešli na ovaj korak, posao je dovršen! Čestitamo - upravo ste izgradili samostalni internetski radio player.

Ovisno o opremi koju imate (zvučnici, mikrofon i pojačalo), možda se pitate kako sakriti neke žice koje se polažu. Možda još jedno uputstvo za neki drugi dan, ali ako namjeravate napraviti stambenu jedinicu u koju ćete uvući neke žice, preporučujem da si ostavite dovoljno dodatnog prostora.

Kao što možete vidjeti na gornjim fotografijama - zapravo sam napravio dva poljupca, od kojih je jedan koristio ostatke zalijepljene nesreće u svom prvom pokušaju (iz iskrivljenog humora dolaze iskrivljene ploče). Druga jedinica koristi pobuđivače zvuka, a ne konvencionalne zvučnike, a ako ste na jednom od mojih snimaka zaslona pokupili naziv uređaja, nazvao sam ga slimbox.

Smatrao sam da je ovaj projekt prilično zabavan. Oba puta. Zasigurno nije težak projekt, možda malo dugotrajan, ali vrlo isplativ. Nadam se da ćete uživati i u slušanju.

Preporučeni: