Оглавление:
Видео: Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Есть что-то приятное в повороте переключателей и нажатии кнопок, как на старых радиоприемниках. К сожалению, многие из этих радиоприемников сломаны или на станциях не работает звук. К счастью, не так уж сложно превратить любое радио в интернет-радио с помощью Raspberry Pi Zero W, и я покажу вам, как это сделать!
Часть работы будет зависеть от донорского радио, которое у вас есть, но я объясню, что я сделал со своим, чтобы дать вам некоторое представление о том, как это происходит.
Поскольку pi работает легко, чтобы следовать коду Python, после подключения радиоуправления вы можете легко добавить другие функции, такие как будильник, динамик Bluetooth, часы для разговора и т. Д., Просто изменив программное обеспечение через ssh.
Этот проект был вдохновлен интернет-радио Dansette Pi, главное отличие в том, что здесь циферблаты управляют радио, поворачивая их, а не как кнопки.
Запасы
- старое транзисторное радио
- Малина пи ноль Вт
- Picaxe 20X2
- Моноусилитель Adafruit 3 Вт - MAX98357 I2S Amp Breakout
- Штекерный разъем для блока питания
- Источник питания 5 В постоянного тока для подключения к цилиндрическому разъему
- различные резисторы
- несколько конденсаторов по 100 нФ
- доска
- 20-контактный DIP-разъем IC
- перемычки и штыри
- маленькие гайки и болты
Шаг 1. Обзор
Идея состоит в том, чтобы Raspberry Pi был подключен к Интернету через встроенный Wi-Fi и транслировал одну из предварительно настроенных интернет-радиостанций. Оригинальные радиокнопки и регуляторы (потенциометры) будут подключены к микросхеме Picaxe, которая служит аналого-цифровым преобразователем. Пи постоянно считывает элементы управления с пикакси и реагирует соответствующим образом, изменяя либо громкость, либо станцию. При смене станции радио произнесет название новой станции. Наконец, потоковое аудио передается в моноусилитель, который подключен к исходному динамику радиоприемника.
Самое замечательное в использовании Raspberry Pi заключается в том, что после настройки схемы функции радио можно легко изменить, просто изменив несколько строк кода на Pi через ssh. Например, можно было легко подключить к bluetooth-динамику или сделать будильник:)
Шаг 2: Радио
Самая важная часть - это донорское радио. Он не должен работать, но должен иметь работающий динамик (если вы не хотите устанавливать новый).
У моего радио 4 диска и 7 кнопок. Два диска будут использоваться для изменения громкости и станции. Два других диска и кнопки ничего не сделают, но я все равно подключу их на случай, если я захочу использовать их позже.
Первый шаг - аккуратно разобрать магнитолу и удалить всю внутреннюю электронику, она нам не понадобится, кроме динамика.
Смена станций На моем радио, когда вы меняете станции, маленький красный маркер перемещается по дисплею, чтобы указать, какую частоту вы слушаете. Очень хотелось сохранить эту функцию! Ручка переключения станции включает переменный конденсатор и приводит в действие систему шкивов с помощью веревки, удерживающей красный маркер.
Я попытался построить схему для измерения емкости этого переменного конденсатора, но емкость была настолько мала, что простой метод измерения времени заряда / разряда не работал. Есть и другие методы, но они мне показались сложными и не стоили усилий …
Итак, что я здесь сделал, так это расплющил вал, который выходил из нижней части переменного конденсатора, так что этот вал может войти в паз современного потенциометра. К счастью, этот потенциометр можно было установить в оригинальный батарейный отсек, просверлив в нем отверстие. После всего этого переменный конденсатор теперь напрямую управляет потенциометром, который я использую для установки станции на моем цифровом радио.
Нажмите на кнопки
Инфраструктура для кнопок была на сложной печатной плате. После удаления компонентов и проводов, которые были припаяны, я выяснил, какие соединения устанавливаются / разрываются при нажатии или отпускании кнопки. Некоторые кнопки были соединены друг с другом, поэтому мне пришлось сломать несколько медных дорожек на печатной плате. Наконец, я припаял несколько проводов, которые будут идти к пикаксиалу, чтобы 6 кнопок работали изолированно.
Также найдите удобное место для пи и пикакси, в идеале как можно дальше от динамика, поскольку магнитное поле динамика может испортить микропроцессоры. Я просверлил несколько отверстий в металлической раме радио, чтобы установить пи.
Шаг 3: Picaxe
Схема Picaxe находится выше, только два потенциометра и одна кнопка показаны для ясности. Схема довольно проста: стеклоочиститель каждого потенциометра подключен к входу АЦП. Для кнопок входной контакт связан с землей, а кнопка находится между входом и + 3,3 В. Эта схема не включает схему загрузки, потому что я запрограммировал свой picaxe на отдельной плате.
Код picaxe довольно прост. Picaxe считывает значения АЦП потенциометров и состояния кнопок, а затем сохраняет их во внутренней памяти, которую будет читать пи.
Вы можете использовать любой чип X2 picaxe. Компоненты, отличные от X2, не имеют ведомого режима I2C и не будут работать с этими инструкциями.
Если вы используете компьютер под управлением Linux для программирования picaxe, чтобы заставить работать кабель загрузки AXE027, вам необходимо выполнить следующие команды:
sudo modprobe ftdi_sio
sudo chmod 777 / sys / bus / usb-serial / drivers / ftdi_sio / new_id sudo echo "0403 bd90"> / sys / bus / usb-serial / drivers / ftdi_sio / new_id
В случае, если значения потенциометра скачкообразны, конденсатор емкостью 100 нФ можно установить между землей и грязесъемником потенциометра.
Шаг 4: Raspberry Pi
Вот и мозг операции. Некоторые пакеты необходимо будет установить на Pi с помощью
sudo apt-get update
sudo apt-get install -y i2c-tools vlc espeak python-smbus python-pip sudo pip install python-vlc
Pi будет разговаривать с picaxe через I2C. Чтобы включить I2C, убедитесь, что файл / etc / modules содержит строку
i2c-dev
и в /boot/config.txt есть
dtparam = i2c_arm = on
Чтобы настроить пи для работы с усилителем, следуйте собственному руководству Adafruit здесь или просто запустите
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | трепать
и принимаю все.
Код python довольно прост: после некоторой начальной настройки бесконечный цикл while отслеживает изменения в значениях потенциометра и нажатие кнопок.
п
Файл station.txt содержит список URL-адресов станций и названий станций, которые будут произноситься при смене станции. Он имеет следующий формат
st1 = https:// someradiostream
n1 = какое-то радио st2 = https:// другой поток n2 = другая станция
В этом файле не должно быть пустых строк.
Чтобы найти URL-адреса станций, я использую www.fmstream.org.
Если вы собираетесь выключить радио, просто отключив питание, рекомендуется установить пи только для чтения, чтобы предотвратить повреждение SD-карты. Сценарий read_only_setup.sh делает это за вас и позволяет переключаться между режимом «только чтение» и «чтение-запись», набирая «ro» и «rw» в терминале.
Шаг 5: Собираем все вместе
Используя стрипборд, я сделал небольшую шляпку, чтобы пикакси и усилитель располагались поверх пи.
Для источника питания я удалил одно из старых разъемов радио и установил новый цилиндрический разъем постоянного тока, к которому я припаял кабель micro USB. Обязательно внимательно проверяйте полярность проводов!
Наконец, подключите все, попробуйте лучше прокладывать провода, как я, закройте крышку и наслаждайтесь радио!
Рекомендуемые:
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: 11 шагов (с изображениями)
Деревянный светодиодный игровой дисплей на базе Raspberry Pi Zero: в рамках этого проекта реализуется светодиодный дисплей на основе WS2812 с разрешением 20x10 пикселей и размером 78x35 см, который можно легко установить в гостиной, чтобы играть в ретро-игры. Первая версия этой матрицы была построена в 2016 году и перестроена многими другими людьми. Это ожидание
Домашний робот EWON на базе Raspberry Pi: 7 шагов (с изображениями)
EWON Raspberry Pi Powered Home Robot: Недавно я обнаружил, что из-за сложившейся ситуации постоянно смотрю много сериалов Netflix, я надеюсь, что вы все в безопасности, и я видел, что был выпущен 5-й сезон «Черного зеркала». Серия антологий, которая вращается вокруг личной жизни группы людей
Система мониторинга домашних животных на базе Arduino и Raspberry Pi: 19 шагов (с изображениями)
Система мониторинга домашних животных на базе Arduino и Raspberry Pi: недавно, находясь в отпуске, мы обнаружили отсутствие связи с нашим питомцем Биглем. После некоторого исследования мы обнаружили продукты со статической камерой, которая позволяла наблюдать за своим питомцем и общаться с ним. Эти системы имели определенные преимущества b
Светодиод, управляемый через Интернет, с использованием веб-сервера на базе ESP32: 10 шагов
Светодиод, управляемый через Интернет с использованием веб-сервера на основе ESP32: обзор проекта В этом примере мы выясним, как настроить веб-сервер на основе ESP32 для управления состоянием светодиода, доступного из любой точки мира. Для этого проекта вам понадобится компьютер Mac, но вы можете запустить это программное обеспечение даже на i
Movie Tracker - трекер театральных релизов на базе Raspberry Pi: 15 шагов (с изображениями)
Movie Tracker - Театральный трекер релизов на базе Raspberry Pi: Movie Tracker - это трекер релизов в форме хлопушки на базе Raspberry Pi. Он использует API TMDb для печати плаката, заголовка, даты выпуска и обзора предстоящих фильмов в вашем регионе в указанный промежуток времени (например, выпуск фильмов на этой неделе) в