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

基于BLE HID与旋转编码器打造双模式无线遥控器

1. 项目概述你有没有过这样的时刻窝在沙发里看剧想调个音量或者暂停一下却不得不伸手去够茶几上的键盘或鼠标打断那份沉浸的惬意或者在电脑上回味一些经典老游戏时觉得用键盘移动、鼠标射击的操控方式少了点“味道”这个项目就是为了解决这些小小的不便而生的。我将带你从零开始打造一个完全属于你自己的、基于蓝牙低功耗BLEHID协议和旋转编码器的无线遥控器。它小巧得可以挂在胸前当个装饰品却能让你在几米开外轻松控制电脑的媒体播放甚至能用来玩《毁灭战士》Doom这样的经典游戏。这个遥控器的核心是一个集成了方向键和滚轮的ANO旋转导航编码器它提供了非常直观且符合人体工学的五向操作。大脑则是一块Adafruit的Feather nRF52840开发板它内置了蓝牙5.0并且能通过CircuitPython这种对新手极其友好的编程语言来控制。整个项目融合了硬件焊接、3D打印外壳组装和简单的Python编程最终你会得到一个功能实用、外观也相当酷的双模式无线控制器。无论你是想深入学习BLE HID设备的工作原理还是单纯想做一个好玩又实用的桌面小工具这个项目都能给你带来满满的成就感。2. 核心硬件选型与原理剖析2.1 主控板为什么是Adafruit Feather nRF52840在众多支持蓝牙的开发板中我选择了Adafruit Feather nRF52840 Express这并非随意之举。首先Feather生态系统的设计哲学就是“即插即用”其标准化的外形尺寸和引脚排列使得扩展和集成其他Feather翅膀板变得异常简单为未来功能升级留足了空间。其次也是最重要的nRF52840这颗芯片是Nordic Semiconductor的旗舰级蓝牙低功耗SoC它原生支持蓝牙5.0拥有充足的闪存1MB和RAM256KB足以流畅运行CircuitPython以及我们需要的各种库。最关键的一点在于它对CircuitPython的完美支持。CircuitPython是Adafruit主导开发的一个微控制器编程语言分支它极大降低了嵌入式开发的门槛。你不需要复杂的IDE和编译环境只需像操作U盘一样把.py代码文件拖到开发板上就能运行。对于实现HID设备来说Adafruit提供了现成的adafruit_hid库让我们用几行代码就能模拟键盘按键这比用C语言去实现蓝牙HID配置文件要简单太多了。这块板子还自带了一个锂电池充电管理芯片可以直接连接3.7V的LiPo电池实现真正的无线便携这是很多其他开发板需要额外模块才能实现的功能。2.2 输入设备ANO旋转导航编码器解析这个项目的“手感”和交互核心全部来自于ANO旋转导航编码器。它不是一个简单的旋转编码器而是一个高度集成的输入模块。从原理上看它内部包含了两大部分增量式旋转编码器其核心是两个相位差90度的机械触点对应ENCA和ENCB引脚。当你旋转旋钮时两个引脚会输出一系列方波脉冲。通过检测两个波形的相位差A领先于B还是B领先于A我们可以判断旋转的方向通过统计脉冲数量可以知道旋转的幅度。在我们的代码中rotaryio库帮我们完成了所有这些底层计数和方向判断我们直接读取encoder.position这个变化值即可。五向导航开关在旋钮的周围和中心集成了五个独立的轻触开关分别对应上、下、左、右、中按下五个方向。这本质上就是五个普通的按钮通过内部电路连接到独立的引脚SW1-SW5。在硬件连接上我们将其公共端COMA COMB接地每个按钮引脚通过上拉电阻接到高电平。当按钮按下时对应引脚被拉低到地产生一个低电平信号单片机通过检测这个电平变化来获知按键动作。这种将多种输入方式集成在一个紧凑模块里的设计不仅节省了空间和布线复杂度更重要的是提供了极其流畅和一致的用户体验。拇指可以在很小的移动范围内完成滚动、选择和确认等一系列操作这正是它作为遥控器输入设备的精髓所在。2.3 电路设计思路与电源管理整个项目的电路连接思路非常清晰目标是尽量减少飞线提高可靠性。旋转编码器模块通过一个9针的排母直接插在Feather nRF52840的特定引脚上这是一种“板对板”的连接方式既稳固又整洁。你需要仔细对照引脚定义图进行焊接确保ENCA、ENCB和各SW信号线连接到正确的GPIO口。两个滑动开关模式开关和电源开关的处理是另一个重点。它们都需要一个接地GND引脚和一个信号引脚。这里采用了一个小技巧将两根导线拧在一起共同焊接在板子的GND焊盘上然后再分别引到两个开关的引脚1。这样做比从板子上引出两根独立的GND线更规整。模式开关的信号线连接到模拟引脚A1我们将其用作数字输入电源开关的信号线则连接到板子的EN使能引脚。注意将电源开关连接到EN引脚是一个巧妙且安全的做法。EN引脚是芯片的使能引脚拉低时会强制芯片进入复位或关机状态。通过开关将其与GND断开或连接可以实现完全的物理断电比在电池供电线上加开关更安全也能彻底杜绝待机功耗。3. 软件环境搭建与代码深度解读3.1 CircuitPython固件刷写与库管理第一步是让Feather nRF52840“学会”CircuitPython语言。这个过程简单得令人惊讶。你只需要访问CircuitPython官网找到对应Feather nRF52840的最新版.uf2固件文件并下载。然后用USB数据线连接开发板和电脑快速双击板载的复位按钮此时板载的NeoPixel LED会变成绿色电脑上会出现一个名为FTHR840BOOT的U盘。最后把刚才下载的.uf2文件拖进去等待几秒钟U盘名称会自动变为CIRCUITPY刷机就完成了。整个过程无需安装任何驱动或软件真正实现了“开箱即用”。接下来是库文件的准备。我们的项目依赖几个重要的库adafruit_hid用于模拟键盘adafruit_debouncer用于处理按键抖动rotaryio用于读取编码器。最方便的方法是直接下载项目提供的“项目包”Project Bundle这是一个压缩文件解压后里面会有一个lib文件夹和主程序code.py。你只需要将整个lib文件夹和code.py文件复制到CIRCUITPY磁盘的根目录即可。CircuitPython会在启动时自动加载lib目录下的所有库文件。3.2 核心代码逻辑逐行解析让我们深入看看code.py理解它是如何让硬件“活”起来的。初始化与引脚定义代码开头首先导入了所有必需的库然后清晰地定义了每个硬件连接的引脚。例如ENCA board.SDA,ENCB board.SCL这里巧妙地利用了I2C引脚它们也是普通的GPIO来连接编码器。五个按钮引脚和两个公共端COMA COMB也被逐一指定。这种集中定义的方式让后续的硬件修改和维护变得非常容易。# 关键引脚定义建议对照原理图核对 ENCA board.SDA # 编码器A相 ENCB board.SCL # 编码器B相 COMA board.D5 # 按钮公共端A CENTER board.D6 # 中心按钮 # ... 其他按钮定义 SWITCH board.A1 # 模式切换开关按键消抖与状态管理机械按钮在按下和弹起的瞬间由于触点抖动会产生一系列不稳定的电平信号。如果直接读取单片机可能会误判为多次按键。adafruit_debouncer库的Button类就是用来解决这个问题的。它内部包含了一个状态机通过延时采样来过滤掉抖动并提供清晰的pressed、released和long_press事件。我们将五个按钮封装成Button对象并存入数组在主循环中统一调用update()方法来更新它们的状态这样代码既简洁又健壮。双模式键值映射项目的精髓在于双模式切换。我们定义了两个元组CHILL_CODES和DOOM_CODES分别存储了流媒体模式和游戏模式下五个按钮对应的键盘键值。这两个元组的顺序必须与inputs按钮数组的顺序严格对应。例如inputs[0]是中心按钮那么CHILL_CODES[0]空格键和DOOM_CODES[0]Ctrl键就是它在这两种模式下分别触发的按键。# 流媒体模式键值空格(播放/暂停)F(全屏)左箭头(后退)M(静音)右箭头(快进) CHILL_CODES (Keycode.SPACE, Keycode.F, Keycode.LEFT_ARROW, Keycode.M, Keycode.RIGHT_ARROW) # 毁灭战士模式键值Ctrl(开火)上箭头(前进)左箭头(左转)下箭头(后退)右箭头(右转) DOOM_CODES (Keycode.CONTROL, Keycode.UP_ARROW, Keycode.LEFT_ARROW, Keycode.DOWN_ARROW, Keycode.RIGHT_ARROW)蓝牙HID连接建立代码使用adafruit_ble库来建立蓝牙连接。HIDService()创建了一个HID设备服务ProvideServicesAdvertisement(hid)则对外广播这个服务。设置appearance961是告诉蓝牙主机你的电脑或手机“我是一个键盘设备”。当电脑搜索并配对这个名为“CircuitPython HID”的设备后连接就建立了我们的开发板在系统中就会被识别为一个标准的蓝牙键盘。主循环的工作流主循环是程序的心脏它不断执行以下任务检查模式开关读取A1引脚的电平决定当前是chill流媒体模式还是doom游戏模式。处理旋转编码器比较编码器当前位置与上一次位置判断是左转还是右转。根据当前模式发送音量增减上下箭头或左右平移逗号、句号的按键信号。处理按钮事件遍历五个按钮检查其状态。如果中心按钮被长按发送空格键在Doom中用于“使用/开门”。对于其他按钮的普通按下和释放事件则根据当前模式从对应的键值元组中取出键码执行kbd.press()或kbd.release()操作。这里使用“按下”和“释放”是为了模拟真实的键盘行为对于需要长按的操作如游戏中的持续移动是必要的。4. 硬件制作与组装全流程4.1 焊接工艺与要点焊接是连接硬件灵魂的步骤质量直接决定了设备的可靠性。首先处理ANO编码器与其分线板。给编码器的九个引脚和分线板对应的焊盘上好锡然后将编码器对准焊盘用烙铁头同时接触引脚和焊盘待焊锡熔化流动后移开。务必确保编码器与分线板垂直否则后续无法平整地安装到外壳中。接下来是Feather nRF52840上的排母焊接。你需要将一排长排母剪裁成9针。一个实用技巧是先用剪刀在需要剪断的位置刻一道深痕然后轻轻掰断这样断面会比直接用剪子剪更平整。焊接时先将排母插入面包板或夹具中固定然后将Feather板子对准插上去再从背面焊接。重点注意要避开Bat、EN和USB这三个引脚的位置确保它们空出来以便后续连接电源开关和供电。对于电源线和信号线的焊接我强烈建议使用不同颜色的硅胶线如黑、红、蓝、黄并在焊接前先套上热缩管。焊接GND共线时先将两根黑色线拧在一起镀锡后作为一个整体焊接到板子的GND焊盘上这样比分开焊更牢固。焊接完成后用热风枪或打火机小心地加热热缩管使其收缩并包裹住焊点这是防止短路最有效的方法。4.2 3D打印外壳的处理与组装项目提供的STL文件包含了底座、上盖和安装支架三个部分。打印时建议使用PLA材料层高0.2mm填充率20%即可无需支撑。打印完成后仔细检查并清理底座侧边和底部的开关开孔如果有毛刺或不够光滑可以用小锉刀或砂纸轻轻打磨确保两个滑动开关能严丝合缝地卡进去。组装顺序是关键固定主控板使用三组M2.5的铜柱和螺丝将Feather nRF52840固定在安装支架上。注意避开靠近排针的那个安装孔为编码器模块留出空间。集成编码器将已焊好排母的编码器分线板直接插入Feather板上的9针排母。此时分线板上的安装孔应该与安装支架上剩余的孔位对齐。连接上盖将上盖对准安装支架和编码器分线板用四颗M2.5螺丝从上方穿过上盖、分线板安装孔最终拧紧在安装支架的螺纹孔或螺母上。这一步将整个核心组件固定成了一个整体。安装开关与合盖将模式开关和电源开关从外壳内部推向对应的侧边和底部开孔使其卡紧。把电池插到Feather板的JST插座上整理好线束最后将组装好的“核心模块”扣到底座上听到“咔哒”一声即表示卡扣锁紧。实操心得在最终合盖前务必先进行一次“裸板”功能测试。即不安装外壳接通电源用电脑蓝牙搜索并连接设备测试各个按钮和旋钮功能是否正常。这能避免在组装完成后才发现焊接或代码问题导致又得拆开的麻烦。5. 功能使用、问题排查与扩展思路5.1 双模式功能详解与使用技巧设备组装完成后拨动底部的电源开关启动。电脑的蓝牙设置中会出现一个名为“CircuitPython HID”的设备点击配对通常无需输入密码。连接成功后你就可以开始使用了。流媒体模式默认此模式下遥控器化身为一个强大的媒体控制器。旋钮顺时针旋转增加音量逆时针旋转减小音量。这种模拟物理旋钮控制音量的感觉比按键盘快捷键要直观得多。中心按钮短按实现播放/暂停。这是最常用的功能。方向键上键全屏、下键静音、左键后退10秒、右键快进10秒。这套组合键几乎适配了所有主流流媒体网站Netflix YouTube Bilibili等。游戏模式将侧面的模式开关拨到另一侧遥控器瞬间变为一个怀旧游戏手柄。旋钮在《毁灭战士》中左右旋转分别对应“左平移”和“右平移”默认按键逗号和句号这是FPS游戏中非常重要的战术动作。中心按钮短按是开火Ctrl长按是使用/开门空格。这个长按功能的实现完全得益于我们使用了adafruit_debouncer库的long_press属性它让一个按键拥有了两种功能。方向键上、下、左、右分别对应游戏中的前进、后退、左转、右转。5.2 常见问题排查速查表在制作和使用过程中你可能会遇到以下问题。别担心大部分都有简单的解决办法。问题现象可能原因排查步骤与解决方案电脑蓝牙搜索不到设备1. 电源未打开2. BLE代码未运行3. 电池电量耗尽1. 检查底部电源开关是否拨到“ON”。2. 通过USB连接电脑检查CIRCUITPY磁盘中的code.py文件是否存在且名称正确。3. 连接USB充电或更换电池。蓝牙已连接但按键无反应1. 代码未正确发送HID报告2. 引脚定义错误3. 按钮焊接虚焊或短路1. 打开一个记事本测试按键。检查串口输出如果代码有print语句。2. 仔细核对code.py中的引脚定义与实物焊接是否完全一致。3. 用万用表通断档检查按钮引脚与主板连接按下按钮时是否导通。旋钮控制相反或失灵1. 编码器A、B相线序接反2. 公共端COMA COMB未接地1. 交换ENCA和ENCB两根线的连接。2. 检查COMA和COMB是否都通过代码设置为低电平输出com_a.value False。某个按钮一直处于“按下”状态该按钮引脚对地短路或上拉失效1. 检查该按钮引脚与GND是否有焊锡短路。2. 检查代码中该按钮是否被正确设置为Pull.UP上拉输入。设备频繁断开蓝牙连接1. 电池电压不足2. 超出蓝牙有效范围或有强干扰1. 为电池充电。2. 确保使用环境在无障碍物10米范围内远离微波炉、无绳电话等2.4GHz干扰源。5.3 项目扩展与个性化改造这个项目的框架具有很强的可扩展性你完全可以把它打造成一个专属的万能遥控器。自定义键位这是最简单的改造。只需修改CHILL_CODES和DOOM_CODES这两个元组里的Keycode值。Adafruit HID库支持几乎所有标准键盘键值包括功能键、多媒体键如Keycode.VOLUME_UP等。例如你可以把流媒体模式的下键改成Keycode.B用来在浏览器中打开书签。增加更多模式目前只有两个模式通过一个两位开关切换。你可以换用一个多位旋转开关或者在代码中实现“模式循环切换”例如连续按两次中心按钮切换模式从而容纳第三、第四种配置比如一个专门用于PPT演示的模式左/右翻页 黑屏或者一个Photoshop的简易编辑模式。添加更多输入Feather nRF52840还有很多空闲的GPIO引脚。你可以焊接一个振动电机在按键时提供触觉反馈或者增加一个电容触摸传感器实现滑动音量调节等更酷的交互。改变外壳与佩戴方式3D打印外壳的设计文件是开源的你可以使用Tinkercad或Fusion 360等工具对其进行修改。比如做一个更圆润的造型或者增加一个钥匙扣环把它挂在背包上。你甚至可以用激光切割亚克力板来制作外壳获得不同的质感。这个项目的乐趣一半在于制作另一半在于改造。它不仅仅是一个遥控器更是一个理解BLE HID协议、嵌入式编程和硬件交互的绝佳平台。当你用自己的代码让它执行一个全新任务时那种感觉是无与伦比的。希望这篇详细的指南能帮你顺利走完从零件到成品的每一步并点燃你进一步探索的兴趣。

