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

基于风力推进器控制的小球实验装置设计与研究

目录

完整论文下载链接放在文章结尾,有需要自行下载。

目录

摘    要

1  引 言

2  概述

2.1  风控小球系统概述

2.2  本设计方案思路

2.3  研发方向和技术关键

2.4  主要技术指标

3  总体设计

4  硬件设计

4.1 单片机最小系统

4.2 供电接口电路

4.3 Openmv摄像头

5  软件设计

5.1主函数

5.2定时器中断函数

5.2.1位置闭环定时器中断函数

5.3 PID算法

5.4 图像处理算法

5.4.1 图像预处理

5.4.2 目标检测与质心定位

5.4.3 算法性能优化

5.4.4 处理效果展示

5.5 串级PID控制算法实现

5.5.1 控制结构设计

5.5.2 代码实现(Keil C)

5.5.4 抗积分饱和与滤波

5.5.5 实时性保障

5.6 上位机通信与同步

6  制作与调试

6.1  硬件电路的布线与焊接

5.2 系统硬件调试

5.3 系统软件调试

5.4 PID参数整定

5.5 实物调试

参考文献

附录

附录A:Openmv代码

附录B:PID控制算法代码

完整论文下载链接


完整论文下载链接放在文章结尾,有需要自行下载。

    

        本毕业设计主要设计自主研发的激光打靶系统的信号处理过程,继而实现整个打靶系统。本文提出并实现了一种基于STM32F103C8T6单片机与OpenMV4 H7视觉模块的风力控制小球实验系统,旨在通过非接触式气流驱动实现乒乓球在水平风洞中的精准位置控制,为自动化教学与科研提供新型实验平台。系统硬件设计以STM32F103C8T6为核心控制器,结合OpenMV摄像头实时检测小球位置,利用双无刷直流电机(单电机推力750g,响应时间120ms)通过PWM调速生成可控气流。为优化气流分布,采用H型铁管结构,通过对称风道设计减少湍流干扰,显著提升系统控制稳定性。

        在软件层面,开发了基于HSV色彩空间的轻量化视觉检测算法,通过颜色分割技术快速定位小球位置,实现30帧/秒(fps)的高帧率检测,满足实时控制需求。实验结果表明,该系统能够在H型铁管内稳定驱动乒乓球运动,并通过调整电机转速动态响应小球位置偏差,验证了气流驱动控制策略的有效性。

        本研究通过硬件与软件的协同设计,突破了传统接触式驱动方式的局限,为非接触式物体操控提供了新思路,具有教学演示、自动化控制实验及微型机器人研究等潜在应用价值。未来工作将进一步优化气流模型与控制算法,提升系统动态性能与抗干扰能力。

关键词:风力推进器;非接触式控制;STM32F103C8T6;OpenMV视觉检测;HSV色彩分割;PWM调速;

1  引 

        在自动化控制与机器人技术领域,非接触式物体操控技术因其无需物理接触即可实现精确驱动的特性,成为当前研究的热点之一。非接触式驱动方式不仅能够有效避免机械磨损与能量损耗,还能在微小物体操控、精密仪器校准及特殊环境作业(如真空、高温)中展现独特优势。其中,基于气流驱动的非接触式操控技术,凭借其结构简单、响应迅速、易于实现微型化等优点,在微型机器人、自动化教学实验及科研探索中展现出广阔的应用前景。

        乒乓球作为轻质、易受气流影响的典型物体,其位置控制成为验证气流驱动技术可行性的理想模型。传统方法多采用机械臂或电磁装置直接接触驱动,但此类方法存在结构复杂、能耗高、难以适应微小空间操作等局限性。相比之下,利用气流驱动乒乓球在水平风洞中运动,通过实时调整气流强度与方向实现精准位置控制,不仅能够避免物理接触带来的干扰,还能在动态环境中展现更强的适应性与灵活性。然而,气流驱动系统的核心挑战在于如何高效、稳定地生成可控气流,并实时感知小球位置以实现闭环控制。

        针对上述问题,本文设计并实现了一种基于STM32F103C8T6单片机与OpenMV4 H7视觉模块的风力控制小球实验系统。该系统以STM32为核心控制器,通过PWM调速技术驱动双无刷直流电机生成可控气流,利用H型铁管结构的对称风道设计优化气流分布,减少湍流干扰,提升控制稳定性。同时,结合OpenMV摄像头与HSV色彩空间分割算法,实现小球位置的实时高帧率检测(30fps),为闭环控制提供精准反馈。

        本研究的创新点主要体现在以下几个方面:一是通过硬件协同设计,将气流生成模块与视觉检测模块集成于同一系统,实现高效协同工作;二是采用轻量化视觉检测算法,基于HSV色彩空间分割技术快速定位小球位置,降低计算复杂度,提升实时性;三是通过实验验证气流驱动控制策略的有效性,为非接触式物体操控提供新思路。

        本文的研究意义不仅在于验证气流驱动技术的可行性,更在于为自动化教学与科研提供一种新型实验工具。通过该实验系统,学生可直观理解气流驱动原理、视觉检测技术及闭环控制策略,为后续深入研究奠定基础。同时,该系统在微型机器人研究、精密仪器校准及特殊环境作业等领域也具有潜在应用价值。未来,我们将进一步优化气流模型与控制算法,提升系统动态性能与抗干扰能力,推动非接触式物体操控技术的发展与应用。

