基于Arduino与IRLib2的万能遥控器DIY:从红外解码到蓝牙HID的嵌入式实践

news2026/5/18 10:48:40
1. 项目概述与核心价值如果你和我一样家里电视、机顶盒、音响、空调的遥控器堆满了茶几每次想用都得翻找半天或者你正在为一位行动不便的亲友寻找一种更便捷的控制家电的方式那么这个基于Arduino和IRLib2的万能遥控器DIY项目可能就是你要找的答案。这不仅仅是一个简单的学习项目它是一个从零开始融合了红外信号解码、编码发送、蓝牙HID设备模拟以及嵌入式用户界面设计的综合性实践。最终成品是一个可以通过物理开关、触摸屏甚至蓝牙连接进行操作的、高度可定制的中央控制器。项目的核心在于利用Arduino平台的易用性和丰富的生态特别是IRLib2这个强大的红外信号处理库来“学习”并“复制”你家各种电器的红外遥控指令。然后通过一块带蓝牙功能的开发板如Feather M0 BLE我们构建一个带有屏幕和导航按键的交互终端。用户可以通过这个终端选择要控制的设备如电视、音响和具体功能如音量、频道-终端则会通过红外发射管发出对应的信号或者通过蓝牙模拟成键盘鼠标来控制电脑或移动设备。对于有特殊需求的用户它可以通过外接的AT辅助技术开关用极简的物理操作如仅用两个按钮完成所有复杂控制这就是其辅助技术属性的重要体现。整个构建过程你会深入接触到嵌入式开发的多个层面硬件选型与焊接、库文件的深度配置、用户界面状态机编程、多输入方式物理开关、触摸屏、蓝牙的处理以及如何将一堆零散的代码和硬件模块整合成一个稳定、可靠、电池供电的便携设备。这比单纯点亮一个LED或读取一个传感器要复杂得多但也更有成就感因为它的产出是一个能解决实际生活问题的工具。接下来我将拆解整个项目的设计思路、构建细节、代码配置中的坑点以及我实际调试中积累的经验让你能少走弯路成功复现或基于此思路打造属于你自己的万能遥控中心。2. 硬件架构深度解析与选型考量一个项目的成功一半取决于前期的硬件设计。这个万能遥控器并非使用一块开发板就能搞定它是一个由多个功能模块协同工作的系统。理解每个模块的作用和选型原因是后续顺利搭建和调试的基础。2.1 核心控制板为什么是Feather M0 BLE项目选择了Adafruit的Feather M0 BLE作为大脑。这个选择背后有几个关键考量处理能力与引脚基于ATSAMD21 Cortex-M0处理器性能足以流畅驱动TFT屏幕、处理红外编码并管理蓝牙连接同时提供数量充足的GPIO引脚。内置蓝牙低功耗BLE这是实现“蓝牙控制”功能的硬件基础。Feather M0 BLE集成了nRF51822蓝牙模块可以轻松模拟HID设备键盘、鼠标从而控制电脑或iOS/Android设备的辅助功能如iOS的开关控制。生态系统兼容性Adafruit的Feather系列拥有统一的引脚布局和丰富的扩展板翅膀与项目中使用的TFT显示屏、电池管理板等可以完美堆叠极大简化了硬件连接。电源管理友好其设计易于与锂电池和充电电路配合是实现便携设备的关键。注意虽然理论上其他支持BLE的Arduino板如ESP32也能实现类似功能但IRLib2库对SAM D21M0系列有原生优化且整个项目的硬件设计如3D打印外壳、PCB布局是围绕Feather生态设计的更换核心板会带来巨大的软硬件适配工作量。2.2 红外收发模块信号的眼睛与嘴巴红外功能分为接收和发射两部分这是项目的核心。接收端眼睛用于学习原始遥控器的信号。通常使用TSOP38238或TSOP38438这类一体化红外接收头。它内部集成了光电二极管、前置放大器和解调电路可以直接输出解码后的数字信号通常是38kHz载波解调后的。在项目中它被用于一个独立的“学习棒”或集成在主板上用于捕获红外码值。发射端嘴巴用于发送复制或自定义的红外信号。就是一个普通的红外发射二极管IRED需要串联一个限流电阻通常100-150欧姆。关键点在于发射信号需要被调制通常是38kHz这个调制工作由IRLib2库控制单片机内部的硬件PWM脉冲宽度调制模块来完成从而减轻CPU负担并保证信号频率精准。硬件连接上的一个关键修改在Feather M0 BLE上IRLib2库默认的红外发射引脚是Pin 9。然而在这个项目中Pin 9被用于控制TFT显示屏的某个信号线如卡选择CS。如果强行使用Pin 9会导致屏幕和红外发射冲突。因此必须修改IRLib2库的底层配置文件将默认发射引脚改为其他空闲引脚例如Pin 12。这个修改需要在IRLibProtocols/IRLibSAMD21.h文件中进行将#define IR_SEND_PWM_PIN 9改为#define IR_SEND_PWM_PIN 12。这是一个容易忽略但至关重要的步骤否则红外发射功能将无法工作。2.3 用户交互模块屏幕与输入TFT显示屏项目使用了SPI接口的彩色TFT屏它不仅提供图形化菜单其附带的电阻式触摸屏也成为了一个备用的输入方式。虽然主要操作依靠物理开关但触摸屏在配置、演示或护理人员协助操作时非常有用。如果用户完全不需要触摸功能也可以在代码中禁用。AT开关接口这是体现项目辅助技术价值的关键。设备侧面设计了三个3.5mm耳机插孔用于连接外部AT开关。这些开关可以是大型按钮、吹吸传感器、光感开关等为行动不便的用户提供符合其能力的物理输入方式。电路设计通常包括上拉电阻和去抖动处理代码中则需检测这些引脚的下降沿或状态变化。2.4 接收器“学习棒”Dongle的独立设计项目巧妙地将红外接收功能独立出来做成了一个通过USB连接电脑的“学习棒”。它基于更小巧、廉价的Trinket M0板子和一个TSOP接收头。这样做的好处是功能分离主遥控器专注于发送信号和用户交互学习棒专职于接收和解码。结构清晰降低主设备复杂度。便携与共享学习棒可以随时插在电脑USB口上配合一个简单的串口监视器程序就能快速学习新遥控器的代码无需搬动整个主设备。成本优化Trinket M0比Feather M0 BLE便宜作为一次性配置工具非常合适。学习棒的固件trinket_dongle或dongle_dump是一个独立的Arduino程序其唯一任务就是监听红外接收头将捕获到的信号协议类型和数值通过串口打印出来供用户记录。2.5 电源系统续航与稳定性的保障设备由一块3.7V锂电池供电通过一个USB/直流输入升压充电模块如Adafruit PowerBoost管理。这个模块负责升压将电池的3.7V稳定提升到5V为Feather M0 BLE和屏幕供电。充电通过Micro USB或直流插孔为电池充电。保护通常具备过充、过放、过流保护。这里有一个重要细节Feather M0 BLE本身也有一个Micro USB口用于编程和调试。但是通过这个口给Feather供电并不会给电池充电。充电必须通过PowerBoost模块的输入口进行。同时务必使用5V输出的充电器连接PowerBoost的桶形插孔过高电压会损坏模块。3. 软件生态搭建与IRLib2库深度配置硬件是骨架软件是灵魂。这个项目的软件部分相对复杂涉及到多个库的安装和深度配置。3.1 开发环境与核心库安装首先确保你的Arduino IDE已添加对Adafruit SAMD板Feather M0和Trinket M0的支持。这可以通过“开发板管理器”安装“Adafruit SAMD Boards”和“Adafruit Trinket M0”实现。接下来是库文件的安装这是第一个容易卡住的地方。项目依赖多个库TFT显示屏驱动库如Adafruit_ILI9341和Adafruit_GFX用于驱动屏幕和绘制图形。触摸屏驱动库如Adafruit_STMPE610用于处理触摸输入。蓝牙库Adafruit_BluefruitLE_nRF51用于实现BLE HID功能。核心库IRLib2这是红外功能的基石。它不能通过库管理器一键安装3.2 IRLib2库的手动安装与关键修改IRLib2是一个由5个子库组成的套件必须手动安装。下载从GitHub仓库下载IRLib2的ZIP包。解压你会得到一个名为IRLib2-master的文件夹里面包含5个子文件夹IRLib2IRLibFreqIRLibProtocolsIRLibRecvIRLibRecvPCI。放置将这5个文件夹整体复制到你的Arduino用户库目录下通常是文档/Arduino/libraries/。正确的结构应该是Arduino/libraries/ ├── IRLib2/ ├── IRLibFreq/ ├── IRLibProtocols/ ├── IRLibRecv/ └── IRLibRecvPCI/绝对不要只复制IRLib2-master这一个上级文件夹否则IDE将无法识别这些库。关键引脚修改再次强调如前所述找到Arduino/libraries/IRLibProtocols/IRLibSAMD21.h文件定位到针对Feather M0的定义部分约第91行将#define IR_SEND_PWM_PIN 9修改为#define IR_SEND_PWM_PIN 12。这个修改是针对整个库的全局设置意味着你设备上所有使用IRLib2发送红外信号的功能都将使用Pin 12。实操心得修改库文件前最好备份原文件。如果你后续还有其他项目使用IRLib2且希望用Pin 9就需要改回来。一个更工程化的做法是复制一份修改后的IRLib2库重命名为IRLib2_Remote并在项目的Arduino IDE中通过“添加.ZIP库”的方式引用这个自定义版本这样就不会影响其他项目。3.3 主程序结构解析项目的主程序ultimate_remote.ino是一个状态机驱动的复杂应用。它主要包含以下几个部分初始化设置屏幕、蓝牙、红外发射、开关输入、触摸屏并加载所有设备码值。主循环输入扫描持续检测物理开关、触摸屏的输入以及蓝牙连接状态。界面渲染根据当前激活的“页面”如电视页、鼠标页在屏幕上绘制对应的按钮图标和光标。逻辑处理根据输入移动光标当“选择”动作触发时执行相应命令——可能是发送一个红外信号也可能是通过蓝牙发送一个键盘按键或鼠标动作。电源管理检测无操作时间超时后关闭屏幕背光以省电。程序通过多个.h头文件来管理不同设备的红外码值例如cable_codes.h、tv_codes.h等。这种模块化设计使得添加新设备变得清晰你只需要新建一个头文件定义好所有按钮的宏然后在主程序中引用并设计对应的显示页面即可。4. 红外信号学习与设备配置实战这是项目中最具定制性的环节也是将通用遥控器变成“万能”遥控器的关键。整个过程可以概括为捕获 - 记录 - 编程 - 测试。4.1 准备工作创建专属代码文件不要直接修改原有的示例代码文件。首先在Arduino IDE中打开ultimate_remote主程序然后使用“文件 - 另存为”创建一个副本例如my_ultimate_remote。接着我们需要为你的新设备比如一台格力空调创建一个专属的代码头文件。在IDE中点击右上角的下拉三角按钮选择“新建标签页”。在弹出的对话框中输入一个有意义的文件名例如gree_ac_codes.h然后点击确定。这会创建一个新的空白标签页。4.2 捕获红外信号使用学习棒上传解码程序将dongle_dump.ino或remote_dump.ino如果你在主板上集成了接收头程序上传到Trinket M0学习棒。打开串口监视器设置正确的端口和波特率通常是115200。对准并按键将原始遥控器如格力空调遥控器对准学习棒上的红外接收头按下你想学习的按键比如“开关”。记录结果串口监视器会打印出类似以下的信息Ready to receive IR signals Decoded NEC(1): Value:C738B847 Adrs:0 (32 bits)这表示成功解码了一个NEC协议编号1的信号其32位十六进制值是C738B847地址位是0。4.3 记录与编码构建命令映射表回到你新建的gree_ac_codes.h文件开始为每个按键创建宏定义。格式如下#define GREE_POWER 0xc738b847 #define GREE_MODE 0xc7387887 #define GREE_TEMP_UP 0xc738d02f // ... 以此类推记录所有需要的按键命名建议使用设备_功能的格式清晰明了。即使暂时用不到所有按键如数字键也建议一次性全部捕获记录避免日后需要时重新搭建学习环境。4.4 集成到主程序设计控制页面记录完所有代码后需要将它们集成到主程序中。包含头文件在主程序my_ultimate_remote.ino的开头或其他头文件包含处添加#include gree_ac_codes.h。定义页面数组在程序中找到定义命令页面的数组通常是一个名为commands的二维数组。你需要添加一个新页面用来存放空调的控制命令。你需要为每个命令指定显示的字符或图标可以是单个字母、数字或者自定义的小图形需要先在字体或位图数组中定义。对应的动作类型是发送红外信号IR_COMMAND还是其他。具体的值对于红外命令值就是你刚才定义的宏如GREE_POWER。协议号即解码时得到的协议编号如NEC是1。更新页面索引在页面选择菜单通常是屏幕顶行添加一个新的图标或字母比如“A”代表空调并将其映射到你刚刚创建的空调命令页面。4.5 协议兼容性与信号发送IRLib2支持十几种常见红外协议如NEC、SONY、RC5、RC6等。捕获时识别出的协议号必须与发送时指定的协议号一致。在命令数组定义中每个红外命令都需要指定协议参数。例如{‘P’ IR_COMMAND GREE_POWER 1} // ‘P’图标红外命令值为GREE_POWER使用协议1NEC如果协议指定错误接收设备将无法识别。有些设备特别是某些空调可能使用非标准或自定义协议IRLib2可能无法解码或发送。这时可能需要查阅设备手册或使用逻辑分析仪抓取原始时序并考虑扩展IRLib2的协议支持这属于更高级的玩法。5. 蓝牙HID与辅助功能实现除了红外项目的另一大亮点是蓝牙HID控制这使其能超越传统家电遥控器的范畴。5.1 鼠标键盘模拟设备可以切换到“鼠标”或“键盘”页面。在这些页面下选择操作不再发送红外信号而是通过BLE向已连接的电脑或智能设备发送对应的HID指令。鼠标发送移动、点击左、右、中、滚轮事件。键盘发送单个按键、组合键如CtrlC、以及一个完整的QWERTY键盘布局。实现原理是Feather M0 BLE通过Adafruit Bluefruit库将自己宣告为一个蓝牙键盘和鼠标设备。电脑或手机配对后会将其识别为标准的输入设备。代码中需要将屏幕上的虚拟按键映射为对应的HID键值。一个重要的安全设计代码中设置了一个两分钟无操作重置机制。如果用户意外开启了“Shift锁定”或“鼠标左键锁定”在两分钟无任何操作后所有切换状态修饰键、鼠标键会自动释放并将鼠标速度重置为默认值。这个细节对于依赖此设备的用户至关重要避免了因状态混乱导致设备“失控”。5.2 iOS开关控制Switch Control集成这是项目辅助技术价值的核心体现。苹果iOS系统内置了“开关控制”辅助功能允许用户通过一个或多个外部开关模拟蓝牙键盘按键来完全操作iPhone或iPad。设备配对将万能遥控器与iOS设备配对为蓝牙键盘。iOS设置在iOS的“设置”-“辅助功能”-“开关控制”中添加新开关并选择从已配对的蓝牙键盘上识别按键例如“L”、“R”、“S”分别对应左、右、选择开关。遥控器模式切换在遥控器主界面选择蓝牙符号设备进入“Switch Control”模式。在此模式下三个物理AT开关的按下动作会被映射为发送“L”、“R”、“S”键盘字符。iOS系统接收到这些字符便驱动屏幕上的扫描指针进行移动和选择操作。退出机制为了防止误操作或需要切换回红外模式代码设计了三种退出Switch Control模式的方式同时按下三个开关、任意两个开关按住半秒、或任意一个开关按住超过8秒。这种多重的、容错的设计考虑到了不同用户的操作能力。6. 外壳组装、调试与避坑指南6.1 3D打印外壳与组装项目提供了3D打印外壳的文件。组装时需要注意螺丝规格使用M3或#6-20螺丝进行固定。确保螺丝长度合适不会顶到内部的电子元件。屏幕保护建议在LED红外发射管和屏幕上方粘贴一层透明的亚克力板或塑料片作为保护罩防止刮擦和撞击。开关接口侧面的3.5mm耳机插孔在焊接连线时要确保牢固并做好绝缘防止短路。散热与布线内部空间紧凑确保线路整齐避免电池被尖锐部件刺破并留出一定的空气流通空间尤其是给升压充电模块。6.2 系统调试流程分模块测试不要一次性组装完再调试。先单独测试Feather M0 BLE能否烧录程序、屏幕能否点亮显示图形、红外发射管能否用示例程序驱动可先用手机摄像头观察红外光在摄像头下呈淡紫色光点、物理开关输入是否被正确读取。集成测试将所有模块连接后先上传最基本的测试程序确保各功能在集成环境下仍能工作。功能测试红外用学习棒捕获一个已知遥控器的信号然后编程让主设备发送用原始设备或另一个红外接收装置验证是否有效。蓝牙在电脑上搜索并配对设备测试鼠标移动和键盘输入是否正常。界面导航使用物理开关和触摸屏测试光标移动、页面切换、命令选择是否流畅。功耗测试在电池供电下让设备持续运行观察屏幕自动熄屏、唤醒功能是否正常估算实际续航时间。6.3 常见问题与排查技巧以下是我在构建和调试过程中遇到的一些典型问题及解决方法整理成表格供你参考问题现象可能原因排查步骤与解决方案红外发射无反应1. 发射引脚错误。2. 发射二极管极性接反或损坏。3. 未修改IRLib2的默认发射引脚。4. 协议或码值错误。1. 确认硬件连接至正确的GPIO如修改后的Pin 12。2. 用万用表检测二极管长脚为正极。3.检查并确认已修改IRLibSAMD21.h中的IR_SEND_PWM_PIN定义。4. 用学习棒捕获自身发出的信号对比码值和协议是否与发送指令一致。屏幕白屏或花屏1. SPI引脚定义错误。2. 屏幕初始化代码中的型号、分辨率参数不对。3. 电源供电不足。1. 对照原理图检查CS、DC、RST、MOSI、SCK等引脚连接。2. 确认代码中Adafruit_ILI9341初始化使用的引脚号和屏幕型号匹配。3. 尝试外接5V电源测试排除电池或升压模块问题。蓝牙无法连接或配对1. 蓝牙库未正确初始化或版本不兼容。2. 设备名称或配对码问题。3. 主机蓝牙驱动或设置问题。1. 运行Adafruit Bluefruit库的示例程序如“controller”先验证蓝牙模块本身是否工作。2. 检查代码中设置的设备名称是否包含空格等特殊字符尝试简化。3. 在电脑或手机上删除已配对的旧设备重新搜索配对。物理开关输入无响应1. 开关内部接触不良或线缆断开。2. 代码中引脚模式设置错误应设为INPUT_PULLUP。3. 去抖动逻辑过于严格或错误。1. 用万用表通断档检测开关和连线。2. 确认代码中pinMode设置为上拉输入并正确读取引脚状态按下应为低电平。3. 简化代码先去掉去抖动逻辑看是否有原始信号再调整去抖动延时参数。程序编译报错“找不到IRLib2”1. 库文件放置路径错误。2. 库文件夹结构不正确。1. 确认5个IRLib2子库文件夹直接放在Arduino/libraries/下而不是在一个总文件夹内。2. 重启Arduino IDE在“项目”-“加载库”中查看是否能找到IRLib2相关库。设备运行一段时间后死机1. 内存泄漏动态内存分配未释放。2. 中断冲突。3. 电源不稳定。1. 检查代码中是否在循环内频繁使用String类或malloc尝试优化。2. 红外接收、发送、蓝牙、屏幕都可能使用中断或硬件资源检查是否有冲突如两个功能共用同一硬件定时器。3. 用示波器或万用表监测电池电压在负载下的波动情况确保升压模块输出稳定。最后的建议这个项目代码量较大第一次接触时不要试图一次性理解所有细节。建议采用“增量开发”法先从最简单的“点亮屏幕显示文字”开始然后逐步加入红外发送单个命令、加入一个物理开关控制、再实现页面切换……每完成一小步就测试一次稳扎稳打最终你将拥有一个完全按自己需求定制的、功能强大的万能遥控中心。它不仅是一个工具更是一次对嵌入式系统设计、人机交互和辅助技术理解的深度实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2617544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…