基于Arduino与MQ-2传感器的行为干预装置设计与实现
1. 项目缘起一个“物理外挂”的诞生最近在整理工作室的旧物翻出来一个几年前自己捣鼓的小玩意儿我管它叫“Anti-Smoking Box”翻译过来就是“反吸烟盒子”。这名字听起来有点唬人其实它不是什么高科技产品而是一个结合了简单电子元件和一点行为心理学的小装置。它的核心功能很简单当检测到有人试图在特定区域比如我的工作台抽烟时它会通过声、光甚至一点小小的“物理”反馈来提醒和劝阻。听起来是不是有点像给环境加了个“物理外挂”这个想法的诞生源于一个非常具体的场景。几年前我还在一个开放式的工作室环境里虽然大家关系都不错但总有个别同事习惯在工位旁“吞云吐雾”。二手烟的困扰自不必说烟灰还经常飘到我的键盘和电路板上清理起来非常麻烦。直接沟通效果有限毕竟习惯难改。于是作为一个喜欢动手的工程师我的第一反应不是抱怨而是“能不能做个东西用一种有趣且非对抗的方式来‘管理’一下这个行为”这就是“Anti-Smoking Box”的初衷。它不是一个严厉的“禁止”装置更像是一个温和的“提醒者”。它的设计理念是通过即时、可感知的反馈将吸烟这个习惯性动作与一个轻微的“不愉快”或“被打断”的体验关联起来从而在潜意识层面影响行为决策。今天我就把这个有点古早但思路依然有趣的DIY项目重新梳理一遍分享给同样可能受困于类似环境或者对行为干预硬件感兴趣的朋友们。你会发现实现它并不需要多高深的代码或电路知识核心在于对需求的理解和巧妙的方案设计。2. 核心需求拆解我们要解决什么问题在动手之前我们必须把模糊的“反吸烟”需求拆解成具体、可执行的技术指标。这决定了我们最终方案的复杂度和成本。2.1 核心功能定义首先这个盒子需要完成一个完整的“感知-决策-反馈”闭环。感知Detection准确识别“吸烟”这个动作。最直接的关联物是烟雾。但我们需要明确是检测烟雾的存在还是检测烟雾产生的过程如打火机的火焰这决定了传感器的选型。决策Processing判断检测到的信号是否构成一次需要干预的“吸烟事件”。比如是持续一秒的烟雾就报警还是需要达到一定浓度这涉及到阈值设定和简单的逻辑判断防止误报比如灰尘、水蒸气。反馈Feedback以何种形式进行干预。反馈需要有效但不能具有攻击性或造成安全隐患。它应该是引人注意、略带烦人但无害的。2.2 非功能性需求体验设计除了基本功能体验设计决定了这个装置是“令人会心一笑的提醒”还是“让人想砸掉的恶作剧”。即时性从检测到反馈的延迟必须非常短最好在1秒以内这样才能建立行为与后果的强关联。适度性反馈强度要可控。初期可以温和随着同一区域内短时间多次触发反馈可以升级例如从闪灯到鸣叫。针对性反馈应主要作用于吸烟者本人尽量减少对无关人员的干扰。这意味着声光反馈的方向性和音量/亮度需要考量。可靠性与功耗如果需要长期放置供电方式电池还是USB和待机功耗就很重要。可维护性与成本尽量使用通用、廉价的元件结构简单方便调试和更换。2.3 技术路径选型思考基于以上需求我当时规划了几个技术方案方案A高灵敏度版使用**半导体式烟雾传感器MQ-2**作为核心检测单元。它的优点是对烟雾、液化气等敏感成本极低。但缺点也很明显它对酒精、油烟也有反应误报率高需要预热时间模拟信号输出需要搭配单片机如Arduino来读取和判断阈值。方案B火焰检测版使用红外火焰传感器。它专门检测打火机或火焰发出的特定波长红外线针对性极强几乎无误报。但它的检测角度窄需要对准点火动作且无法检测已经点燃后飘散的烟雾。方案C复合检测版MQ-2传感器麦克风声音传感器。逻辑是检测到烟雾浓度上升同时检测到类似打火机的“咔哒”声才判定为吸烟事件。这能大幅降低误报但电路和逻辑稍复杂。考虑到初期验证和成本我最终选择了方案A作为基础但为其设计了严格的软件判据来降低误报。原因在于MQ-2传感器通用、易得且能覆盖“已点燃”状态的烟雾这对于提醒持续吸烟行为更有意义。误报问题可以通过设置合理的触发阈值和持续时间阈值来缓解。例如要求传感器读数持续3秒超过阈值才触发这就能过滤掉很多瞬间的灰尘干扰。3. 硬件设计与元件选型搭建系统的骨架确定了方案AMQ-2传感器单片机的路径后接下来就是具体的硬件搭建。这部分就像搭积木每个元件的选择都直接影响最终效果。3.1 核心控制器Arduino Uno的取舍当时最自然的选择是Arduino Uno开发板。它生态完善资料众多对于快速原型开发来说再合适不过。但在这个具体项目里我其实后来换成了Arduino Nano。原因如下尺寸Uno板子相对较大而我的“盒子”希望尽可能小巧、不显眼。Nano在功能上与Uno几乎一致但体积小得多。成本与集成度对于最终产品化思维虽然只是个DIYNano的芯片ATmega328P可以直接焊接到自制PCB上省去了整个开发板的体积和部分成本。前期用Nano开发板调试后期可以无缝迁移。引脚数量本项目需要的数字IO和模拟输入引脚不多Nano完全够用。注意现在有更多选择比如ESP8266带Wi-Fi或ESP32功能更强可以实现远程通知等高级功能。但在当时以最简单可靠的方式实现核心功能是首要目标。3.2 感知层MQ-2烟雾传感器详解这是项目的“眼睛”。MQ-2是一个模拟输出传感器它有6个引脚但常用的是4个VCC5V、GND、DO数字输出、AO模拟输出。DO引脚它内部有一个比较器当浓度超过一个用电位器预设的阈值时会输出数字信号HIGH/LOW。虽然简单但阈值调节不灵活且无法获取浓度变化趋势。AO引脚输出模拟电压值0-5V浓度越高电压越高。我强烈推荐使用AO引脚。因为我们可以用Arduino的模拟输入引脚A0-A7读取这个电压值映射为0-1023的数值然后在代码里自由地设置触发阈值、设计延时触发、判断浓度变化率等复杂逻辑这是降低误报的关键。接线非常简单MQ-2 VCC - Arduino 5VMQ-2 GND - Arduino GNDMQ-2 AO - Arduino A03.3 反馈层声光与“小惊喜”的设计反馈是体验的核心。我设计了三级反馈机制一级反馈视觉警告采用一个高亮度LED白色或蓝色。当检测到烟雾浓度持续超过阈值时LED开始以1Hz频率闪烁。这是最温和的提醒。二级反馈听觉警告加入一个有源蜂鸣器。如果一级反馈后约10秒内烟雾浓度仍未下降意味着吸烟行为在继续则蜂鸣器发出断续的“滴滴”声音量适中但足以引起注意。三级反馈物理反馈这是当时我觉得最有“创意”的部分。我使用了一个微型5V振动电机就像手机里那种把它粘在了一个闲置的塑料小烟灰缸的底部。当二级反馈也无效时Arduino会控制一个继电器模块短暂接通振动电机的电源让烟灰缸“自己抖动起来”。这个反馈非常直接且略带滑稽实测效果拔群总能让人愣一下然后笑出来从而中断吸烟动作。相关元件接线LED长脚阳极通过一个220Ω限流电阻接Arduino数字引脚如D3短脚阴极接GND。有源蜂鸣器正极接D4负极接GND注意有源蜂鸣器高电平触发无源的则需要PWM驱动。继电器模块控制振动电机的IN引脚接D5VCC接5VGND接GND。振动电机接在继电器的常开端子和公共端之间电机的另一极接电源。3.4 供电与结构供电采用了一个旧的手机充电头5V1A和一个Micro USB线直接给Arduino Nano供电非常稳定。整个电路都焊接在一块万用板上然后塞进了一个尺寸合适的塑料收纳盒里。盒子正面为MQ-2传感器开了进气孔为LED开了透光孔。蜂鸣器也放在盒子内声音可以传出。振动电机和烟灰缸作为独立外设通过杜邦线连接。4. 软件逻辑与代码实现赋予盒子“灵魂”硬件是躯体软件才是灵魂。代码的逻辑直接决定了这个盒子是“智能提醒”还是“智障乱叫”。我的核心思路是状态机和多阈值判断。4.1 核心状态定义我将系统分为几个状态IDLE空闲状态持续监测传感器基线。DETECTED检测到浓度超过“触发阈值”开始计时。WARNING_L1浓度持续超标达到“确认时间”如3秒触发一级LED闪烁警告并进入二级警告倒计时。WARNING_L2一级警告后浓度仍未回落触发二级蜂鸣器警告。ACTION二级警告后仍无效触发三级振动反馈。COOLDOWN任何反馈触发后进入一段冷却时间如30秒在此期间即使有烟雾也不响应防止连续触发让人烦躁。4.2 关键代码逻辑与降误报策略以下是部分核心逻辑的伪代码和解释// 定义引脚 const int smokeSensorPin A0; const int ledPin 3; const int buzzerPin 4; const int relayPin 5; // 定义阈值和时间 const int detectionThreshold 300; // 模拟值阈值需根据实际环境校准 const int confirmTime 3000; // 持续多久才确认是吸烟事件毫秒 const int l1ToL2Time 10000; // 一级警告升级到二级的时间 const int cooldownPeriod 30000; // 冷却时间 int sensorValue 0; unsigned long detectionStartTime 0; unsigned long warningL1StartTime 0; bool inCooldown false; unsigned long cooldownStartTime 0; enum SystemState { IDLE, DETECTED, WARNING_L1, WARNING_L2, ACTION, COOLDOWN }; SystemState currentState IDLE; void loop() { sensorValue analogRead(smokeSensorPin); // 读取传感器值 // 冷却状态判断 if (inCooldown) { if (millis() - cooldownStartTime cooldownPeriod) { inCooldown false; currentState IDLE; } else { // 冷却期间关闭所有反馈 turnOffAllFeedback(); return; } } // 状态机逻辑 switch (currentState) { case IDLE: if (sensorValue detectionThreshold) { detectionStartTime millis(); currentState DETECTED; } break; case DETECTED: if (sensorValue detectionThreshold) { // 浓度回落认为是误报返回空闲 currentState IDLE; } else if (millis() - detectionStartTime confirmTime) { // 浓度持续超标确认时间进入一级警告 startWarningL1(); warningL1StartTime millis(); currentState WARNING_L1; } break; case WARNING_L1: // 闪烁LED digitalWrite(ledPin, !digitalRead(ledPin)); delay(500); if (sensorValue detectionThreshold) { // 浓度下降停止警告进入冷却 stopWarningL1(); enterCooldown(); } else if (millis() - warningL1StartTime l1ToL2Time) { // 一级警告超时升级二级 stopWarningL1(); startWarningL2(); currentState WARNING_L2; } break; case WARNING_L2: // 蜂鸣器断续响 // ... 控制代码 ... // 判断是否升级到ACTION或结束 break; case ACTION: // 触发继电器振动电机工作2秒 // ... 控制代码 ... enterCooldown(); // 物理反馈后强制进入长时间冷却 break; case COOLDOWN: // 由专用函数处理 break; } } void enterCooldown() { turnOffAllFeedback(); inCooldown true; cooldownStartTime millis(); currentState COOLDOWN; }降误报策略体现在哪里持续确认confirmTime要求烟雾信号必须持续一段时间如3秒瞬间的灰尘、香水喷雾无法满足。动态阈值校准可以在setup()函数中读取一段时间如30秒的传感器平均值作为环境基线detectionThreshold设置为“基线值 一个偏移量”这样能适应不同环境。冷却机制cooldownPeriod一次有效触发后系统会“休眠”一段时间避免因烟雾持续弥漫导致的疯狂连续报警提升体验。状态回落判断在DETECTED和WARNING_L1状态如果浓度值回落系统会重置到IDLE这符合“点一下烟但没点着”或“一阵风把烟吹过来又散了”的场景。4.3 参数校准让盒子适应你的环境代码中的detectionThreshold、confirmTime等参数不是固定的必须根据实际使用环境进行校准。detectionThreshold这是最关键的值。上传代码后打开串口监视器观察在无烟环境下analogRead(A0)的稳定值比如是250。然后在旁边模拟抽烟或用熏香观察数值上升情况。将一个明显高于稳定值、但低于剧烈喷烟的值设为阈值比如300。这个值需要反复测试调整。confirmTime太短易误报太长则反应迟钝。2-5秒是一个合理的范围可以根据你对“误报”和“漏报”的容忍度调整。l1ToL2Time这是给用户的“反应时间”。从看到LED闪烁到采取行动比如扇散烟雾或移开需要多久10-15秒比较合理。5. 组装、调试与实测中的“坑”硬件焊接和代码编写完成后就是激动人心的组装和调试阶段。这个过程远非一帆风顺充满了各种小问题。5.1 结构组装与电磁干扰我把所有元件都塞进了一个塑料盒。第一个问题出现了蜂鸣器的振动会干扰MQ-2传感器当蜂鸣器工作时其内部的振动膜片会导致整个盒子微震有时会让MQ-2的输出值产生剧烈跳变从而误触发状态切换。解决方案物理隔离用海绵或泡棉将蜂鸣器包裹起来再固定在盒子内壁上减少振动传递。软件滤波在读取analogRead值时不是取单次值而是采用滑动平均滤波。例如连续读取10次然后取平均值。这能有效平滑掉瞬间的干扰脉冲。const int numReadings 10; int readings[numReadings]; int readIndex 0; int total 0; int average 0; // 在loop()中更新 total total - readings[readIndex]; readings[readIndex] analogRead(smokeSensorPin); total total readings[readIndex]; readIndex (readIndex 1) % numReadings; average total / numReadings; // 后续逻辑使用 average 代替 sensorValue反馈期间暂停检测在WARNING_L2和ACTION状态可以短暂暂停对传感器的采样判断专注于执行反馈动作动作结束后再恢复检测。但这需要仔细设计避免成为“掩耳盗铃”。5.2 环境适应性挑战第二个大坑是环境变化。这个盒子在晚上工作正常但白天阳光斜射进房间温度升高后MQ-2的基线值发生了漂移导致下午频繁误报。这是因为半导体式传感器对温度也比较敏感。解决方案定期自动校准基线不是只在setup()中校准一次而是在IDLE状态下每隔一段时间比如5分钟就重新计算一次最近几十秒的平均值作为新的环境基线。这样能缓慢跟踪环境变化。使用温湿度传感器补偿进阶可以添加一个DHT11传感器监测环境温湿度。当温度变化超过一定范围时自动调整detectionThreshold的偏移量。但这增加了系统复杂度对于这个DIY项目定期自动校准通常就够了。5.3 用户体验微调在请几位“烟民”朋友帮忙实测后收集到一些反馈“LED闪得太含蓄没注意到。”- 将单个LED改为两个高亮LED交替闪烁增加视觉吸引力。“蜂鸣器声音有点刺耳像火警。”- 将有源蜂鸣器的断续“滴滴”声改为一种更古怪、但没那么尖锐的音调模式通过控制频率实现减少敌意感。“烟灰缸一震烟灰掉出来了…”- 这是个好问题于是给那个小烟灰缸加了一个非常轻的硅胶盖中心留孔放烟既不影响振动反馈又能防止烟灰震出。6. 项目总结与扩展思考这个“Anti-Smoking Box”项目从构思到最终实现前后断断续续花了一两周的业余时间。它最终并没有彻底“根治”吸烟行为但确实在它值守的区域我的工作台周边创造了一个有趣的“场”。同事们看到它工作往往会会心一笑然后自觉地走到远处。它的价值不在于技术多先进而在于它用一种具象化、可互动的方式将一种公共空间的行为规范进行了软性提示。回顾整个项目有几个关键心得传感器选型是灵魂MQ-2成本低但“噪声”大后期维护校准成本高。如果今天再做我可能会尝试激光PM2.5传感器如攀藤PMS5003它通过激光散射原理检测颗粒物浓度对烟草烟雾的灵敏度高且输出是数字串口信号稳定性和抗干扰能力远胜模拟传感器只是价格贵了十倍。反馈设计比检测更重要如何设计一个有效又不令人反感的反馈是这个项目最有趣的部分。它涉及到一点简单的行为心理学即时反馈、负强化。振动电机这个点子虽然简单但因为它创造了物理世界的直接互动效果出奇地好。可靠性来自细节处理滑动平均滤波、状态机、冷却计时、自动基线校准……这些看似不起眼的软件细节共同构成了系统可靠运行的基石。没有它们这就是个乱叫的玩具。明确项目边界这是一个基于特定场景、带有实验和趣味性质的个人项目。它不适合也不应该用于对安全性有严格要求的禁烟场所那些地方应该用专业消防烟雾探测器。清楚自己项目的定位能避免陷入过度设计和追求不切实际目标的陷阱。这个盒子至今还放在我的旧物箱里偶尔拿出来通上电它依然能忠实地工作。它更像是一个时代的纪念品纪念那个遇到问题总想“自己动手做一个”的工程师冲动。如果你也受类似问题困扰或者单纯对硬件互动感兴趣不妨也试试看。从最简单的LED闪烁开始逐步添加传感器和反馈这个过程本身就是最大的乐趣所在。

相关新闻

Blender卡通渲染实战:手把手打造MMD手办风格着色器

Blender卡通渲染实战:手把手打造MMD手办风格着色器

最近在尝试将3D模型渲染成MMD(MikuMikuDance)那种标志性的“手办”或“动画”风格时,发现直接使用常规的PBR流程效果总差那么点意思。模型要么显得过于写实,缺乏二次元的灵动;要么阴影生硬,丢失了模型的立体…

2026/8/19 1:03:53 阅读更多 →
树莓派Zero W驱动步进电机打造复古蒸汽朋克时钟:硬件选型与Python控制全解析

树莓派Zero W驱动步进电机打造复古蒸汽朋克时钟:硬件选型与Python控制全解析

1. 项目缘起:当极简科技遇上复古美学几年前,我在一个旧货市场淘到了一个老式蒸汽压力表的表盘,黄铜的边框已经有些氧化,但玻璃下的指针和刻度依然清晰。当时我就想,如果能把这个充满工业时代机械美感的表盘&#xff0c…

2026/8/19 1:03:53 阅读更多 →
基于RP2040与CircuitPython的智能小车开发:从Pico:ed驱动到Cutebot避障实战

基于RP2040与CircuitPython的智能小车开发:从Pico:ed驱动到Cutebot避障实战

