Съдържание:

Поддържане на тъпота Просто интернет радио: KISSIR: 13 стъпки
Поддържане на тъпота Просто интернет радио: KISSIR: 13 стъпки

Видео: Поддържане на тъпота Просто интернет радио: KISSIR: 13 стъпки

Видео: Поддържане на тъпота Просто интернет радио: KISSIR: 13 стъпки
Видео: Part 1 - Lord Jim Audiobook by Joseph Conrad (Chs 01-06) 2024, Ноември
Anonim
Поддържане на тъпота Просто интернет радио: KISSIR
Поддържане на тъпота Просто интернет радио: KISSIR
Поддържане на тъпота Просто интернет радио: KISSIR
Поддържане на тъпота Просто интернет радио: KISSIR

Понякога просто трябва да е тактилна. Няма никакъв интерфейс. Само копчета.

Raspberry Pi като интернет радио плейър не е нищо ново и има много инструкции как да създадете интернет радио плейър с помощта на малинов пи със или без монитор за поточно предаване на интернет станции от цял свят. Ако изберете да останете без глава (без монитор), все още ще ви трябват средства за взаимодействие с pi плейъра, обикновено уеб интерфейс, ако не и директно средство за комуникация с хоста, като ssh. Тази инструкция ще бъде малко по -различна; ще използваме прости натискания на бутони, за да изпращаме команди до pi, като по този начин елиминираме нуждата от уеб интерфейс и LCD екран. Звучи достатъчно лесно, нали (?)

Ще започнем с много основен дизайн, използващ цветно кодирани бутони, всеки цвят ще представлява интернет радиостанция. Ще въведем код на python, за да се справим с натискането на бутон: Пресата ще изпълни команда за възпроизвеждане на предварително кодирана интернет радиостанция, използвайки MPG123, чудесен инструмент за командния ред за възпроизвеждане на аудио на нашия pi.

Вашите умения за python не трябва да се усъвършенстват. Всъщност буквално преминах от „Hello World“, за да напиша това, и както ще видите, заимствах много код - така че ако мога да го направя и да го документирам, никой друг не би трябвало да има проблем.

Да тръгваме!

Консумативи:

Необходими материали

  • Raspberry pi/ pi нула w с всички поправки: Захранване, SD карта и Raspbian или Raspbian lite.
  • Wi -Fi и достъп до интернет
  • Друг компютър за извършване на известно сърфиране в мрежата и възможност за SSH към малиновото пи
  • Цифро -аналогов конвертор (DAC) - по избор, но ще бъдете благодарни.
  • Усилвател
  • Говорители
  • Тел за свързване и джъмпери
  • Поялник и спойка
  • Perf Board за бутоните
  • Тактилни бутони: Обикновено отворени- по един за всеки жанр музика, бутон за захранване и допълнителен бутон за изключване на звука (препоръчителни са 7 бутона)
  • Жилищен блок за всичко по -горе (по избор, но подреден)

Стъпка 1: Предварителни изисквания:

Предпоставки
Предпоставки

Ще започнем, като приемем, че вече сте настроили своя малинов pi, DAC и усилвател, а също така ще приемем, че имате достъп до интернет. Поради големия избор на аудио оборудване, предпочитания и опции за слушане на аудио, ние ще приемем, че настройката ви е вече завършена: вече трябва да имате звук, излизащ от високоговорителите ви, преди да започнете този проект. Също така ще трябва да прехвърлим ssh към малиновото pi, така че използвайки pi конфигурацията, уверете се, че интерфейсите имат активиран ssh. Ще използвам Raspbian lite и препоръчвам да имате нова инсталация на най -новото копие на нова SD карта, предназначена за този проект. Ако успеем, ще изградим самостоятелно устройство, което може да бъде оставено включено 24/7 като специално устройство за слушане.

Стъпка 2: Инсталирайте Python и Pip

Предпочитам да ssh към pi, използвайки различен компютър, и да изпълнявам всички необходими функции, използвайки ssh сесия, но предполагам, че е възможно първоначално да настроите pi към монитор, клавиатура и мишка и да работите директно върху pi, докато не стане работи и след това се разгръща като самостоятелен.

