Съдържание:

Старше радио - Raspberry Pi: 8 стъпки
Старше радио - Raspberry Pi: 8 стъпки

Видео: Старше радио - Raspberry Pi: 8 стъпки

Видео: Старше радио - Raspberry Pi: 8 стъпки
Видео: Lesson 8: PICAR-X Robot Stares at you | Raspberry Pi Smart Robot car by SunFounder 2024, Ноември
Anonim
Старше радио - Raspberry Pi
Старше радио - Raspberry Pi

Проектът Senior Radio е устройство с интернет достъп, достъпно с отворен код, с хардуерни и софтуерни компоненти. Той е предназначен да се използва за потребители, запознати с управлението на джобно радио, където циферблатите контролират силата на звука и избраната радиостанция. Проектът е направен с ориентиран към потребителя дизайн, фокусиран върху потребител, който иска подобен размер и контроли като стандартно преносимо радио.

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

Основната функционалност е на Github, съхранявана в програма на python 3.7.3, наречена seniorRadio.py. Той чете и записва json файл, за да съхранява състоянието на радиото, така че когато го изключите, той ще запомни текущото аудио ниво и избрана станция. Освен това той чете онлайн хостван json файл, който можете да промените! Това ви позволява да актуализирате радиостанциите от разстояние, ако давате това на някой друг.

Понастоящем той е създаден за свързване към Bluetooth високоговорител, но лесно може да се направи и за възпроизвеждане на вграден високоговорител.

Създателят на това устройство вероятно не е потребителят и се нуждае от поне малко опит с електрониката и основни познания по програмиране. Опитът с Linux също е много полезен.

За потребителя функционалността е проста:

При включване той ще възпроизвежда последната станция, избрана през аудиоустройството по подразбиране. Левият циферблат контролира станцията, където няколко щраквания на циферблата се променят в нов URL. Той ще се преобърне след последния или първия запис. Десният диск регулира нивото на звука. Светодиодът показва, че програмата е включена. И бутонът спира или „изключва“радиото. Така че, след като се включи, потребителят може просто да натисне бутона, за да постави на пауза/възпроизвеждане, или „да изключи/включи“, радиото и двата диска, за да го контролира.

Консумативи

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

Основни електронни и Linux познания - за сглобяване и отстраняване на грешки

Raspberry Pi Zero W (Zero WH има заглавки предварително запоени и вероятно полезни)

MicroSD карта-8 GB+ и способност o

MicroUSB 5V захранващ адаптер - Връзката включва също microHDMI адаптер и microUSB OTG към USB адаптер за настройка, ако имате нужда от тях

Bluetooth високоговорител

M/F и M/M джъмперни кабели

2 Ротационен енкодер - същата връзка, както по -горе

Малка дъска

Натисни бутона

LED (по избор) - закупен LED + бутон отгоре

Кутия за опаковане

Стъпка 1: Настройка (без глава) Raspberry Pi W

Настройка (без глава) Raspberry Pi W
Настройка (без глава) Raspberry Pi W

Трябва да настроим операционната система на малиновото пи, което ще изпълнява софтуера. Нищо от това не е уникално за този проект. За отстраняване на грешки бих препоръчал да го настроите, така че да имате достъп до него и в режим без глава. Това означава, че имате достъп до pi през вашата WiFi мрежа чрез GUI или SSH терминал и нямате нужда от клавиатура, мишка и монитор, за да го използвате всеки път. Бихте могли да направите това, без да се налага да се свързвате с монитор/мишка/клавиатура, ако сте по-запознати с технологиите. Няколко примерни инструкции тук. Той обаче е по -малко прав и по -долу е друг начин да го настроите.

Този първи път вероятно ще ви трябва:

  • Малина Pi W
  • Адаптер за MicroSD към SD карта [за запис на операционна система на SD карта]
  • MicroSD карта (~ 8 GB+) [за съхранение на операционната система и нашата програма]
  • Захранване MicroUSB (5V)
  • MicroUSB към USB A [за мишка/клавиатура]
  • Мини HDMI към HDMI адаптер [за извеждане на дисплея]
  • Клавиатура
  • Мишка
  • Монитор

Първо, ще трябва да мигате операционната система на rPi micro SD картата.

Използвах raspian buster, изтегляте това на компютър с четене/запис на SD карта и след това флашвате raspian OS на SD картата. BalenaEtcher е лесен софтуер за това

След това поставете SD картата в слота pi, свържете монитора, клавиатурата и захранването. Продължете през стъпките за настройка, към които vas подканя raspian, включително свързването му към вашата WiFi мрежа и сдвояването на вашия Bluetooth високоговорител през GUI. Добра практика би било да го актуализирате, като използвате следните команди

sudo apt-get update

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

