当前位置: 首页 > article >正文

基于USB ACA模式实现安卓手机边玩边充的游戏手柄设计

1. 项目缘起当手机性能过剩却败给了触摸屏几年前我清理手机游戏时发现一个挺无奈的现象性能足以媲美掌机的智能手机里只剩下一些慢节奏的平台解谜或者数独。那些曾经让我在掌机上废寝忘食的赛车、动作游戏全被我删光了。原因无他就是那块光滑的玻璃屏幕。你试过用大拇指在屏幕上玩《马里奥》或者竞速游戏吗那感觉简直是一场灾难——手指完全找不到按键的边界玩不了几秒就“漂移”了更别提那几根粗壮的手指还要遮住将近三分之一的屏幕视野。触摸屏对于需要精准、快速和持续输入的游戏来说体验上的短板是硬伤。这让我萌生了一个想法为什么不给我的手机造一个“家”呢一个即插即用、自带实体按键、甚至还能给手机“续命”的游戏手柄外壳。它应该像当年的NDS或PSVita的下半部分手机放上去瞬间变身为一台功能完整的掌机。这个想法就是“Android Gamepad”项目的起点。核心目标很明确利用手机强大的处理能力通过一个外设彻底解决触控操作在核心游戏体验上的缺失并顺带缓解游戏时手机电量“尿崩”的问题。2. 核心设计思路不止于手柄更是一个移动电站最初的构想是一个功能复合体我称之为“全能型游戏底座”。它需要满足几个核心需求2.1 输入功能原生即插即用是关键首要任务是实现零配置的按键输入。这意味着手柄必须被手机系统识别为一个标准的输入设备。在安卓生态中最理想、兼容性最广的方案就是采用USB HIDHuman Interface Device协议。HID是USB协议中为键盘、鼠标、游戏手柄等设备定义的标准。只要设备遵循这个协议接入安卓手机后系统会将其识别为一个标准的游戏控制器无需安装任何额外的驱动或App。这对于用户体验至关重要实现了“放入即玩”的畅快感。在按键布局上我参考了经典掌机的设计左侧一个模拟摇杆或十字键右侧至少四个动作键A/B/X/Y以及肩部的L/R键。这基本上覆盖了绝大多数复古游戏和模拟器游戏的操控需求。在设计初期我需要确认安卓系统对多按键的支持情况但标准HID游戏手柄协议通常支持足够多的按键和至少两个模拟摇杆这为设计提供了充足的空间。2.2 供电功能解决游戏时的续航焦虑智能手机在运行大型游戏时CPU和GPU全速运转屏幕常亮耗电极快。一个自带电池的手柄如果能在游戏的同时为手机充电那将极大提升游玩时长和体验的完整性。我最初的设想非常直接手柄内置一块锂电池通过USB连接线在传输按键数据的同时也为手机供电。然而正是这个“供电通信”的复合需求让我在项目初期就撞上了第一堵技术高墙也是整个项目中最具挑战性的部分之一。3. 技术攻坚在USB的规则里“跳舞”我花了不少时间深入研究USB协议特别是关于供电的规范。最初的兴奋很快被现实浇灭。在标准的USB主从架构中角色是固定的Host主机通常是电脑、充电头或者我们的手机当它连接U盘、键盘时。主机负责管理总线、提供电源。Device设备U盘、键盘、鼠标或者我们设想中的游戏手柄。设备接受主机的管理和供电。在我的设想里手机作为Host接收手柄Device的按键数据同时却又要求手柄Device给手机Host供电。这在标准USB协议下是被禁止的。一个Device无法向它的Host反向供电。这就陷入了死循环要通信手机必须是Host要由手柄供电手柄又必须是Host——两者无法同时成立。3.1 十字路口的抉择当时摆在我面前的有两条路方案一妥协做纯手柄。放弃内置电池和充电功能只保留按键输入。项目立刻变得简单但也失去了最大的亮点和实用性变得“平平无奇”。方案二复杂化引入蓝牙。保持USB连接仅用于充电此时手柄作为充电器是Host而按键数据则通过蓝牙HID协议传输。这解决了供电问题但带来了新的复杂度我需要寻找并编程支持蓝牙HID的模块这超出了我当时熟悉的串口通信范畴协议栈和配对枚举过程都更复杂。就在几乎要转向蓝牙方案时我进行了更深入的挖掘。功夫不负有心人我在USB Battery Charging SpecificationBC1.2这个扩展规范中找到了破局的关键——ACAAccessory Charging Adapter附件充电适配器模式。3.2 ACA模式绝处逢生的妙招ACA模式专门设计用于解决这种“附件既想给主机充电又想与主机通信”的场景。它通过利用Micro-USB接口上通常闲置的ID Pin第5引脚来实现角色切换和模式声明。关键就在于ID Pin对地的电阻值这个电阻值就像是一个信号灯告诉手机当前连接的是什么设备ID Pin 直接接地0Ω手机识别为连接到了标准的USB Host如电脑此时手机作为设备可以充电但无法行使主机功能例如读取U盘。这对应普通充电模式。ID Pin 悬空或接高阻手机识别为OTG模式自身作为Host可以连接U盘、键盘等设备但无法从USB口获取充电电流。这对应我们最初设想的纯手柄模式。ID Pin 通过特定电阻接地这就是ACA模式的精髓。根据BC1.2规范接地电阻 ≈ 124kΩ手机识别为连接了一个“充电附件”Charging Accessory。此时手机既可以作为USB Host与附件通信又可以接受来自该附件的充电电流。完美契合我们的需求接地电阻 ≈ 68kΩ手机识别为“专用充电器”Dedicated Charger此时仅充电不进行数据通信。这个发现让我豁然开朗。我不需要复杂的蓝牙只需要在游戏手柄的电路上设计一个受控的电路在手机插入时将ID Pin通过一个124kΩ的精密电阻连接到地。这样手机就会进入ACA模式一边愉快地接收手柄传来的按键数据HID Device一边贪婪地从手柄的电池里汲取电能。实操心得电阻精度与识别稳定性这里的124kΩ电阻值非常关键。在实际选型和焊接时务必使用精度为1%甚至更高精度的金属膜电阻。我曾尝试用普通的5%精度碳膜电阻结果在某些对阻抗识别比较敏感的手机型号上会出现模式识别失败的情况要么只能充电不能识别手柄要么识别了手柄但不能充电。一个高精度的电阻能极大提升兼容性。4. 硬件设计与实现要点找到了核心的理论支撑后整个硬件设计就有了明确的方向。整个系统可以划分为几个模块4.1 主控与USB通信模块这是手柄的“大脑”。我选择了当时性价比和生态都很好的ATmega32U4微控制器。这颗芯片最大的优势在于原生支持USB通信并且内置了USB收发器无需外接复杂的USB协议芯片。通过Arduino Leonardo或其衍生开发板的环境可以非常方便地将其编程为一个标准的USB HID游戏手柄设备大大降低了开发门槛。4.2 供电与电源管理模块这是项目的“心脏”也是最需要精心设计的部分。电池选用一块常见的3.7V标压、容量在2000mAh以上的锂聚合物电池。它体积扁平适合放在手柄外壳内并能提供可观的额外电量。充电管理采用一颗如TP4056之类的单节锂电池充电管理芯片。它负责通过手柄上的Micro-USB接口安全地为内置电池充电包含恒流、恒压、自动截止等功能防止过充。升压电路DC-DC Booster因为锂电池满电电压也只有4.2V而USB充电标准是5V。所以需要一颗升压芯片如MT3608将电池电压稳定提升至5.0V-5.2V用于为手机充电。ACA模式控制电路这是实现“边玩边充”的灵魂。电路并不复杂一个124kΩ的精密电阻连接在Micro-USB接口的ID Pin和地之间。当手机插入手柄的USB母座时这条通路就建立了。为了灵活性我后来还增加了一个拨动开关串联在电阻通路上。开关断开时ID Pin悬空手柄工作在纯OTG模式仅通信不充电开关闭合时启用ACA模式通信充电。4.3 按键与摇杆输入模块这部分相对传统按键使用标准的6x6mm贴片轻触开关或更耐用的机械轴开关通过上拉电阻连接到ATmega32U4的GPIO口程序内部配置为输入并启用内部上拉检测低电平即为按下。摇杆采用双轴模拟摇杆模块通常基于两个电位器。它输出两路模拟电压X轴和Y轴连接到MCU的模拟输入引脚ADC。编程时需要读取ADC值并将其映射为HID游戏手柄协议规定的标准模拟摇杆数值范围例如-127到127或0到255。4.4 结构设计与装配外壳使用3D打印制作。设计时需重点考虑手机卡槽的通用性与紧固性由于手机尺寸厚度各异卡槽不能是固定尺寸。我采用了“弹簧夹片”的设计利用PETG或尼龙材料本身的弹性形成一个有夹持力的轨道能适应一定尺寸范围的手机。重心分布电池和主板的位置需要仔细安排确保手机装上后整体重心落在手掌中心避免头重脚轻导致手感疲劳。按键布局与手感按键高度、键程以及摇杆的高度需要反复打样测试。我的经验是按键最好略高于外壳表面0.5-1mm摇杆帽不宜过高否则在激烈操作时容易误触到屏幕。5. 软件与固件开发实录固件开发是在Arduino IDE中完成的核心是让ATmega32U4模拟成一个标准的USB游戏手柄。5.1 开发环境与库首先需要在Arduino IDE中安装针对ATmega32U4的板卡支持如Arduino AVR Boards然后利用其内置的HID库。更强大的选择是使用Joystick库它提供了更直接、功能更完整的API来定义手柄的按键、摇杆和 hats。5.2 核心代码逻辑代码结构主要包括初始化、引脚配置和主循环。#include Joystick.h // 初始化Joystick对象定义按钮数量、摇杆轴数等 Joystick_ Gamepad(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD, 12, 0, // 按钮数Hat开关数 true, true, false, // X轴 Y轴 Z轴 false, false, false, // Rx轴 Ry轴 Rz轴 false, false, // 油门方向舵 false, false, false); // 加速器刹车转向 // 定义引脚映射 const int pinButtonA 2; const int pinButtonB 3; const int pinButtonX 4; const int pinButtonY 5; const int pinJoyX A0; // 摇杆X轴模拟输入 const int pinJoyY A1; // 摇杆Y轴模拟输入 void setup() { // 初始化所有按键引脚为输入并启用内部上拉电阻 pinMode(pinButtonA, INPUT_PULLUP); pinMode(pinButtonB, INPUT_PULLUP); // ... 其他按键 // 初始化Joystick库 Gamepad.begin(); } void loop() { // 1. 读取所有数字按键状态 bool stateA !digitalRead(pinButtonA); // 按下为低电平取反后true表示按下 bool stateB !digitalRead(pinButtonB); // ... // 2. 设置Joystick按钮状态 Gamepad.setButton(0, stateA); // 按钮0映射为A键 Gamepad.setButton(1, stateB); // 按钮1映射为B键 // ... // 3. 读取模拟摇杆值0-1023 int joyXValue analogRead(pinJoyX); int joyYValue analogRead(pinJoyY); // 4. 将模拟值映射到HID报告范围-127到127 int hidXValue map(joyXValue, 0, 1023, -127, 127); int hidYValue map(joyYValue, 0, 1023, -127, 127); // 注意Y轴方向可能需要反转 // 5. 设置Joystick模拟轴状态 Gamepad.setXAxis(hidXValue); Gamepad.setYAxis(hidYValue); // 6. 发送HID报告给主机手机 Gamepad.sendState(); // 短暂延迟避免发送过于频繁 delay(10); }5.3 按键防抖与摇杆校准这是提升手感的关键细节。软件防抖简单的延时去抖在实时性要求高的游戏中不可取。我采用的状态机或“稳定时间”检测法只有当按键电平在连续几次扫描中都保持为按下状态时才确认为有效按下。这能有效消除机械触点抖动。摇杆校准模拟摇杆的中位值不触碰时的值往往不是精确的512。需要在setup()中读取一个“静止中位值”然后在loop()中将实时读数减去这个中位值再进行映射。更进阶的做法是增加一个“校准模式”通过组合键触发记录下摇杆在四个极值位置的数据实现全量程的动态校准。6. 组装、测试与问题排查将所有模块焊接在万用板或定制PCB上装入3D打印的外壳就进入了激动人心的测试阶段。6.1 功能测试清单USB枚举测试不接电池仅通过USB线连接电脑。电脑应能正确识别出一个新的游戏控制器。可以使用系统的“游戏控制器设置”或在线游戏手柄测试网站检查每个按键和摇杆的响应是否正常、无串扰。ACA充电测试装入电池用USB线连接手机。观察手机是否显示充电标志。同时打开一个支持手柄的游戏或测试App检查按键是否同时有效。这是最关键的一步。功耗与续航测试记录手柄空载时的待机电流应极低微安级以及同时为手机充电和传输数据时的工作电流。结合电池容量估算实际能为手机补充多少电量。6.2 常见问题与解决方案实录问题一手机识别为“USB设备”但无法充电。排查首先检查升压电路输出是否为稳定的5V以上。然后重点检查ACA电路。用万用表测量ID Pin对地的电阻值确保在手机插入时电阻值稳定在124kΩ左右考虑开关和线路阻抗。我曾遇到因开关接触电阻过大导致总阻值远超124kΩ手机识别为专用充电器模式从而关闭了数据通道。解决更换质量更好的拨动开关或直接在测试阶段短接ACA电路排除开关因素。问题二按键在游戏中出现“连发”或“粘滞”现象。排查这通常是软件防抖逻辑不完善或GPIO配置问题。检查代码中的防抖延时或状态判断条件是否过于宽松。也可能是硬件上按键引脚的上拉电阻失效或受到干扰。解决优化防抖算法确保只有稳定的电平变化才被记录。在硬件上确保INPUT_PULLUP启用或者在引脚外部增加一个4.7kΩ-10kΩ的上拉电阻到VCC增强抗干扰能力。问题三摇杆中心漂移或在某个方向不灵敏。排查首先进行软件校准确认中位值是否准确。如果校准后仍漂移可能是硬件问题摇杆模块本身质量差电位器线性度不佳或者供电电压不稳影响ADC参考电压。解决更换一个质量更好的摇杆模块。在MCU的AVCC和AREF引脚增加滤波电容确保模拟电源稳定。在代码中可以设置一个“死区”即当摇杆数值在中心点附近一个很小范围内时直接输出中位值避免轻微漂移带来的误操作。问题四同时充电和玩游戏时手柄发热明显。排查这是正常现象但需控制在一定范围内。发热主要来自升压芯片和锂电池在大电流输出下的内耗。用手触摸感觉一下是微温还是烫手。解决确保升压芯片和电池周围有适当的散热空间不要被紧密包裹。如果发热过于严重检查升压电路的效率或者考虑使用输出电流能力更强的芯片和更粗的电源走线减少损耗。7. 项目总结与延伸思考这个项目从最初一个简单的想法到遭遇USB协议的理论壁垒再到通过深入研究BC1.2规范找到ACA模式这个巧妙的解决方案最后完成硬件实现和软件调试整个过程是一次非常充实的嵌入式系统开发实践。它不仅仅是一个手柄更是一个融合了USB协议应用、电源管理、HID设备开发和产品化思维的综合性作品。最终成品的效果令人满意。将手机插入这个自制手柄的瞬间看到充电图标亮起的同时进入游戏即插即用那种无缝切换的体验完美解决了触屏游戏的痛点。它的意义在于将手机从一个全能的通用设备在特定场景游戏下通过一个精心设计的外设转化为了一个体验专精的工具。这个项目还有不少可以优化和扩展的方向。例如可以增加蓝牙模块作为备用连接方案以兼容那些USB口仅用于充电的特殊设备可以设计可更换的面板适配不同尺寸的手机甚至可以在手柄内部集成一个小的音频放大器和解码芯片将手机的音频通过手柄上更好的扬声器播放出来。硬件上从万用板升级为专业的PCB设计能大幅提升可靠性并缩小体积。软件上可以开发一个配套的App用于自定义按键映射、摇杆曲线调整和固件升级。回过头看最大的收获不是做出了一个能用的手柄而是在这个过程中学会了如何阅读和理解官方技术规范如USB BC1.2如何将规范中的理论条款转化为具体的电路设计和电阻值。这让我明白很多看似“不可能”的功能其实在协议层面早已预留了可能性关键在于我们是否愿意去深入挖掘。