1. 项目概述:当Pico:ed遇见Smart Cutebot如果你手头正好有一块小巧的Pico:ed开发板,又在寻找一个能跑、能玩、能编程的智能小车平台,那么“Pico:ed Smart Cutebot”这个组合绝对值得你花时间研究。这不仅仅是把一块板子插到一辆小车上那么简…

2026/8/19 1:03:53 阅读更多 →

最新新闻

被官方控制台折磨了半年,我的暗影精灵终于肯安静干活了

被官方控制台折磨了半年,我的暗影精灵终于肯安静干活了

被官方控制台折磨了半年,我的暗影精灵终于肯安静干活了 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 如果你也…

2026/8/19 2:03:32 阅读更多 →
NCM转MP3免费教程:免安装小工具一招搞定,上千首歌批量转也只需3分钟

NCM转MP3免费教程:免安装小工具一招搞定,上千首歌批量转也只需3分钟

NCM转MP3免费教程:免安装小工具一招搞定,上千首歌批量转也只需3分钟 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 整理硬盘音乐库时,几十首原本能播的歌突然集体"罢工",双…

2026/8/19 2:03:31 阅读更多 →
FreeRTOS任务管理实战指南:从裸机到多任务系统的核心原理与避坑技巧

FreeRTOS任务管理实战指南:从裸机到多任务系统的核心原理与避坑技巧

