Оглавление:

Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)
Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)

Видео: Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)

Видео: Интернет-радио на базе Raspberry Pi: 5 шагов (с изображениями)
Видео: Raspberry Pi Internet Radio 2024, Ноябрь
Anonim
Image
Image
Интернет-радио на базе Raspberry Pi
Интернет-радио на базе Raspberry Pi
Интернет-радио на базе Raspberry Pi
Интернет-радио на базе Raspberry Pi

Есть что-то приятное в повороте переключателей и нажатии кнопок, как на старых радиоприемниках. К сожалению, многие из этих радиоприемников сломаны или на станциях не работает звук. К счастью, не так уж сложно превратить любое радио в интернет-радио с помощью 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
Picaxe
Picaxe
Picaxe
Picaxe
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

Raspberry Pi
Raspberry Pi
Raspberry Pi
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. Обязательно внимательно проверяйте полярность проводов!

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

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