相关文章:

基于USB ACA模式实现安卓手机边玩边充的游戏手柄设计

1. 项目缘起:当手机性能过剩,却败给了触摸屏几年前,我清理手机游戏时,发现一个挺无奈的现象:性能足以媲美掌机的智能手机里,只剩下一些慢节奏的平台解谜或者数独。那些曾经让我在掌机上废寝忘食的赛车、动作…...

3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程

3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的歌曲&a…...

Qri高级功能:如何使用JSON Schema验证和描述数据集结构

Qri高级功能:如何使用JSON Schema验证和描述数据集结构 【免费下载链接】qri youre invited to a data party! 项目地址: https://gitcode.com/gh_mirrors/qr/qri Qri是一个强大的开源数据协作工具,它提供了丰富的功能来帮助用户管理、共享和验证…...

Raspberry Pi Debug Probe:RP2040嵌入式开发的调试利器与实战指南

1. 项目概述:为什么你需要一个Raspberry Pi Debug Probe?如果你玩过树莓派Pico或者任何基于RP2040芯片的开发板,肯定遇到过这样的场景:写好的代码,点一下“上传”,然后……就没有然后了。板子上的LED没按你…...

基于Netburner NANO54415构建工业级嵌入式Web服务器:从硬件选型到广域监控实战

