Трансляция треков
rc="https://saintist.ru/wp-content/uploads/2024/05/pifm-teaser.jpg" alt="пифм-тизер">Вы можете использовать Raspberry Pi для множества интересных проектов. Но недавно я узнал, что это маленькое устройство можно использовать и в качестве FM-передатчика. И это без особых усилий.Группа людей из Code Club pihack написала программу для использования аппаратного обеспечения Raspberry Pi, предназначенную для генерации тактовых сигналов с расширенным спектром вместо вывода сигналов FM-радио.
Фон
Немного предыстории. Помимо знакомых портов Audio, Ethernet, HDMI и USB на Raspberry Pi, устройство также имеет интерфейсы, предназначенные для более прямого подключения к другим чипам и модулям.
Эти «порты» ввода-вывода общего назначения (GPIO) представляют собой 26-контактные (расположе
Фон
2×13), которые вы видите на плате. Эти интерфейсы не поддерживают технологию Plug-and-Play, но ими можно управлять с помощью программного обеспечения.Чтобы передать удивительно сильный FM-сигнал, все, что вам нужно, — это подключить провод к 4-контактному разъему GPIO. Даже без кабеля FM-сигнал, транслируемый Raspberry Pi, будет принят ближайшими FM-приемниками.
Предупреждение. Законы о трансляции FM-сигналов различаются в разных странах. Прежде чем приступить к реализации этого проекта, ознакомьтесь с местными правилами.
Готово, готово, вперед
Включите Pi и перейдите к командной строке либо через SSH, либо напрямую войдя в устройство.
Теперь мы возьмем код, написанный на хакфесте Code Club, и распакуем его:
mkdir ~/pifm cd pifm wget http://omattos.com/pifm.tar.gz tar zxvf pifm.tar.gz
Теперь каталог содержит шесть файлов. На удивление, это все, что нужно. Теперь вы можете транслировать включенный файл «sound.wav»:
sudo ./pifm sound.wav 102.3
Теперь возьмите FM-приемник и установите его на FM 102.3, и вы должны услышать музыкальную тему «Звездных войн». Фактически вы можете изменить частоту вещания в диапазоне от 88 до 108 МГц, просто добавив частоту канала в конце команды.
Готово, готово, вперед
Вы также можете воспроизводить другие аудиофайлы, но они должны быть 16-битными, 22050 Гц моно и только в формате WAV. Это может показаться реальным ограничением, но на самом деле это не так. Все, что вам нужно, это аудиоредактор SoX Sound Exchange, который мгновенно обработает ваш MP3-файл и преобразует его в WAV-файл.
Установите аудиоредактор и его зависимости с помощью:
sudo apt-get install sox libsox-fmt-all
Когда это будет сделано, введите следующую команду, заменив «SomeSong.mp3» именем файла MP3, который вы хотите воспроизвести:
sox -t mp3 SomeSong.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3
Первая часть команды преобразует файл MP3 в файл WAV, изменяет частоту дискретизации звука на 22050 и микширует дорожку в моно. Преобразованная дорожка затем отправляется на стандартный вывод, обозначаемый знаком дефиса (-), а затем передается по конвейеру (|) на стандартный ввод команды pifm.
Единственное отличие команды pifm
в приведенном выше примере заключается в том, что вместо указания имени файла для трансляции мы просим сценарий передать стандартный ввод.
Если ваш FM-приемник все еще настроен на частоту 102,3, теперь вы должны услышать свой MP3! Опять же, как и в исходном примере, не стесняйтесь заменять частоту на любое значение между 88 МГц и 108 МГц.
Трансляция подкастов
С помощью SoX можно делать замечательные вещи. Вы можете, например, использовать его для прямой трансляции любимых трансляций из Интернета.
Чтобы транслировать подкаст Linux Voice:
sox -t mp3 http://www.linuxvoice.com/episodes/lv_s02e01.mp3 -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3
Единственное отличие этой команды от предыдущего примера заключается в том, что вместо указания на локальный MP3-файл теперь вы указываете на тот, который находится в сети.
Точно так же можно транслировать онлайн-радиостанцию. Многие станции публикуют файл M3U, и вы можете указать на него:
sox -t mp3 http://www.ndr.de/resources/metadaten/audio/m3u/ndrloop5.m3u -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3
Не все станции транслируют потоки MP3. Некоторые используют другие форматы, такие как OGG. Все, что вам нужно, это изменить тип входного файла, который вы конвертируете с помощью sox. Например:
sox -t ogg http://network.absoluteradio.co.uk/core/audio/ogg/live.pls?service=a6bb -t wav -r 22050 -c 1 - | sudo ./pifm - 102.3
Если вы ищете онлайн-радио, вот огромный список европейских радиостанций , которые транслируются онлайн.
Изображение предоставлено: Роберт Эшворт