Първо нека направим рутинна проверка за поддръжка на нашата система и версия на python:

sudo apt-get update

sudo apt-get надстройка

Уверете се, че Python е инсталиран. В терминална сесия въведете следното в командния ред:

python --версия

Ако виждате python 2.7.13 (или по -ранна версия), нека инсталираме python 3.+:

sudo apt-get инсталирайте python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip

Стъпка 3: Инсталирайте MPG123 и Adafruit Blinka

Сега, когато основата е положена, само още няколко инсталации:

MPG123 е аудио софтуерът, който ще възпроизвежда нашата музика. Инсталацията е много проста:

sudo apt-get install mpg123

Направих много проучвания и намерих страхотен шаблон на уебсайта на Adafruit за възпроизвеждане на звукови файлове с натискане на бутони, така че вместо да започнем от нулата, нека продължим по пътеката, която хората от Adafruit вече са проплакали за нас. Програмата им изисква да инсталираме Adafruit Blinka:

$ sudo pip3 инсталирайте adafruit-blinka

Преди да продължим, нека извършим бърза проверка, за да се уверим, че имаме настройка на Alsa:

aplay --версия

нашите резултати трябва да се четат: версия 1.1.3 от Ярослав Кисела

Стъпка 4: Настройте силата на звука до 50% в Alsamixer

Регулирайте силата на звука до 50% в Alsamixer
Регулирайте силата на звука до 50% в Alsamixer
Регулирайте силата на звука до 50% в Alsamixer
Регулирайте силата на звука до 50% в Alsamixer

Сега нека вземем предпазна мярка и регулираме силата на звука до 50%, за да избегнем оглушителни изненади:

В командния ред въведете alsamixer:

alsamixer

Ако гледаме екран от червено бяло и зелено или 100% максимален обем, добра идея е да намалим силата на звука до 50%, за да спасим тъпанчетата си. Винаги можем да коригираме по -късно (нагоре или надолу), ако е необходимо.

Стъпка 5: Някои домашни: Намерете 5 радиостанции, които си заслужава да слушате

Някои домашни: Намерете 5 радиостанции, които си заслужава да слушате
Някои домашни: Намерете 5 радиостанции, които си заслужава да слушате
Някои домашни: Намерете 5 радиостанции, които си заслужава да слушате
Някои домашни: Намерете 5 радиостанции, които си заслужава да слушате

Ще имаме нужда от една станция за всеки бутон. Всъщност ще имаме нужда от url за станцията. Натискането на бутона ще извика url на интернет радиостанцията в прост, едноредов битов код. Ние обаче изпреварваме себе си, така че имаме да свършим някои домашни работи; намерете 5 радиостанции и техните URL адреси. Намирането на 5 радиостанции не е трудно, но намирането на техните URL адреси може да бъде трудно. Ще обясня защо след минута.

SomaFm * е чудесен източник, с който да започнете, особено ако все още нямате представа какво искате да слушате. Те имат голямо разнообразие от еклектични музикални избори, нито един от които не намирам за обиден, без реклами и най -добрата част: Те открито споделят своите URL адреси. За да вземете URL адреса, щракнете върху изображение на станцията, която ви интересува, а в лявата лента за навигация щракнете върху „Връзки за директен поток“. От там намерете секцията MP3 и изстържете url с най -високата скорост на възпроизвеждане (т.е. 128 удара 64). Поставете URL адреса в текстов редактор или бележник засега.

Като пример, за да изстържете Коледните скали, URL адресът ще бъде: (нямаме нужда от описание на сървъра)

ice4.somafm.com/xmasrocks-128-mp3

Става малко по -плътно извън света на SomaFm. Много станции използват посредник между слушателя и станцията, независимо дали става въпрос за реклама, маркетинг или евентуално проследяване - и аз обикновено се опитвам да избягвам този тип станции. Тъй като посредниците предпочитат да слушате станцията чрез тях, обикновено е доста трудно да се намери url; и тук идва Vtuner.

