Оглавление:

Радио для взрослых - Raspberry Pi: 8 шагов
Радио для взрослых - Raspberry Pi: 8 шагов

Видео: Радио для взрослых - Raspberry Pi: 8 шагов

Видео: Радио для взрослых - Raspberry Pi: 8 шагов
Видео: Raspberry Pi - Что нужно знать? Что нужно иметь? Достаточно купить только плату? 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 ГБ + и возможность

Адаптер питания MicroUSB 5 В - Link также включает адаптер microHDMI и адаптер microUSB OTG - USB A для настройки, если они вам нужны

Bluetooth-динамик

Кабели-перемычки M / F и M / M

2 Круговой энкодер - та же ссылка, что и выше

Малая макетная плата

Нажать кнопку

Светодиод (опционально) - купленный светодиод + кнопка выше

Коробка для упаковки

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

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

Нам нужно установить операционную систему на raspberry pi, на котором будет работать программное обеспечение. Ничто из этого не является уникальным для этого проекта. Для отладки я бы рекомендовал настроить его, чтобы вы также могли получить к нему доступ в автономном режиме. Это означает, что вы получаете доступ к Pi через свою сеть Wi-Fi через графический интерфейс или терминал SSH и не нуждаетесь в клавиатуре, мыши и мониторе для его постоянного использования. Вы можете сделать это без необходимости подключения к монитору / мыши / клавиатуре, если вы более разбираетесь в технологиях. Некоторые примеры инструкций здесь. Однако это менее прямолинейно, и ниже представлен другой способ его настройки.

В первый раз вам, вероятно, понадобится:

  • Малина Pi W
  • Переходник с MicroSD на SD-карту [для записи ОС на SD-карту]
  • Карта MicroSD (~ 8 ГБ +) [для хранения ОС и нашей программы]
  • Питание через MicroUSB (5 В)
  • MicroUSB к USB A [для мыши / клавиатуры]
  • Адаптер Mini HDMI - HDMI [для вывода на дисплей]
  • Клавиатура
  • Мышь
  • Монитор

Во-первых, вам необходимо установить операционную систему на карту micro SD rPi.

Я использовал raspian buster, вы загружаете его на компьютер с устройством чтения / записи SD-карты, а затем загружаете операционную систему raspian на SD-карту. BalenaEtcher - простая программа для этого

Затем вставьте SD-карту в слот pi, подключите монитор, клавиатуру и питание. Выполните шаги настройки, которые вам предложит raspian, включая подключение его к вашей сети Wi-Fi и сопряжение динамика Bluetooth через графический интерфейс. Хорошей практикой было бы обновить его с помощью следующих команд

sudo apt-get update

sudo apt-get upgrade

Если вы хотите включить маркировку своего пи безголового, нам нужно сначала получить IP-адрес пи. Через терминал его можно найти через

ifconfig

команда. Затем вам нужно включить SSH и VNC через параметры интерфейса в

sudo raspi-config

После перезагрузки теперь вы можете проверить доступ к pi через SSH или VNC. SSH - это просто интерфейс терминала, и вам может быть проще использовать графический интерфейс для сопряжения динамика Bluetooth. Вы можете использовать такую программу, как VNC connect, чтобы легко получить доступ к вашему пи на отдельном компьютере в вашей сети. Вы можете использовать в нем такую программу, как putty для SSH.

Кроме того, вы можете настроить облачную учетную запись VNC, чтобы при необходимости иметь доступ к устройству вне сети.

Шаг 2: Установите Senior Radio Software

Установите Senior Radio Software
Установите Senior Radio Software

Это можно сделать из окна терминала raspberry pi. Сначала убедитесь, что у вас установлен git

sudo apt-get install git

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

Однако вы можете использовать то же, что и у меня, без проблем, если хотите разместить свой json-файл радио в другом месте.

Затем клонируйте репо в любом месте, где вы хотите. Каталог по умолчанию в порядке. Получите URL-адрес нужного репозитория github, нажав зеленую кнопку клонирования или загрузки.

Вернувшись в окно терминала, git clone

Теперь при просмотре с помощью ls вы должны увидеть дополнительный каталог с именем SeniorRadio. Фантастика!

Код предназначен для самодокументирования, было бы полезно просмотреть его. Особенно в целях отладки и при изменении системы.

Шаг 3. Установите дополнительное программное обеспечение

Установить дополнительное программное обеспечение
Установить дополнительное программное обеспечение

Прежде чем мы перейдем к схеме и ее тестированию, нам также необходимо загрузить VLC и python api для него. Возможно, у вас уже установлен VLC. Первые две команды обновят pi, а последние две команды ниже установят VLC, а затем python api

sudo apt-get update

sudo apt-get upgrade

sudo snap установить VLC

sudo apt-get install vlc-python

Кроме того, также установите gpiozero, который мы будем использовать для взаимодействия с контактами GPIO пи. Возможно, он у вас уже установлен, в зависимости от вашей операционной системы.

sudo apt-get install gpiozero

Шаг 4. Найдите трансляции радиостанций

Найти трансляции радиостанций
Найти трансляции радиостанций

Далее одна из самых веселых частей! Пришло время выбрать те потоки, которые вам нужны.

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

Чтобы найти эти станции, вы можете поискать прямой поток в Интернете, если он размещен на сервисе. Быстрый способ также может состоять в том, чтобы воспроизвести поток, щелкнув правой кнопкой мыши в браузере и выбрав «проверить элемент». Перейдите на вкладку сети, и на ней должен быть указан «прямой» URL-адрес потока. Это видео на YouTube демонстрирует это. Обновление страницы с открытой вкладкой должно помочь.

