Sadržaj:

Zaustavljanje Jednostavan internetski radio: KISSIR: 13 koraka
Zaustavljanje Jednostavan internetski radio: KISSIR: 13 koraka

Video: Zaustavljanje Jednostavan internetski radio: KISSIR: 13 koraka

Video: Zaustavljanje Jednostavan internetski radio: KISSIR: 13 koraka
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Septembar
Anonim
Zaustavljanje Jednostavan internetski radio: KISSIR
Zaustavljanje Jednostavan internetski radio: KISSIR
Zaustavljanje Jednostavan internetski radio: KISSIR
Zaustavljanje Jednostavan internetski radio: KISSIR

Ponekad to jednostavno mora biti taktilno. Nema interfejsa bilo koje vrste. Just Buttons.

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 prijenos internetskih stanica iz cijelog svijeta. Ako odlučite ostati bez glave (bez monitora), i dalje bi vam trebalo sredstvo za povezivanje pi playera, obično web sučelje, ako ne i izravno sredstvo komunikacije s hostom, poput ssh -a. Ovo uputstvo će biti malo drugačije; upotrijebit ćemo jednostavne pritiske tipki za slanje naredbi pi, čime ćemo eliminirati potrebu za web sučeljem i LCD ekranom. Zvuči dovoljno lako, zar ne (?)

Počet ćemo s vrlo osnovnim dizajnom koji koristi dugmad označena bojama, a svaka boja će predstavljati internetsku radio stanicu. Uvest ćemo neki python kod za rukovanje pritiskom na tipku: Press će izvršiti naredbu za reprodukciju unaprijed kodirane internetske radio postaje pomoću MPG123, odličnog alata za naredbu za reprodukciju zvuka na našem pi.

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

Idemo!

Potrošni materijal:

Potrebni materijali

  • Raspberry pi/ pi nula w sa svim popravcima: 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) - opcionalno, ali bit ćete zahvalni.
  • Pojačalo
  • Zvučnici
  • Spojna žica i kratkospojnici
  • Lemilica i lemljenje
  • Perf tabla za dugmad
  • Taktilni tasteri: Normalno otvoreni- jedno za svaki žanr muzike, dugme za uključivanje i opciono dugme za isključivanje zvuka (preporučuje se 7 dugmadi)
  • Stambena jedinica za sve gore navedeno (opcionalno, ali uredno)

Korak 1: Preduslovi:

Preduslovi
Preduslovi

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ć završeno: trebali biste već čuti zvuk iz zvučnika prije nego započnete ovaj projekt. Također ćemo morati preći 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

Više volim ssh na pi koristeći drugi računar i obavljati sve potrebne funkcije koristeći ssh sesiju, ali pretpostavljam da je moguće inicijalno postaviti pi na monitor, tastaturu i miš i raditi direktno na pi dok ne postane rade, a zatim ih implementiraju kao samostalne.

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

sudo apt-get update

sudo apt-get nadogradnja

Uverite se da je Python instaliran. 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 muziku. Instalacija je zaista jednostavna:

sudo apt-get install mpg123

Puno sam istraživao i našao sam odličan predložak na web stranici Adafruit o reproduciranju zvučnih datoteka pritiskom na tipke, pa umjesto da počnemo od nule, 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 nastavimo, izvršimo brzu provjeru kako bismo bili sigurni da imamo postavljenu Alsu:

aplay --version

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

Korak 4: Podesite jačinu zvuka na 50% u Alsamixeru

Podesite jačinu zvuka na 50% u Alsamixeru
Podesite jačinu zvuka na 50% u Alsamixeru
Podesite jačinu zvuka na 50% u Alsamixeru
Podesite jačinu zvuka na 50% u Alsamixeru

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

U naredbeni redak upišite alsamixer:

alsamixer

Ako gledamo crveno bijeli i zeleni ekran ili 100% maksimalnu jačinu zvuka, bilo bi dobro 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: Nekoliko domaćih zadataka: 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
Neke domaće zadaće: Pronađite 5 radio stanica vrijednih slušanja

Trebat će nam jedna stanica za svako dugme. Zapravo, trebat će nam url za stanicu. Pritiskom na taster pozvaćete url internet radio stanice jednostavnim, jednim redom koda. Međutim, idemo ispred sebe pa moramo obaviti neke domaće zadaće; pronaći 5 radio stanica i njihove urlove. Pronalaženje 5 radio stanica nije teško, ali pronalaženje njihovih urlova može biti teško. Objasniću zašto za minut.

