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

基于Raspberry Pi Pico的DIY宏键盘:从矩阵扫描到KMK固件实战

1. 项目概述ClawDeck一个为游戏玩家打造的桌面控制中心最近在逛一些开发者社区和硬件DIY论坛时发现一个叫“ClawDeck”的项目挺有意思。项目作者是“gaminghousenursingaide761”这个名字看起来像是一个个人开发者的ID。ClawDeck这个名字直译过来是“爪式甲板”听起来有点赛博朋克的味道。实际上它是一个开源的、高度可定制的桌面宏键盘/控制台项目核心目标是为PC游戏玩家、内容创作者乃至日常办公用户提供一个物理的、可编程的快捷操作面板。想象一下这个场景你在玩一款复杂的MMORPG大型多人在线角色扮演游戏技能栏密密麻麻组合键按到手抽筋或者你在剪辑视频需要频繁地在时间线上打标记、切换工具、调整参数鼠标和键盘来回切换效率低下。ClawDeck就是为了解决这类痛点而生的。它不是一个现成的商品而是一个“蓝图”或“套件”包含了硬件设计如PCB电路板文件、3D打印外壳模型和配套的固件/软件让有动手能力的玩家可以自己焊接、组装、编程打造一个完全属于自己的物理快捷面板。这个项目的核心价值在于“个性化”和“控制感”。它不像市面上一些商业化的流媒体控制台功能固定且昂贵。ClawDeck鼓励用户深度参与从选择按键类型、设计面板布局到编写每一个按键的功能逻辑整个过程就像在组装一件专属的外设装备。对于硬件和编程爱好者来说这本身就是一个极具成就感的项目对于纯粹追求效率的用户一个完全贴合自己工作流的物理控制台其提升是巨大的。2. 项目核心设计思路与架构拆解要理解ClawDeck我们需要把它拆解成几个核心部分来看硬件层、固件层和软件配置层。这三者协同工作将一个普通的按键矩阵变成一个智能的输入设备。2.1 硬件架构从微控制器到按键矩阵ClawDeck的硬件核心通常是一块微控制器MCU比如在开源硬件领域非常流行的Raspberry Pi Pico基于RP2040芯片或者Arduino Pro Micro基于ATmega32U4。选择这些MCU的关键原因在于它们原生支持USB HID人机接口设备协议。这意味着设备组装好后可以直接被电脑识别为一个键盘、鼠标或游戏控制器无需安装额外的驱动即插即用。为什么是RP2040或ATmega32U4市面上MCU很多但很多如STM32F103需要额外配置才能模拟USB设备。RP2040和ATmega32U4的芯片内置了USB通信硬件和成熟的软件库如Arduino的Keyboard/Mouse库Pico的TinyUSB极大简化了开发难度。RP2040双核、大内存的特点也为处理复杂的多层按键映射和灯光效果提供了可能。硬件的主体是一个按键开关矩阵。为了节省微控制器的IO引脚按键不会每个都单独占用一个引脚。假设我们有5行4列共20个按键如果独立连接需要20个IO口。采用矩阵扫描只需要549个IO口。原理是微控制器按顺序给每一行输出低电平或高电平同时读取所有列的电平状态。如果某个按键被按下当扫描到其所在行时该按键所在的列线电平就会发生变化从而定位到具体的按键坐标。除了按键ClawDeck通常还会集成旋转编码器和OLED屏幕。旋转编码器不是简单的电位器它可以无限旋转并输出“左转”和“右转”两个脉冲信号。通过编程它可以实现音量调节、画面缩放、时间轴穿梭等连续调节功能手感比按键更直观。OLED屏幕一块小型显示屏如0.96英寸可以显示当前按键层的名称、每个按键绑定的功能图标或文本、系统状态如CPU占用率等。这是提升设备“智能感”和可用性的关键让你一眼就知道当前面板是处于“Photoshop模式”还是“魔兽世界模式”。外壳通常设计为3D打印件将PCB、按键如机械轴或锅仔片按键、编码器、屏幕固定在一起形成一个整洁的桌面设备。2.2 固件设备的大脑与逻辑核心固件是烧录在微控制器里的程序它决定了设备的“行为模式”。对于ClawDeck这类项目固件需要持续不断地做以下几件事扫描按键矩阵以毫秒级的间隔循环扫描检测哪个按键被按下或释放。处理编码器信号解码编码器旋转的方向和步数。驱动OLED显示根据当前状态更新屏幕内容。执行按键映射根据按下的按键坐标查找其对应的功能。模拟USB输出将功能转化为标准的键盘按键如CtrlC、鼠标点击或移动、甚至多媒体键音量增减等信号通过USB发送给电脑。这里的关键在于按键映射的灵活性。固件通常会支持“层”Layer的概念。就像键盘上的Fn键ClawDeck可以定义多个功能层。默认是Layer 0按下某个“层切换键”后立即跳转到Layer 1此时所有按键的功能定义都变了。这样一个只有20个物理按键的设备通过2-3个层的切换就能实现60种不同的快捷功能极大地扩展了实用性。一个优秀的固件如KMK用于Pico或QMK用于兼容的AVR/ARM MCU本身就是一套强大的开源键盘固件框架。它们提供了层管理、宏定义、Tap Dance单击/双击不同功能、OLED驱动等高级功能。ClawDeck项目往往会基于这些成熟固件进行配置和修改而不是从头编写保证了稳定性和功能丰富性。2.3 软件配置用户友好的功能定制界面固件虽然强大但直接修改代码来配置按键对普通用户门槛太高。因此配套的配置软件至关重要。这类软件如VIA、Vial for QMK提供了一个图形化界面运行在用户的电脑上。用户通过USB连接ClawDeck后打开配置软件软件会识别设备。界面通常是一个虚拟的按键布局图用户可以直接用鼠标点击某个虚拟按键然后从下拉菜单中选择想要绑定的功能可以是一个单独的键如“A”、“Enter”可以是一个组合键如“CtrlShiftE”可以是一个复杂的宏如“按顺序按下Win, 输入‘notepad’ 按Enter”也可以是切换层、调节背光等设备控制命令。配置完成后软件将新的键位表编译并刷写到设备的固件中有时是实时写入无需重新刷固件。此后设备便按照新的配置工作。这个“硬件功能由软件定义”的过程是ClawDeck可定制性的灵魂。3. 从零开始构建你自己的ClawDeck实操全流程假设你是一个有一定动手能力和编程兴趣的玩家想亲手打造一个ClawDeck。下面是一个基于Raspberry Pi Pico和KMK固件的详细实现流程。3.1 材料准备与硬件焊接所需材料清单主控Raspberry Pi Pico 1个按键开关机械轴如Gateron红轴或热插拔轴座 键帽数量根据你的设计如20个。旋转编码器EC11系列编码器带按键功能1-2个。显示屏0.96英寸 I2C接口 OLED屏幕SSD1306驱动1个。二极管1N4148开关二极管每个按键1个用于防止按键矩阵的“鬼影”现象。PCB你可以根据开源设计自己打样或在万用板上手工焊接矩阵。对于新手使用预设计好的开源PCB是最稳妥的选择很多ClawDeck类项目会提供Gerber文件。连接线杜邦线、焊锡等。外壳3D打印外壳文件通常为.stl格式可用光固化或熔融沉积打印机制作。焊接步骤与要点规划矩阵确定你的按键布局如5行4列。将每个按键视为矩阵中的一个交叉点。焊接二极管这是防止“鬼影”的关键。二极管的负极有黑色环的一端朝向按键的“行”线方向正极连接“列”线。必须确保方向一致否则矩阵扫描会失效。连接行线与列线将所有同一行的按键开关的一个引脚通过二极管连接在一起形成行线Row。将所有同一列的按键开关的另一个引脚连接在一起形成列线Col。行线和列线最终分别连接到Pico的GPIO引脚上。焊接编码器和屏幕编码器有5个引脚两个通道A/B、接地、按键开关、VCC按数据手册连接。OLED屏幕通常只有4根线VCC, GND, SCL, SDA连接到Pico的I2C接口引脚GP2/GP3。检查短路焊接完成后务必用万用表通断档检查相邻焊点、行/列线之间是否有意外短路这是后续调试中最常见的硬件问题来源。实操心得二极管的方向焊接二极管时最容易出错。一个简单的记忆方法是想象电流从“列”流向“行”。所以二极管的正极电流流入端接列线负极电流流出端接行线。统一这个方向并在焊接前用马克笔在PCB或万用板上做好标记。3.2 固件刷写与基础配置硬件准备就绪后我们需要让Pico“活”起来。安装CircuitPython这是运行KMK固件的基础。按住Pico板上的BOOTSEL按钮同时通过USB连接到电脑。电脑会识别出一个名为“RPI-RP2”的U盘。将下载好的CircuitPython UF2文件如adafruit-circuitpython-raspberry_pi_pico-en_US-xxx.uf2拖入该U盘。拖入后U盘会自动弹出Pico重启后即运行CircuitPython。部署KMK固件重新连接Pico电脑会识别出一个名为“CIRCUITPY”的U盘。这就是Pico的“文件系统”。你需要将KMK的核心文件复制进去从KMK的GitHub仓库下载kmk文件夹和boot.py文件。在“CIRCUITPY”盘根目录下创建lib文件夹将KMK依赖的库如adafruit_hid,adafruit_displayio_ssd1306等复制到lib内。将kmk文件夹和boot.py复制到根目录。创建主程序文件在“CIRCUITPY”根目录下创建或修改code.py文件。这个文件是设备上电后自动执行的主程序。一个最基础的code.py结构如下import board from kmk.kmk_keyboard import KMKKeyboard from kmk.scanners import DiodeOrientation from kmk.keys import KC # 初始化键盘对象 keyboard KMKKeyboard() # 定义按键矩阵的引脚和方向 keyboard.col_pins (board.GP0, board.GP1, board.GP2, board.GP3) # 列线连接的GPIO keyboard.row_pins (board.GP4, board.GP5, board.GP6, board.GP7) # 行线连接的GPIO keyboard.diode_orientation DiodeOrientation.COL2ROW # 二极管方向列到行 # 定义按键布局一个简单的2x2示例 keyboard.keymap [ [KC.A, KC.B, KC.C, KC.D] ] if __name__ __main__: keyboard.go()保存code.py后Pico会自动重启。此时按下你焊接的对应按键电脑应该会接收到A、B、C、D的按键信号。恭喜你的ClawDeck硬件和基础固件已经通了3.3 高级功能实现层、编码器与屏幕基础按键实现后我们来添加项目的精髓——可切换层、编码器和屏幕。1. 实现层切换功能在KMK中定义多层键位非常直观。我们扩展上面的keymap并添加层切换键。from kmk.modules.layers import Layers keyboard.modules.append(Layers()) # 启用层模块 keyboard.keymap [ # 层0基础层 [KC.A, KC.B, KC.C, KC.D], # 层1功能层按MO(1)键切换到这一层 [KC.F1, KC.F2, KC.F3, KC.F4] ] # 假设键位图左上角第一个键0,0作为层切换键 # 在层0中将它定义为 MO(1)意思是按住时临时激活层1松开返回层0。 # 你需要根据你的实际矩阵坐标调整这样当你按住那个定义为MO(1)的按键时其他按键的功能就会临时变成F1-F4。2. 集成旋转编码器首先在code.py中启用编码器模块并定义。from kmk.modules.encoder import EncoderHandler encoder_handler EncoderHandler() keyboard.modules.append(encoder_handler) # 定义编码器引脚和映射 encoder_handler.pins ( (board.GP10, board.GP11, None), # 第一个编码器的引脚A, B 第三个是按键引脚如果支持 ) # 定义在不同层下编码器旋转对应的功能 encoder_handler.map [ ((KC.VOLD, KC.VOLU),), # 层0左转音量减右转音量加 ((KC.LEFT, KC.RIGHT),), # 层1左转方向左右转方向右 ]3. 驱动OLED屏幕屏幕显示需要更多的设置主要是初始化显示驱动和定义更新内容。import displayio import terminalio from adafruit_display_text import label from adafruit_displayio_ssd1306 import SSD1306 # 初始化I2C和显示 displayio.release_displays() i2c board.I2C() display_bus displayio.I2CDisplay(i2c, device_address0x3C) # 地址可能是0x3C或0x3D display SSD1306(display_bus, width128, height64) # 创建显示组和文本标签 splash displayio.Group() text_area label.Label(terminalio.FONT, textLayer: 0, color0xFFFFFF, x5, y20) splash.append(text_area) display.show(splash) # 在键盘主循环或层切换事件中更新文本 def update_display(layer_index): text_area.text fLayer: {layer_index}你需要将update_display函数与层切换事件绑定这样屏幕内容就能随层变化而实时更新。3.4 外壳组装与最终调试将焊接好的PCB安装好键帽的轴体编码器旋钮以及OLED屏幕按照3D打印外壳的设计用螺丝固定在一起。确保所有连接线不会被挤压USB接口能顺利露出。组装完成后进行最终测试功能测试使用在线的键盘测试工具逐一按下每个按键确保都能正确触发。旋转编码器测试音量调节或定义的其他功能。层切换测试测试层切换键确保在不同层下按键功能按预期变化屏幕显示也随之更新。压力测试快速、随机地按下多个按键尤其是相邻按键检查是否有“鬼键”按下A和B却输出C现象。如果出现回头检查二极管焊接和矩阵扫描代码。实际场景测试在你最常用的游戏或软件中使用ClawDeck执行一系列快捷操作感受流程是否顺畅键位布局是否符合人体工学并根据体验微调键位配置。4. 常见问题、排查技巧与进阶玩法自己动手做难免会遇到问题。下面是一些常见坑点和解决方案。4.1 硬件问题排查问题现象可能原因排查步骤单个按键无反应1. 按键开关损坏2. 该按键二极管焊反或损坏3. 行/列线到此按键的线路断路1. 用万用表通断档测试开关本身。2. 检查二极管方向和焊接。3. 用万用表沿PCB走线或飞线路径检查连通性。整行或整列按键无反应1. 该行/列线到MCU的引脚虚焊或断路2. MCU对应GPIO引脚配置错误1. 检查行/列线汇总点到MCU引脚的连接。2. 检查code.py中row_pins和col_pins的引脚定义是否与实际焊接一致。出现“鬼键”1. 二极管缺失或方向错误最主要2. 矩阵扫描速度过快/过慢1.确保每个按键都串联了二极管且方向统一COL2ROW或ROW2COL需与代码一致。2. 调整固件中的去抖延时和扫描间隔。USB无法识别1. USB线仅供电无数据2. Pico bootloader损坏3. 固件程序崩溃1. 换一根确认好的数据线。2. 重新进入BOOTSEL模式刷CircuitPython。3. 检查code.py代码是否有语法错误导致死循环。4.2 软件与固件问题按键映射不生效首先确认你修改并保存了code.py文件并且Pico已自动重启CIRCUITPY盘会短暂断开重连。检查键位矩阵坐标[row][col]是否与你物理布局对应。一个笨办法但有效写一个简单的测试键位图让每个按键输出其坐标编号来建立物理位置与代码矩阵的映射关系。编码器反应不灵或反向检查编码器A、B相引脚是否接反。交换一下接线顺序试试。另外在代码中交换KC.VOLD和KC.VOLU的顺序也可以软件层面纠正方向。OLED屏幕不亮或白屏检查I2C地址0x3C或0x3D用I2C扫描程序确认。检查四根线VCC, GND, SCL, SDA是否接对、接牢。屏幕初始化代码顺序很重要务必先release_displays()。4.3 进阶优化与扩展思路当基础功能稳定后你可以考虑以下升级使用Vial进行实时配置KMK固件可以编译支持Vial协议。这样你就不需要修改code.py来改键位了。只需在Pico上刷入支持Vial的固件然后在电脑上打开Vial软件就可以图形化、实时地配置所有按键、编码器、层、宏体验和商业客制化键盘一模一样。添加RGB背光使用WS2812B之类的可寻址LED灯珠围绕在按键周围。通过KMK的RGB模块控制可以实现层指示、按键响应灯效、环境光等视觉效果拉满。实现“Tap Dance”让一个按键根据点击次数单击、双击、长按触发不同功能。这在按键数量有限的情况下非常有用能极大提升控制密度。与软件深度集成通过编写脚本让ClawDeck不仅能发送快捷键还能与特定软件通信。例如在OBS Studio中可以直接切换场景、开关麦克风在Adobe Premiere中可以控制时间轴精准移动。这需要用到像AutoHotkeyWindows或Keyboard MaestroMac这样的自动化工具接收ClawDeck的特殊按键信号并触发更复杂的操作。打造一个ClawDeck的过程远比购买一个成品复杂但收获也截然不同。你得到的不仅仅是一个工具而是一个完全贴合你肌肉记忆和思维习惯的“外设器官”以及从电路原理到软件编程的完整项目经验。当你在激烈的游戏对战中下意识地按下那个你亲手焊接、编程的按键瞬间释放一连串精准操作时那种满足感是无可替代的。这或许就是开源硬件和DIY文化的魅力所在创造然后掌控。

