这款迷你的复古电视机非常的小巧可爱,它会不会成为你的桌摆新宠呢!它无法接收模拟电视广播信号,但是它可以通过微型 SD 卡播放录像带。你可以多准备几套 SD 卡来播放你喜欢的节目。
; ?+ b. V0 Y( y9 T7 i
; ^. m; y+ U! C7 {[color=rgba(0, 0, 0, 0.5)]趣无尽. x+ B C4 }- H2 I" B0 p
, @8 Z$ t% C/ {; [
[color=rgba(255, 255, 255, 0.9)],赞1
5 B9 h7 y5 q/ I# X# N; T! Q% T& s6 G
8 @0 M- n& Y% y8 r* b% c! j9 a
& _6 ?- f/ [0 k% d
, G; F7 E7 |9 f: Q3 w# I
6 S6 z! t) u" @& g( O搭建思路1、CRT 属性
+ O( E! t; q# L6 U+ {1 V# \这款复古的电视机带有阴极射线管 (CRT) 的显示器。它是一个大的真空玻璃管,将电子束发射到磷光屏上以显示图像。
因此,它使这台复古电视机具有一些特殊的属性:纵横比像正方形(但实际上是圆形),圆角的显示屏和厚而笨重的外壳。
最后,我选择了一个 7:6 的圆角 LCD 来打造这款迷你复古电视机。
2、模拟电视格式的标准
- I+ G& X8 ?* N4 Z( j7 B# L8 V4 f现实中许多模拟电视视频的标准,我选择一个众所周知的数字化格式(VCD)标准作为参考。VCD NTSC 格式为 240p(240 条水平线),每秒约 30 帧 (fps)。所以这个项目是以 30 fps 播放 240p 视频。
广播音频采样率为 44.1 或 48 KHz 单声道,由于网络上的大多数视频源都是 44.1 KHz,所以我选择了 44.1 KHz 以避免不必要的采样率转换失真。
设计外壳如图所示,LCD 上的灰色圆角屏幕框架使其看起来更像 CRT 屏幕。9 M+ M" A, K* t" y) h: Y& D# l1 j
前板右侧是 MicroSD 卡插槽,模拟录像带插槽。前板没有空间安装扬声器,所以我将全频音频扬声器放在底部。
, c4 ^$ p. w( G5 XESP32 开发板安装在顶部,左侧为 LCD 分线预留空间,后板有 USB 端口和电源开关。
复古电视标志性的底部支撑,项目中设计了 3 条内置的腿来支撑电视。由于受限于 3D 打印 的 45 度法则,不能太长。
软件部分Arduino_GFX 库
& _8 v. k" J$ S; G0 \, T5 R通过选择工具->菜单->管理器库,打开 Arduino IDE 库管理器。搜索“适用于各种显示器的 GFX ”,然后安装。
JPEGDEC$ z3 Z6 G9 _0 e% D
通过选择工具->菜单->管理器库,打开 Arduino IDE 库管理器。搜索“JPEGDEC”并安装。
2、软件设计
播放视频对于微控制器来说是比较重的负载,因此要很好地分配好它的处理能力。经过后续测试,负载最重的是 MJPEG 解码,所以这个任务专门用 Core 0 来解决。
所有其他进程都在 Core 1 上运行,其中包括:读取音频文件、解码音频、将解码后的音频排队到 I2S、读取视频文件和绘制解码视频显示。
3、烧录程序0 l: O# r* o8 U( }: ^1 d
该程序可在连接组件之前就上传。因此,你可以检查它是否适用于每个组件连接。整个过程为:
在 Arduino IDE 中打开 MJPEG_2task_Audio_1task.ino,连接 TTGO T7 开发板,选择工具菜单->开发板->ESP32 Arduino->ESP32 开发模块,选择工具菜单-> PSRAM ->禁用,选择工具菜单->端口->[选择端口开发板连接],按上传按钮,最后等待编译上传成功
4、转换视频
- q6 m+ M. S2 h0 w5 j3 ?, m4 k准备好要播放的视频,然后转换为 MJPEG 视频和 AAC 音频。脚本中将源视频假设为“input.mp4”:
1 F# n! X$ I% n) [3 M, N4 }7 ~
ffmpeg -i input.mp4 -vf "fps=30,scale=-1:240:flags=lanczos,crop=288:in_hin_w-288)/2:0" -q:v 11 288_30fps.mjpegffmpeg -i input.mp4 -ar 44100 -ac 1 -ab 24k -filter:a loudnorm -filter:a "volume=-5dB" 44100.aac注意的点:2 d6 l5 q! G" ^
显示分辨率为 280 x 240,因为 MJPEG 格式偏爱被 16 整除的尺寸,因此可扩展到 288 x 240。你可以通过更改“-5dB”值来调整音量。
MicroSD 卡的处理1、MicroSD 卡的说明' H2 T' V P, C( ~& \5 ]' g
之前的帖子中已经对 SD 卡在 ESP32 运行的速度进行测试,ESP32 读取 SD 卡的速度只能达到每秒 2MB 左右。MicroSD 被评为四种级,可以满足要求。更快的卡无助于提高性能。
2、SD 卡连接
此前,我发现 ESP32 SD_MMC 4-bit 模式读取 SD 卡数据最快。但是,使用最新的 Arduino-ESP32 版本 SD_MMC 库变得非常不稳定,无法与大多数 SD 卡兼容。所以这个项目是回到标准的 Arduino 可以兼容 SD 库。
调整音频增益电平设置(可选)24 mm 全频音频扬声器的额定功率为 2-4W,MAX98357 音频板可支持高达 3.2W 的输出,因此扬声器能够输出音频板的最大增益设置。但我们要合理设置电视的音量,我认为设置为 3dB 增益水平会更好。$ U; W: M2 ~, `* ]: g
功率分配器TTGO T7开发板可以通过 USB 供电,也可以连接锂电池作为不插电的电源,所以其他组件都可以从开发板上获取电源。
" b1 Y0 L; p# I8 O3 D
但是开发板只有一个 3v3 排针,所以它需要一个小插针分离器来制作电源插针。
电池供电(可选)TTGO T7 开发板可内置锂电池座为 Lipo 充电。因此你可以在电视机中添加一个可安装在开发板下方的 Lipo。理论上,一个 600mAh 的 Lipo 可以使用大约 1-2 小时。上面的视频显示电池可以播放 44 分钟没有任何问题。
Micro SD 卡插入开关(可选)增加 Micro SD 卡插入开关,需要一些焊接技巧。
大多数 micro SD 卡插槽分线板不能断开插入检测开关,因此你需要手动断开。然后将其连接到 TTGO T7 电源开关。这样一旦拔插 micro SD 卡,电视机会在你取出卡时自动开机或关机。
上个世纪,当我们将租回来碟片放入到录像机/播放器(VCR)时,就可以在沙发上看电影了。所以我设计了这个可选的 Micro SD 卡插入开关。体会一把当年的感受(暴露年纪)。
连接方式" ^9 X$ G1 h- b$ \9 x+ f0 D
* j2 {" i8 I) u: \4 s, b[color=rgba(0, 0, 0, 0.5)]趣无尽
0 ^- F5 s( A' \4 m% U. j$ @4 z. ~
6 z9 D! Y. e! m9 X. c2 ][color=rgba(255, 255, 255, 0.9)],赞1
3 z" h6 I& w0 w6 R: N
6 b" z! X D% Y, `/ y, n+ N5 Z) S0 m
' r: z7 ~$ _% D. |3 h9 y
, U5 h+ F: }) ]3 k+ _" h! R如图所示,连接方式。
TTGO T7 ESP32 ST7789 LCD MAX98357 Audio SD Card Slot============= ========== ============== ============VCC -> VCC -> VCC -> VCCGND -> GND -> GND -> GNDGPIO 4 -> MISOGPIO 5 -> CSGPIO 13 -> CSGPIO 14 -> SCKGPIO 15 -> MOSIGPIO 18 -> CLKGPIO 22 -> BLKGPIO 23 -> SDAGPIO 25 -> BCLK/SCLKGPIO 26 -> LRCLK/LRCKGPIO 27 -> DCGPIO 32 -> DOUTGPIO 33 -> RST如果你想尝试使用 SD_MMC,SD 卡 MISO 需要连接到 GPIO2,但请记住在上传程序时断开 GPIO2。% q4 m @& n' `% X
如果音频输出噪音太大,可能是 3v3 电源对于 MAX98357 不够用,可以考虑将 MAX98357 电源改为 5v。
组装
/ o. a4 B- [2 A! W6 {. f4 K$ q0 Z
7 P5 |; w: ]* E: s- f[color=rgba(0, 0, 0, 0.5)]趣无尽) C* N+ T s' ?* L( J" S
. n$ O- c5 {' }; W$ ^! b
7 v6 [0 V+ g) H2 [
5 o& @$ E& p; [# X. Z
+ Z- B3 x# ~/ m' c* ]3 c. w% }如图所示,内部的线十分的复杂。这个项目不仅模仿了复古电视的外表,还模仿了内部笨拙的布线方式。
那么可想而知,这台复工电视机的重量也不轻了。这台 1.69 英寸迷你电视机重 78g。按比例,25 英寸的电视机重为 252 公斤。它比真正的 CRT 电视重得多!而且真正的 CRT 电视没有内置电池。
Apple iMac Flower Power 系列的 CRT 设备的外观我非常的喜欢,所以将这些花卉图案的复制到我的迷你复古电视机上。是不是非常的养眼呢!
项目所用的代码在本项目文件库中可以下载:0 I$ n" |+ s, G \+ R o8 n
https://make.quwj.com/project/443