Ако искате да включите маркирането на вашето pi без глава, първо ще трябва да вземем ip адреса на pi. Чрез терминал можете да го намерите чрез

ifconfig

команда. След това трябва да активирате SSH и VNC през опциите за свързване в

sudo raspi-config

След рестартиране вече можете да тествате достъпа до pi през SSH или VNC. SSH е просто терминален интерфейс и може да ви бъде по -лесно да използвате GUI за сдвояване на Bluetooth високоговорител. Можете да използвате програма като VNC connect за лесен достъп до вашето pi на отделен компютър във вашата мрежа. Можете да използвате програма като замазка за SSH в нея.

Освен това можете да настроите VNC облачен акаунт, така че да имате достъп до устройството извън мрежата, ако е необходимо

Стъпка 2: Инсталирайте старши софтуер за радио

Инсталирайте старши софтуер за радио
Инсталирайте старши софтуер за радио

Това може да стане от терминален прозорец на малиновото пи. Първо се уверете, че имате инсталиран git

sudo apt-get install git

В зависимост от това коя операционна система сте инсталирали, тези стъпки може да са различни, тъй като може да се наложи да инсталирате допълнителни пакети, системата ще ви каже дали е така. Първо трябва да изтеглите старшия радио код от github. https://github.com/Bunborn/seniorRadio В идеалния случай вие правите нашето собствено репо, за да можете да правите промени и лесно да променяте радиостанциите по същия начин като мен. Разклонете репо, ако е така

Можете обаче да използвате същото като моето без проблем, ако искате да хоствате вашия радио json файл на друго място

След това клонирайте репо на всяко място, което искате да бъде. Директорията по подразбиране е добре. Вземете URL адреса, за който искате github репо, като натиснете зеления клонинг или бутона за изтегляне.

Обратно в прозореца на терминала, git клонинг

Сега трябва да видите допълнителна директория, наречена seniorRadio, когато търсите с помощта на ls. Фантастично!

Кодът е предназначен да се самодокументира, разглеждането му би било полезно. Особено за отстраняване на грешки и ако променяте системата.

Стъпка 3: Инсталирайте допълнителен софтуер

Инсталирайте допълнителен софтуер
Инсталирайте допълнителен софтуер

Преди да преминем към веригата и да я тестваме, трябва също да изтеглим VLC и python api за нея. Може вече да имате инсталиран VLC. Първите две команди ще актуализират pi, а последните две команди по -долу ще инсталират VLC и след това api python

sudo apt-get update

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

sudo snap install VLC

sudo apt-get install vlc-python

В допълнение, също така инсталирайте gpiozero, който ще използваме за взаимодействие с GPIO щифтовете на pi. Възможно е вече да сте го инсталирали в зависимост от вашата операционна система.

sudo apt-get install gpiozero

Стъпка 4: Намерете потоци от радиостанции

Намерете потоци от радиостанции
Намерете потоци от радиостанции

След това, една от най -забавните части! Време е да изберете каквито потоци искате.

Във файла internetStations.json можете да видите връзките ми към потока, главно за новини и музика. Но там има много хоствано съдържание. Ключът тук е да намерите URL адреса на директния поток. Например новините и музикалните станции на BBC могат да бъдат намерени тук в този блог. Тези директни потоци няма да имат графичен интерфейс и автоматично ще възпроизвеждат потока чрез медийния плейър на вашия браузър. Това са URL адресите, от които се нуждаем, за да може VLC да ги прочете! Можете бързо да тествате всяка връзка във вашия уеб браузър или чрез VLC на нормалния си компютър, за да сте сигурни, че ще работи на pi.

За да намерите тези станции, можете да потърсите директния поток онлайн, ако услугата го хоства. Бърз начин може да бъде и пускането на потока, щракнете с десния бутон върху браузъра и натиснете „инспектиращ елемент“. Придвижете се до раздела мрежа и той трябва да посочи „директния“URL адрес на потока. Това видео в YouTube показва това. Опресняването на страницата с отворен раздел трябва да помогне.

След като разполагате със своите станции, искате да ги пуснете онлайн, за да може вашата старша програма за Python seniorRadio да ги вземе. Има много опции за това, можете да използвате сайтове като Github, bitbucket или дори sourceforge. Основната цел на хостването на този списък онлайн е потребителят, който го настройва, да може да променя списъка с потоци онлайн дистанционно.

В началото на програмата python има променлива, наречена url, просто променете това като URL на вашия json файл с връзките към URL адреса на станцията

Можете да следвате същия формат като моя файл internetStation.json. Ако искате да използвате и github, можете просто да раздвоите моето хранилище seniorRadio и да редактирате собствения си файл internetStation.json и да го насочите към този „суров“URL адрес. Можете да намерите това по -долу в GITU на Github, след като щракнете върху файла.