SomaFm * je sjajan izvor za početak, pogotovo ako još nemate pojma o tome što želite slušati. Imaju veliki izbor eklektičnih muzičkih izbora, od kojih ništa ne smatram uvredljivim, nema reklama, a najbolji dio: Otvoreno dijele svoje urlove. Da biste preuzeli url, kliknite na sliku stanice koja vas zanima, a na navigacijskoj traci s lijeve strane kliknite "Linkovi direktnog prijenosa". 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 struganje Christmas Rocks, url bi bio: (ne treba nam opis servera)

ice4.somafm.com/xmasrocks-128-mp3

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

*Bio bih nemaran da ne tražim od vas da razmislite o donaciji vašoj omiljenoj radio stanici, jer se mnoge stanice oslanjaju samo na podršku slušalaca.

Korak 6: Izborno: Ogrebite URL -ove pomoću Vtunera

Izborno: Ogrebite URL -ove pomoću Vtunera
Izborno: Ogrebite URL -ove pomoću Vtunera
Izborno: Ogrebite URL -ove pomoću Vtunera
Izborno: Ogrebite 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 muzike koji vas zanima, a zatim sortirajte najvećom brzinom, gdje ćete vidjeti popis stanica. Odaberite stanicu za koju mislite da bi vam se mogla svidjeti, kliknite na vezu ili dugme za reprodukciju i uzorkujte muziku. Ako nije za vas, bez brige, ponavljajte postupak dok ne pronađemo onu pogodnu za dugotrajno uživanje. Na svom snimku ekrana odabrao sam digitalnu impulsnu verziju Country muzike, a na sljedećem ekranu primijetio sam da se svira izvan Hrvatske. Country glazba iz Hrvatske zvuči prilično zanimljivo.

Sviđa mi se. Ali kako da dobijem url? Jednostavno kliknite desnim tasterom miša na bijeli prostor desno od slike stanice, ispod naziva stanice, odaberite "Prikaži izvor stranice" i pomaknite se dolje do otprilike reda 150. Tražimo liniju koja 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 listi nemamo najmanje 5 stanica.

Dvostruki izborni izbor: Za dodatnu mjeru, ako možete pronaći 5 žanrova muzike koji vas zanimaju (za razliku od 5 stanica), sastavite listu radio stanica za svaki žanr i spremite liste kao tekstualne datoteke. Na ovo ćemo se vratiti kasnije.

Korak 7: Postavite naše tipke

Postavite naše tipke
Postavite naše tipke
Postavite naše tipke
Postavite naše tipke

Najvažniji deo! Odstranite prašinu sa starog lemilice ili ga barem ukopčajte i ispecite prašinu. Vrijeme je za Solder. Koristim 4 trenutna dugmeta, normalno otvorena. Napravit ću niz dugmadi (lijeva fotografija) i pričvrstiti ih na neku perf tablu. Teško je reći na fotografiji, ali smjer dugmadi prema dugmetu ide sjever-jug. Na desnoj strani možete vidjeti gdje sam vodio uzemljenu šinu za svoje uzemljene žice i pričvrstio neke kratkospojne kabele sa muškim krajevima na suprotnu stranu svakog gumba. Umjesto da ima 7 spojeva na tlo, šina ć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 montirati na vrh radija pomoću nekih vijaka kroz predviđene rupe za upravljanje. Kroz utor koji sam izrezao na vrhu pojavit će se samo vrhovi dugmadi. Budući da je moja 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 za 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 bio impresioniran dizajnom samog šešira. Imam nekoliko posla oko sebe, 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 tipke. 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, vodiće vas fotografija s desne strane. U oba slučaja radit ćemo sa gpio (BCM) pinovima 26, 06, 13, 05, 12 i 24 odozgo prema dolje (ili 0-5). GPIO #24 bit će rezerviran za izborno dugme 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 najefikasniji kôd koji ćete ikada vidjeti, i prilično je opširan, ali završava posao.

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

mkdir kissir/