Когда у вас есть свои станции, вы хотите разместить их в сети, чтобы ваша программа на питоне SeniorRadio могла их захватить. Для этого есть много вариантов, вы можете использовать такие сайты, как Github, bitbucket или даже sourceforge. Основная цель размещения этого списка в Интернете заключается в том, чтобы пользователь, настраивающий его, мог удаленно изменять список потоков в Интернете.

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

Вы можете использовать тот же формат, что и мой файл internetStation.json. Если вы хотите также использовать github, вы можете просто разветвить мой репозиторий SeniorRadio, отредактировать свой собственный файл internetStation.json и указать его на этот «необработанный» URL. Вы можете найти это ниже в графическом интерфейсе Github, щелкнув файл.

Шаг 5: Создайте схемы

Создать схемы
Создать схемы

Теперь нам нужно настроить схему. Это будет меняться в зависимости от вашего оборудования, но ниже я настроил свое.

pinout.xyz/, чтобы узнать, какие контакты какие. Поскольку мы используем библиотеку gpiozero, нас интересует только нумерация контактов BCM. Обратите внимание, что я купил несколько дополнительных поворотных энкодеров KY040 - циферблатов - чтобы проверить их, поскольку все они не имеют одинаковой точности. У каждого из них будет какой-то «подпрыгивающий» или просто неправильный вывод, поэтому я выбрал лучший из двух, которые у меня были. В коде вы заметите, что есть некоторые шаги, чтобы ограничить это подпрыгивание.

Я подключил свою кнопку к контакту 17 BCM и заземлению.

Мой светодиод к резистору 1 кОм, затем к выводу 27 BCM и заземлению.

У моих поворотных энкодеров KY040 вывод + был на 5 В, GND на землю и SW отключены. Они были соединены на мини-макетной плате.

Контакт dt поворотного энкодера станции подключен к контакту 21 BCM

Штифт clk энкодера станции подключен к контакту 20 BCM

Контакт dt поворотного энкодера уровня звука подключен к контакту 19 BCM

Контакт clk поворотного энкодера уровня звука подключен к контакту 16 BCM

Если вы измените эти контакты, просто обновите номер в программе Python, где он устанавливает обработчики.

Я использовал миниатюрную макетную плату, чтобы упростить задачу. Я также использовал перемычки M / M и M / F, чтобы облегчить интерфейс. Я припаял провода перемычки к контактам кнопки / светодиода, который я купил ранее. Чтобы не паять, вы можете получить кнопки и светодиоды, которые уже имеют перемычки или легко подключаются к ним.

Шаг 6: Проверьте это

Теперь у вас должна быть работающая система! Давайте проверим это. Перейдите в папку с программой python, скорее всего:

cd SeniorRadio

python3 SeniorRadio.py

В настоящее время при запуске программы существует 45-секундная задержка, чтобы дать ей время найти динамик Bluetooth при включении. Вы можете закомментировать эту строку, если она вам не понадобится во время тестирования. Программа может сказать вам, что вам нужно установить дополнительные пакеты, если так, продолжайте. Также может потребоваться установка более новой версии Python.

sudo apt-get install python3.7

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

Я не слышу звука

Убедитесь, что динамик включен и выбран в вашем Raspberry Pi. Через графический интерфейс вы сможете связать его, а затем выбрать его в качестве устройства вывода звука. Кроме того, проверьте свои аудиодрайверы. Распространенная проблема - вам может потребоваться переустановить пакет pulseaudio.

Звук прерывистый или прерывистый

Попробуйте переместить устройство ближе к маршрутизатору Wi-Fi. Кроме того, убедитесь, что поблизости находится динамик Bluetooth. Также может быть проблема с аудиодрайвером

Шаг 7. Поместите в постоянный корпус

Поместите в постоянный корпус
Поместите в постоянный корпус

Затем поместите его в коробку или подобное устройство, чтобы он жил постоянно. Я рекомендую иметь тот, к которому вы можете получить доступ позже для отладки. Я купил эту маленькую деревянную коробку в магазине товаров для рукоделия за 2 доллара и разместил ссылку на странице расходных материалов. Один из моих друзей порекомендовал коробку для сигар.

Затем я вырезал спереди отверстия для кнопки и поворотных переключателей и просверлил отверстие в задней части коробки для шнура питания microUSB.

Я протестировал крепление и убедился, что оно работает, и вуаля!

Наконец, я использовал суперклей, чтобы удерживать кнопку. На нижней части моей макетной платы был клей, который я соединил с частью коробки. Я использовал небольшую полоску изоленты, чтобы прикрепить заднюю часть пи к коробке, чтобы ее можно было переместить позже, если потребуется.

Шаг 8: установка программы для запуска при запуске

Наконец, вы, вероятно, захотите, чтобы эта программа python запускалась при запуске raspberry pi, поэтому вам не нужно делать это вручную. Есть много способов сделать это в Интернете.

Лично я настроил его вторым способом в этом руководстве по SparkFun:

Здесь он ожидает, пока система войдет в графический рабочий стол, прежде чем запускать программу. Затем программа python задерживает его на 45 секунд, чтобы дать системе время для повторного подключения к динамику Bluetooth. Если вы используете встроенный динамик, вы можете удалить эту задержку. Обратите внимание, что сначала должен быть включен динамик bluetooth! (для решения bluetooth)

Теперь вы можете попробовать выключить и снова включить пи! Примерно через 90 секунд ваш пи должен снова начать воспроизведение радиопотоков. При нажатии кнопки воспроизведение будет приостановлено / воспроизведено. Обратите внимание на эти перезагрузки, он перечитывает этот json-файл internetStations, поэтому, если вы меняете свои станции, вам необходимо перезагрузить устройство, чтобы они работали. Поздравляю!

Если вы это сделали или внесли изменения в проект, сообщите мне!

Страница Github:

Рекомендуемые: