背景
在CS2中(CS:GO里面也有)中有一个叫做生命值胸章的饰品
第一次看到时候就觉得这个很适合使用LED做出来.
而且还可以通过CSGO GSI同步游戏中生命值状态.
元件选型
由于胸章的尺寸较小, 所以不能配备的较大容量的电池.
而且我不想拖着一根线,所以得是一个支持无线的芯片.
虽然我很喜欢乐鑫家的芯片,但是抱歉, 这次真的对不起,你的功耗实在是太高了.
之前在制作Friday Ink时候,用到了CH582F,使我对王翠花家的芯片略有接触.
所以这一次选择王翠花家的CH592F作为主控, 对比CH582F, 只是ram略有些减少,但是也足够制作HealthPin了.
之前一直在用AP2112K这款LDO,是继承自多年前抄Arduino Pro micro设计的原因.
为了进一步压缩成本, LDO换成了ME6211.充电管理芯片换成了TP4057,而不是之前的MCP73831.
同时为了丰富色彩, 灯珠选择了1mm x 1mm 的WS2821 RGB灯珠.
考虑到WS2812的静态功耗有点大, 所以三颗心分为三组, 除了最小的那颗无法主动关闭供电外,其余两颗心都会使用MOS管控制电源开关,达到不用时候彻底关闭省电的目的.
电路
打磨了好几个版本,最后决定做成双面元件.渲染如下:

实物
由于没有外壳, 而且阻焊是白色,所以看上去和游戏原设计有所出入.
程序
上位机考虑到通用性质, 我没有像之前制作StatTrak那样单独写一个脚本和设备通信.
而是选择了Aurora这个开源项目作为上位机,在Auraro基础上进行二次开发.
好在Aurora对于新设备的适配提供了Device Script这个东西, 所以只要开发一个.cs脚本, 即可被Aurora识别到.
然后享受Aurora对大量游戏的支持,以及丰富的灯光配置.
CH592F假装自己是一个支持灯光配置的键盘, 使用HID和电脑进行通信.
HealthPin只会对7,8,9按键的配置响应, 所以Aurora 自定义配置时候,只需要设置这三个按键的灯光即可.
视频
写在最后
视频发出后,有不少人指出胸章出自半条命:Alyx,以前只在老王家玩过开头, 对这个装置在半条命中的印象不是很深了.
观看了一些实况视频后了解到这个装置的更为具体的一些信息, 激发了我继续开发的一些兴趣.
或许可以制作三个完整的爱心,然后像Alyx中的一样, 每颗心都有大小的变化.