完整论文稍后上传至平台,有需要的自行下载

2  概述

2.1  风控小球系统概述

激风控小球系统是一种基于气流驱动的非接触式物体操控实验平台,旨在通过精准的气流控制实现小球(如乒乓球)在特定空间内的位置稳定与动态调整。该系统以气流为驱动介质,结合视觉检测与闭环控制算法,形成一套完整的非接触式操控体系。系统核心硬件包括STM32F103C8T6单片机、双无刷直流电机、H型铁管风道结构及OpenMV4 H7视觉模块;软件层面则依托轻量化视觉检测算法与PWM调速技术,实现气流强度与方向的动态调节。

图2-1  风控小球系统结构图

        系统工作原理如下:双无刷直流电机通过PWM调速生成可控气流,气流经H型铁管风道结构优化后,形成均匀稳定的气流场。乒乓球置于风道中央,受气流作用产生位移。OpenMV摄像头实时捕捉乒乓球位置信息,通过HSV色彩空间分割算法提取小球坐标,并将数据传输至STM32单片机。单片机根据预设目标位置与当前小球位置的偏差,动态调整PWM信号,控制电机转速与气流强度,形成闭环反馈控制。通过持续优化气流分布与控制算法,系统能够实现乒乓球在风道内的精准位置控制。

        风控小球系统的应用场景广泛,包括自动化教学实验、微型机器人研究、精密仪器校准及特殊环境作业等。在自动化教学中,该系统可作为典型案例,帮助学生理解气流驱动原理、视觉检测技术及闭环控制策略;在微型机器人研究中,其非接触式操控特性为微型飞行器、水下机器人等提供新思路;在精密仪器校准领域,气流驱动的微小位移控制能力可应用于高精度定位场景;在特殊环境作业中,系统无需物理接触的特性使其能够适应真空、高温等极端环境。

2.2  本设计方案思路

        本设计方案以“高效、稳定、实时”为核心目标,从硬件选型、结构优化、算法开发三个维度展开。硬件层面,选择STM32F103C8T6单片机作为核心控制器,其丰富的外设接口与高性能计算能力满足系统实时控制需求;双无刷直流电机(单电机推力750g,响应时间120ms)提供强劲可控的气流动力;H型铁管风道结构通过对称设计优化气流分布,减少湍流干扰;OpenMV4 H7视觉模块集成高帧率摄像头与轻量化视觉算法,实现小球位置的实时精准检测。

        结构优化方面,H型铁管采用对称风道设计,通过流体力学仿真验证气流均匀性,确保乒乓球在风道内受控稳定。软件算法开发聚焦于轻量化视觉检测与闭环控制策略:基于HSV色彩空间分割的视觉算法,通过颜色阈值快速定位小球位置,降低计算复杂度;闭环控制算法结合PID控制原理,动态调整PWM信号以响应小球位置偏差,实现精准位置控制。

        设计思路的创新性体现在三个方面:一是硬件协同设计,将气流生成与视觉检测模块集成于同一系统,提升协同效率;二是轻量化视觉算法,基于HSV色彩空间分割技术实现30fps高帧率检测,满足实时性需求;三是闭环控制策略,通过动态调整气流强度与方向,形成高效稳定的控制体系。

