说实话,咱们搞技术的,特别是喜欢玩模拟赛车(Sim Racing)的兄弟,心里总有个坎儿过不去。你显示器再大、画质再4K,低头一看,还是个冷冰冰的键盘或者塑料感十足的游戏方向盘,那种“人车合一”的感觉瞬间就没了。
前两天我在折腾GitHub的时候,发现了一个叫 CarCluster 的神级项目。这玩意儿简直是把我的心声给具象化了——它能让你把真车的仪表盘拆下来,摆在电脑桌上,通过ESP32实时显示游戏的转速、车速和油耗。
这可不是什么昂贵的商业模拟器,这就是纯粹的极客浪漫。今天老哥我就带大家深度扒一扒这个项目,顺便聊聊这里面的坑和乐子。
这到底是个什么黑科技?
简单说,CarCluster 就是个“翻译官”。
你知道车里的仪表盘是怎么工作的吗?它其实是个傻瓜终端,等着ECU(行车电脑)通过CAN总线给它发指令。这个项目的核心,就是用一块几十块钱的 ESP32开发板 加上一个 MCP2515 CAN模块,假装自己是ECU,把电脑游戏里的遥测数据(Telemetry Data),翻译成真车能听懂的CAN信号。
结果就是:你在《地平线5》里一脚油门下去,桌子上那块从报废车上拆下来的宝马仪表盘,指针瞬间飙升,物理机械的那个质感,啧啧,绝对不是屏幕能比的。
除了打游戏,你甚至可以用它来做个超硬核的时钟,或者显示未读邮件数量。当然,我觉得最爽的还是看着转速表红区爆表的瞬间。
硬件门槛:低到离谱
这项目的硬件成本低得让我有点想笑。核心部件就这么几样:
-
1. ESP32开发板:某宝十几块钱那种Devkit V1就行,性能过剩。
-
2. MCP2515 CAN模块:几块钱一个,用来发CAN信号的。
-
3. 12V电源:家里闲置的路由器电源改一下就能用,电流1A以上足矣。
-
4. 仪表盘:这是大头,但也没多贵。去闲鱼或者当地拆车厂(陈田是个好地方),淘个大众高尔夫7或者宝马3系的仪表,几百块搞定。
当然,如果你想追求完美,比如模拟油量显示,可能还需要加个数字电位器(X9C102),但这都是后话了,新手先把灯点亮再说。
选对仪表盘:避坑指南
这里我得凭经验多啰嗦几句,选仪表盘是有讲究的,不是啥车都能拿来用。
目前项目支持最完美的是 大众MQB平台(比如高尔夫7)和 宝马F系列(比如3系F30、5系F10)。这两类仪表盘协议破解得比较透彻,接上就能用,几乎全功能支持。
千万注意! 别去碰那些太新的大众MQB仪表,比如T-Cross上面的。那些新玩意儿带了更高级的“组件保护”(Component Protection)。啥意思呢?就是它发现自己不在原车上,就会锁死,屏幕乱闪,甚至直接变砖。目前这问题无解,别浪费钱。
老老实实买个高尔夫7或者宝马F30的拆车件,稳如老狗。
软件与调试:那是相当折腾
硬件接线其实还好,就是几根杜邦线的事儿。真正的挑战在软件配置上。
你需要用Arduino IDE来烧录代码。这里有个大坑:不要用最新的ESP32库! 作者特意强调了,3.1.x版本的库有问题,会导致WiFi启动失败。一定要在开发板管理器里选3.0.x或者更低的版本。这种细节,往往能卡住你好几天。
烧录好之后,ESP32会生成一个WiFi热点。你连上去,进后台配置一下你的仪表盘型号。这设计挺人性化的,不用每次改配置都重新刷代码。
游戏实战:灵魂注入
一切就绪后,那种成就感是无敌的。
目前原生支持 《极限竞速:地平线4/5》 和 《BeamNG.drive》。在游戏设置里把“数据输出”打开,填上ESP32的IP地址,仪表盘瞬间就活了。
如果玩别的游戏怎么办?比如《神力科莎》或者《欧卡2》?
这时候就要祭出神器 SimHub 了。CarCluster 对 SimHub 的支持是通过串口实现的。SimHub 这个软件太强大了,它能把几乎所有主流赛车游戏的数据抓取出来,转换成统一格式发给ESP32。
我在项目里看到一段配置代码,只要把那段JSON字符串丢进SimHub的自定义串口设备里,转速、档位、甚至ABS介入的灯光都能同步。
写在最后
说实话,这个项目最吸引我的,不是最后打游戏的那一刻,而是中间折腾的过程。看着一堆乱七八糟的线,通过几行代码,让一个本该躺在废品站的工业结晶重新焕发生机,这种“黑客”般的快感,才是DIY的精髓。
哪怕你不打游戏,摆个宝马仪表盘在桌上当摆件,看着指针跳动,那也是相当炸裂的赛博朋克风格。
兄弟们,动手吧,别让那块仪表盘等太久。
项目地址:https://github.com/r00li/CarCluster