i kopirajte sadržaj datoteke pytiful3.py u direktorij otvaranjem uzorka datoteke 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 sačuvati 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 tipke i dodjeljujemo gpio pin svakom od 7 gumba. Bit će 5 radio stanica (slobodno ih uredite po želji), dugme za zaustavljanje i dugme za isključivanje. Dok petlja true traje i radi sve dok se ne pritisne dugme, što će u većini slučajeva zaustaviti bilo koju postojeću reprodukciju mpg123 i započeti reprodukciju stanice dodeljene dugmetu koje je pritisnuto. Dugme za pauziranje/zaustavljanje zapravo nije dugme 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. Možemo jednostavno ručno pokrenuti skriptu iz komandne linije upisivanjem:

python3 pytiful3.py

Ako ste prvo zavirili u kôd, vjerojatno ste primijetili da sam ostavio neke ispise kako bismo mogli reći šta se događa. Ako je sve dobro prošlo, imat ćemo upit koji glasi "Pritisnite dugme". 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 "muzika je pauzirana - pritisnite dugme za nastavak", i otkrio sam da je moje dugme za pauzu žičano uvijek zatvoreno, umjesto normalno otvoreno. Nadamo se da ste imali više sreće s korakom lemljenja.

Ctrl-C će zaustaviti skriptu ako morate prekinuti.

Dakle, ako vidite "Pritisnite dugme", šta čekamo? Odaberite bilo koje od pet dugmadi radio stanice.

Velike su šanse da ćete vjerojatno čuti zvučnik kako bi započeo reprodukciju muzike, a ja u tome trenutno ne mogu pomoći. Mpg123 dopušta sufiks "--preload 1" nakon adrese stanice u naredbi os.system, međutim nisam mogao reći je li to promijenilo. Trebao bi omogućiti blagi tampon.

Još jedan kôd za koji ste se možda pitali: postoji zastavica "-f 7000" nakon mpg123 poziva. Ovo smanjuje jačinu zvuka na veliku udaljenost od maksimalne jačine zvuka. Puna količina bi bila 32K. Koliko razumijem, skala jačine zvuka nije linearna, pa ne mogu reći da je to samo jedna petina maksimalne jačine zvuka, 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 dugmad po svom izboru, sjednite, opustite se i uživajte u udobnosti slušanja za sada.

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 poduhvatu naredbenog retka u sandboxu, sada je pravo vrijeme za automatizaciju učitavanja skripte. Provjerite jeste li još uvijek u direktoriju kissir i postavite kod skripte u korisničku korpu:

sudo cp pytiful3.py/usr/lokalno/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-pokretanje: $ remote_fs $ syslog # Obavezno-zaustavljanje: $ remote_fs $ syslog # Podrazumevano-početak: 2 3 4 5 # Podrazumevano-zaustavljanje: 0 1 6 ### END INIT INFO # osigurajte da jačina zvuka nije glasna TODO # Izvršite posebne funkcije kada to sistemski slučaj zatraži "$ 1" na 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: Ponovo testirajte

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

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

Ako je vaš zvuk jako nizak, imajte na umu da imamo jačinu zvuka alsamixera na 50%, tako da je možemo povećati u skladu s naredbom.

Za početak, jedna stvar koja je potrebna je globalna vrijednost jačine zvuka, umjesto da morate mijenjati jačinu zvuka 5 različitih puta.

Hej, šta je sa listom radio stanica koju smo napravili u koraku 6? Pa, pokazalo se da MPG123 ima naredbu za slučajni odabir. Jednostavno je kao da napravite listu URL adresa stanica i umjesto pozivanja za jedan url radio stanice, jednostavno upotrijebite

"btn1234_choice = random.choice (btn1234)", odmah nakon identifikacije naše liste stanica, gdje je btn1234_choice naša lista. Ne zaboravite koristiti uglate zagrade oko naše liste stanica odvojene zarezima. Poziv naredbe potprocesa 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 završen! Čestitamo - upravo ste izgradili samostalni internet radio player.

Ovisno o opremi koju imate (zvučnici, Dac i pojačalo), možda ćete se pitati kako sakriti neke žice oko njih. 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 sebi ostavite dovoljno dodatnog prostora.

Kao što možete vidjeti na gornjim fotografijama - ustvari sam napravio dva poljupca, od kojih je jedan koristio ostatke zalijepljene nesreće u 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 naziv uređaja pokupili na jednom od mojih snimaka ekrana, nazvao sam ga slimbox.

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

Preporučuje se: