Оглавление:

PAB: персональная аудиосистема: 5 шагов
PAB: персональная аудиосистема: 5 шагов

Видео: PAB: персональная аудиосистема: 5 шагов

Видео: PAB: персональная аудиосистема: 5 шагов
Видео: Базовые шаги аргентинского танго 2024, Июль
Anonim
PAB: персональная аудиосистема
PAB: персональная аудиосистема

Идея этого проекта родилась из-за необходимости очистить три больших компонента системы Hi-Fi, срок службы которой подошел к концу. Вдобавок мне нужно было больше места на полке для других предметов, поэтому я воспользовался возможностью начать изучение с Personal Audio Box, чтобы заменить все функции трех старинных «гигантов».

Raspberry Pi3B + оказался лучшим выбором по следующим причинам:

  • Малый форм-фактор и низкое энергопотребление;
  • Аудио выход PCM с приемлемым качеством;
  • Наличие mopidy, расширяемого музыкального сервера, реализующего протокол mpd;
  • Высокая интеграция источников: местная музыка, CDROM, радиопотоки, Spotify, Tunein и т. Д.

Интегрировав его с несколькими другими компонентами, я смог создать полную и автономную систему, способную воспроизводить музыку с компакт-дисков, локальных файлов, онлайн-радио, плейлистов Spotify, подкастов. А благодаря использованию внешнего интерфейса я теперь могу управлять всеми его операциями с любого устройства, подключенного к локальной сети (смартфон, компьютер, планшет).

Запасы

  • Малина PI3B +
  • Старый футляр для DVD
  • Считыватель CDROM
  • Блок питания 5В-5А
  • Суперконденсаторы
  • Различные компоненты (транзисторы, светодиод, реле, операционный усилитель): см. Детали проекта

Шаг 1: корпус и расположение компонентов

Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов
Корпус и расположение компонентов

Первой проблемой, с которой я столкнулся, был выбор и поиск подходящего корпуса. Ничего не найдя дома, я нашел этот дешевый DVD-плеер на Amazon за несколько долларов, но ничего подобного будет достаточно. Кейс имеет следующие размеры: 27см х 20см х 3,5см.

Я полностью удалил все содержимое, оставив только небольшую плату для управления передним светодиодом, кнопкой питания и входом USB. Затем я спланировал внутреннее расположение новых компонентов (см. Рисунок).

Шаг 2: Переключатель аудио-стерео чувствительности

Переключатель аудио стерео чувствительности
Переключатель аудио стерео чувствительности
Переключатель аудио стерео чувствительности
Переключатель аудио стерео чувствительности
Переключатель аудио стерео чувствительности
Переключатель аудио стерео чувствительности

Почему автоматический переключатель звука? Необходимость возникает из-за того, что я часто слушаю ТВ через усилитель HiFi, но мне не хотелось каждый раз выбирать переключатель источника на усилителе. В этой схеме вход усилителя всегда один и тот же, а источник автоматически выбирается переключателем Audio Stereo Sensing.

Схема проста. Когда PAB не воспроизводится, источник звука для HiFi исходит от телевизора. Если PAB играет, реле выбирает звук из Raspberry.

Шаг 3: коробка суперконденсаторов

Коробка суперконденсаторов
Коробка суперконденсаторов
Коробка суперконденсаторов
Коробка суперконденсаторов

Как известно, внезапное прерывание подачи питания на Raspberry вызывает немедленное отключение питания без выполнения процедуры выключения, что может поставить под угрозу операционную систему и, следовательно, ее общую функциональность. Суперконденсатор отличается от традиционного конденсатора двумя существенными характеристиками: его пластины на самом деле имеют большую площадь, а расстояние между ними намного меньше, поскольку встроенный изолятор работает иначе, чем обычный диэлектрик. С помощью этих технологий можно изготавливать конденсаторы очень большой емкости (порядка нескольких десятков фарад) при сохранении малых размеров. Поэтому идея состоит в том, чтобы создать «буфер» 5 В через суперконденсаторы и активировать отключение при обнаружении отсутствия напряжения питания. Таким образом, больше не нужно будет вручную вмешиваться, чтобы запустить выключение, а просто удалите заглушку (или активируйте переключатель), чтобы обеспечить безопасное выключение.

Обращаясь к схеме, источник питания подается на левый вывод, а диод Шоттки предотвращает возврат тока в источник питания. Два параллельных резистора мощностью 1,2 Ом 5 Вт ограничивают ток заряда суперконденсаторов для защиты источника питания. Без этих резисторов пиковый ток, требуемый двумя разряженными суперконденсаторами, почти наверняка мог бы повредить источник питания. Силовой диод обязательно должен быть типа Шоттки, чтобы обеспечить минимальное падение напряжения последовательно с полосой 5 В.

Два суперконденсатора соединены последовательно, чтобы обеспечить максимальное напряжение 5,4 В на их концах (каждый суперконденсатор - 10F, 2,7 В), а два резистора, подключенных параллельно емкостям, уравновешивают зарядные токи и гарантируют медленный разряд при включении Raspberry. выключенный. Два резистора 1 кОм, параллельные входу, делят 5 В источника питания пополам, чтобы получить необходимый сигнал для обнаружения сбоя питания (подключенного к Raspberry GPIO 7). В отличие от современных литиевых элементов, суперконденсаторы гарантируют практически бесконечное количество циклов заряда и разряда без потери каких-либо характеристик.