Стъпка 5: Създайте вериги

Създайте вериги
Създайте вериги

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

pinout.xyz/ за справка кои пинове са кои. Тъй като използваме библиотеката gpiozero, ние се занимаваме само с номерирането на BCM пинове. Обърнете внимание, че купих няколко допълнителни въртящи се енкодера KY040 - циферблатите - за да ги изпробвам, тъй като не всички имат еднаква точност. Всеки от тях ще има някакъв „подскачащ“или просто неправилен изход, така че избрах най -доброто от двете, които имах. В кода ще отбележите, че има някои стъпки за ограничаване на това подскачане.

Свързах моя бутон към BCM щифт 17 и маса

Моят светодиод към 1k ом резистор, след това BCM щифт 27 и маса

Моите въртящи се енкодери KY040 имаха + кабела към 5V, GND към земята и SW изключен. Те бяха свързани чрез мини платка

Станционен ротационен енкодер dt щифт, свързан към BCM щифт 21

Станционен ротационен енкодер щифт, свързан към BCM щифт 20

Dt щифт на въртящ се енкодер на ниво аудио, свързан към BCM щифт 19

Ротационен енкодер за нивото на звука, свързан с щифт 16 на BCM

Ако промените тези щифтове, просто актуализирайте номера и в програмата на python, където тя настройва манипулаторите

Използвах мини дъска, за да направя това по -лесно. Използвах и джъмперни проводници M/M и M/F, за да улесня интерфейса. Запоях няколко кабела на джъмпера към щифтовете на бутона/LED, който купих по -рано. За да не запоявате, можете да получите бутони и светодиоди, които вече имат джъмперни проводници или лесно биха се свързали с такъв.

Стъпка 6: Тествайте го

Сега трябва да имате функционираща система! Нека го тестваме. Придвижете се до папката с програмата python, вероятно:

cd старши Радио

python3 seniorRadio.py

Понастоящем има забавяне от 45 секунди в началото на програмата, за да му се даде време да намери Bluetooth високоговорителя при включване. Можете да коментирате този ред, ако нямате нужда от него по време на тестването. Програмата може да ви каже, че трябва да инсталирате допълнителни пакети, продължете, ако е така. Може също да се наложи да инсталирате по -нова версия на Python.

sudo apt-get install python3.7

Някои възможни проблеми, дори ако програмата работи:

Не чувам звук

Уверете се, че високоговорителят е включен и избран във вашето малиново пи. Чрез графичния интерфейс трябва да можете да го сдвоите и след това да го изберете като аудио изходно устройство. Освен това проверете аудио драйверите си. Често срещан проблем е, че може да се наложи да преинсталирате пакета pulseaudio

Аудио прекъсване или изрязване

Опитайте да преместите устройството по -близо до вашия WiFi рутер. Освен това се уверете, че Bluetooth високоговорителят е наблизо. Може да е и проблем с аудио драйвера

Стъпка 7: Поставете в постоянен корпус

Поставете в постоянен корпус
Поставете в постоянен корпус

След това го поставете в кутия или подобно устройство, за да живее постоянно. Препоръчвам да имате такъв, до който да имате достъп по -късно за отстраняване на грешки. Взех тази малка дървена кутия в занаятчийски магазин за 2 долара и я свързах на страницата с консумативи. Един от приятелите ми препоръча кутия за пури.

След това изрязах отвори отпред за бутоните и въртящите се превключватели и пробих дупка в задната част на кутията за захранващия кабел microUSB.

Тествах стойката и се уверих, че работи, и ето!

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

Стъпка 8: Настройка на програмата за стартиране при стартиране

И накрая, вероятно ще искате тази програма на python да се стартира при стартиране на малиновото пи, така че не е нужно да го правите ръчно. Има много начини да направите това, които можете да намерите онлайн.

Лично аз го настроих по втория начин на този урок за SparkFun:

Тук той изчаква системата да влезе в графичния работен плот, преди да стартира програмата. След това програмата на python се забавя за 45 секунди, за да даде време на системата да се свърже отново с високоговорителя Bluetooth. Ако използвате вграден високоговорител, можете да премахнете това забавяне. Обърнете внимание, че Bluetooth високоговорителят трябва да е включен първи! (за Bluetooth решение)

Сега можете да опитате да изключите и включите отново вашето pi! След около 90 секунди вашето пи трябва да започне да възпроизвежда радио потоците отново. При натискане на бутона, той ще направи пауза/възпроизвеждане. Обърнете внимание, че при тези рестартирания той препрочита този файл internetStation json, така че ако промените станциите си, трябва да рестартирате устройството, за да работят. Честито!

Ако сте направили това или сте направили промени в проекта, моля, уведомете ме!

Страница на Github:

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