*Бих бил небрежен, ако не помолих да обмислите да направите дарение за любимата си радиостанция, тъй като много от станциите разчитат единствено на поддръжката на слушателите.

Стъпка 6: По избор: Изстържете URL с помощта на Vtuner

По избор: Изстържете URL с помощта на Vtuner
По избор: Изстържете URL с помощта на Vtuner
По избор: Изстържете URL адресите с помощта на Vtuner
По избор: Изстържете URL адресите с помощта на Vtuner

Сега идва забавната част …. На началната страница на Vtuner проверете огромната им връзка със списък със станции в горния десен ъгъл. Изберете жанр музика, който ви интересува, и след това сортирайте с най -бърза скорост, където ще видите списък с станции. Изберете станция, която смятате, че може да ви хареса, щракнете върху връзката или бутона за възпроизвеждане и пробвайте музиката. Ако не е за вас, няма притеснения, повтаряйте процеса, докато не намерим подходящ за дълготрайна наслада. На снимката на екрана си избрах цифровата импулсна версия на кънтри музика и на следващия екран забелязах, че свири извън Хърватия. Кънтри музика от Хърватия звучи доста интересно.

Харесва ми. Но как да получа URL адреса? Просто щракнете с десния бутон върху бялото пространство вдясно от изображението на станцията, под името на станцията, изберете „Преглед на източника на страница“и превъртете надолу до около ред 150. Търсим реда, който казва „// Опитайте за обработка на ледена лед . URL адресът се намира веднага отдолу!

orion.shoutca.st:8110/stream

Доста гладко!

Повторете тази стъпка, докато имаме поне 5 станции в нашия списък.

Двойно по избор: За допълнителна мярка, ако можете да намерите 5 жанра музика, от които се интересувате (за разлика от 5 станции), изградете списък с радиостанции за всеки жанр и запишете списъците като текстови файлове. Ще се върнем към това по -късно.

Стъпка 7: Настройте нашите бутони

Настройте нашите бутони
Настройте нашите бутони
Настройте нашите бутони
Настройте нашите бутони

Най -важната част! Избършете праха от стария поялник или поне го включете и изпечете праха. Време е за запояване. Използвам 4 бутони за моментни бутони, нормално отворени. Ще изградя масив от бутони (лява снимка) и ще ги прикрепя към някоя перф дъска. Трудно е да се каже на снимката, но посоката на зъбците на бутоните върви на север-юг. От дясната страна можете да видите къде проведох заземителна релса за заземяващите си проводници и прикрепих няколко джъмперни кабела с мъжки край към противоположната страна на всеки бутон. Вместо да има 7 земни връзки, релсата ще ни позволи да споделяме една земна връзка с pi за всички. Крайният резултат е деликатна вафлена дъска, която ще бъде монтирана в горната част на радиото с помощта на някои винтове през предоставените пилотни отвори. Само върховете на копчетата ще се появят през жлеба, който съм изрязал отгоре. Тъй като горната ми повърхност е само 1/4 дебела, искам да внимавам да не превивам винтовете. Лепилото може да е полезно, за да поддържате перфорираната дъска прикрепена към радиото.

Стъпка 8: Определете нашите GPIO пинове

Идентифицирайте нашите GPIO пинове
Идентифицирайте нашите GPIO пинове
Идентифицирайте нашите GPIO пинове
Идентифицирайте нашите GPIO пинове

В единствената си друга инструкция, аз представих нова употреба за старите гласови шапки на Google AIY версия 1. В тази широко непопулярна (или тясно популярна) инструкция споменах колко съм впечатлен от дизайна на самата шапка. Разполагам с няколко, така че ще изградя прототип, използвайки шапката, тъй като има вграден и DAC и усилвател.

