自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(415)
  • 收藏
  • 关注

原创 嵌入式知识篇---PWM使用教程

文章摘要: PWM(脉冲宽度调制)通过调节脉冲信号的占空比控制电机转速和舵机角度。电机占空比越大转速越快,舵机则通过固定周期(如20ms)的脉冲宽度对应角度(1ms=0°,2ms=180°)。驱动时需注意共地、电源匹配及PWM引脚选择: 舵机:直接连接控制器PWM引脚,使用Servo.h库简化代码,注意舵机角度限制。 电机:需外接驱动模块(如L298N),通过analogWrite()调节占空比控制转速,需独立电源。 360°数字舵机:脉冲宽度0.5-1.5ms正转,1.5ms停止,1.5-2.5ms反转,

2025-08-05 01:05:39 611

原创 深度学习篇---数据集采集

目标检测数据标注的质量直接影响模型性能。标注需确保数据量充足、类别多样,覆盖真实场景;边界框精准、类别正确,避免漏标;标注人员需遵循统一标准。重点关注难例和小目标,加入负样本减少误检。针对模型反馈动态补充数据,使用标注工具提高效率。对于目标物映射(如倒影、镜像),是否标注取决于任务需求:若映射为干扰项可不标,若包含有效信息(如自动驾驶需识别反射行人)则需标注。关键是根据应用场景明确定义标注范围,保持一致性,并通过测试验证最佳方案。

2025-08-05 00:45:40 472

原创 上位机知识篇---令牌

令牌(Token)是计算机安全领域的核心概念,作为身份认证和访问控制的数字凭证,可分为物理令牌(如U盾、门禁卡)和数字令牌(如JWT、访问令牌)。其核心功能包括身份验证、授权访问、会话管理和安全隔离,通过有效期、加密签名和最小权限原则保障安全性。令牌广泛应用于登录认证、API调用、OAuth授权等场景,典型流程涉及生成、下发、验证环节。设计时需平衡安全性与便利性,采用加密传输、定期刷新和吊销机制防范风险,是现代分布式系统不可或缺的安全组件。

2025-08-04 20:48:54 1040

原创 嵌入式知识篇---闪存

闪存是一种非易失性存储技术,通过浮栅场效应晶体管结构存储数据,具有断电保存、高速读写和抗冲击等特性。主要分为NOR闪存(随机访问快,适合固件)和NAND闪存(容量大成本低,主流存储介质)。NAND闪存根据存储密度分为SLC、MLC、TLC和QLC四种类型。广泛应用于消费电子、计算机存储、嵌入式系统等领域。相比传统硬盘,闪存具有速度更快、功耗更低等优势,但也存在擦写次数有限的缺点。随着技术进步,闪存正逐步替代传统存储方案。

2025-08-04 20:07:27 493

原创 嵌入式硬件篇---OpenMV存储

OpenMV开发板的存储系统包含三种主要组件:内部闪存(2-4MB)用于存储程序和固件,支持断电保存;内存(128-256KB)作为高速临时存储,断电即清空;可选的SD卡扩展存储用于大容量数据。程序运行主要依赖内部闪存,无需SD卡即可脱机工作,SD卡仅当程序涉及文件存取时才需要。三种存储各司其职:闪存是永久存储空间,内存是临时工作区,SD卡是额外仓库,共同满足不同存储需求。

2025-08-04 19:49:14 786

原创 深度学习篇---参数查看

本文详细介绍了Windows和Linux系统下查看硬件参数的方法:Windows可通过任务管理器查看GPU/CPU/内存/磁盘等指标,或使用nvidia-smi、资源监视器等专业工具;Linux则主要依赖命令行工具如nvidia-smi、top、free、iotop等。关键指标包括GPU利用率/显存、CPU负载、内存占用和磁盘I/O,建议训练时开专用窗口监控这些参数,以便及时发现异常(如显存爆满或GPU利用率异常)。两种系统下都提供了从基础到专业的多种监控方案。

2025-08-04 01:45:45 519

原创 深度学习篇---模型训练时需关注参数