2.3  研发方向和技术关键

(1)气流生成与控制:双无刷直流电机的PWM调速技术,需解决电机响应延迟与气流均匀性矛盾;

(2)视觉检测算法:HSV色彩空间分割算法的阈值动态调整机制,需应对光照变化与背景干扰;

(3)闭环控制策略:PID控制参数的实时优化,需平衡系统稳定性与响应速度;

(4)硬件协同设计:STM32与OpenMV的通信协议优化,需降低数据传输延迟与误码率。

2.4  主要技术指标

(1)硬件方面

①STM32F103C8T6单片机:主频72MHz,Flash容量64KB,支持PWM、ADC、UART等外设。

②双无刷直流电机:推力750g,响应时间120ms,支持PWM调速范围0-100%。

③OpenMV4 H7视觉模块:摄像头分辨率640×480,帧率30fps,支持HSV色彩空间分割。

④玻璃管风道:对称风道设计,气流均匀性误差≤5%。

(2)软件方面

①视觉检测算法:HSV色彩空间分割阈值动态调整范围0-255,检测准确率≥95%。

②闭环控制策略:PID控制参数动态优化范围Kp=0.1-10,Ki=0.01-1,Kd=0-0.5,响应时间≤200ms。

③系统实时性:数据传输延迟≤50ms,控制频率≥10Hz。

(3)系统指标

①小球位置控制精度:±1mm(静态),±2mm(动态)。

②系统稳定性:连续运行时间≥24小时,故障率≤1%。

③环境适应性:温度范围-20℃~60℃,湿度范围20%~90%。

3  总体设计

        风力控制小球的球体实验装置设计系统特征在于上位机、下位机两部分,下位机包括小球、直线槽、单片机以及分别与单片机电连接的按键模块、风机模块、显示模块、电源模块以及摄像头检测模块,上位机包括计算机以及电源;小球设于直线槽上方,摄像头检测模块的检测端垂直直线槽设置,直线槽的两端端上设有与所述单片机电连接的风机,所述风机的出风口正对小球;

        单片机是整个系统的核心控制单元,承担着数据接收、处理与控制指令的传输等多重任务。当摄像头检测模块提供小球位置数据后,单片机采用PID控制算法对数据进行处理,进而计算出风机的转速调整值,并通过PWM信号对风机模块进行精确控制。风机模块根据单片机的指令调整风速,从而通过气流的变化来控制小球在直线槽内的精确位置;

        按键模块用于触发单片机的设定操作,通过用户输入的指令来调节小球在测试管内的运动位置,确保实验过程中各项操作能够得到实时响应。显示模块则负责显示小球的目标位置与实时监测到的位置,并可以提供实验过程中的其他相关信息,方便操作人员对实验状态进行监控与调整;

        摄像头检测模块用于实时检测小球在所述测试管的内腔内的位置,并将检测到的位置信息传输到单片机;

        风机模块用于驱动风机运行和控制小球位置。

        显示模块用于显示小球的目标位置信息和实时检测到的位置信息,以及其他功能;

        电源模块为单片机及各个模块提供稳定的电力支持,确保系统在运行过程中能够正常供电,保障各模块的稳定工作。

                                                                       图1:系统组成图 

                                                             图2:风力小球控制系统示意图

图3:风力小球控制系统实物图

相关文章:

基于风力推进器控制的小球实验装置设计与研究

目录 完整论文下载链接放在文章结尾,有需要自行下载。 目录 摘 要 1 引 言 2 概述 2.1 风控小球系统概述 2.2 本设计方案思路 2.3 研发方向和技术关键 2.4 主要技术指标 3 总体设计 4 硬件设计 4.1 单片机最小系统 4.2 供电接口电路 4.3 Openmv摄像头…...

Swift闭包(Closure)深入解析与底层原理

前言 在Swift开发中,闭包是一个非常重要且强大的特性。本文将深入探讨Swift闭包的底层实现原理,帮助开发者更好地理解和使用这一特性。 1. 什么是闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用。它不仅可以像函数一样执行代码&…...

【DE-III】基于细节增强的模态内和模态间交互的视听情感识别

abstract 在视听情感识别(AVER)中,捕捉视频和音频模态之间复杂的时间关系是至关重要的。然而,现有的方法缺乏对局部细节的关注,如视频帧之间的面部状态变化,这会降低特征的可区分性,从而降低识别准确率。 为此,本文提出了一种用于AVER的细节增强的模态内和模态间交互…...

c++11 :智能指针

目录 一 为什么需要智能指针? 二 智能指针的使用及原理 1. RAII 2. auto_ptr 3. unique_ptr 4. shared_ptr 5. weak_ptr 三 内存泄漏 1.什么是内存泄漏,内存泄漏的危害 2. 如何避免内存泄漏? 一 为什么需要智能指针? …...

Linux解压tar.gz包的正确姿势(附赠防抓狂指南)

一、为什么你的解压命令总报错? 每次看到.tar.gz后缀是不是心里一紧?(别装了!我都看到你偷偷打开浏览器查命令的样子了)这个在Linux界横行霸道的压缩格式,其实用对了方法比Windows的zip还简单。今天咱们不…...

MCP协议:让AI从“话痨”变“实干家”的神奇魔法

一、MCP 协议:AI 界的 “万能插头” 是啥来头? 1.1 从 “动口不动手” 到 “全能打工人” 你以为 AI 只会陪你聊天、写文案?那你可小瞧它啦!MCP 协议(Model Context Protocol),堪称 AI 的 “瑞…...

如何在SpringBoot中通过@Value注入Map和List并使用YAML配置?

在SpringBoot开发中,我们经常需要从配置文件中读取各种参数。对于简单的字符串或数值,直接使用Value注解就可以了。但当我们需要注入更复杂的数据结构,比如Map或者List时,该怎么操作呢?特别是使用YAML这种更人性化的配…...

记一次调用大华抓拍SDK并发优化

目录 一、问题分析 二、解决思路 三、贴代码 四、总结 一、问题分析 按惯例上问题: 设备告警采用高电平持续模式:一次开,不主动关就一直处于告警状态。 并发时多个请求下发 setDVRAlarmOutConfig,导致状态混乱。 “开 -&g…...

打破认知!没论文没竞赛,我的暑期实习上岸秘籍:简历要敢 “吹”,面试靠巧 “聊”

前言 以下教程仅针对本人的大大小小几十场暑期实习面试的经验总结,个人背景(双9,无论文、无竞赛、无大厂实习、无奖。)。简历几易其稿,相对于原来的初版,可谓是脱胎换骨,洗经易髓。 二月中旬开…...

为何 RAG 向量存储应优先考虑 PostgreSQL + pgvector 而非 MySQL?

构建检索增强生成(RAG)系统已成为释放大型语言模型(LLM)潜力的关键范式。通过将 LLM 的推理能力与外部知识库的实时、特定信息相结合,RAG 能够生成更准确、更相关、更值得信赖的回答。而这个“外部知识库”的核心&…...

LangChain LCEL表达式语言简介

LangChain表达式语言(LCEL)是专为构建AI应用链设计的声明式编程框架,通过管道符|实现组件无缝衔接,支持流式处理、异步调用等生产级特性。其核心优势在于零代码改动实现原型到生产的过渡,同时保持代码简洁性和可维护性…...

智能座舱背后的秘密:智能座舱测试如何“具身智能”

在上期文章《智能座舱背后的秘密:AI赋能测试如何改写驾乘体验》中,我们聊到了“智能座舱”已成为车企争夺用户心智的核心战场、智能座舱功能体验进化、AI赋能座舱测试将突破“场景覆盖、情感量化、角色/场景衍生”技术实现方面的三大困局,并在…...

鸿蒙-试一下属性字符串:除了Span之外,如何在同一个Text组件中展示不同样式的文字

文章目录 前言简介有哪些类型拉出来溜溜Text SpanStyledString其他CustomSpan先看一下构造函数onMeasure(measureInfo: CustomSpanMeasureInfo): CustomSpanMetricsonDraw(context: DrawContext, drawInfo: CustomSpanDrawInfo) 遗留问题 前言 在开发中,经常会遇到…...

