<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>宝哥的个人博客</title><description>记录 · 思考 · 分享</description><link>https://cmder.xyz/</link><language>zh_CN</language><item><title>AdorkableTV</title><link>https://cmder.xyz/posts/linux-handheld-pc/</link><guid isPermaLink="true">https://cmder.xyz/posts/linux-handheld-pc/</guid><description>基于 RK3566 的超迷你掌上电脑，本项目软硬件全开源</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;AdorkableTV，一台超迷你的 Ubuntu 掌上电脑：基于瑞芯微 RK3566 设计核心板与功能板、移植 U-Boot 和内核、制作 rootfs、设计外壳与散热，相关核心资料均已开源。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;div class=&quot;video-embed&quot;&amp;gt;
&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1ubL6zSEwr&amp;amp;page=1&amp;amp;autoplay=0&quot; title=&quot;从0制作Linux掌上电脑&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;Commander-bao/BlueberryPi&quot;}&lt;/p&gt;
&lt;h2&gt;1. 项目速览&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;内容&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;主控&lt;/td&gt;
&lt;td&gt;Rockchip RK3566，四核 Cortex-A55&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;内存&lt;/td&gt;
&lt;td&gt;板载 LPDDR4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存储&lt;/td&gt;
&lt;td&gt;板载 eMMC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;显示&lt;/td&gt;
&lt;td&gt;240×320 SPI TFT，ST7789V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;无线&lt;/td&gt;
&lt;td&gt;AP6212，2.4GHz Wi-Fi + BLE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;电源&lt;/td&gt;
&lt;td&gt;USB 供电 + UPS 备用电源（锂电池）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;系统&lt;/td&gt;
&lt;td&gt;Ubuntu 20.04 / 24.04 + XFCE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开发工具&lt;/td&gt;
&lt;td&gt;嘉立创 EDA、Altium Designer、SketchUp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开源协议&lt;/td&gt;
&lt;td&gt;GPL-3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;2. 复刻流程&lt;/h2&gt;
&lt;p&gt;下面是推荐的复刻流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;准备材料&lt;/strong&gt;：核心板、屏幕、电池、连接器和散热器件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PCB 打样&lt;/strong&gt;：使用仓库里的 Gerber 在嘉立创打样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;焊接与检查&lt;/strong&gt;：先焊电源，检查无短路后上电测量各路电压，再焊主控和连接器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;烧录系统&lt;/strong&gt;：先烧预编译镜像验证硬件，再替换 boot.img 和 rootfs.img。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;组装测试&lt;/strong&gt;：裸板跑稳定性测试，确认散热和接口正常后装壳。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3. 硬件设计&lt;/h2&gt;
&lt;h3&gt;3.1 板卡结构&lt;/h3&gt;
&lt;p&gt;AdorkableTV 不是一块单独的主板，而是由多块板卡堆叠而成：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./images/adorkabletv-exploded.webp&quot; alt=&quot;AdorkableTV 爆炸图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;从左到右依次是显示屏、一体式外壳、UPS 电源板、功能板、基板、核心板、散热片和涡轮风扇&lt;/em&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;板卡&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;核心板&lt;/td&gt;
&lt;td&gt;RK3566 + LPDDR4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;功能板&lt;/td&gt;
&lt;td&gt;eMMC、AP6212 无线模块、RK809-5 电源管理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;基板&lt;/td&gt;
&lt;td&gt;连接核心板和功能板，转接屏幕、USB 等接口&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UPS 电源板&lt;/td&gt;
&lt;td&gt;USB 断电时切换到锂电池，作为备用电源&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;散热片 + 涡轮风扇&lt;/td&gt;
&lt;td&gt;带走 RK3566 的热量&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这种堆叠方式能把整机面积压到很小，但也会给装配和验证带来不少麻烦。&lt;/p&gt;
&lt;h3&gt;3.2 核心板与主控&lt;/h3&gt;
&lt;p&gt;AdorkableTV 使用 &lt;strong&gt;RK3566&lt;/strong&gt;，四核 Cortex-A55，集成 Mali-G52 GPU。核心板上只保留 SoC、LPDDR4、晶振和必要的去耦，eMMC、无线模块和电源管理则放在功能板上。&lt;/p&gt;
&lt;h3&gt;3.3 显示与交互&lt;/h3&gt;
&lt;p&gt;屏幕是一块 &lt;strong&gt;240×320 的 SPI TFT&lt;/strong&gt;，驱动芯片为 &lt;strong&gt;ST7789V&lt;/strong&gt;，通过 SPI3 连接。&lt;/p&gt;
&lt;h3&gt;3.4 电源&lt;/h3&gt;
&lt;p&gt;整机由 &lt;strong&gt;USB 供电&lt;/strong&gt;。UPS 电源板负责锂电池的充放电管理，在 USB 断电时自动切换到电池，作为备用电源。调试时建议先用可调电源供电，确认各路电压正常后再接电池。&lt;/p&gt;
&lt;h3&gt;3.5 PCB 设计与打样&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;./images/adorkabletv-pcb.webp&quot; alt=&quot;AdorkableTV 板卡渲染&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;核心板、功能板和基板的堆叠关系&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;这个项目的板卡比较多，各板的打样参数也不完全相同：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;板卡&lt;/th&gt;
&lt;th&gt;板厚&lt;/th&gt;
&lt;th&gt;工艺&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Adorkable Core / EXP&lt;/td&gt;
&lt;td&gt;1.2mm&lt;/td&gt;
&lt;td&gt;嘉立创 3313 阻抗，四边半孔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adorkable Base / Base V2&lt;/td&gt;
&lt;td&gt;1.6mm&lt;/td&gt;
&lt;td&gt;嘉立创 3313 阻抗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adorkable Base V2 EXP&lt;/td&gt;
&lt;td&gt;0.8mm&lt;/td&gt;
&lt;td&gt;嘉立创 3313 阻抗&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;打样时选择嘉立创免费的 &lt;strong&gt;20% 阻抗管控&lt;/strong&gt;，有半孔的板子要选四边半孔工艺。布线时重点注意：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LPDDR4 的 DQ 必须一一对应，不能随意交换。&lt;/li&gt;
&lt;li&gt;常见的 1 或 2 个片选（CS）配置下，CA 和 DQ/DQS 可以依赖 RK3566 启动时的自动训练，不必做全通道等长；只有 4 CS 的多 rank 配置才需要严格等长 CA。CLK 与 DQS 的偏差建议控制在 ±1 UI 内。&lt;/li&gt;
&lt;li&gt;LPDDR4 仍要控制阻抗并保持完整参考平面，走线不要跨分割。&lt;/li&gt;
&lt;li&gt;DQS_P/N、CK_P/N 以及 USB、HDMI 差分对内部要等长，差分线少过孔，对与对之间保持间距。&lt;/li&gt;
&lt;li&gt;AP6212 天线区域下方不要铺铜、走线或放金属件。&lt;/li&gt;
&lt;li&gt;每颗芯片的电源引脚旁边就近放去耦电容，电源入口加足够大的储能电容。&lt;/li&gt;
&lt;li&gt;半孔板边缘比较脆弱，拼板和分板时不要用力掰。&lt;/li&gt;
&lt;li&gt;打样前跑 DRC，重点检查连接器方向、半孔焊盘和板框。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;虽然 RK3566 可以通过训练放宽等长要求，本项目仍然对 LPDDR4 做了严格等长，以留出更充足的时序余量。&lt;/p&gt;
&lt;h2&gt;4. 系统与软件&lt;/h2&gt;
&lt;h3&gt;4.1 启动链路&lt;/h3&gt;
&lt;p&gt;RK3566 的启动流程可以概括为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;BootROM → SPL / U-Boot → Kernel + DTB → rootfs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;系统可以从 eMMC 启动。第一次烧录，或者系统起不来时，可以让板子进入 Maskrom 模式，用 RKDevTool 重新下载 loader 和镜像。调试阶段优先接串口，只要 U-Boot 和内核有输出，大部分问题都能定位。&lt;/p&gt;
&lt;h3&gt;4.2 U-Boot 与内核&lt;/h3&gt;
&lt;p&gt;U-Boot 使用仓库中预编译的 &lt;code&gt;uboot.img&lt;/code&gt;，负责 DDR 初始化、串口、存储和启动参数。&lt;/p&gt;
&lt;p&gt;内核在瑞芯微 Linux SDK 的基础上做了适配，预编译版本对应仓库中的 &lt;code&gt;boot.img&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;4.3 根文件系统&lt;/h3&gt;
&lt;p&gt;根文件系统最初基于 Ubuntu 20.04 制作，脚本魔改自鲁班猫，支持 lite、xfce、gnome 等版本。掌上电脑建议使用 XFCE，资源占用比 GNOME 低。后来项目也适配了 Ubuntu 24.04 的系统镜像，但暂未整理对应的构建教程。构建好的镜像可以通过项目 README 里的网盘链接下载。&lt;/p&gt;
&lt;h3&gt;4.4 镜像与烧录&lt;/h3&gt;
&lt;p&gt;相关工具包括瑞芯微 USB 驱动、RKDevTool 和镜像打包工具。基本做法是解包官方镜像，替换 boot 和 rootfs 分区后重新打包，再烧到 eMMC。第一次烧录建议只替换 boot 和 rootfs，不要同时改分区表和 U-Boot。&lt;/p&gt;
&lt;h2&gt;5. 外壳与组装&lt;/h2&gt;
&lt;p&gt;外壳是一体式 3D 打印结构，内部按“屏幕 → UPS 电源板 → 功能板 → 基板 → 核心板 → 散热片 → 涡轮风扇”的顺序叠放。装配时主要注意半孔板边缘、散热片贴合和天线位置。&lt;/p&gt;
&lt;h2&gt;6. 结语&lt;/h2&gt;
&lt;p&gt;最初是在 B 站看到稚晖君的卡片电脑和“最强小电视”，被 PCB 上那些漂亮的走线，以及软硬件全栈开发带来的炫酷感吸引。那时的我还没有任何相关知识储备，既忐忑又兴奋，但还是下定决心去学，想亲手做出一台属于自己的掌上电脑。这个项目前前后后做了半年，中间花了大量时间和成本，也踩过不少坑，但真正完成时的那份喜悦和成就感却是无可比拟的。&lt;/p&gt;
&lt;p&gt;AdorkableTV 如其名，是一台呆萌可爱的小电脑。项目的软硬件资料均已开源，欢迎复刻！遇到问题可以在 GitHub 提 Issue，也欢迎一起交流改进。&lt;/p&gt;
</content:encoded></item><item><title>基于 ESP32 的情侣小电视</title><link>https://cmder.xyz/posts/esp32-mini-tv/</link><guid isPermaLink="true">https://cmder.xyz/posts/esp32-mini-tv/</guid><description>宝哥的第一个软硬件项目，已完整开源</description><pubDate>Wed, 23 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;这是一个放在桌面上的小电视：能显示时间、天气、电量和纪念日，2.0 版本还能和另一台小电视互动，相关核心资料均已开源。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;div class=&quot;video-embed&quot;&amp;gt;
&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1cH4y1Y7gC&amp;amp;page=1&amp;amp;autoplay=0&quot; title=&quot;情人节不知道送什么？做一个情侣小电视送对象！【ESP32情侣小电视2.0】&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;video-embed&quot;&amp;gt;
&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?aid=313957527&amp;amp;bvid=BV1CP41197Sq&amp;amp;cid=1136828853&amp;amp;page=1&amp;amp;autoplay=0&quot; title=&quot;基于ESP32的情侣小电视&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;Commander-bao/MiniTV-for-couples&quot;}&lt;/p&gt;
&lt;h2&gt;1. 项目速览&lt;/h2&gt;
&lt;h3&gt;1.1 主要信息&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;内容&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;主控&lt;/td&gt;
&lt;td&gt;ESP32-WROOM-32E，集成 2.4GHz Wi-Fi / BLE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;显示&lt;/td&gt;
&lt;td&gt;1.3 寸 IPS LCD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;电源&lt;/td&gt;
&lt;td&gt;TP4056 充电管理 + 602530 锂电池 + BL9110 3.3V LDO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开发工具&lt;/td&gt;
&lt;td&gt;嘉立创 EDA、PlatformIO、SketchUp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开源协议&lt;/td&gt;
&lt;td&gt;GPL-3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;1.2 功能说明&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;天气时钟&lt;/td&gt;
&lt;td&gt;时间、日期、城市天气、温度、湿度和空气质量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;电量显示&lt;/td&gt;
&lt;td&gt;显示电池电量与充电状态&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;纪念日&lt;/td&gt;
&lt;td&gt;显示在一起的天数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;情侣互动&lt;/td&gt;
&lt;td&gt;2.0 支持两台设备互动&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;动画切换&lt;/td&gt;
&lt;td&gt;多套桌面动画轮换&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;亮度调节&lt;/td&gt;
&lt;td&gt;2.1 支持按键调节屏幕亮度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;快速配网&lt;/td&gt;
&lt;td&gt;手机连接设备热点，在网页里填写 WiFi 和城市&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;1.3 版本演进&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;版本&lt;/th&gt;
&lt;th&gt;主要改动&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;V1.0&lt;/td&gt;
&lt;td&gt;第一代，具备天气时钟等基础功能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V1.1&lt;/td&gt;
&lt;td&gt;改进电源充放电控制，重新定义 GPIO，增加自动下载电路，优化布线&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V1.2&lt;/td&gt;
&lt;td&gt;去掉烧录按钮，优化定位孔布局&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V2.0&lt;/td&gt;
&lt;td&gt;改进电源电路，实现 USB / 电池供电自动切换&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V2.1&lt;/td&gt;
&lt;td&gt;增加屏幕亮度调节，改进电路板与元器件布局&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;2. 复刻流程&lt;/h2&gt;
&lt;p&gt;下面是推荐的复刻流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;采购元件&lt;/strong&gt;：主控、屏幕、各芯片、电池和阻容。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PCB 打样&lt;/strong&gt;：使用仓库里的 Gerber 在嘉立创打样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;焊接与检查&lt;/strong&gt;：焊接各部分元器件，检查无短路后上电测量各位置电压。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;烧录固件&lt;/strong&gt;：先烧预编译固件验证硬件，再编译自己的代码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;打印外壳&lt;/strong&gt;：根据打印机类型选择普通版或高精度版。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;组装与配网&lt;/strong&gt;：组装各部分，合盖后连接网络完成配网。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3. 硬件设计&lt;/h2&gt;
&lt;h3&gt;3.1 原理图&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;./images/schematic-v2.1.webp&quot; alt=&quot;原理图 V2.1&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;3.1.1 主控部分&lt;/h4&gt;
&lt;p&gt;本项目使用 &lt;strong&gt;ESP32-WROOM-32E-N16&lt;/strong&gt; 作为主控。它集成了 2.4GHz Wi-Fi 和 BLE，拥有 16MB 的 Flash 容量，软硬件生态成熟，非常适合小白上手。&lt;/p&gt;
&lt;p&gt;主控外围主要是 3.3V 供电、EN 复位、BOOT 下载和去耦电容。下面是主控的官方文档资料：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/esp32-tech-spec.pdf&quot;&gt;ESP32 技术规格书&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/esp32-wroom-32e-datasheet-cn.pdf&quot;&gt;ESP32-WROOM-32E/32UE 数据手册（中文）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;3.1.2 USB 输入部分&lt;/h4&gt;
&lt;p&gt;USB 接口同时承担供电和串口通信：VBUS 提供 5V，D+ / D- 连接 USB 转串口芯片。V2.1.1 使用 &lt;strong&gt;Type-C 16Pin&lt;/strong&gt; 母座，CC1 / CC2 各接一颗 5.1kΩ 下拉电阻，告诉充电器设备是受电端。V1.x 使用的是 Micro USB。&lt;/p&gt;
&lt;h4&gt;3.1.3 USB 转串口部分&lt;/h4&gt;
&lt;p&gt;使用 &lt;strong&gt;CH340K&lt;/strong&gt; 完成 USB 转串口，配合内部集成两个 NPN 三极管和电阻的 &lt;strong&gt;UMH3NTN&lt;/strong&gt; 实现自动下载。烧录时自动控制 ESP32 的 EN 和 GPIO0，不需要手动按 BOOT 键。&lt;/p&gt;
&lt;p&gt;如果电脑识别不到串口，先安装 CH340 驱动，再换一根确定能传数据的 USB 线；有些线只有供电线芯，没有 D+ / D-。&lt;/p&gt;
&lt;h4&gt;3.1.4 输入按钮&lt;/h4&gt;
&lt;p&gt;两个 &lt;strong&gt;TS24CA&lt;/strong&gt; 轻触开关作为输入，按下后把 GPIO 拉到 GND。按钮并联 100nF 电容做硬件消抖；由于没有设计外部上拉，固件中必须把对应 GPIO 配置为内部上拉模式。&lt;/p&gt;
&lt;p&gt;软件使用 Button2 库区分单击、双击和长按，因此 2.x 能用两个按键完成页面切换、亮度调节、发送消息和配网。&lt;/p&gt;
&lt;h4&gt;3.1.5 电源管理&lt;/h4&gt;
&lt;p&gt;充电部分使用 &lt;strong&gt;TP4056&lt;/strong&gt;。PROG 引脚上的 R9 为 4.7kΩ，充电电流约为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;I = 1200 / RPROG = 1200 / 4700 ≈ 0.255A
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也就是约 255mA。TP4056 的最小 PROG 电阻为 1.2kΩ，对应约 1A；实际取值要结合电池容量、散热和充电速度调整。&lt;/p&gt;
&lt;p&gt;电池选用 &lt;strong&gt;602530&lt;/strong&gt; 锂聚合物电池。&lt;strong&gt;SI2305 PMOS&lt;/strong&gt; 负责 USB 与电池之间的供电自动切换，拨动开关控制整机电源，LED 作为充电指示。V2.x 支持边充边用，V1.x 只能在关机状态充电。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;锂电池请务必注意极性和绝缘，避免短路、挤压和过充。建议使用带保护板的电池，充电时不要无人值守。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;3.1.6 LCD 屏&lt;/h4&gt;
&lt;p&gt;屏幕是中景园的 &lt;strong&gt;1.3 寸 IPS LCD&lt;/strong&gt;，通过 24Pin、0.5mm 间距的 FPC 排线连接。相关规格书、源码、原理图和取模教程如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/lcd-1.3-datasheet-and-manual.zip&quot;&gt;01-规格书与芯片手册.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/lcd-1.3ips-source-code.zip&quot;&gt;02-1.3IPS 程序源码.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/lcd-schematic.zip&quot;&gt;02-原理图.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/files/esp32-mini-tv/lcd-font-tutorial.zip&quot;&gt;04-LCD 取模教程.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FPC 排线有方向，插入前确认金手指朝向和锁扣位置；屏幕白屏但背光亮，通常优先检查排线是否插到底、方向是否正确。&lt;/p&gt;
&lt;h4&gt;3.1.7 电压检测&lt;/h4&gt;
&lt;p&gt;电池电压通过两颗 &lt;strong&gt;300kΩ&lt;/strong&gt; 电阻分压后送入 ADC。4.2V 的满电电压经过 1:2 分压变成 2.1V，低于 ESP32 ADC 的 3.3V 上限；分压点并联电容可以滤掉采样毛刺。&lt;/p&gt;
&lt;p&gt;固件按分压比把 ADC 读数还原成电池电压，再换算成百分比。电阻精度和 ESP32 ADC 的线性度都会影响结果，实际使用时可以做一次两点校准。&lt;/p&gt;
&lt;h4&gt;3.1.8 降压稳压&lt;/h4&gt;
&lt;p&gt;系统使用 &lt;strong&gt;BL9110FB-330&lt;/strong&gt; 把电池电压稳到 3.3V，供给 ESP32、LCD 和其他外设。&lt;/p&gt;
&lt;p&gt;注意：原理图和 BOM 中可能仍标着 &lt;strong&gt;AMS1117-3.3&lt;/strong&gt;，实际焊接时要换成 BL9110。AMS1117 的压差约 1.1V，电池电压降到 3.7V 左右时余量已经很小；BL9110 压差更低，更适合锂电池供电的场景。&lt;/p&gt;
&lt;h2&gt;4. PCB 设计与打样&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;./images/pcb-2.1.webp&quot; alt=&quot;PCB 3D 预览&quot; /&gt;&lt;/p&gt;
&lt;p&gt;PCB 使用嘉立创 EDA 绘制，下面几条是这块板子上比较重要的布线原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;走线尽量走钝角，信号线避免直角和锐角。&lt;/li&gt;
&lt;li&gt;旁路电容贴近对应芯片的电源引脚，距离越短越好。&lt;/li&gt;
&lt;li&gt;电源线加粗，元器件 GND 引脚就近接地，多打地孔。&lt;/li&gt;
&lt;li&gt;ESP32 板载天线下方不要铺铜、走线或放金属件。&lt;/li&gt;
&lt;li&gt;USB D+ / D- 按差分线处理，尽量等长、少过孔。&lt;/li&gt;
&lt;li&gt;打样前跑一遍 DRC，重点检查 Type-C、FPC 座和 ESP32 的封装方向。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;5. 固件开发&lt;/h2&gt;
&lt;h3&gt;5.1 开发环境&lt;/h3&gt;
&lt;p&gt;固件基于 &lt;strong&gt;VS Code + PlatformIO&lt;/strong&gt; 开发，使用 Arduino 框架。新建 &lt;code&gt;esp32dev&lt;/code&gt; 工程后，把源码压缩包解压到工程目录即可打开。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./images/platformio-2.0.webp&quot; alt=&quot;PlatformIO 工程&quot; /&gt;&lt;/p&gt;
&lt;p&gt;仓库中的 &lt;code&gt;Software/LoveTV2.0.zip&lt;/code&gt; 是 2.0 源码，&lt;code&gt;Firmware&lt;/code&gt; 目录则提供了编译好的 &lt;code&gt;firmware.bin&lt;/code&gt; 和 &lt;code&gt;firmware2.0.bin&lt;/code&gt;。如果只想验证硬件，可以使用乐鑫官方的 Flash Download Tool 烧录预编译固件；如需改动功能再编译源码。&lt;/p&gt;
&lt;h3&gt;5.2 工程结构&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;src/main.cpp&lt;/code&gt;：程序入口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config.h&lt;/code&gt;：WiFi、城市、引脚等配置。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lib/&lt;/code&gt;：自己加入的库文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pio/libdeps/esp32dev/&lt;/code&gt;：PlatformIO 自动下载的第三方库。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;partition.csv&lt;/code&gt;：ESP32 分区表。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.3 主要模块&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模块&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TFT_eSPI&lt;/td&gt;
&lt;td&gt;LCD 驱动与绘图&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEGDecoder&lt;/td&gt;
&lt;td&gt;解码 JPEG 动画帧&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Button2&lt;/td&gt;
&lt;td&gt;按键单击、双击、长按识别&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TimeLib&lt;/td&gt;
&lt;td&gt;时间管理与 NTP 对时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTPClient&lt;/td&gt;
&lt;td&gt;请求天气接口&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WiFi / WiFiUdp&lt;/td&gt;
&lt;td&gt;联网与设备间通信&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Animate&lt;/td&gt;
&lt;td&gt;动画切换&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;weatherNum&lt;/td&gt;
&lt;td&gt;天气图标与城市数据&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loving&lt;/td&gt;
&lt;td&gt;情侣日页面&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;message&lt;/td&gt;
&lt;td&gt;“想你啦”消息页面&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;5.4 配网流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;第一次上电、长按右键，或者 WiFi 连接失败时，设备进入配网模式。&lt;/li&gt;
&lt;li&gt;手机搜索并连接名为 &lt;strong&gt;“情侣小电视”&lt;/strong&gt; 的热点。&lt;/li&gt;
&lt;li&gt;在配网页面填写 WiFi 名称、密码和所在城市。&lt;/li&gt;
&lt;li&gt;保存后设备自动重启并连接网络。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ESP32 只支持 &lt;strong&gt;2.4GHz WiFi&lt;/strong&gt;，如果家中是双频合一的路由器，配网时尽量让手机连接 2.4GHz 频段，或者把两个频段拆开。&lt;/p&gt;
&lt;h3&gt;5.5 烧录注意事项&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;V1.x 只能在关机状态充电，开机状态烧录；V2.x 插上线即可充电，开机也能烧录。&lt;/li&gt;
&lt;li&gt;烧录前确认串口选择了 CH340 对应的端口。&lt;/li&gt;
&lt;li&gt;如果一直停在 &lt;code&gt;Connecting...&lt;/code&gt;，检查 USB 线、CH340 驱动和开发板是否进入下载模式。&lt;/li&gt;
&lt;li&gt;V1.x 和 2.x 的固件不要混烧。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. 外壳与组装&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;./images/enclosure-2.0.webp&quot; alt=&quot;SketchUp 外壳模型&quot; /&gt;&lt;/p&gt;
&lt;p&gt;外壳使用 SketchUp 2019 建模，设计成极简的圆角小电视造型。主体内部有四个螺丝孔，与 PCB 的四个定位孔对应，使用 &lt;strong&gt;M2×5 自攻螺丝&lt;/strong&gt;固定；垫层用来压住屏幕，按钮和开关则单独打印后装入。&lt;/p&gt;
&lt;p&gt;打印时注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FDM 打印机使用普通版模型，光固化打印机选择高精度版。&lt;/li&gt;
&lt;li&gt;2.0 硬件要搭配 2.0 版本外壳，不要混用 1.x 的外壳。&lt;/li&gt;
&lt;li&gt;打印完成后先清理螺丝孔和卡扣，试装没问题再装电路板。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;组装测试教程：&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;video-embed&quot;&amp;gt;
&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1cH4y1Y7gC&amp;amp;page=2&amp;amp;autoplay=0&quot; title=&quot;ESP32 情侣小电视 2.0 组装与测试&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h2&gt;7. 结语&lt;/h2&gt;
&lt;p&gt;这个项目是我的第一个软硬件项目，前后断断续续做了两个多月，难免有些不足之处。如果遇到问题，欢迎在 GitHub 提 Issue。&lt;/p&gt;
</content:encoded></item></channel></rss>