相关文章:

基于BLE HID与旋转编码器打造双模式无线遥控器

1. 项目概述你有没有过这样的时刻:窝在沙发里看剧,想调个音量或者暂停一下,却不得不伸手去够茶几上的键盘或鼠标,打断那份沉浸的惬意?或者,在电脑上回味一些经典老游戏时,觉得用键盘移动、鼠标射…...

构建轻量级应用沙盒:Microverse原理与实践指南

1. 项目概述:一个轻量级、可移植的“微宇宙”开发沙盒最近在折腾一些边缘计算和嵌入式AI应用的原型验证,经常遇到一个头疼的问题:开发环境和部署环境不一致。在本地笔记本上跑得好好的Python脚本,放到树莓派或者Jetson Nano上&…...

WipperSnapper+Adafruit IO:无代码物联网开发实战,从传感器到云端自动化

1. 项目概述与核心价值如果你和我一样,在物联网(IoT)项目初期,常常被复杂的嵌入式编程、网络协议和云平台对接搞得焦头烂额,那么今天分享的这个实战项目,或许能让你眼前一亮。我们这次不谈复杂的代码&#…...

火灾动力学模拟实战:如何用FDS构建精准的火灾预测系统

火灾动力学模拟实战:如何用FDS构建精准的火灾预测系统 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 你是否曾面临这样的困境:当设计一栋大型商业建筑时,如何科学评估火灾时的人员疏…...

