Оглавление:
- Запасы
- Шаг 1: Настройка (без головы) Raspberry Pi W
- Шаг 2: Установите Senior Radio Software
- Шаг 3. Установите дополнительное программное обеспечение
- Шаг 4. Найдите трансляции радиостанций
- Шаг 5: Создайте схемы
- Шаг 6: Проверьте это
- Шаг 7. Поместите в постоянный корпус
- Шаг 8: установка программы для запуска при запуске
Видео: Радио для взрослых - Raspberry Pi: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Проект 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, на котором будет работать программное обеспечение. Ничто из этого не является уникальным для этого проекта. Для отладки я бы рекомендовал настроить его, чтобы вы также могли получить к нему доступ в автономном режиме. Это означает, что вы получаете доступ к 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
Это можно сделать из окна терминала 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:
Рекомендуемые:
Музыкальная шкатулка для FM-радио на базе PIC16F1847 и AR1010: 5 шагов
Музыкальная шкатулка для FM-радио на базе PIC16F1847 и AR1010: Это мой первый пост с инструкциями. Я сделал приставку для цифрового FM-радио, используя этот дешевый модуль приемника FM-радио AR1010, который я купил на Ebay, и микроконтроллер PIC16F1847 от MICROCHIP. Почему ПИК? Почему бы не использовать Ардуино? Потому что у меня куча
Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)
Двустороннее радио NRF24 для телеметрии: Привет, ребята, меня зовут Педро Кастелани, и я предлагаю вам свой первый инструктаж: построение двустороннего радио с Arduino для всего, для чего вам это нужно. В этом проекте мы сделаем две отдельные цепи, которые будут действовать и как приемник, и как передатчик
Как сделать тест на слух у взрослых с помощью MATLAB: 6 шагов
Как сделать тест на слух у взрослых с помощью MATLAB: ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Наш тест НЕ является медицинской диагностикой и не должен использоваться как таковой. Чтобы точно измерить слух, обратитесь к медицинскому работнику. Используя материалы, которые у нас уже были, наша группа провела проверку слуха. Наш тест предназначен только для взрослых и подростков
FM-радио с RDS (радиотекст), базой для управления и зарядки BT: 5 шагов
FM-радио с RDS (Radio Text), BT Control and Charging Base: Bonjour, это моя вторая "Instructables". Поскольку я люблю делать не очень полезные вещи, вот мой последний проект: Это FM-радио с Radio Text с зарядная база, за которой можно следить через Bluetooth и приложение для Android, поэтому я
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов
SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития