HTPC в корпусе видеомагнитофона

Завершил по большей части маленький проект по сборке медиацентра в корпусе от видеомагнитофона:

Есть у меня медиацентром — HTPC в корпусе 3R System M-Station HT-3000, внутри Gigabyte G31M-ES2L без дискретной видюхи. Работает тихо, но вот только не проигрывает видео в HEVC. После раздумий об апгреде решил собрать новый HTPC. Была приобретена б/у материнка ASRock J3455B-ITX (интегрированное видео поддерживает HEVC и частично HEVC 10 bit). Из запасов хлама выбрал видеомагнитофон Fisher FVH-U908 и разобрал на корпус и всё остальное:

Мешающийся пластик убран для размещения блока питания и материнки. Блок питания пришлось найти с низкими радиаторами и вынуть из корпуса — высота внутри около 6 см. Свободное место в корпусе вокруг задней планки материнки решил закрыть сеткой — будет для вентиляции внутри корпуса. На авторынке нашел подходящую сетку, после вырезания отверстия под планку, оказалось что проволочки плохо держаться — ячейки начинают расходиться. Пришлось по контуру пропаять. При проверке работы выяснилось что больше всего греется блок питания, решил сделать принудительную циркуляцию воздуха вентилятором 70 мм в центре корпуса в расчете что воздух будет заходить через сетку у материнки и выходить через вентиляционные прорези у блока питания. Выбора из 70 мм не было, оказался высокооборотистый и шумный — пришлось в провод питания добавить резистор:

Плату передней панели решил оставить, только разорвал все дорожки от кнопок и индикатора. Индикатор тут вакуумно-люминисцентный (ВЛИ, он же VFD), что требует нестандартных напряжений для компьютера: 4 В переменного и -30 В постоянного тока (взято из найденной схемы этого видеомагнитофона). Преобразователь переменного напряжения для накала сделан по одной из найденных схем:

Преобразовать для отрицательного напряжения на MC34063:

Управление анодами и сетками сделано p-n-p транзисторах:

По схема видеомагнитофона ВЛИ имеет 15 анодов (сегментов) и 9 сеток (рядов). Для реализации динамической индикации 9 рядов по 15 сегментов (24 бита) использованы три сдвиговых регистра CD74HC595 — что позволяет подключить по SPI к Arduino.

Все преобразователи и управление собрано на макетной плате. Так же к Arduino подключены кнопки передней панели — сделаны они были с динамическим сканированием 3 ряда 5 колонок (использовал библиотеку Keypad). Имеющимся IR-приемником возникли проблемы, пришлось заменить на более менее современный из серии TSOP. Для работы с пультом использовал библиотеку Arduino-IRremote, но сразу не заработала с подаренным пультом. Этот пульт покупали за замену к Smart-TV Sony, но там не заработал. IRremote принимал его команды как неизвестный протокол, но при этом декодированные коды были постоянным. Пришлось немного доработать код библиотеки, чтобы возвращал эти коды как есть.

Оставшееся свободное место в корпусе, там где лентопротяжный механизм решил использовать под DVD. К сожалению оставшиеся исправные DVD с IDE интерфейсом через переходник IDE-SATA толком не заработали, так что был куплен б/у DVD с SATA интерфейсом. На переднюю планку приклеил шторку от лентопротяжного механизма:

С подключением многоканального звука на ASRock J3455B-ITX оказалась проблема — центральный канал предполагалось включать в разъем микрофона. Возникает громкий щелчок при включении питания и переключении драйвером входа на выход. Решил для центрального канала использовать выход на переднюю панель (разъем HD_Audio). По схеме подключения HD Audio панели распаял только подключение Jack 2 с замкнутым Sense2_return и резистором на Presence:

Разъем закрепил на задней планке материнки:

Для отключения активных колонок у меня есть доработанный удлинитель с реле на 5 В, в корпусе рядом с блоком питания закрепил разъем с выходом 5 В. В сборе HTPC получился так:

Проигрывание видео не создает большой нагрузки, потребление всей системы достаточно низкое — корпус холодный, самыми горячими местами являются блок питания и индикатор. И судя по нагреву, теплый воздух выходит так же спереди:

В качестве медиаплеера решил взять Kodi. Вариант LibreELEC у меня толком не заработал, так что выбрал Ubuntu 20.04 LTS и Kodi 19. Выход для центрального канала переназначил с помощью HDA-Jack-Retask (из пакета alsa-tools).

Вывод на индикатор сделан через LCDd, драйвер serialVFD с настройкой размера 40×1. На Arduino сделан парсинг этой строки и отображение цифровой и символьной информации. В LCD.xml плагина LCDproc настроил вывод минимальной информации: номер трека, время:

    <music>
       <line>$INFO[LCD.PlayIcon],TR,$INFO[MusicPlayer.TrackNumber].,$INFO[Player.Time]</line>
    </music>
    <video>
       <line>$INFO[LCD.PlayIcon],,$INFO[System.Time],$INFO[Player.Time]</line>
    </video>
    <tvshow>
       <line>$INFO[LCD.PlayIcon],EP,$INFO[VideoPlayer.Episode].,$INFO[Player.Time]</line>
    </tvshow>

На Arduino сделан вывод в порт принятых кодов с пульта или назначенных кодов на кнопки передней панели. Парсинг кодов сделан просты скриптом с эмуляции клавиатуры через xdotool.

#!/bin/bash
stty -F /dev/ttyUSB0 115200 raw -clocal -echo

declare -A keys

# IR Remote
keys["EC27D43D"]="xdotool key Up" # up
keys["86BD99C"]="xdotool key Down" # down
keys["1A422E43"]="xdotool key Left" #left
... и т.д. для всех кнопок пульта

# Keys
keys["FEEEEE30"]="xdotool key Left" # Tr-
keys["FEEEEE31"]="xdotool key Right" # Tr+
... и т.д. для всех кнопок передней панели

while read line; do
	if [ "$line" != "EOF" ]; then
		code=`printf  "$line" | tr -d '\r\n'`
		command=${keys[$code]}
		if [ -n "$command" ]; then
			`$command`
		else
			echo $code
		fi
	else
		break
	fi
done < /dev/ttyUSB0

Скрипт как и Kodi добавлены в автозапуск Ubuntu.

Оставьте комментарий


Срок проверки reCAPTCHA истек. Перезагрузите страницу.