EL线创客工作坊:从零到一的电致发光项目实践指南

1. 项目概述:为什么EL线工作坊是创客入门的绝佳选择如果你正在寻找一个能让新手快速上手、成品炫酷、且能完美融合电子与手工的创客项目,EL线工作坊几乎是一个无可挑剔的答案。EL,即电致发光,它不像LED那样依赖一个个分立的光点&a…...

基于Docker构建标准化开发环境:原理、实践与VSCode集成指南

1. 项目概述:一个面向开发者的“开箱即用”环境在软件开发这条路上,我踩过最多的坑,往往不是来自复杂的业务逻辑,而是来自那句“在我机器上好好的”。环境配置,这个看似基础却又无比磨人的环节,消耗了无数开…...

从仿生结构到步态算法:8自由度并联腿机器狗行走全解析

1. 8自由度并联腿机器狗的结构奥秘 第一次拆解机器狗时,我对着那些复杂的连杆结构发了半小时呆。直到发现它的腿部运动原理和公园里的跷跷板惊人相似——这个发现让我瞬间理解了8自由度并联腿的精妙之处。这种结构就像给机器人装上了"机械肌腱"&#xff0…...

【仿真学习框架】HoloMotion 从入门到精通:全身人形控制 Foundation Model 完全指南

HoloMotion 从入门到精通:全身人形控制 Foundation Model 完全指南 目标读者:具身智能研究者、人形机器人开发者、RL/机器人学习工程师 目录 第1章 HoloMotion 全景概览 1.1 什么是 HoloMotion 1.2 技术定位:"小脑"基座模型 1.3 4-Any 愿景与路线图 1.4 核心能力矩…...