1. 项目概述:一个为广域与本地监控而生的嵌入式Web服务器如果你正在寻找一个能部署在野外、工厂角落或者任何需要远程数据采集与控制场景下的嵌入式Web服务器方案,并且对市面上那些要么性能孱弱、要么开发门槛极高的开发板感到厌倦,那么这个基…...

Jupyter Notebook里跑argparse脚本总报错?一个空列表参数搞定ipykernel_launcher.py error

Jupyter Notebook中argparse报错的终极解决方案:空列表参数实战解析在数据科学和机器学习的工作流中,Jupyter Notebook因其交互式特性成为众多研究者的首选工具。然而,当我们尝试在Notebook中运行那些原本为命令行设计的Python脚本时&#xf…...

开源ELM327 OBD-II适配器:从硬件设计到多协议固件实现全解析

1. 项目概述:开源ELM327 OBD适配器如果你对汽车诊断、数据监控或者嵌入式开发感兴趣,那么自己动手做一个OBD-II适配器绝对是个能让你学到很多东西的硬核项目。今天要聊的,就是一个完全开源的、基于NXP LPC1517微控制器的ELM327兼容OBD适配器。…...

RevSSH反向SSH隧道:无公网IP设备的安全远程运维方案

1. 这不是又一个SSH封装工具——RevSSH解决的是“根本性连接悖论”你有没有遇到过这样的场景:一台部署在客户内网的嵌入式设备,没有公网IP,NAT穿透失败,防火墙策略死死锁住所有入向端口,连ICMP都被禁了;或者…...

