
Помните тот небольшой телевизор из заставки "Симпсонов"? Такой же можно собрать самостоятельно, как это сделал один фанат мультсериала. Внутри прибора установлен одноплатный компьютер Raspberry Pi, который случайным образом воспроизводит эпизоды мультсериала, имитируя работу настоящего телевизора из 90-х. Не понадобится ни эфир, ни доступ в интернет: все серии хранятся в памяти устройства. Просто включаете и смотрите. Все, что для это понадобится, – 14 часов вашего времени и кое-какие компоненты.
Что понадобится для сборки
Прежде чем погружаться в процесс создания телевизора, давайте разберемся с необходимыми компонентами. Список получается внушительный, но найти большинство деталей будет довольно легко.

Электронные компоненты:
-
Raspberry Pi Zero W или Zero 2 W с распаянными пинами GPIO
-
LCD-экран Waveshare 2.8" DPI
-
Моно-усилитель мощностью 2.5 Вт
-
Динамик 4 Ом
-
Потенциометр 1 кОм для регулировки громкости
-
Кнопка включения с фиксацией
-
Micro USB разъем для питания
-
Micro USB переходник

Инструменты:
-
Паяльник с тонким жалом
-
Припой (рекомендуется 60/40 с канифолью, диаметр около 0.8 мм)
-
Термоклеевой пистолет
-
Канцелярский нож
-
Кусачки
-
USB-флешка с micro-USB адаптером
-
Маленькая отвертка
-
Суперклей
-
Темно-фиолетовая акриловая краска
-
Третья рука для пайки (необязательно, но очень полезно)
Расходные материалы для 3D-печати:
-
PLA+ пластик фиолетового цвета для корпуса
-
PLA+ пластик черного цвета для антенны и VCR
-
PLA+ пластик голубого цвета для ручек
Процесс 3D-печати

Печать всех деталей займет около 10 часов на принтере уровня Ender 3 Pro, поэтому имеет смысл начать именно с этого этапа.
Настройки печати:
-
Основные детали: слой 0.2 мм, заполнение 10%
-
Мелкие детали: слой 0.16 мм
-
Поддержки нужны только для передней части корпуса
-
Ориентация деталей должна соответствовать их положению в собранном виде
Важно: передняя часть корпуса требует минимальных поддержек и небольшого заполнения (около 10%). При печати ориентируйте детали так, чтобы их рабочая поверхность была обращена к столу – это обеспечит лучшее качество.
Подготовка видеофайлов
Пока принтер трудится над корпусом, займемся подготовкой контента. Для корректной работы на Raspberry Pi все видеофайлы должны соответствовать этим требованиям:
-
Кодек: H264
-
Высота: 480 пикселей
-
Формат контейнера: MP4
И снова важное предупреждение: даже не пытайтесь конвертировать видео напрямую на Raspberry Pi Zero. Этот компьютер, при всей своей универсальности, для кодирования видео категорически не подходит – процесс растянется на дни, если не недели.
Процесс конвертации:
-
Установите FFMPEG на свой компьютер, если он еще не установлен
-
Соберите все видеофайлы в одну папку
-
Скачайте скрипт кодирования (encode.py) из репозитория проекта
-
Запустите скрипт командой:

Процесс конвертации может занять несколько часов в зависимости от количества и длительности видео. После завершения все обработанные файлы окажутся в папке 'encoded'.
Установка и настройка экрана

Экран Waveshare 2.8" станет нашим окном в мир Спрингфилда. Его установка предельно проста и не требует пайки – достаточно просто совместить разъем с пинами GPIO на Raspberry Pi и аккуратно прижать до полного соединения.
Если на вашей плате еще нет распаянных пинов GPIO, придется заняться этим самостоятельно. Процесс не самый простой, но выполнимый даже для начинающего – главное, запастись терпением и следовать инструкции по пайке.

Выбор именно этой модели экрана неслучаен. Waveshare 2.8" использует интерфейс DPI (Display Parallel Interface), который обеспечивает более высокую производительность по сравнению с SPI-экранами аналогичного размера.
Так видео, где каждый кадр должен обновляться достаточно быстро, будет воспроизводиться максимально плавно. Ну, с поправкой на специфичность нашего оборудования, конечно. К тому же, этот экран обладает отличными углами обзора и насыщенной цветопередачей, что делает его идеальным для нашего мини-телевизора.
Отдельного внимания заслуживает система подсветки экрана. В отличие от многих других компактных дисплеев, Waveshare 2.8" имеет равномерную подсветку по всей площади, без заметных ярких пятен по краям. Управление яркостью осуществляется программно через GPIO, что позволяет нам реализовать плавное включение и выключение экрана, имитируя работу старого кинескопного телевизора.
Единственный потенциальный недостаток – относительно высокое энергопотребление в режиме максимальной яркости, но в нашем случае это не критично, так как устройство будет работать от постоянного источника питания.
Настройка операционной системы

Для проекта мы будем использовать специальную версию Raspberry Pi OS – Buster Lite от февраля 2020 года. Это тоже не случайный выбор: более новые версии могут конфликтовать с драйверами экрана, а более старые уже не получают обновления безопасности.
Установка начинается со скачивания образа 2020-02-13-raspbian-buster-lite.zip и записи его на SD-карту при помощи Raspberry Pi Imager – официального инструмента от разработчиков.
После записи образа нужно настроить автоматическое подключение Raspberry Pi к вашей Wi-Fi сети. Для этого создайте на SD-карте файл wpa_supplicant.conf и добавьте в него данные вашей сети. Это позволит подключаться к устройству удаленно, без необходимости подключать клавиатуру и монитор. В том же корневом каталоге создайте пустой файл с именем "ssh" – это активирует возможность удаленного доступа сразу после загрузки системы.
Отдельного внимания заслуживает настройка драйверов экрана. В файл config.txt нужно добавить специальные параметры, которые определяют режим работы дисплея, его ориентацию и тайминги. Может показаться, что значения вроде "dpi_output_format=0x7F216" взяты с потолка, но на самом деле это тщательно подобранные параметры, обеспечивающие стабильную работу экрана. Неправильная настройка этих параметров может привести к искажению изображения или полному отсутствию вывода на экран. Если что-то не поняли, можете изучить инструкцию автора.
Настройка аудиосистемы
Аудиосистема нашего телевизора требует особого внимания, ведь Raspberry Pi Zero не имеет встроенного аудиовыхода. Но мы решим эту проблему, используя PWM (Pulse Width Modulation) – технику, позволяющую генерировать аналоговый звуковой сигнал с помощью цифровых выходов. Для этого нам понадобится перенастроить некоторые GPIO пины и добавить внешний усилитель.

Начнем с конфигурации системы. В файл /boot/config.txt нужно добавить параметры, активирующие аудиовыход через GPIO. Особенность нашей конфигурации в том, что мы используем пины 18 и 19 для вывода звука, при этом пин 18 также задействован для управления подсветкой экрана. Звучит как конфликт? Не волнуйтесь – мы решим эту проблему с помощью специального скрипта, который будет перенастраивать пины при загрузке системы.
Самая интересная часть – это настройка усилителя. Мы используем простой, но эффективный моно-усилитель мощностью 2.5 Вт. На первый взгляд может показаться, что этого недостаточно, но для такого компактного устройства это оптимальная мощность. К тому же, оригинальные телевизоры того времени редко могли похвастаться качественным звуком. Управление громкостью реализовано через потенциометр, что дает более естественное ощущение при регулировке, чем цифровое управление через кнопки.

Сборка электронных компонентов
Пайка компонентов – пожалуй, самый ответственный этап сборки. Начнем с подготовки рабочего места: помимо паяльника вам понадобится хорошее освещение и вентиляция. Припой с канифолью минимизирует необходимость использования дополнительных флюсов, но все равно лучше работать в проветриваемом помещении. Если у вас есть паяльная станция с регулировкой температуры – отлично, если нет – обычный паяльник тоже подойдет, главное, чтобы его мощность была не менее 30 Вт.

Первым делом займемся аудиосхемой. Усилитель требует четырех соединений: питание, земля, аудиовход и выход на динамик. Важный момент: на плате усилителя есть регулятор громкости, который нужно выставить на максимум, так как фактическую регулировку мы будем осуществлять через внешний потенциометр. Обращайте особое внимание на полярность при подключении питания – неправильное подключение может вывести усилитель из строя.
Кнопка включения и потенциометр монтируются на переднюю панель корпуса. Провода к ним лучше припаять до установки в корпус – так будет удобнее работать. Для кнопки используйте провода длиной около 10 см, для потенциометра – чуть длиннее, около 15 см. Это обеспечит достаточную свободу при окончательной сборке. Все соединения лучше защитить термоусадочными трубками – это не только эстетично, но и предотвращает короткие замыкания.
Монтаж компонентов в корпус
Сборка корпуса начинается с подготовки всех напечатанных деталей. Первым делом нужно удалить все поддержки и заусенцы – это критично для правильной стыковки деталей. Особое внимание уделите местам крепления экрана и платы Raspberry Pi. Если детали не стыкуются идеально, слегка пройдитесь по стыковочным поверхностям наждачной бумагой с мелким зерном. Не переусердствуйте – достаточно убрать явные дефекты печати.

Перед установкой электроники рекомендуется покрасить некоторые элементы корпуса темно-фиолетовой акриловой краской. Речь идет о ножках телевизора и окантовке вокруг экрана. Красить нужно тонкими слоями, давая каждому слою полностью высохнуть. Обычно достаточно двух слоев для получения равномерного покрытия. Если краска легла неровно, ее можно аккуратно стереть влажной салфеткой и попробовать снова – одно из преимуществ акриловой краски в том, что она легко смывается водой до полного высыхания.

Установка экрана требует особой аккуратности. Сначала нужно снять защитную пленку с дисплея – момент, от которого захватывает дух у любого гика. Затем установите экран в переднюю часть корпуса, используя термоклей для фиксации. Важно: наносите клей только по краям экрана и следите, чтобы он не попал на видимую часть дисплея. Также избегайте попадания клея в места защелкивания корпуса – это может помешать окончательной сборке.
Настройка программного обеспечения
Теперь, когда все компоненты установлены, пришло время оживить наш телевизор. Первым делом нужно установить необходимые пакеты для воспроизведения видео. Мы будем использовать omxplayer – легковесный видеоплеер, специально оптимизированный для Raspberry Pi. Он прекрасно справляется с воспроизведением видео даже на слабом железе Pi Zero, используя аппаратное ускорение декодирования.
Следующий важный компонент – скрипты управления. Нам нужно два Python-скрипта: один для обработки нажатий кнопок и регулировки громкости, другой для воспроизведения видео в случайном порядке. Эти скрипты должны запускаться автоматически при старте системы. Для этого мы создадим специальные службы systemd. Может показаться, что это излишне сложно, но такой подход обеспечивает надежную работу системы и автоматический перезапуск скриптов в случае сбоев.

Отдельного внимания заслуживает настройка автомонтирования USB-накопителей. Это необходимо для удобного обновления видеотеки – просто подключаете флешку с новыми сериями, и система автоматически их обнаружит. Для этого устанавливаем пакет usbmount и настраиваем его конфигурацию. Важный момент: в новых версиях Raspbian эта функция может работать нестабильно из-за изменений в systemd, поэтому требуется дополнительная настройка параметра PrivateMounts.

Финальные штрихи
После базовой настройки программного обеспечения стоит уделить внимание оптимизации производительности. В файле конфигурации ядра можно отключить ненужные интерфейсы и сервисы, что ускорит загрузку системы и снизит энергопотребление. Например, поскольку мы не используем Bluetooth, его можно смело отключить. То же касается HDMI-выхода – весь вывод идет через DPI-экран, поэтому HDMI нам не нужен.

Оформление корпуса требует финальных штрихов. Антенна, собранная из черного пластика, устанавливается в специальные отверстия на корпусе VCR. Для лучшей фиксации используйте небольшое количество суперклея. VCR, в свою очередь, приклеивается к верхней части телевизора. Не старайтесь сделать это идеально ровно – небольшой перекос даже добавит шарма, делая устройство более похожим на свой мультипликационный прототип.
И последний, но важный момент – тестирование. Запустите устройство и дайте ему поработать несколько часов. Проверьте, не греется ли чрезмерно процессор или усилитель, работает ли корректно регулировка громкости, не пропадает ли звук при длительной работе. Если все в порядке – поздравляем, вы стали обладателем уникального гаджета, который точно станет предметом зависти всех фанатов Симпсонов!
Автор: Xcom-shop