1. 从“裸奔”到“有组织”:为什么我们需要任务管理 如果你是从51单片机或者简单的STM32标准库开发转过来的,肯定经历过那种“大循环中断”的编程模式。整个程序就是一个 while(1) 死循环,里面塞满了各种 if 判断和函数调用,中…

2026/8/19 2:03:31 阅读更多 →
词钟DIY全解析:从硬件设计到软件编程,揭秘昂贵背后的技术细节

词钟DIY全解析:从硬件设计到软件编程,揭秘昂贵背后的技术细节

1. 项目概述:走进“词钟”的世界最近在逛一些创意家居或极客社区时,你可能会被一种独特的时钟吸引:它没有传统的指针或数字,整个钟面是一个由字母组成的网格,通过点亮特定的字母来拼出当前的时间,比如“IT …

2026/8/19 2:03:31 阅读更多 →
南通全家电维修靠谱师傅上门服务-欧米到家全域覆盖深度检修|收费透明正规优质平台备案可查

南通全家电维修靠谱师傅上门服务-欧米到家全域覆盖深度检修|收费透明正规优质平台备案可查

核心导读南通地区家庭与商用场景中的空调、中央空调、冰箱、洗衣机、热水器、燃气灶、油烟机、壁挂炉等家用电器,超出品牌官方保修期后出现故障,可选择专业第三方平台进行维修处理。欧米到家面向南通市提供全品类家电检测、维修、清洗、安装、移机及配件…

2026/8/19 2:03:31 阅读更多 →
从传统蒸发冷却器到智能闭环控制:SWAMP CTRL 系统架构与算法实现

从传统蒸发冷却器到智能闭环控制:SWAMP CTRL 系统架构与算法实现

1. 项目缘起:从“沼泽”到“控制”的进化之路如果你在北美干燥的西南部生活过,或者对低成本、高能效的降温方式有所研究,那你一定听说过“Swamp Cooler”(沼泽冷却器,也叫蒸发式冷却器)。这东西原理简单得令…

2026/8/19 2:02:31 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →