用树莓派组装你自己的复古电视吧!


转载
发布时间: 2025-12-27 21:56:19 | 阅读数 0收藏数 0评论数 0
封面
TVArgenta:一台复古风格的电视,采用树莓派和3D打印机壳,旨在带回那种混乱而迷人的老电视世界——广告也包括在内!你可以加载任何你想要的内容——来自你国家的本地广告、复古动画片,甚至是你的家庭视频。 最棒的是?相同的硬件配置可以被你想象中的任何其他用途重用——从RetroPie游戏主机到数字艺术画框,或定制离线媒体播放器。 一切运行100%离线,给你一个自成一体、充满怀旧感的体验,由树莓派驱动——部分是复古记忆,部分是创客项目,部分是讲故事的机器。

准备工作:

1

前言

什么是TVArgenta(高级)

TVArgenta是一个围绕树莓派构建的自成一体复古电视体验。 是的:

  1. 离线优先——所有视频和元数据都在线在设备上(无需流媒体流)。
  2. Oldschool——旋转编码器作为老派频道切换的旋钮。
  3. 怀旧界面——CRT风格的蓝色菜单、频道间的静电噪音和简短的开场,营造出真实的“电击”感。
  4. 可共享——机箱和后端设计使其他制作者能够采用并调整系统以适应他们自己的内容(广告、家庭视频、短纪录片、地区片段,任何定义“家”的话)。


后端——运行在树莓派4上(它的功能)

在简单的界面背后,有一个小巧但功能强大的后端,运行在Pi 4上,负责内容和管理。主要特点:

  1. 内容管理——将视频文件、缩略图和元数据存储在本地。
  2. 频道创建与标签——创建“频道”来分组视频;标签使得创建主题频道变得简单(例如,“广告歌”、“体育广告”、“度假胜地”)。
  3. 视频同步与缩略图——自动生成缩略图和简单的一致性检查,确保播放界面始终有所需内容。
  4. 管理界面——本地网页界面,用于上传内容、管理频道以及配置播放顺序和开场白。(所有服务均本地提供,无需网络。)
  5. 播放引擎——轻量级服务,界面查询“下一”项,支持开场视频、频道开场和定时播放模式。

我不会深入讲技术内容——代码、接线图和逐步说明很快会上传到GitHub,方便你复制或分支。


GIF
firefox_4gsehePcdM.gif
12.49MB
GIF
firefox_66ffJdZ0CL.gif
1.14MB
2

外壳设计

视觉目标是唤起90年代小型CRT电视的外观和比例,但又不显得笨重的全尺寸电视。外壳是3D打印的,采用卡扣连接,需要维护的部件(屏幕、树莓派、扬声器、编码器)使用M3螺丝。我设计了内部安装点,方便线缆布线,方便拆卸Pi进行维护。

我把3D文件上传到了MakerWorld,这样其他创作者可以打印自己的外壳或改编设计。

电击行为——快速跳频道使用编码器获得触觉满足感;短暂的静电/噪声过渡重现了数字时代之前的感觉。

频道开场——每个频道都可以有一个开场剪辑(简短的铃声或缓冲音),以增强沉浸感。

本地管理员——通过连接树莓派的本地管理员页面,从手机或笔记本添加视频;不需要网络。

离线安全——内容会留在设备上;该项目适合离线、注重隐私的环境。


GIF
firefox_4pplOXS6JJ.gif
3.37MB
GIF
firefox_LV3w7PJ1o8.gif
7.63MB
3

项目结构

这是给谁的?

  1. 喜欢怀旧、想要一个小而自成一体的项目的创作者。
  2. 希望与年轻一代保存或分享文化记忆的家庭。
  3. 那些希望拥有一个平台来策划线下或本地体验的短视频创作者。
  4. 任何喜欢老派交互(编码拨号)和简单迷人界面的人。
  5. 这也可能是一个适合Retropie项目的好外壳!

我接下来会发表什么(以及在哪里)

  1. 2025年10月8日发布完整的源代码(后端、管理界面和播放引擎)可在GitHub上提供——接线图、系统/服务指导和配置示例将随之发布。
  2. MakerWorld上的3D文件(3MF),这样你可以打印外壳和安装部件。
  3. 详细的零件清单,附有链接和几个可选的物料清单选项(预算/表面处理更好)。

如果你想复现,GitHub仓库将是唯一的真实来源——从软件到案例的CAD文件,所有资料都会在那里提供。


4

基本树莓派配置

我们准备SD卡(这次我用的是64GB的)。为此,我们使用Raspberry Pi Imager。请务必选择以下选项:

在主机名字段里,我会设置 argentv.local(我们稍后会用,但你可以选择任何主机名)。

确保配置好Wi-Fi凭证、语言和地区。保持SSH开启,这样你以后可以远程访问树莓派:

点击安装,我们几分钟后😉会再见面[...]刷机完成后,将SD卡插入树莓派。如果你看到以下画面,说明你走在正确的道路上:

5

远程访问

接下来,我们将尝试远程访问树莓派。打开你的指挥控制台并输入:

SSH Argentv.local

你可能会看到以下信息:

如果发生这种情况,试试这个:

ssh-keygen -R argentv.local

完成后,再用 ssh argentv.local 试一次,这次你应该会看到类似图3这样的内容:

6

安装新的证书

输入“是”后,会安装新的证书,并建立与树莓派的SSH连接。

设置时,我的用户名是“rs”。你的情况可能不同——接下来要记住这一点。

既然这是格式化SD卡后的第一次启动,我们来执行以下命令:

sudo apt update && sudo apt upgrade –y

现在我们来克隆GitHub仓库。在此之前,我们需要配置SSH密钥。


1)如果你已经有SSH密钥,可以跳过这一步

ls -l ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub 2>/dev/null || true

2)生成一个新密钥(ED25519)。选择一条有用的评论:

ssh-keygen -t ed25519 -C "pi@argentv"

按下回车以接受默认路径(~/.ssh/id_ed25519)。你可以留空密码(只需按回车键),或者添加一个以增强安全性。

3)展示公钥(这个要放到GitHub)

cat ~/.ssh/id_ed25519.pub

4) (可选) 把它加载到SSH代理里,这样你就不用每次都输入密码短语了

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

复制那个公钥并添加到你的GitHub账户:GitHub →你的头像 →设置→SSH和GPG键→新的SSH密钥→粘贴该密钥。

5)测试与GitHub的连接(GitHub会显示你的用户名)

ssh -T git@github.com

如果一切正常,你会收到类似“Hi [user]! You’ve successfully authenticated, but GitHub does not provide shell access."

7

克隆GIT中心仓库

现在准备目录,克隆仓库。

/srv 文件夹通常默认存在,但如果没有,你可以创建它:

sudo mkdir -p /srv

接下来,把该文件夹的所有权交给你当前的用户(用你自己的用户名替换 rs)。

这样你可以在 /srv 里写作,不用一直用 sudo:

sudo chown -R rs:rs /srv


选项A——使用HTTPS克隆(最简单)

如果你还没在GitHub设置SSH密钥,这是推荐的方法。

CD /SRV
Git clone https://github.com/rsappia/TVArgenta-Release.git tvargenta
CD /SRV/Tvargenta


选项B——使用SSH克隆(面向高级用户)

如果你的GitHub账户里已经配置了SSH密钥,可以使用这个。

CD /SRV
git clone git@github.com:rsappia/TVArgenta-Release.git tvargenta
CD /SRV/Tvargenta


8

安装系统和项目依赖

运行

Python3 -m venv venv
来源:venv/bin/activate
sudo apt update & sudo apt install -y python3-pip & & python3 -m pip 安装 --upgrade pip & python3 -m pip 安装 Flask

我们还来准备编译编码器.c文件所需的材料:

Sudo apt install -y build-essential libgpiod-dev pkg-config

更改目录以编译编码器 .c 文件:

CD /SRV/TVARGENTA/SOFTWARE/APP/NATIVE

到达后,运行编译器:

GCC encoder_reader.c -o encoder_reader $(pkg-config --cflags --libs libgpiod)

如果一切顺利,你现在应该会看到编译后的.bin文件放在.c文件旁边

9

设置正确权限

chmod +x encoder_reader
CD /SRV/Tvargenta/Software
chmod +x 脚本/*.sh

现在,我们可以做个初步测试,确保一切正常。转到:

CD /srv/tvargenta/software/app $

然后运行:

Python main.py

如果一切正常,你应该会看到一段介绍视频,随后是频道的播放——目前频道将是空的,处于默认状态,这意味着你会看到“黑屏”。

试着转动或按下编码旋钮,调出菜单。


10

添加首批视频

我们来加几个视频,确保一切正常运行。你可以使用已包含的视频:

/srv/tvargenta/software/app/assets/Splash/videos

这些都是默认在GitHub仓库里的。


有了这个,你已经可以开始玩了。下一章我会讲音频配置,第三章则讲解硬件本身的所有相关内容。


11

硬件

硬件方面,唯一的手工元件是我用双面可焊接原型板制作的一块小型连接板。它负责音频接口、旋转编码器及其他外设的布线,并通过JST XH 2.5毫米连接器将所有设备整合在一起。这使得安装更加简洁、模块化,维护也更安全。所有线缆都是我自己组装的,切割并压接到整洁内部布局所需的精确长度。

12

连接编码器

对于编码器,应进行以下连接:

CLK ➔GPIO 23,16号针

DT ➔GPIO 17,第11针

SW ➔ GPIO 27,第13脚

GND ➔ 14 脚

3V3 ➔ 第17针


13

音频设置

音频接口的引脚配置如下:

DIN➔ GPIO 21(引脚40)

BCLK➔GPIO 18(第12号旗杆)

LRC➔ GPIO 19(引脚35)

GND➔ 39号引脚

5V➔ 2号脚


14

按钮

将以下引脚连接到按钮上

GPIO3,引脚5

接地,第9脚


15

LED

4.7k电阻连接到LED引脚,降低电流,确保LED不会像激光一样照射你;)

LED阳极 ➔GPIO 25,引脚22

LED电极管➔GND,引脚20


16

编译GPIO低级接口

用libgpiod 1.6.3构建编码辅助工具。首次安装头部

sudo apt install -y libgpiod-dev


来自项目文件夹,默认大小写:

CD /SRV/Tvargenta

编译为

gcc -O2 -o encoder_reader encoder_reader.c -lgpiod。


这会生成管理 GPIO 的 bin 文件(encoder_reader),并为 Python 脚本提供相关输入。


17

趣味实现1

是的,它也能播放《辛普森一家》;)

18

趣味实现2

我最近新增了一个功能,让这个项目更进一步:RetroPie集成!

现在,系统可以从精心策划的复古电视体验切换到完整的复古游戏设备——在一个盒子里体验两种怀旧。只需简单选择菜单,你就能进入游戏模式,按下一个按钮就能直接回到电视体验。

这两个世界现在已完全集成,得益于更新的3D打印设计,侧面露出了USB接口,可能性大幅增加——从插上手柄到尝试新的外设和功能。

机箱重新设计,USB接口可访问,带来了更多可能性!

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报