Нека сега идентифицираме шест пина, които ще бъдат домакин на нашите натискания на бутони. Ще ви помоля да се съсредоточите върху лявата страна на шапката на Google AIY, където пише „servos“. Има колона от 6 капси за щифта, където ще прикрепя и запоя моите мъжки бутони от предишната ни стъпка. Ако работите без гласова шапка google aiy, без притеснения, - снимката вдясно ще ви води. И в двата случая ще работим с gpio (BCM) пинове 26, 06, 13, 05, 12 и 24 отгоре надолу (или 0-5). GPIO #24 ще бъде запазен за допълнителен бутон за пауза.

Не забравяйте да прикрепите и заземяващата връзка.

Стъпка 9: Код

Съмнявам се, че кодът ще се промени много от тук, но за най -новата версия на кода на python, моля, посетете моя github. Прикачих копие от 18.12.2019 г., наречено pytiful3.py.

Това не е най -ефективният код, който някога ще видите, и е доста многословен, но свършва работата.

Нека започнем, като създадем пясъчник, в който да играете. От нашата домашна директория създайте директория на нашия малинов пи, наречена kissir:

mkdir kissir/

и копирайте съдържанието на файла pytiful3.py в директорията, като отворите примерния файл в текстов редактор и използвате

sudo nano kissir/pytiful3.py

копирайте / поставете съдържанието на файла в нашия новосъздаден скрипт на python. Не забравяйте да запишете нашата работа, като използвате Ctrl-x, Y и въведете.

Ако искате кратка обиколка на скрипта, импортираме модулите на python, които ще ни трябват, след което дефинираме нашите бутони и присвояваме gpio щифт на всеки от 7 -те бутона. Ще има 5 радиостанции (не се колебайте да редактирате според предпочитанията си за станция), бутон за спиране и бутон за изключване. Цикълът while true работи и работи, докато не бъде натиснат бутон, който в повечето случаи ще спре всяко съществуващо възпроизвеждане на mpg123 и ще започне да възпроизвежда станцията, назначена за натиснатия бутон. Бутонът за пауза/спиране всъщност не е бутон за пауза, а по -скоро превключвател за убиване, тъй като не можем да поставим на пауза интернет радиото. Интернет радиото не чака никого.

Стъпка 10: Тествайте в нашия пясъчник

Тествайте в нашия пясъчник
Тествайте в нашия пясъчник

Преди да разгърнем нашето радио, докато все още сме в нашата ssh сесия, отидете до папката kissir, където се съхранява нашият скрипт. Можем просто да стартираме скрипта от командния ред ръчно, като напишем:

python3 pytiful3.py

Ако първо сте надникнали в кода, вероятно сте забелязали, че съм оставил някои изявления за печат, за да можем да кажем какво се случва. Ако всичко се получи добре, ще имаме подкана, която гласи „Натиснете бутон“. Това ни казва, че скриптът ни работи и е преминал предварителна проверка на кода. Първоначалният ми опит имаше безкраен цикъл „музика на пауза - натиснете бутона, за да продължите“и разбрах, че имам бутона за пауза, свързан винаги да е затворен, вместо нормално отворен. Надяваме се, че сте имали повече късмет със стъпката на запояване.

Ctrl-C ще спре скрипта, ако трябва да прекъснете.

Така че, ако видите „Натиснете бутон“, какво чакаме? Изберете някой от нашите пет бутона за радиостанция.

Шансовете са, че вероятно ще чуете изскачане на високоговорител, за да инициирате възпроизвеждането на музика, и за момента не мога да помогна с това. Mpg123 позволява суфикс "--preload 1" след адреса на станцията в командата os.system, но не мога да кажа дали има значение. Тя трябва да позволява лек буфер.

Друг код, за който може би сте се чудили: след извикването mpg123 има флаг "-f 7000". Това намалява силата на звука до далечно разстояние от максималния обем. Пълният обем ще бъде 32K. Както разбирам, скалата на силата на звука не е линейна скала, така че не мога да кажа, че е само една пета от максималния обем, но все пак е доста силна. Трябваше да направя това, защото моята звукова карта - гласовата звукова карта на Google AIY, понякога не свири добре с Alsamixer.