深度学习训练需要同时监控硬件性能和模型指标。硬件方面关注GPU利用率(理想70%-100%)、显存占用、CPU/内存负载、磁盘I/O和网络带宽,这些直接影响训练效率。模型指标重点关注损失函数变化(训练/验证loss)、精度指标(mAP/Recall/Precision)、学习率曲线、类别平衡和预测可视化效果,这些反映模型学习质量。两者结合可判断训练状态:硬件正常但效果差需调参,指标好但硬件利用率低需优化数据加载,同时异常则可能代码或硬件故障。合理平衡资源利用与模型效果是训练优化的关键。

2025-08-04 01:42:01 373

原创 深度学习篇---YOLOv常见参数

本文介绍了YOLOv系列模型训练中的关键参数及其调整方法。主要参数包括:批次大小(影响训练稳定性)、训练轮数(防止欠/过拟合)、学习率(控制参数更新步长)、输入图像尺寸(平衡精度与速度)、数据增强(提高模型泛化能力)、锚框设置(影响目标定位精度)、置信度阈值(过滤低质量预测)和正则化参数(防止过拟合)。文章建议根据具体问题(如欠拟合、过拟合、速度慢等)有针对性地调整参数,并强调一次只修改1-2个参数以观察效果。这些参数的合理配置直接影响模型的训练效率、精度和泛化性能。

2025-08-04 01:39:24 578

原创 上位机知识篇---SSH无法正常连接

本文简单介绍了SSH无法连接的原因,为解决ssh远程连接提供解决方法。

2025-08-04 01:34:23 539

原创 嵌入式硬件篇---Openmv

《OpenMV固件烧录与异常处理指南》详细介绍了OpenMV开发板的固件烧录流程和常见故障解决方法。固件烧录需准备匹配型号的.bin文件,通过Bootloader模式(长按BOOT键连接USB)使用OpenMVIDE完成烧录。开发板运行依赖内存卡(存储脚本和数据)、USB连接(供电通信)和复位按钮的协同工作。"忙乱"异常多由内存卡问题(格式错误/损坏)、USB连接不稳定或脚本冲突导致,可通过格式化内存卡、更换USB线、复位或重烧固件解决。

2025-08-03 17:20:39 891

原创 程序代码篇---多循环串口程序切换

本文提出了一种基于状态机的高效串口控制方案,采用多线程非阻塞方式实现四个循环函数的快速切换。通过定义状态枚举清晰表示四种状态,使用独立线程监听串口指令,配合线程锁确保状态切换安全。每个循环函数定期检查状态变化,能立即响应切换指令。方案包含串口初始化、状态监听处理、循环函数切换等完整实现,具有线程安全、资源占用低、响应及时等特点,支持发送1-4数字切换状态或exit退出程序,适用于需要实时控制状态切换的嵌入式应用场景。

2025-08-03 17:00:38 172

原创 上位机知识篇---脚本文件

Linux终端自动运行命令的几种方法:1. 修改用户配置文件(.bashrc/.bash_profile)添加启动命令;2. 通过图形界面"启动应用程序"管理器设置;3. 创建.desktop文件实现自动运行;4. 使用systemd服务管理系统启动脚本;5. 编辑/etc/profile实现全局用户生效。同时介绍了.sh脚本的编写方法,包括创建文件、添加执行权限、编写内容(需包含#!/bin/bash开头)和运行脚本等基本步骤,适用于自动化重复操作和批量处理任务。

2025-08-03 16:52:19 402

原创 Python篇---环境变量&软件安装

本文通过生活场景类比,通俗易懂地解释了计算机环境变量和软件安装运行的原理。环境变量相当于系统的"通讯录",其中PATH变量记录程序路径,让系统能快速找到可执行文件。软件安装实质是将文件复制到指定目录并配置环境变量,"绿色软件"无需安装但需手动添加路径。运行时系统通过PATH查找可执行文件执行,不同系统的可执行文件类型各异。文章还介绍了环境变量的查看、临时和永久修改方法,以及常见问题的排查思路,帮助读者深入理解系统运行机制。

2025-08-03 16:26:28 477

原创 Python篇---路径

Python模块导入机制解析:搜索路径原理与实战指南 Python模块导入依赖sys.path列表,按优先级依次查找:当前目录→PYTHONPATH→标准库→site-packages。关键要点: 路径优先级:同名模块会被先搜索到的路径覆盖,需警惕与标准库重名 自定义路径:通过PYTHONPATH环境变量或sys.path.append()动态添加 包内导入:推荐绝对路径导入(from package.sub import module),慎用相对路径。

2025-08-03 16:05:03 886

原创 Python篇--- Python 的加载、缓存、覆盖机制

本文深入解析Python中import与if __name__ == "__main__":的关系及模块加载机制。关键点包括:1) 模块具有双重身份,__name__变量区分主程序("__main__")和被导入模块;2) import会执行模块顶层代码,但跳过if __name__块内代码;3) 模块加载遵循缓存检查-查找-执行-缓存的流程,防止重复加载;4) 命名冲突时后导入内容会覆盖先前的定义。理解这些机制有助于控制代码执行时机,避免导入时的意外行为。