相关文章:

基于Raspberry Pi Pico的DIY宏键盘:从矩阵扫描到KMK固件实战

1. 项目概述:ClawDeck,一个为游戏玩家打造的桌面控制中心最近在逛一些开发者社区和硬件DIY论坛时,发现一个叫“ClawDeck”的项目挺有意思。项目作者是“gaminghousenursingaide761”,这个名字看起来像是一个个人开发者的ID。ClawD…...

【信息科学与工程学】【物理/化学科学和工程技术】知识体系018 第十八篇 界面科学02 界面化学特征 (1)

表3 界面化学特征 完整知识地图框架 第一部分:3.1 界面结构与缺陷 3.1.1 界面原子构型 (50个) 3.1.1.1 共格界面 3.1.1.2 半共格界面 3.1.1.3 非共格界面 3.1.1.4 重构界面 3.1.1.5 驰豫界面 3.1.1.6 晶格失配 3.1.1.7 临界厚度 3.1.1.8 失配位错 3.1.1.9 失配位错…...

【信息科学与工程学】【物理/化学科学和工程技术】知识体系018 第十八篇 界面科学01 界面物理

界面科学知识体系分级分类列表 概述 界面科学是研究两相之间界面(表面)现象、性质、过程和规律的交叉学科。本列表系统整理了界面科学领域的核心概念、理论、技术和应用,涵盖从基础理论到前沿应用的完整知识体系。 界面科学知识体系分类表格...

NPYViewer:5分钟上手的数据可视化神器,告别NumPy数组查看烦恼

NPYViewer:5分钟上手的数据可视化神器,告别NumPy数组查看烦恼 【免费下载链接】NPYViewer Load and view .npy files containing 2D and 1D NumPy arrays. 项目地址: https://gitcode.com/gh_mirrors/np/NPYViewer 还在为NumPy二进制文件头疼吗&a…...

2026年AI大模型接口中转站排行榜新鲜出炉!五大平台硬核数据对比,为开发者提供权威选型指南

发布机构:中国产业信息研究院 TechInsight AI评测实验室 发布日期:2026年3月28日 数据来源:72小时连续压测、万级QPS仿真、10万 真实请求样本、服务商后台脱敏数据 2026年,AI工业化实现全面落地,全球AI大模型接口中…...

【审计专栏-监督监管领域】【信息科学与工程学】【社会科学】第十篇 社会底层核心规则(核心权力、核心利益、核心资源绑定、私下运作、关键价值交换、上下博弈)04

模型046:企业复杂利益链与多方利益博弈模型 1. 模型概述 项目 内容 模型名称​ 企业复杂利益链与多方利益博弈模型 核心场景​ 一家大型建筑企业“宏建集团”中标某市的地铁延长线建设项目。项目涉及总包方(宏建)、多个分包商(土建、机电、装修等)、材料供应商、监理…...