从安装到排错:手把手解决Linux服务器上Nacos启动失败的十大常见问题

从安装到排错:手把手解决Linux服务器上Nacos启动失败的十大常见问题当你在Linux服务器上部署Nacos时,是否遇到过启动失败却无从下手的困境?作为阿里巴巴开源的服务发现和配置管理平台,Nacos在微服务架构中扮演着重要角色。然而&am…...

手把手教你用Mind+和Blynk,让手机轻松遥控掌控板(含自建服务器避坑指南)

从零搭建物联网控制平台:Mind与Blynk深度整合实战 当你第一次尝试用手机控制硬件设备时,那种"隔空取物"的奇妙感总会让人兴奋不已。想象一下,躺在沙发上就能调节书桌上的智能台灯亮度,或者在外出时随时查看家中的温湿度…...

styled-theming 性能优化:如何避免主题切换时的性能瓶颈

styled-theming 性能优化:如何避免主题切换时的性能瓶颈 【免费下载链接】styled-theming Create themes for your app using styled-components 项目地址: https://gitcode.com/gh_mirrors/st/styled-theming styled-theming 是一个专为 styled-components …...

如何快速集成 react-native-bottom-sheet-behavior:5 分钟搞定 Android 底部弹窗

如何快速集成 react-native-bottom-sheet-behavior:5 分钟搞定 Android 底部弹窗 【免费下载链接】react-native-bottom-sheet-behavior react-native wrapper for android BottomSheetBehavior 项目地址: https://gitcode.com/gh_mirrors/re/react-native-bottom…...

defx.nvim 安装与配置完全教程:从零开始搭建高效文件管理系统 [特殊字符]

defx.nvim 安装与配置完全教程:从零开始搭建高效文件管理系统 🚀 【免费下载链接】defx.nvim :file_folder: The dark powered file explorer implementation for neovim/Vim8 项目地址: https://gitcode.com/gh_mirrors/de/defx.nvim defx.nvim …...

CSharpVerbalExpressions常见问题解答:解决开发者遇到的10个典型挑战

CSharpVerbalExpressions常见问题解答:解决开发者遇到的10个典型挑战 【免费下载链接】CSharpVerbalExpressions 项目地址: https://gitcode.com/gh_mirrors/cs/CSharpVerbalExpressions CSharpVerbalExpressions是一个强大的C#库,它通过类自然语…...

PCB的常规机械通孔与HDI工艺钻孔差异

结合常规 4 层通孔 PCB(非 HDI) 标准制程,分步骤讲清钻孔时机、先后顺序,区分机械通孔与板件结构,专业且贴合工厂实际流程。一、先明确 4 层通孔板基础结构4 层板结构:L1 → PP 半固化片 → L2/L3&#xff…...

基于PIC32的嵌入式MIDI合成器:从波表合成到硬件实现

1. 项目概述:一个基于嵌入式微控制器的MIDI声音合成器如果你对电子音乐制作、嵌入式开发,或者DIY硬件合成器感兴趣,那么“REMI Synth”这个项目绝对值得你花时间深入了解。它本质上是一个数字单音MIDI控制的声音合成器,核心是一块…...