2025-08-03 15:35:54 758

原创 Python篇---PyPI

这篇文章详细介绍了如何将Python包发布到PyPI官方仓库。主要内容包括:准备工作(安装setuptools、wheel和twine工具)、项目结构规范、setup.py配置文件编写、打包生成dist文件、注册PyPI账号、使用twine上传包、测试安装以及后续更新流程。文章特别强调版本号管理和包名唯一性的重要性,并推荐使用API令牌进行安全上传。通过这篇指南,开发者可以快速掌握将Python包发布到PyPI的全过程,实现全球共享。

2025-08-03 15:14:16 874

原创 Python篇---包

本文通俗介绍了Python包的制作方法。包是带有__init__.py文件的文件夹,可包含多个模块和子包。制作步骤包括:1)创建文件夹结构并按功能划分模块;2)编写__init__.py文件作为包说明书;3)编写各模块代码;4)测试导入使用。文章还分享了提升包易用性的技巧:用__all__控制导入、在__init__.py中预导入常用功能、添加版本说明、支持命令行调用等。制作好的包可以直接分享文件夹或发布到PyPI。包的本质是组织代码的工具,初学者可从简单功能开始练习打包。

2025-08-03 15:01:56 682

原创 Python篇---import的高级机制

Python模块导入机制提供了多种高级用法以应对复杂场景:1. 动态导入(importlib.import_module)支持运行时决定导入模块;2. 模块重载(importlib.reload)可在不重启程序时加载修改后的模块;3. init.py的__all__属性能控制from...import*的行为;4. 相对导入(.和..)简化包内模块间的引用;5. 延迟导入可解决循环依赖问题;6. 修改sys.path可扩展模块搜索路径。这些技巧使模块导入更灵活智能,适用于调试、动态加载等场景。

2025-08-03 14:54:25 946

原创 Python篇---import

Python的import语句用于加载模块或包中的对象,其底层逻辑包括模块查找、加载和缓存机制。执行import时,解释器会先检查sys.modules缓存,若未找到则按sys.path路径查找.py/.pyc文件或包目录。import支持多种语法:import module导入整个模块;from module import member导入特定成员;from package import module导入包内模块。还支持别名(as)和相对导入(./..)。注意事项包括避免循环导入、命名冲突,以及理解__i

2025-08-03 14:46:23 922

原创 深度学习篇---PaddleDetection模型选择

PaddleDetection目标检测模型选型指南:根据任务需求选择匹配模型,如实时场景选PP-YOLOE系列(工业级SOTA),移动端用PicoDet超轻量模型,高精度任务选Faster R-CNN。需平衡精度、速度和部署环境,通过量化/剪裁优化性能,典型应用包括工业质检、智慧交通等。关键是根据硬件条件(如边缘设备选PicoDet-S量化版)和任务复杂度(医疗影像用PP-YOLOE-X)进行合理选择,避免盲目追求大模型。

2025-07-29 18:08:50 1378

原创 深度学习篇---百度AI Studio模型

百度AIStudio提供覆盖NLP、CV、语音等多领域的AI模型库。NLP领域推荐ERNIE3.0处理复杂文本,ERNIE-Tiny适合移动端;CV领域PaddleDetection实现72.9FPS实时检测。选择模型时需平衡任务复杂度与计算资源,轻量级模型ERNIE-4.5-0.3B适合企业部署,大模型ERNIE-4.5-47B适合专业场景。通过FastDeploy等工具可优化部署效率,典型应用包括智能客服、工业质检等场景。建议根据具体需求测试不同模型,找到性能与成本的最佳平衡点。

2025-07-29 18:06:00 1285

原创 深度学习篇---层与层之间搭配

深度学习模型中的网络层搭配遵循系统性原则,关键点包括:1)基础"铁三角"结构(卷积层→批归一化→激活函数)实现高效特征提取;2)通过池化层实现降维和特征压缩;3)残差连接解决深层网络的梯度消失问题;4)分类任务采用"全局池化→全连接层→Softmax"作为标准输出结构;5)Dropout层用于防止过拟合。典型应用场景包括图像分类(ResNet)、目标检测(YOLO)和图像分割(U-Net)等,其核心逻辑是特征提取逐步深入、确保训练稳定性并控制模型复杂度。

2025-07-28 16:22:02 826

原创 深度学习篇---Batch Normalization

摘要:BatchNormalization(批量归一化)是深度学习中的关键技术,通过在每层网络输入前标准化数据分布(均值为0,方差为1)并引入可学习的缩放平移参数,有效解决"内部协变量偏移"问题。其核心优势包括加速训练(收敛速度提升2-3倍)、允许更大学习率、增强泛化能力和降低对初始化的敏感性。BN通常置于卷积/全连接层与激活函数之间,在训练时动态计算批次统计量,推理时使用移动平均值。该技术已成为CNN、全连接网络等主流模型的标配组件,显著提升模型训练稳定性和性能。

2025-07-28 16:16:11 575

原创 嵌入式硬件篇---驱动板

ESP32驱动板的设计核心在于放大3.3V弱电信号以控制大功率外设。设计需明确目标外设(如电机、继电器等),采用相应驱动元件(如TB6612、三极管等),并包含五个关键部分:ESP32接口、驱动电路、外设接口、电源模块和保护电路。制作流程包括原理图设计、PCB布局、打样、焊接和分步测试,重点要注意功率匹配、共地连接、续流二极管和保护措施。建议新手从简单外设入手,使用立创EDA设计,逐步掌握驱动板制作要点,实现弱电控制强电的目标。

2025-07-27 13:12:52 1232 1

原创 嵌入式硬件篇---ESP32稳压板

摘要:ESP32稳压板制作指南,核心在于为ESP32提供稳定3.3V电源并支持多种供电方式(锂电池/USB/外接电源)。设计包含5个关键部分:输入接口、保护电路(防反接/过流)、可选锂电池充电模块、稳压电路(推荐根据电流需求选择不同芯片)和输出接口。制作流程包括原理图设计、PCB布局、打样和焊接测试,特别强调保护电路的必要性和分步测试的重要性。新手需注意稳压芯片选型、电容配置和焊接质量,推荐使用立创EDA进行设计,通过分步测试确保电源稳定性和保护功能正常。

2025-07-27 13:04:21 746

原创 嵌入式硬件篇---ESP32拓展板

本文详细介绍了ESP32拓展板的制作流程,分为7个关键步骤:1)明确功能需求;2)规划核心模块(接口、电源、功能);3)准备工具和资料;4)电路设计(原理图和PCB布局);5)PCB打样;6)元器件焊接;7)分阶段测试。重点强调了电源稳定性、引脚兼容性设计、PCB布线规范等核心要素,并建议新手从单一功能入手,逐步完善。文中提供了具体元件选型建议、常见问题解决方案和测试方法,为DIY爱好者提供了系统化的制作指南。

2025-07-27 13:00:59 794

原创 程序代码篇---python向http界面发送数据

Python中通过HTTP接口发送数据的方法摘要:使用requests库可以轻松实现GET和POST请求。GET方式适合少量数据,将参数拼接在URL后(如requests.get(url, params=data));POST方式更安全,适合表单或JSON数据,分别用data参数(表单)和json参数(API接口)发送。需要模拟浏览器时可添加headers,保持登录状态需使用Session对象。关键点包括:确认URL、构造数据字典、选择请求方式、处理响应(状态码和返回内容)。

2025-07-27 12:53:07 893

原创 程序代码篇---python获取http界面上按钮或者数据输入

本文介绍了在Python中处理HTTP界面按钮点击和数据输入的两种方法:1) 作为客户端使用requests和BeautifulSoup模拟用户操作网页,自动提交表单数据;2) 作为服务端使用Flask框架搭建Web应用接收用户输入。客户端方法通过解析网页表单结构并构造POST请求模拟点击,服务端方法则通过表单的name属性获取用户提交的数据。两种方式都无需实际"点击"按钮,而是通过处理表单数据来实现交互效果。

2025-07-27 12:48:42 717

原创 程序代码篇---数据包解析

本文介绍了设备间通信中数据包解析的常见格式及实现方法。主要分为文本格式(CSV、JSON)和二进制格式(固定长度、TLV),分别适用于不同场景:CSV简单易读适合基础数据;JSON支持复杂结构;二进制格式效率更高,适合实时传输;TLV灵活可扩展。还介绍了加入帧头、校验位的自定义格式,提升嵌入式设备通信可靠性。提供了Python和ESP32(Arduino)的解析代码示例,建议根据实际需求在易读性和效率之间权衡选择数据格式。

2025-07-27 12:35:19 776

原创 上位机知识篇---云平台

本文简单介绍了目前主流的云平台以及各自的优劣势。

2025-07-27 12:26:28 536

原创 上位机知识篇---流式Web服务器模式的实现

流式Web服务器模式是一种持续传输数据的通信方式,区别于传统一次性传输。它通过保持连接开放,实现服务器边生成数据边发送,客户端边接收边处理,特别适用于实时性要求高或数据量大的场景。主要技术包括HTTP分块传输、SSE、WebSocket和HTTP/2流,广泛应用于直播、在线聊天、AI内容生成、实时监控和大文件传输等场景。这种模式显著改善了用户体验,减少了等待时间,使数据传输更加高效流畅。

2025-07-27 12:18:58 573

原创 上位机知识篇---Web

WEB(万维网)是通过浏览器访问的互联网网页世界,由网页、服务器和浏览器三部分组成。用户通过浏览器访问服务器上的网页文件,服务器处理后返回内容,浏览器解析显示。WEB分为静态网页(固定内容)和动态网页(可交互变化),广泛应用于信息查询、在线购物、社交互动、在线学习等领域。其优势包括无需安装、跨设备使用、自动更新和低使用门槛,是日常生活中不可或缺的互联网服务形式。

2025-07-27 12:15:42 887

原创 上位机知识篇---AJAX

AJAX是一种异步网页交互技术,允许在不刷新整个页面的情况下与服务器交换数据并更新部分内容。其核心特点是"异步"和"局部更新",用户操作后JavaScript会向服务器请求数据,服务器返回JSON等格式的数据,再由JavaScript更新指定区域。典型应用包括搜索提示、分页加载、表单验证、实时数据更新等。相比传统网页刷新,AJAX能提升用户体验、减少数据传输量并提高响应速度,是现代Web应用的基础技术。

2025-07-27 12:12:13 584

原创 上位机知识篇---Tailwind CSS

TailwindCSS是一个原子化CSS框架,通过提供最小单位的CSS类(如text-red-500、p-4)让开发者直接组合使用,无需单独编写CSS代码。其特点是类名直观(如font-bold代表粗体)、设计灵活(不限制样式)、响应式简单(sm:text-lg等前缀)且能自动精简代码。适合快速原型开发、定制化设计项目和团队协作,但不推荐给完全不懂CSS的新手或需要极致性能优化的场景。与传统CSS相比,Tailwind用类名组合替代样式声明,使开发更高效。

2025-07-27 12:09:15 787

原创 嵌入式硬件篇---ESP32驱动异常

ESP32驱动外设异常分析与解决 摘要:ESP32驱动外设时常见的异常问题可分为硬件、软件和环境三类。硬件问题包括供电不稳、接线错误和硬件损坏,需检查电压、接线和更换损坏部件。软件问题涉及驱动库兼容性、通信参数配置和资源冲突,应调整库版本、参数设置和初始化顺序。环境干扰主要来自电磁干扰和温湿度异常,需优化布线并控制环境条件。排查时建议使用串口调试、示波器检测和最小系统测试等方法,逐步定位问题。解决ESP32驱动异常需综合硬件检查、软件调试和环境优化等措施。

2025-07-27 12:04:56 923

原创 深度学习篇---优化器

PyTorch优化器指南:从基础到进阶选择 本文系统介绍了PyTorch中各类优化器的特点和应用场景。基础优化器部分涵盖SGD及其变种(Momentum、NAG),解释了其"沿梯度方向调整参数"的核心思想。自适应学习率优化器部分详细解析了AdaGrad、RMSprop和Adam系列的工作原理,特别强调了Adam在深度学习中的广泛应用。文章还介绍了AdamW、RAdam等进阶优化器,并提供了实用选择建议。

2025-07-27 12:00:04 964

原创 深度学习篇---损失函数

深度学习中的损失函数是模型优化的关键指标,针对不同任务需选择匹配的损失函数。回归任务常用MSE(对误差敏感)、MAE(抗异常值)和Huber损失(平衡两者);分类任务中,二分类使用交叉熵(BCE),多分类用CCE,类别不均衡时采用FocalLoss;特殊任务如相似度计算使用三元组损失,生成任务则用KL散度衡量分布差异。正确选择损失函数是模型优化的"指南针",直接影响训练效果和应用场景适配性。

2025-07-27 11:55:36 900

原创 嵌入式硬件篇---有线串口通信问题解决

本文系统介绍了有线串口通信(RS-232/RS-485/TTL-UART)接收问题的排查与解决方法。首先强调物理层检查的重要性,包括线路接触、抗干扰措施和传输距离控制;其次分析电气特性匹配要点,涉及电平转换、接地方式和驱动能力;然后详解串口参数同步与流控配置;最后提出硬件故障诊断、固件优化和数据传输策略改进方案。文章采用分层递进的思路,结合工具使用建议,为串口通信故障提供了一套完整的解决方案框架,核心在于确保物理连接可靠、参数同步和协议优化。

2025-07-26 19:37:58 940

原创 嵌入式硬件篇---有线串口通信问题

有线串口通信(UART/RS-232/RS-485)接收异常的主要原因包括:物理层问题(线路接触不良、线缆选型不当、布线干扰);电气特性不匹配(电平标准冲突、驱动能力不足、接地问题);参数配置错误(波特率、数据位等不一致);硬件故障(UART损坏、缓存不足);以及传输逻辑缺陷(无流量控制、协议设计不合理)。排查时应遵循"物理层→电气层→协议层"的顺序,通过更换线缆、测量信号、核对参数等方法逐步定位问题。

2025-07-26 19:34:27 1070

原创 嵌入式硬件篇---zigbee无线串口通信问题解决方法

ZigBee无线串口通信异常解决方案:1.射频层优化:通过信道扫描选择低干扰信道,采用跳频技术增强抗干扰能力,适当提升发射功率并优化天线配置;2.网络机制调整:控制节点数量与数据发送频率,优化路由策略,确保多路径冗余;3.串口配置统一:严格匹配波特率等参数,合理启用硬件/软件流控;4.硬件固件升级:更换高性能天线模块,确保稳定供电,更新固件修复已知缺陷。建议按"基础参数检查→信号测试→网络诊断→硬件排查"的顺序逐步定位问题,结合环境特点针对性优化。

2025-07-26 19:31:00 874

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除