Таким образом, схема сможет поддерживать питание и работу Raspberry в течение времени, необходимого для выполнения регулярного отключения. Начало процесса выключения будет обнаружено программой, работающей на Raspberry, которая будет отслеживать состояние GPIO 7, к которому подключен уровень мощности. Когда питание отключено, вывод 7 GPIO переходит на низкий уровень и запускает отключение. Это код:

#! / usr / bin / env python

import RPi. GPIO as GPIO import subprocess GPIO.setmode (GPIO. BCM) # используйте нумерацию GPIO GPIO.setwarnings (False) INT = 7 # pin 26 мониторов Power Supply # используйте слабое pull_up для создания высокого GPIO.setup (INT, GPIO. IN, pull_up_down = GPIO. PUD_UP) def main (): while True: # установить прерывание по падающему фронту и дождаться его возникновения GPIO.wait_for_edge (INT, GPIO. FALLING) # снова проверить уровень вывода, если GPIO.input (INT) == 0: # все еще низкий, выключение Pi subprocess.call (['poweroff'], shell = True, / stdout = subprocess. PIPE, stderr = subprocess. PIPE) if _name_ == '_main_': главный()

Программа должна быть сохранена в / usr / local / bin /.py и настроена для запуска при запуске Raspberry. Проведенные испытания показали, что емкости двух суперконденсаторов достаточны для обеспечения времени отключения Raspberry. Если потребуется больше времени, будет достаточно ввести два других суперконденсатора параллельно существующим или заменить их двумя большей емкостью.

Шаг 4: Сборка и использование USB-портов

Сборка и использование USB-портов
Сборка и использование USB-портов

На блок-схеме показано, как подключить несколько устройств для PAB к основной шине 3 (+ 5В, USB и аудио стерео).

Обратите внимание, что источник питания CD-ридера был подключен напрямую к основному источнику питания через Y-образный кабель, а аудиовход идет к Raspberry. Четыре порта USB Raspberry используются для:

  • CD-ридер;
  • флеш-накопитель на 250 ГБ для хранения локальных музыкальных файлов (mp3, m4a, wma, flac и т. д.);
  • micro SD-карта на 16 ГБ (с USB-адаптером) для хранения полной резервной копии основной Raspi SD (см. ниже);
  • подключение к внешнему USB-порту на корпусе.

Внешний USB-порт можно использовать для воспроизведения внешней музыки или для питания внешних устройств. В моем случае я включаю внешний передатчик Bluetooth, так как я отказался от внутреннего передатчика Raspi из-за малого радиуса действия и нестабильности. С внешним bluetooth я вожу дома 2 разных стереодинамика.

Карта micro SD на 16 ГБ (с USB-адаптером) содержит полную резервную копию Raspberry. Я использую rpi-clone, который оказался очень хорошим проектом, позволяющим создать полную рабочую резервную копию Raspberry без необходимости извлекать внутреннюю SD-карту. Я много раз менял эту SD на внутреннюю без проблем. Итак, я установил cronjob для пользователя root:

# Резервное копирование на sda - каждую среду вечером

15 2 * * 3 / usr / sbin / rpi-clone sda -u | mail -s "Бэкап PAB на SD - сделано"

Затем я повторно использовал исходную кнопку питания на корпусе, чтобы выключить и перезапустить Raspberry, следуя этому руководству:

Шаг 5: Программное обеспечение и операционная система

Программное обеспечение и операционная система
Программное обеспечение и операционная система
Программное обеспечение и операционная система
Программное обеспечение и операционная система
Программное обеспечение и операционная система
Программное обеспечение и операционная система

Основная операционная система PAB - это простой минимал Raspbian (Debian Buster) с несколькими специфическими дополнениями:

  • rpi-clone для основного резервного копирования;
  • ssmtp, простой MTA для удаления почты из системы;
  • udevil, чтобы разрешить автоматическое монтирование USB-накопителей;
  • abcde, чтобы взять мою коллекцию компакт-дисков и сжать ее в любой аудиоформат;
  • mopidy, полноценный демон музыкального проигрывателя с кучей плагинов.

Затем я написал полное серверное приложение PAB Scheduler с использованием python3 и tornado, код которого выходит за рамки этой статьи, но я могу предоставить инструкции по запросу. С помощью Планировщика вы можете настроить плейлисты на любое время дня, отличая будние дни от выходных.

Основное программное обеспечение, на котором работает PAB, - это mopidy. Для установки и настройки mopidy (довольно обширного) обратитесь к его документации здесь:

Это установленные плагины:

  • Mopidy-Alsamixer
  • Мопиды-Интернетархив
  • Mopidy-Local-Sqlite
  • Mopidy-Подкаст
  • Мопиди-Скробблер
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Мопиди-Ирис
  • Mopidy-Local-Images
  • Mopidy-TuneIn

Чтобы получить полный контроль над PAB, я выбрал расширение внешнего интерфейса Iris (см. Рисунки). Это очень мощное веб-приложение со следующими функциями:

  • Полное управление через веб-интерфейс для Mopidy
  • Улучшена поддержка локальных библиотек (на базе Mopidy-Local-Sqlite).
  • Просматривайте и управляйте плейлистами и треками
  • Откройте для себя новую, популярную и похожую музыку (на базе Spotify)
  • Свободно размещенный
  • Интеграция с:

    • Spotify
    • Ласт фм
    • Гений
    • Snapcast
    • Icecast

Таким образом, я могу управлять своей музыкой практически из любого места (с компьютера, планшета, смартфона).

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