Cursor编辑器性能优化:精准重置缓存与进程的开发者效率工具

1. 项目概述:一个被低估的开发者效率工具如果你是一名开发者,尤其是深度使用 Cursor 这类 AI 驱动的代码编辑器,那么你一定遇到过这样的场景:编辑器突然变得卡顿、代码补全失灵、AI 建议变得驴唇不对马嘴,或者插件行为…...

Grad-CAM实战:用热力图透视神经网络的决策焦点

1. Grad-CAM技术初探:为什么我们需要热力图? 当你训练了一个图像分类模型,准确率高达95%,但你真的了解它是如何做出判断的吗?我曾在项目中遇到过这样的尴尬:模型把一只坐在草地上的哈士奇误判为"狼&qu…...

基于Rust与Candle的AI推理引擎cria:简化大模型本地部署与优化

1. 项目概述:从“左移”到“创造”的AI推理引擎 最近在折腾AI模型本地部署和推理优化的朋友,可能都绕不开一个名字: cria 。这个由 leftmove 开源的项目,全称是“Cria: The AI Inference Engine”,直译过来就是“创…...

结构化数字工作空间:提升创意工作效率的目录设计与自动化实践

1. 项目概述:一个为创意工作者量身定制的数字工作空间 如果你是一名设计师、开发者、内容创作者,或者任何需要处理大量数字资产、管理复杂项目流程的创意工作者,那么“Workspace-di-Yivo”这个名字可能会让你眼前一亮。这不仅仅是一个简单的文…...

