实现过程有朋友可能知道,稚晖君三个月前开发过一个硬核 “小电视”项目。
当时这个项目收割了近 500 万的观看量、70 万点赞,还被小破站收录为入站必刷视频。
不过,当时这款小电视使用的是 ARM-Linux 的板子,多少有些大材小用,所需要的成本和技术难度也都比较高。
为了让大家能够轻松复现,在这款小电视项目中,Up 主要没有采用高性能的 SOC,而是采用了非常流行的 MUC 方案—ESP32 开发板。
软件框架也使用了比较简单,容易上手的 Arduino 来进行实现。总体路线图大概分为电路、软件和结构三个部分。
在电路设计方面,Up 主遵循高集成度、紧凑设计路线,最终的电路板大概只有一个硬币大小,上面集成了 ESP32 最小系统、串口以及下载电路、一个 MPU6050 六轴加速度计和陀螺仪、环境光传感器、一个 RGB 灯、板载的 WiFi 和蓝牙天线,以及一个 SD 卡槽。
这块电路主板通过 ffc 的排线与 IPS 主屏幕进行进行连接,大概形成这个样子。
然后通过光固化 3D 打印出来,硬件实物就 OK 了。
接下来是为硬件注入灵魂,也及时软件代码的编写。Up 主介绍,软件部分大概分为三个模块,一是设备驱动移植与开发,包括屏幕驱动、RGB 驱动、IMU 驱动,其中一些是借用现有开源的轮子,另一部分是自己开发的。
二是 GUI 库(lvgl)移植适配。需要说明的是,考虑到所选用 EPS32-PICO-D4 开发板,其硬件资源有限,而内置 SRAM 卡内存只有 500K,无法带动复杂图形的桌面,因此 Up 主使用了轻量级图形库 lvgl,并完成了显示接口、文件设备以及输入设备的移植。
最后一环就是基于 APP 的上层开发,也就是基于底层框架实现各种逻辑和功能,如上上面我们介绍的显示天气预报,后台信息流、手机通知以及小相册等。
以上所有硬件和软件代码,Up 主已经在 GitHub 全部开源。
感兴趣的朋友,可以猛戳此这里:
点击打开