Arcmap实操:如何用‘渔网’给你的地图做一次‘CT扫描’——以韶关市路网密度可视化为例

Arcmap实操:如何用‘渔网’给你的地图做一次‘CT扫描’——以韶关市路网密度可视化为例 想象一下,医生通过CT扫描将人体内部结构分层呈现,而GIS中的"渔网"工具同样能对城市路网进行"切片式"分析。这种空间离散化技术&…...

如何用Python脚本榨干百度网盘带宽:pan-baidu-download终极指南

如何用Python脚本榨干百度网盘带宽:pan-baidu-download终极指南 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download 在数字时代,百度网盘已成为我们存储和分享大型文件的默认…...

ZTE光猫工厂模式解锁:5分钟开启隐藏功能的终极指南

ZTE光猫工厂模式解锁:5分钟开启隐藏功能的终极指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 核心关键词:ZTE光猫工厂模式解锁 长尾关键词: ZT…...

同步带装配工艺要点与损伤防控策略

一、引言在工业精密传动系统中,盖茨同步带凭借高精度、高效率、无滑差的优势,成为自动化设备、精密机床、输送产线的核心传动部件。多数企业在运维中,普遍将同步带异常磨损、断齿、断带等故障归咎于工况恶劣或产品质量问题,却忽略…...

通过用量看板分析团队大模型API消耗发现优化调用策略的机会

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过用量看板分析团队大模型API消耗发现优化调用策略的机会 作为团队的技术负责人,确保大模型API调用在满足业务需求的…...

淘宝淘金币自动化脚本终极指南:如何每天节省25分钟实现智能任务管理

淘宝淘金币自动化脚本终极指南:如何每天节省25分钟实现智能任务管理 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taoji…...

车载诊断系统(OBD)的原理、演进与未来

本文约8,167字,建议收藏阅读 作者 | 北湾南巷 出品 | 汽车电子与软件 引 言 在现代汽车中,越来越多的故障不再表现为明显的机械损坏,而是以“亮灯”“报码”“性能异常”等电子信号的形式出现。发动机为什么亮起故障灯?排放是否达…...

如何快速解锁艾尔登法环帧率限制:终极性能优化指南

如何快速解锁艾尔登法环帧率限制:终极性能优化指南 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/EldenR…...

具身智能:面向新兴交叉学科建设的思考与建议 2026

这份由 CCF YOCSEF 长三角五地学术委员会 2026 年 5 月发布的白皮书,聚焦具身智能作为新兴交叉学科的建设,明确其并非 AI 与机器人学的简单拼接,而是围绕物理交互中的智能行为形成的新问题域,提出 “三大基本问题 一个应用需求”…...

TV Bro电视浏览器:为智能电视打造的最佳遥控器上网解决方案

TV Bro电视浏览器:为智能电视打造的最佳遥控器上网解决方案 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 还在为智能电视上网操作不便而烦恼吗&#xff1f…...

深度解析HS2-HF Patch:从技术框架到创作工具链的完整升级方案

深度解析HS2-HF Patch:从技术框架到创作工具链的完整升级方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾因Honey Select 2的原版体验受…...

BiliRoamingX:彻底解决B站体验限制的完整增强方案

BiliRoamingX:彻底解决B站体验限制的完整增强方案 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations and patches powered by ReVanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations 你是否曾为B站的内容区…...

16个分片+2副本:pg_shard的master_create_worker_shards最佳实践

16个分片2副本:pg_shard的master_create_worker_shards最佳实践 【免费下载链接】pg_shard ATTENTION: pg_shard is superseded by Citus, its more powerful replacement 项目地址: https://gitcode.com/gh_mirrors/pg/pg_shard pg_shard作为PostgreSQL的分…...

TorchDynamo与TorchInductor:PyTorch编译器生态的完整解析

TorchDynamo与TorchInductor:PyTorch编译器生态的完整解析 【免费下载链接】torchdynamo A Python-level JIT compiler designed to make unmodified PyTorch programs faster. 项目地址: https://gitcode.com/gh_mirrors/to/torchdynamo TorchDynamo 是一个…...