Продължете да избирате бутони по ваш избор, отпуснете се, отпуснете се и се насладете на комфорта на слушането си засега.

Стъпка 11: Настройте нашия код да работи автоматично при зареждане

Така че, ако всичко върви добре и сте се насладили на начинанието на командния ред в пясъчника, сега е подходящ момент за автоматизиране на зареждането на скрипта. Уверете се, че все още сте в директорията kissir и поставете кода на скрипта в потребителския кош:

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

Направете го изпълним:

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

Напишете скрипт на обвивка, за да го стартирате при стартиране:

sudo nano pytiful3.sh

И вмъкнете следния текст:

#! /bin/sh ### BEGIN INIT INFO # Предоставя: pytiful3.py # Изискващ старт: $ remote_fs $ syslog # Задължителен стоп: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # уверете се, че нивото на силата на звука не е силно TODO # Изпълнява специфични функции, когато това бъде поискано от системния случай "$ 1" в началото) ехо "Стартиране pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) echo "Спиране на pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Usage: /etc/init.d/pytiful3.sh {start | stop}" exit 1;; esac изход 0

Преместете го в init.d:

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

Направете го изпълним:

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

Регистрирайте скрипта за стартиране при стартиране:

sudo update-rc.d pytiful3.sh по подразбиране

Стъпка 12: Тествайте отново

Сега, когато сме заредили скрипта си за стартиране, просто не забравяйте, че всички промени, които правим, трябва да бъдат пренесени в кошчето за потребители, а нашият красив скрипт kissir/pytiful3.py сега е просто сирак. Но от хубавата страна, все още имаме пясъчник, в който да играем. Вероятно ще продължа да играя със скрипта, да правя промени и да го запиша като нова версия в близко бъдеще. Това все още е работещ проект.

Нека направим рестартиране, изчакаме рестартирането на pi и след около минута натиснете отново бутон.

Ако силата на звука ви е много ниска, не забравяйте, че имаме сила на звука на alsamixer на 50%, така че можем да го повишим съответно от командния ред.

Като начало, едно нещо, което е необходимо, е глобална стойност на силата на звука, вместо да се налага да променяте нивото на силата на звука 5 пъти.

Хей, какво ще кажете за списъка с радиостанции, който направихме в стъпка #6? Оказва се, че MPG123 има команда за случаен избор. Това е толкова просто, колкото изграждането на списък с URL адреси на станции и вместо да извиквате един URL адрес на радиостанция, просто използвайте

"btn1234_choice = random.choice (btn1234)", веднага след идентифицирането на нашия списък със станции, където btn1234_choice е нашият списък. Не забравяйте да използвате квадратни скоби около нашия списък със станции, разделени със запетаи. След това извикването на командата на подпроцеса възпроизвежда нашия произволен избор:

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

Стъпка 13: Опаковайте го и сме готови

Опаковайте го и сме готови
Опаковайте го и сме готови
Опаковайте го и сме готови
Опаковайте го и сме готови
Опаковайте го и сме готови
Опаковайте го и сме готови

Ако сте стигнали до тази стъпка, работата е завършена! Поздравления - току -що сте изградили самостоятелен интернет радиоплейър.

В зависимост от оборудването, с което разполагате (високоговорители, DAC и усилвател), може да се чудите как да скриете някои от проводниците около. Може би още една инструкция за друг ден, но ако планирате да направите жилищен блок, в който да пъхнете някои от проводниците, препоръчвам да си осигурите достатъчно допълнително място.

Както можете да видите на снимките по -горе - всъщност направих два целувки, единият използвайки остатъците от лепило, при първия ми опит (от изкривен хумор идва изкривените дъски). Второто устройство използва звукови възбудители, а не конвенционални високоговорители и ако сте взели името на устройството на една от снимките на екрана, аз го нарекох slimbox.

Намерих този проект за доста забавен. И двата пъти. Със сигурност не е труден проект, може би отнема много време, но е много възнаграждаващ. Надявам се и вие да се насладите на слушането си.

Препоръчано: