一、命名の暴力美学
「ESP32C3TFT」——这名字就像把泡面调料包全倒进去一样简单粗暴。主控 ESP32C3 +插拔式 ST7789 屏 + ADXL345 加速度计,齐活!当同龄人沉迷亚克力挂件时,我选择在书包上挂电路板——毕竟用 MicroPython 写个会动的电子挂件,可比塑料小人硬核多了。
二、现成方案の暴击
斥资购入某「ESP32C3TFT128」开发板后遭遇灵魂暴击:
- 防水玄学:前后壳像三明治包装,侧面裸奔接雨水
- 续航刺客:亮屏3小时自动关机,充电时温度直逼暖手宝
- 焊死美学:128x128 TN 屏自带斜视黑屏特效,焊死设计=换屏请买新板
- 休眠欺诈:DeepSleep 功耗和醒着时一样,仿佛在说"我睡了,但没完全睡"
- 插头寿命论:每天拔插 MX1.2 5接口,设计寿命几百次还废手指
三、硬件改造の奥义
电源系统の革命
- LDO退散:原板用 LDO 分压,USB 5V→3.3V 时 1.7V压降×电流=活体暖宝宝。换上 TLV62568 DCDC 方案效率起飞(德仪虽贵但香,自用必须堆料!)
- 充电芯片起义:杂牌IC换成 TP4056,实测可用手摸(原厂充电IC烫到能烤肉末)
- 二极管の背叛:试图用二极管做电源或门,结果锂电池最低 3.7V 经 0.7V 压降只剩 3V,连屏幕都点不亮
- MOS管救世:改用 SI2301 管理,USB 供电时自动切换电源路径,电池电压原厂直供不缩水
外设の尊严
- 屏幕自由宣言:换装国产 240x240 IPS 插接屏(8.4元/片,弄坏就换)
- 传感器の逆袭:ADXL345 共享 SPI 总线,中断引脚直连 GPIO3 实现免占用 SPI 触发休眠
- 按键自由:剩余 GPIO 全接按键开关,Micropython 自定义控制逻辑
玄学调试实录
- DeepSleep之谜:补上 32.768kHz 晶振后深度睡眠功耗直降(原厂竟省了这玩意!RTC时钟缺失导致休眠了个寂寞)
- 天线の诅咒:第一次外包画板显示屏线序接反,第二版换便宜PCBA连USB都认不出。最终天线周边铺满地——信号?能连WiFi就行!
- 叠层の美学:选 QFN 封装 ESP32C3 + 叠层 Flash,1.6mm 板厚控制完爆 3mm 厚的模块方案
四、代码の炼狱
驱动の黑暗森林
- ST7789历险:致敬开源驱动!预编译固件旧版 MicroPython 计时器 bug(硬件计时器0和2能用,1号神秘消失),自行构建MicroPython v1.25.0解决
- ADXL345の试炼:全网唯一SPI驱动没有中断?啃完62页 datasheet 手搓代码(注释比代码长3倍),寄存器配置精确到bit级
内存の背叛
- OOM惊魂夜:
gc.free_mem()显示内存充足,但bytearray()死活分配不出来——用 mpy-cross 预编译后原地复活(文档警告:未经编译的.py文件注释过长会撑爆内存!) - SPI总线の修罗场:忘记置高显示屏 CS 引脚,导致 ADXL345 读数全乱码(原来显示屏驱动不会自动释放总线!)
续航の黑魔法
- 摆烂检测器:ADXL345 中断触发静止超时,自动 DeepSleep(静止 uint8 max=255秒休眠)
- NVS存档术:用 ESP32 的 NVS 保存开机图片索引,避免每次改图片都要连电脑重命名文件
- 终极省电:关屏时切断屏幕背光供电+deepsleep(关屏待机≈电子尸体)
五、外壳の战争
- 初版亚克力壳:公差堪比山寨散装乐高,硬塞半小时后得分0.8(厂家:±0.5mm误差正常啦)
- 代工の真香:把板+壳打包寄回厂家代工组装(社恐の胜利:加钱能解决的事绝不自己动手)
- 透明の美学:2.7mm 亚克力拼接,成品厚度<1cm,挂链加持后荣升书包最硬核挂件
六、成果发布会
- 续航奇迹:标称10小时,实际亮屏20小时+
- 温度の尊严:连续工作<40℃,被窝使用安全认证√
- 防水の玄学:至少没被小雨当场送走(设计理念:只要水没淹到芯片引脚就算胜利)
- 社死名场面:在学校被问"这玩意能玩原神吗?"
后记:硬核浪漫
当同学们炫耀新挂件时,我默默掏出烙铁:「要给你焊个会动的吗?」——所谓极客的浪漫,就是把开发板变成随身携带的赛博护身符。
(项目成本核算:五个打板费79.84+元器件300.37+贴片费919.19+外壳定制250=1,444.95元。性价比?硬核玩家的事,能叫贵吗?)
技术宅的快乐:用20小时续航打脸商家参数,用透明外壳嘲讽工业设计,用自研驱动证明——有些坑,跳进去是为了爬出来时更闪耀。