今日最新漂亮的早上好图片祝福,最真的牵挂,永远的祝福

1、清晨的一个问候给你一个新的心情、一个祝福带给你新的起点、一个关心带给你一个新的愿望。祝福你心中常有快乐涌现!早安! 2、人过花甲万事休,唯有健康不可丢,荣华富贵皆浮云,逍遥自在渡岁月!时光匆匆&am…...

MySQL 库的操作 -- 增删改查,备份和恢复,系统编码

文章目录 库的操作增删改查数据库的查看和创建查看当前位于哪个数据库中数据库的删除总结显示数据库的创建语句修改数据库 认识系统编码数据库的编码问题查看系统默认的字符集和效验规则校验规则对数据库的影响 数据库的备份和恢复备份还原备份的是一张表 查看数据库的连接情况…...

【c++11】c++11新特性(下)(可变参数模板、default和delete、容器新设定、包装器)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 五、可变参数模板 1. 概念及简单定义 2. 包扩展 六、 default和delete 七、容器新设定 1. 新容器 2. 新接口 emplace系列接口 八、函数包…...

fps项目总结:生成武器子弹

文章目录 spawn actor:生成武器固定生成:因为武器的碰撞设为noCollision attach actor to component:将武器附加到骨骼上,成为mesh的子组件对齐到目标:对齐到插槽 子弹阻挡的前提是根组件为碰撞体子弹对碰撞体全是阻挡…...

大模型备案对模型训练语料的要求

昨天接到一位客户的咨询,说他们的模型还在开发阶段,想提前了解一下大模型备案政策中对于模型训练语料有什么具体要求,提前规避一下。客户确实有前瞻性,考虑得比较充分。训练语料在研发阶段至关重要,直接影响模型的性能…...

Ethan独立开发产品日报 | 2025-04-24

1. Peek AI个人财务教练,帮助你做出决策。 Peek的人工智能助手提供主动的跟踪服务——它会分析你的消费习惯,并以细腻而积极的方式帮助你调整这些习惯。没有评判,也没有负担。就像是为你的财务量身定制的Spotify Wrapped,完美贴…...

egg环境搭建

前言 egg.js 是由阿里开源的面向企业级开发的 Node.js 服务端框架,它的底层是由 Koa2 搭建。 Github:https://github.com/eggjs/egg,目前 14.8K Star,egg 很适合做中台。 安装 首先,你要 确保 Node 已经配置环境变量…...

Linux的基础指令

目录 1、Shell及运行原理 2、热键 3、Linux的基础知识 4、Linux的基础指令 4.1 man 4.2 clear&&history&&whoami 4.3 pwd 4.4 ls 4.5 cd 4.6 mkdir&&touch 1. mkdir 2. touch 4.7 rmdir&&rm 1. rmdir 2. rm 4.8 cp&&mv…...

第一部分:git基本操作

目录 1、git初识 1.1、存在的问题 1.2、版本控制器 1.3、git安装 1.3.1、CentOS平台 1.3.2、ubuntu平台 2、git基本操作 2.1、创建仓库 2.2、配置git 3、工作区、暂存区、版本库 4、基本操作 4.1、场景一 4.2、场景二 4.3、修改文件 5、版本回退 6、撤销修改 …...

Kafka和其他组件的整合

Kafka和其他组件的整合 1.Kafka和Flume的整合 需求1:利用flume监控某目录中新生成的文件,将监控到的变更数据发送给kafka,kafka将收到的数据打印到控制台: 在flume/conf下添加.conf文件, vi flume-kafka.conf # 定…...

学习AI必知的20大概念

🎯AI开发者必知的20大概念 ​🤖 机器学习:基础算法和模型训练。 🧠 深度学习:复杂表示学习。 🌐 神经网络:非线性关系建模。 🗣️ NLP:文本处理和理解。 👁️…...

VRRP与防火墙双机热备实验

目录 实验一:VRRP负载均衡与故障切换 实验拓扑​编辑一、实验配置步骤 1. 基础网络配置 2. VRRP双组配置 二、关键验证命令 1. 查看VRRP状态 2. 路由表验证 三、流量分析 正常负载均衡场景: 故障切换验证: 实验二:防火…...

【金仓数据库征文】——选择金仓,选择胜利

目录 第一部分:金仓数据库——开创数据库技术的新时代 1.1 金仓数据库的技术底蕴 1.2 高可用架构与灾备能力 1.3 分布式架构与弹性扩展能力 第二部分:金仓数据库助力行业数字化转型 2.1 电信行业:核心系统国产化替代 2.2 医疗行业&…...

微软官网Win10镜像下载快速获取ISO文件

如何从微软官网轻松下载win10镜像?win10镜像的下载方式主要包括两种: 目录 一:借助官方工具 二:直接微软官网通过浏览器进行下载。 三:实现方法与步骤: 1:利用微软官方提供的MediaCreationT…...

发放优惠券

文章目录 概要整体架构流程技术细节小结 概要 发放优惠券 处于暂停状态,或者待发放状态的优惠券,在优惠券列表中才会出现发放按钮,可以被发放: 需求分析以及接口设计 需要我们选择发放方式,使用期限。 发放方式分…...

【专题刷题】二分查找(二)

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…...

如何避免IDEA每次打开新项目都重复配置Maven?

每次打开新项目都要重新设置Maven路径?每次导入工程都要手动调整settings.xml?如果你也受够了IDEA这种“健忘”行为,那么这篇文章就是为你准备的!今天我们就来彻底解决这个问题,让IDEA记住你的Maven配置,一…...

【Linux网络编程】应用层协议HTTP(实现一个简单的http服务)

目录 前言 一,HTTP协议 1,认识URL 2,urlencode和urldecode 3,HTTP协议请求与响应格式 二,myhttp服务器端代码的编写 HTTP请求报文示例 HTTP应答报文示例 代码编写 网络通信模块 处理请求和发送应答模块 结…...

深度解析之算法之分治(快排)

44.颜色分类 题目链接 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置…...

【金仓数据库征文】-金仓数据库性能调优 “快准稳” 攻略:实战优化,让数据处理飞起来

我的个人主页 我的专栏: 人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!! 点赞👍收藏❤ 目录 一、KingbaseES金仓数据库简介二、快速入门:金仓数据库下载与安装指南三、“快”…...

DPIN河内AI+DePIN峰会:共绘蓝图,加速构建去中心化AI基础设施新生态

近日,一场聚焦前沿科技融合的盛会——AIDePIN峰会在越南河内成功举办。此次峰会由DPIN、QPIN及42DAO等Web3领域的创新项目联合组织,汇聚了众多Web3行业领袖、技术专家与社区成员。峰会于2025年4月19日举行,其核心议题围绕去中心化物理基础设施…...

vscode和git 踩坑

git init经常 在 vscode push错误问题: 正确姿势:先 GitHub 上建仓库 → git clone 拉到本地 → 再用 VSCode 打开编辑 ❌ 不是:VSCode 里 git init → 再去 GitHub 选个仓库绑定 举个对比 操作流程是否推荐后果GitHub 创建仓库 → git clone → 用 VSC…...

C++11介绍

目录 一、C11的两个小点 1.1、decltype 1.2、nullptr 二、列表初始化 2.1、C98传统的{} 2.2、C11中的{} 2.3、C11中的std::initializer_list 三、右值引用和移动语义 3.1、左值和右值 3.2、左值引用和右值引用 3.3、引用延长生命周期 3.4、左值和右值的参数匹配 3…...

AI数字人:繁荣背后的伦理困境与法律迷局(8/10)

摘要:本文深入剖析 AI 数字人从虚拟走向现实的历程,阐述其融合多技术实现从静态到动态交互的跨越,爆发式应用于各领域带来的商业价值与社会影响,同时直面由此引发的伦理法律挑战,包括身份认同、数据隐私、责任归属及权…...

SOLID 原则在单片机环境下的 C 语言实现示例,结合嵌入式开发常见场景进行详细说明

1. 单一职责原则 (SRP) 定义:一个模块(函数/文件)只负责一个功能。 示例:传感器数据采集与处理分离 // SensorAdc.h - 仅负责ADC原始数据采集 typedef struct { uint16_t (*ReadRaw)(void); // 原始数据读取接口 } SensorAdc; // SensorProcessor.h - 仅负责数据处理…...

RT Thread 发生异常时打印输出cpu寄存器信息和栈数据

打印输出发生hardfault时,当前栈十六进制数据和cpu寄存器信息 在发生 HardFault 时,打印当前栈的十六进制数据和 CPU 寄存器信息是非常重要的调试手段。以下是如何实现这一功能的具体步骤和示例代码。 1. 实现 HardFault 处理函数 我们需要在 HardFault 中捕获异常上下文,…...

SQL 函数进行左边自动补位fnPadLeft和FORMAT

目录 1.问题 2.解决 方式1 方式2 3.结果 1.问题 例如在SQL存储过程中,将1 或10 或 100 长度不足的时候,自动补足长度。 例如 1 → 001 10→ 010 100→100 2.解决 方式1 SELECT FORMAT (1, 000) AS FormattedNum; SELECT FORMAT(12, 000) AS Form…...

Unity中数据和资源加密(异或加密,AES加密,MD5加密)

在项目开发中,始终会涉及到的一个问题,就是信息安全,在调用接口,或者加载的资源,都会涉及安全问题,因此就出现了各种各样的加密方式。 常见的也是目前用的最广的加密方式,分别是:DES、3DES、AES、MD5、XOR(异或) 其中DES、3DES、AES、MD5用在数据加密中偏多,特别是…...

C++初窥门径

const关键字 一、const关键字 修饰成员变量 常成员变量:必须通过构造函数的初始化列表进行初始化,且初始化后不可修改。 示例: class Student { private: const int age; // 常成员变量 public: Student(string name, int age) : age(ag…...

Spring知识点总结

目录 1.什么是spring?你对spring的理解? 2.spring的优缺点? 3.解释一下IOC和AOP? 4.IOC和DI的区别? 5.spring中管理对象注入的方式? 6.自动注入的注解有哪些? 声明bean的注解 Bean的生命…...

Oracle_开启归档日志和重做日志

在Oracle中,类似于MySQL的binlog的机制是归档日志(Archive Log)和重做日志(Redo Log) 查询归档日志状态 SELECT log_mode FROM v$database; – 输出示例: – LOG_MODE – ARCHIVELOG (表示已开启) – NO…...

【金仓数据库征文】-数据库界新兴前列者,本篇带你速懂金仓数据库!

最近写课程设计、搞毕设是不是被数据库折腾到崩溃?动不动就报错、数据迁移还超麻烦!今天挖到个宝藏 —— 国产金仓数据库 KingbaseES,操作超简单,还自带 “翻译器” 帮你迁移数据!性能强还稳定,关键完全免费…...

人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径

人工智能(Artificial Intelligence, AI)作为当代最具影响力的前沿技术之一,常被大众简化为 “深度学习” 或 “大模型” 等标签。然而,这种简化认知往往掩盖了AI技术内部结构的复杂性与多样性。事实上,AI并非单一方法的…...

Linux进程学习【进程状态】

🌼🌼前言:在操作系统中,进程是最基本的资源管理单位,而操作系统通过精确管理这些进程的状态来确保系统能够高效运行。进程的状态不仅仅是操作系统设计的一部分,它对系统的性能、稳定性以及资源的分配起着至…...

用 ESP32 模拟 Wiegand 刷卡器:开发门禁系统必备的小工具

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

什么是 MCP?与 AI Agent 的关系是什么?

首先先回答一下什么是MCP? 如果你经常使用像Claude这样的大语言模型,你可能已经注意到它们虽然强大,但有时候也有局限性,比如无法获取实时信息或访问特定工具。 模型上下文协议(Model Context Protocol,简…...

Python ZIP文件操作全解析:从基础压缩到高级技巧

目录 一、ZIP文件操作基础三板斧 1.1 创建压缩包 1.2 解压操作 1.3 文件遍历与信息获取 二、进阶技巧:让压缩更智能 2.1 加密压缩实战 2.2 增量更新策略 2.3 性能优化技巧 三、高级场景解决方案 3.1 分卷压缩实现 3.2 跨平台路径处理 3.3 异常处理最佳实…...