智能体开发实战:从框架选型到部署优化的完整指南

1. 项目概述:一个为智能体开发者准备的“军火库”如果你正在或打算踏入智能体(Agent)开发这个领域,那么你很可能已经体会过那种“万事开头难”的迷茫。从选择哪个框架开始,到如何设计一个有效的智能体工作流&#xff0…...

IE11富文本兼容——政务系统前端的深渊

IE11富文本兼容——政务系统前端的深渊 背景:为什么还有 IE11 系统要求支持 IE11。 为什么不是 Chrome? 办公电脑全是 Windows 7 IE11单位统一采购,不能随便装浏览器部分内部网站只支持 IE(ActiveX) 现状&#x…...

基于Kubernetes Lease构建分布式部署锁:解决CI/CD环境下的资源竞争

1. 项目概述:从“clawfight”看一场被遗忘的社区技术博弈看到“2019-02-18/clawfight”这个标题,很多人的第一反应可能是困惑。它不像一个标准的软件项目名,没有清晰的版本号,也没有指明具体的技术栈。但恰恰是这种看似随意的命名…...

Nixtla时间序列预测库实战:从统计模型到深度学习的一站式解决方案

1. 项目概述:时间序列预测的“瑞士军刀”如果你正在处理销售预测、服务器负载监控或者任何与时间相关的数据预测问题,并且厌倦了在复杂的模型库和繁琐的预处理步骤之间反复横跳,那么 Nixtla 这个开源项目很可能就是你一直在找的“瑞士军刀”。…...

基于MCP与Apify构建AI驱动的投资另类数据研究工具

1. 项目概述:当投资研究遇上AI代理如果你是一名量化研究员、对冲基金分析师,或者只是一个对金融市场充满好奇、希望用数据驱动决策的独立投资者,那么你肯定对“另类数据”这个词不陌生。传统的财报、股价、宏观经济指标,这些“传统…...

从零构建现代化工作流引擎:架构、实战与生产级部署指南

1. 项目概述:一个为专业开发者打造的现代化工作流引擎最近在GitHub上看到一个挺有意思的项目,叫rohitg00/pro-workflow。光看名字,你可能觉得这又是一个“工作流”工具,市面上这类工具已经多如牛毛了。但当我深入去研究它的源码、…...

Apache Burr框架:构建可观测有状态数据应用的核心原理与实践

1. 项目概述:一个用于构建和评估数据产品的Python框架如果你正在处理数据密集型应用,比如推荐系统、个性化广告或者任何需要根据用户行为实时调整策略的场景,你肯定遇到过这样的困境:模型训练和离线评估做得再好,一旦上…...

车载以太网之要火系列 - 第46篇:郭大侠学SOME/IP (offer Service):启动时快稍后慢,断断续续哥还在

写在开篇蓉儿继续挖坑上回说到,郭靖搞清楚了Offer Service的基本原理——服务端广播“我会啥,我在这”,TTL告诉客户端有效期。郭靖合上笔记本,突然皱起眉头:“蓉儿,我有个问题——如果每个ECU都每隔1.5秒发…...

基于CircuitPython与NeoPixel打造可编程LED亚克力灯牌:从硬件选型到代码实现

1. 项目概述:打造你的专属可编程光之铭牌在创客和电子爱好者的世界里,总有一些项目能完美地融合软件编程的灵活性与硬件制作的实体成就感。今天要分享的,就是这样一个让我爱不释手的小玩意儿:一个基于CircuitPython和NeoPixel的可…...

基于树莓派与QT Py的本地化物联网红外遥控器DIY指南

1. 项目概述与核心价值想没想过,把家里那堆遥控器——电视的、机顶盒的、空调的、音响的——统统集成到一个你手机能打开的网页里?而且这个控制中心完全在你家局域网里运行,不依赖任何云服务,不用担心厂商倒闭后设备变砖。今天分享…...

智谱AI GLM-5V-Turbo:视觉生成代码的技术革命与实战架构

摘要:2026年5月,智谱AI联合清华大学发布了GLM-5V-Turbo多模态编程基座模型,在Design2Code基准测试中以94.8分的成绩超越Claude Opus的77.3分,实现了从"文本生成代码"到"视觉生成代码"的范式跃迁。本文深入解析该模型的核心技术架构——CogViT视觉编码器…...

ComfyUI-Manager终极指南:3步掌握AI绘画插件管理技巧

ComfyUI-Manager终极指南:3步掌握AI绘画插件管理技巧 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom…...

如何选蜂蜜品牌?2026年5月推荐靠谱蜂蜜品牌避坑指南

一、引言买蜂蜜怕踩坑?市面上的蜂蜜产品琳琅满目,但勾兑蜜、浓缩蜜、添加糖浆的“科技蜜”层出不穷,消费者往往花了高价却买不到真正的纯正好蜜。对于注重健康饮食、追求天然原生态食品的消费者而言,如何从海量品牌中筛选出真正无…...

如何在Windows 11上让经典游戏重获新生:DDrawCompat兼容性解决方案详解

如何在Windows 11上让经典游戏重获新生:DDrawCompat兼容性解决方案详解 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_m…...

别再只会Commit了!用Git Desktop搞定分支合并与冲突解决(附真实开发场景)

别再只会Commit了!用Git Desktop搞定分支合并与冲突解决(附真实开发场景) 当你第一次接触Git时,可能觉得它就是个"保存按钮"——每次改完代码就commit一下。但随着项目规模扩大,特别是多人协作时&#xff0c…...

免费开源鼠标连点器终极指南:5分钟掌握高效自动化技巧

免费开源鼠标连点器终极指南:5分钟掌握高效自动化技巧 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 QT Widget 开发 ,具备跨平台兼容性 。软件界面美观 ,…...

mg3640s,ts8080,ts8100,g5080,g3800,g4800,ix6780,ts8180报错5B00,P07,E08,5b02,1704,1700,5b04佳能V6.200,亲测有用

下载:点这里下载 备用下载:https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...

g1810,g3810,ip2700,g5080,g1800,ts3380,TS8380,ts6480报错5B00,P07,E08,5b02,1704,1700,5b04,佳能v6.200,亲测有用。

下载:点这里下载 备用下载:https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...