两百元,我把吃灰动感单车改造成了万能游戏外设
前言:一场对抗“西西弗斯式”无聊的折腾
对于忙碌又被惯坏的现代人而言,坚持运动从来都不是一件容易的事。
我们常用的解决方案往往依赖外部激励:要么是 Apple Watch 提供的数值化圆环,要么是 Switch《健身环大冒险》带来的游戏化反馈。这两种方案的本质,都是通过一种替代性的外部意义来掩盖运动本身的枯燥。但它们都有一个致命缺陷——外部意义的新鲜感一旦消退,你就会因感到“西西弗斯推石头”般的乏味而迅速放弃。
于是,我把目光投向了动感单车。它提供了一种截然不同的思路:它本身不提供任何意义,但你可以一边骑车一边追剧、听播客,以此度过漫长的有氧时间。
这是我原本美好的设想。但现实未能如我所愿(毕竟,我都追剧了,干嘛不躺在舒服的沙发上?),这台 Keep C2 lite 单车同样难逃吃灰的命运。 爱壹帆在线yfsp.app
很快啊,我熟练地打开闲鱼,找好 Ins 风滤镜拍了照,写好“女大学生自用99新”的文案,给出了一个童叟无欺的价格,静静等待下一个以为自己能够坚持的人上钩。 爱壹帆电影yfsp.app 足球比分clbp.bet
正当我在工位上摸鱼,下拉刷新闲鱼第 100 次的时候,灵感突然从天而降:我曾看过一个名为 GTBIKEV 的《GTA 5》MOD 项目,它可以把骑行台转换成游戏里的控制器。那我的这台动感单车,能不能也变成一台游戏机外设呢?
方案选型与物料清单
我并没有直接照搬 GTABIKEV 项目,原因有二: 小宝影院电影xiaobaotv.video
我希望能玩所有游戏。 尤其是《极限竞速:地平线 5》,我想用我的双脚在墨西哥的沙漠里真实地“踩”出推背感。 skycrownonlinecasinowww.onlinecasino10.com australianonlinecasinowww.baccarat.quest
闭源生态的壁垒。 按照我对国产智能健身设备的理解,它们极大概率不会采用开放协议,强行兼容已有 MOD 可能会遇到很多不可控的麻烦。 电影爱壹帆yfsp.app 电影小宝影院xiaobaotv.video
经过一番构思,我确定了最终的“中间件”技术路线: 用一块树莓派 Zero 2W 作为数据中枢,同时接收动感单车的踏频数据和实体手柄的按键数据。树莓派将自己伪装成一台通用的 USB 游戏手柄,然后通过有线方式将混合后的指令发送给电脑。 iyftvyfsp.app 運彩cpbl1.tw
这样一来,电脑端完全不需要安装任何多余的驱动或虚拟软件,即插即用,兼容所有游戏! iyf yfsp.app
🛒 硬件改造成本清单
| 硬件名称 | 用途说明 | 预估花费 |
|---|---|---|
| 树莓派 Zero 2W | 核心数据处理与 USB 模拟 | 约 120 元 |
| 国产平替 Joy-Con | 提供实体按键与摇杆输入 | 约 70 元 |
| 绑带/魔术贴 | 将手柄固定在单车把手上 | 约 10 元 |
| 总计 | 将单车变废为宝 | 约 200 元 |
硬核起步:蓝牙逆向与“偷听”
第一步,也是最关键的一步,是让树莓派能“听懂”单车的话。 australianonlinecasinowww.onlinecasino10.com jvidjvid.asia 爱壹帆寻秦记yfsp.app
如果幸运的话,这款单车应该使用通用的 FTMS (Fitness Machine Service) 协议。这是蓝牙技术联盟基于BLE (蓝牙低功耗)设备使用的GATT协议为动感单车和相关健身器材定义的一套标准。 爱亦凡yfsp.app onlinecasinosaustraliawww.baccarat.quest
打个比方,GATT(蓝牙通用属性配置文件)规定了设备间对话的“语法”(主谓宾结构),而 FTMS 则规定了“词汇表”。比如大家约定俗成用“苹果”指代红色的果子。如果你想知道苹果多少钱一斤,你竖起耳朵听我说“苹果”这个词后面跟着什么东西就可以了。类似的,在FTMS 的通用规定里,只要监听特定的特征值(0x2AD2),就能直接拿到踏频数据。 寻秦记爱壹帆yfsp.app
为了验证,我使用了 Android 端的 nRF Connect 应用对单车进行了蓝牙抓包: 人人视频renren.video
图 1:设备广播信息显示其为专业骑行训练设备
如图所示,单车向外宣告自己采用了功率计标准(服务 UUID: 0x1818)。但点开详细服务后,情况不妙了:
图 2:未知的自定义特征值
它并没有使用通用的“词汇表”,而是采用了自定义的特征值(就好比用一句接头暗号来指代苹果)。其中,特征值 0xFF01(属于蓝牙规范中的私有服务范围)非常可疑,它同时支持读、写和通知属性。直觉告诉我,突破口就在这里。
开始抓包与 AI 协助 免费在线影院xiaobaotv.video ifuntvyfsp.app aiyifan yfsp.app
我决定“偷听”手机与单车的对话。我用安卓手机及Keep客户端真实地连接单车骑行了一次,并在开发者选项中启用了 HCI 日志,导出了全过程的原始蓝牙数据。
避坑小贴士:Keep C2 lite 默认会优先使用 WiFi 传输数据(包括鉴权和运动数据)。你需要先在路由器后台“拉黑”单车的 MAC 地址,强制它回落到蓝牙模式,才能抓到完整的包。
导出日志后,我用 Wireshark 筛选出单车的 MAC 地址,将结构化的数据直接“喂”给了 AI(感谢 Gemini 老师的辛勤工作)。在 AI 的帮助下,我们成功还原了通信过程: onlinecasinorealmoneywww.onlinecasino10.com 一帆视频yfsp.app
握手鉴权:手机先发送一系列握手包。 海外华人视频网xiaobaotv.video
心跳保活:单车和手机需要定时互发带有递进序列号和 CRC16 校验码的心跳包。
寻找“魔法钥匙”:所有交互都在 0xFF01 完成。我们发现只要数据帧里包含特定字符 CB06,就意味着这条数据包含了踏频和功率信息。其中,标签 30 后面跟着的就是踏频,38 后面跟着的是功率。 肉视频jvid.asia ifvodyfsp.app
拿到协议规则后,我只需用代码写一个“重放攻击”(直接发送之前抓到的握手包,无需破解加密算法)完成鉴权,就能源源不断地提取出我踩踏板的频率了! 小宝影院xiaobaotv.video
优雅的中间件:为什么放弃系统级虚拟手柄?
光有踏板数据还不行,游戏还需要转向、刹车和菜单控制。
起初,我尝试了一种“纯软件”方案:利用 ViGEmBus 在 Windows 上虚拟一个 Xbox 360 手柄,然后写 Python 脚本,将单车的踏频(映射为 RT 油门)和真实手柄的输入进行处理后使用vgamepad库同时转发给ViGEmBus。 足球比分cpbl1.tw
但在实际测试中,我很快遇到了麻烦: newonlinecasinoaustraliawww.onlinecasino10.com 爱壹帆yfsp.app
冲突问题:电脑上同时存在真实和虚拟两个手柄。当我按下真实手柄的 A 键时,游戏经常会错乱,不知道该听哪个手柄的。
屏蔽失效:我尝试用 HidHide 软件对游戏隐藏真实手柄,但这玩意儿在我的电脑上对 Steam 游戏竟然不起作用。
不够优雅:每次玩游戏前要启动一堆后台软件。另外万一哪天 Windows 底层更新了,这套方案也有可能崩溃。
于是,树莓派 Linux USB Gadget 方案登场了。 xiaobao xiaobaotv.video cryptoonlinecasinowww.onlinecasino10.com
这是一个更加彻底、健壮的物理级解决方案:树莓派一边通过蓝牙接收单车和物理手柄的数据,一边通过 USB 线连到电脑。对电脑来说,它看到的仅仅是一个普通的、合法合规的有线手柄,没有任何软件冲突的烦恼。 運彩cpbl.bet
在实体按键方面,我花 70 块钱买了一对国产平替 Joy-Con。它虽然阉割了红外和细腻的 HD 震动,但分体式的设计简直是为动感单车量身定制的!配合几十块钱的绑带,轻松固定在把手两侧,手不离把就能完成所有操作,沉浸感拉满。 casinoonlineaustraliawww.baccarat.quest 爱壹帆影视yfsp.app onlinecasinocasinotrustinauwww.onlinecasino10.com
图 3(我使用AI合成了两只手,因为一只手需要拍照) 爱一番yfsp.app iyifanyfsp.app
为了应对物理手柄没电的突发情况,我还顺手写了一个基于 Web 的触屏虚拟手柄作为兜底。
代码组装(Enjoy the Code)
在 AI 时代,写这种驱动整合代码已经不再是令人头秃的难事。项目部署在树莓派上,整体架构非常清晰:
bike_driver.py:动感单车蓝牙驱动(处理 BLE 连接、协议握手、解析 RPM/功率等)。 ifun yfsp.app 小宝影院在线视频xiaobaotv.video
joycon_service.py:Joy-Con 监听服务(获取按键与摇杆状态)。
mixer.py:核心混合器(将 RPM 映射为油门扳机,融合按键数据,输出到 USB HID 设备)。 一帆yfsp.app 小寶影院电影xiaobaotv.video
webapp.py:Web 应用服务器(提供上文提到的前端虚拟手柄界面)。 爱壹帆电影yfsp.app onlinecasinosaustraliawww.baccarat.quest
bike_service.py:数据桥梁与日志记录。 onlinecasinowww.onlinecasino10.com onlinecasinocasinorelayforaustralianswww.onlinecasino10.com
当然,还有编写USB Gadget以及Systemd服务的相关代码。编写过程也并非一蹴而就,需要多次人工介入修复bug,过程不多赘述。
游戏体验:在墨西哥沙漠里挥洒汗水
实际体验下来,效果远超预期。当我把单车的踏频线性映射到手柄的 RT(油门)扳机上后,你踩得越快,车速就越快(我把100RPM作为扳机键按到底所需的踏频)。延迟方面,也没感觉到可感的影响游戏体验的延迟。 onlinecasinoaustraliawww.onlinecasino10.com 爱一帆yfsp.app 運彩cpbl.bet
更棒的是,《地平线 5》提供了极其丰富的辅助功能。你可以开启“自动刹车”并把 NPC 调到门外汉级别,自己只负责打方向盘和疯狂踩踏板。这种设置在“游戏可玩性”和“有氧专注度”之间达到了完美的平衡。 人人影视 renren.video australianonlinecasinowww.baccarat.quest
以前在单车上干熬 10 分钟就像受刑,现在跑完三场比赛,不知不觉半小时就过去了,大汗淋漓且意犹未尽。
结语:AI 带来的技术平权
最终,仅用一个树莓派(约 120 元)和一对国产平替手柄(约 70 元),我就把即将盖上闲鱼“卖掉了”印章的单车变成了一台极具沉浸感的万能游戏外设。 爱壹帆国际版yfsp.app 华人影视xiaobaotv.video
回想整个过程,最让我感慨的其实不是硬件的组装,而是竟然完成了蓝牙逆向分析和驱动程序的编写。放在过去,对于我这样一个只会写点 Python 数据分析脚本的“脚本小子”来说,去搞懂复杂的蓝牙通信协议、十六进制数据帧、CRC 校验,几乎是不可想象的。
是 AI 让这一切成为了可能。 在被各种精密封装的商业科技产品包围的今天,我们往往只能被动地接受厂商规定的使用方式。但 AI 作为强大的辅助工具,正在打破这层壁垒,带来一种真正的“技术平权”。它赋予了普通人跨越专业门槛的能力,让我们能重新夺回对数字设备的主动权,把生活改造成我们真正想要的模样。 小寶影院xiaobaotv.video 爱壹帆免费版yfsp.app
这或许,就是折腾的意义所在。
04目录 0