RPC的了解

文章目录1. RPC的概述2. RPC的核心工作原理3. RPC与 HTTP 的区别4. RPC 框架的核心功能5. 常见的RPC框架对比6. 什么时候考虑引入RPC7. 选型8. Dubbo1)概述2. Dubbo核心功能3. Dubbo 具体使用1. RPC的概述 RPC(Remote Procedure Call,远程过程…...

【信息科学与工程学】【制造工程】【通信工程】第一百零一篇 2nm 200Tbps+核心交换机全尺度参数 第二系列 物料与生产体系12

系统概述 系统名称: 200Tbps 集群核心交换机 核心功能: 提供超高密度、超低延迟、无阻塞的数据交换,用于数据中心集群核心或超算中心网络。 系统组成: 机箱、主控板卡、交换网板卡(4块,互为冗余)、线卡(业务板卡)、风扇模块、电源模块。 关键设计参数: 整机交换容量: …...

基于MCP与SSE实现AI助手与MQTT物联网的实时交互

1. 项目概述:为AI助手开启MQTT世界的桥梁最近在折腾AI编程助手(比如Cursor、Claude)时,我一直在想,能不能让这些聪明的“大脑”直接和物联网设备、消息队列这些后端系统对话?比如,让AI帮我监控传…...

FiveM服务器智能运维:基于CoPaw多智能体的自动化技能包实战

1. 项目概述:一套为 FiveM 服务器量身定制的智能运维与开发技能包如果你正在运营或开发一个 FiveM 服务器,那么你肯定对“救火队员”这个角色深有体会。服务器半夜崩溃、某个脚本资源突然失效、数据库查询慢到玩家掉线、新装的反作弊插件和原有系统冲突……...

电子热量表设计:PIC16F913微控制器应用与热力计算

1. 电子热量表的核心原理与设计需求 在集中供暖系统中,热量表扮演着能量"会计"的角色,精确记录每户消耗的热能。其核心任务可以分解为三个关键参数的测量:进水温度、回水温度以及水流量。这三个参数通过热力学基本公式QmcpΔT相互关…...

【数据结构】与排序算法鏖战5天,我终于搞懂了排序的思路和实现--排序算法大全的保姆级攻略

目录 一,排序的概念及分类 二,排序算法的实现 1,插入排序(intsert sort) _1,核心思路: _2,代码实现: _3,总结: 2,希尔排序(Shell sort) _…...

Weaviate向量数据库实战:从官方示例到RAG应用开发全解析

1. 项目概述:从代码仓库到向量数据库的实战指南如果你最近在关注大语言模型应用开发,或者想给自己的应用加上一个“记忆大脑”,那你大概率已经听说过向量数据库了。在众多选型中,Weaviate以其开源、易用和强大的功能脱颖而出。但当…...

【C++笔记】-- 七种排序流食般讲解

1.排序的概念:所谓的排序就是对于一组记录,按照某个或者某些关键字,递增或递减的排序这些记录。2.排序的分类:此文章将会介绍四类排序。一、插入排序:直接插入排序、希尔排序。二、选择排序:选择排序、堆排…...

MCP TypeScript SDK 服务说明文档

1. 服务概述 一句话简介:完整的MCP规范TypeScript实现,轻松构建MCP客户端和服务器,为LLM应用提供标准化的上下文管理能力。 服务名称:MCP TypeScript SDK版本号:Latest开发者/提供方:federated-alpha协议…...

ARM CP15寄存器详解与底层开发实践

1. ARM CP15寄存器概述CP15是ARM架构中的系统控制协处理器,负责管理处理器核心的关键功能模块。作为嵌入式系统开发人员,理解CP15寄存器的工作原理和操作方法,是进行底层系统软件开发的基础。CP15寄存器通过协处理器指令MRC(读)和MCR(写)进行…...

可配置处理器技术:嵌入式SOC设计的灵活加速方案

1. 可配置处理器技术概述在嵌入式系统芯片(SOC)设计领域,算法实现方式的选择一直是个关键决策点。传统上,开发者面临两种主要选择:要么将算法编译成通用处理器(如RISC或DSP)可执行的软件,要么将其直接实现为专用硬件电路(ASIC)。前…...

通过 Taotoken 的 Token Plan 套餐在 Ubuntu 长期项目中实现预算可控

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 Taotoken 的 Token Plan 套餐在 Ubuntu 长期项目中实现预算可控 在长期运行的 AI 辅助项目中,成本的可预测性和可…...

OpenClaw入门教程(1)——CLI 与 UI 配置详解

# OpenClaw 核心概念详解(一):CLI 与 UI 配置 创建日期:2026-04-21 | 作者:AiToMoney团队 🐉 | 版本:v1.0 | 适用版本:OpenClaw 2026.4.14+ 📖 概述 OpenClaw 4.14 版本提供了两种配置方式:CLI(命令行) 和 UI(图形界面),相比 3.13 版本的手动编辑 JSON 文件…...

8.4.3 开始屏幕和任务栏的优化:StartAllBack 找回高效 Windows 11 使用体验

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Sysinternals实战教程》 《Windows PowerShell 实战》 《WINDOWS教程》 《IOS教程》 《微信助手》 《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》 🌟 让…...

大语言模型评测框架解析:从公平对比到工程选型实践

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“ai-llm-comparison”。光看名字,你大概能猜到它是做什么的——对比不同的大语言模型。但如果你以为这只是个简单的跑分列表,那就太小看它了。作为一个在AI应用开发领域摸爬滚…...

AI重构职场,30岁已成人生分水岭:程序员的两种人生与一种新活法

AI重构职场,30岁已成人生分水岭:程序员的两种人生与一种新活法在AI写下50%代码的2026年,30岁不再只是年龄数字,而是划分两种职业生涯、两种生活状态的分界线。2026年3月的一个周五晚上,29岁的杭州后端工程师李明&#…...

AI编码助手经验治理:ExperienceEngine解决重复错误与智能进化

1. 项目概述:为编码智能体引入“经验治理层”如果你和我一样,长期使用像 Claude Code、Cursor 或 OpenClaw 这类 AI 编码助手,肯定会遇到一个让人头疼的问题:同一个项目里,AI 助手会反复犯下几乎一模一样的错误。比如&…...

【C++ -Day7】封装实战 | 用类封装日志、配置和文件操作模块

引言 封装是面向对象三大特性(封装、继承、多态)中最基础也最重要的一环。在嵌入式开发中,代码的安全性、可维护性和可复用性直接决定了项目的成败。通过封装,我们可以将数据和操作隐藏在类内部,只暴露简洁的接口&…...

【C#】 HTTP 请求通讯实现指南

在现代软件开发中,HTTP 协议是应用程序与外部服务交互的核心桥梁。C# 作为 .NET 生态的主力语言,提供了丰富而成熟的 HTTP 通讯能力。本文将系统介绍 C# 中实现 HTTP 请求的技术选型、核心概念、常见场景及最佳实践,帮助开发者构建稳定、高效…...

Spring 第四天:AOP 面向切面编程与声明式事务管理

前言 Spring 有两大核心:一个是前几天我们重点攻克的 IoC/DI,另一个就是今天要深入学习的 AOP(面向切面编程)。 还记得那句话吗?“AOP 是在不改变原有代码的前提下对其进行功能增强”。听起来很神奇对吧?今…...

Groundhog:基于Git仓库的开发者时间自动追踪工具

1. 项目概述:一个面向开发者的时间管理利器如果你是一名开发者,或者你的工作与代码、项目、任务紧密相关,那么你一定对“时间都去哪儿了”这个问题深有感触。我们每天在各种编辑器、终端、浏览器标签页之间切换,处理着功能开发、B…...

CTO 每月烧 600 亿 token,3 个月完成百名程序员七八年写的 800 万行代码

①2026 年 5 月 9 日,昆仑万维董事长方汉的一番发言引热议,相关话题冲上热搜。方汉近日在访谈中坦承,自己每月实际消耗的 Token 高达 20 亿至 30 亿。此前他对外宣称的数字仅为 1 亿,属于刻意的低调处理。他甚至略带自嘲地表示&am…...

12,Springboot3+vue3实现系统公告功能

做一个新的公告模块步骤如下 一, 后端 1, 创建系统公告表 CREATE TABLE `notice` (`id` int NOT NULL AUTO_INCREMENT COMMENT 主键ID,`title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 公告标题,`content` varchar(255) COLLATE utf8mb4_unicode_ci …...

从DES到AES:被‘遗忘’的IDEA算法,它的设计思想给现代密码学留下了什么?

从DES到AES:被遗忘的IDEA算法如何塑造现代密码学 1991年诞生的IDEA算法曾被誉为"DES的完美继任者",却在历史舞台上悄然退场。当我们在讨论AES和椭圆曲线加密时,很少有人记得这个瑞士学者设计的算法如何影响了整个加密技术发展轨迹。…...