
程序代码篇
文章平均质量分 90
Ronin-Lotus
这个作者很懒,什么都没留下…
展开
-
程序代码篇---Pytorch实现LATM+APF轨迹预测
本文探讨了如何结合LSTM(长短期记忆网络)和APF(人工势场法)来提升无人驾驶系统的轨迹预测与路径规划能力。LSTM通过其门控机制捕获车辆历史运动的时序特征,精准预测未来轨迹;APF则基于实时环境信息生成无碰撞路径,通过目标引力和障碍物斥力动态调整路径。两者的深度融合能够整合历史数据与当前环境,生成平滑、安全的行驶轨迹,有效应对复杂道路场景(如雨雾天气、交通拥堵等)。文章还提供了基于PyTorch的LSTM模型实现和APF算法,展示了如何通过多模态融合优化无人驾驶决策。原创 2025-05-23 00:13:41 · 767 阅读 · 0 评论 -
程序代码篇---Python处理ESP32-S3-cam的视频流进行人脸检测和姿态检测
本文介绍了基于 ESP32-S3-CAM 的人脸姿态检测系统,并提供了相关代码示例。系统通过摄像头捕获图像,并利用人脸关键点数据进行姿态估计。代码中定义了 FaceDetectionStream 类,用于从 ESP32-S3-CAM 获取图像和人脸数据,并通过多线程实现并行处理。PoseEstimator 类则利用 3D 人脸模型和 2D 关键点进行姿态估计,计算欧拉角。此外,WarningSystem 类用于在检测到异常姿态时触发警告,支持自定义警告音或系统蜂鸣。原创 2025-05-22 00:42:14 · 961 阅读 · 0 评论 -
程序代码篇---Python处理ESP32-S3-cam视频流
本文介绍了如何使用Python获取并显示ESP32-S2-Cam生成的HTTP视频流,并提供了优化显示性能的方法。基本代码使用OpenCV库捕获和显示视频流,用户需替换实际的视频流URL。优化后的代码通过多线程处理、帧大小调整、自动重连机制和资源释放优化,提升了视频流的显示性能和稳定性。此外,建议通过调整ESP32-S2-Cam的分辨率、帧率,优化网络连接,以及使用硬件加速等方式进一步提升性能。原创 2025-05-22 00:08:53 · 1483 阅读 · 0 评论 -
深度学习篇---LSTM&ADF轨迹预测
本文介绍了两种轨迹预测方法:LSTM(长短期记忆网络)和APF(人工势场法)。LSTM通过门控机制处理时间序列数据,能够捕捉长期依赖关系,广泛应用于行人和自动驾驶车辆的轨迹预测,但其计算复杂度高且对数据要求严格。APF则通过虚拟力场建模环境,实时性强且计算量小,适用于船舶和无人驾驶车辆的避障规划,但容易陷入局部极小值且对参数敏感。两种方法各有优缺点,适用于不同的应用场景。原创 2025-05-21 00:17:34 · 779 阅读 · 0 评论 -
嵌入式硬件篇---无线通信模块
本文详细对比了四种常见的无线通信模块(蓝牙HC-05、WiFi ESP8266、2.4G射频NRF24L01、LoRa SX1278)的特性、优缺点及适用场景,并提供了基于STM32F103RCT6的实例代码。蓝牙模块适合手机外设和短距离控制,WiFi模块适合物联网和互联网接入,2.4G射频模块适合低延迟通信,LoRa模块则适用于超远距离和低功耗场景。文章还给出了调试技巧和选型建议,帮助开发者根据实际需求选择合适的无线方案。原创 2025-05-11 10:24:56 · 1393 阅读 · 1 评论 -
嵌入式硬件篇---UART
UART(Universal Asynchronous Receiver/Transmitter)是一种异步串行通信协议,广泛应用于嵌入式设备与传感器、蓝牙模块、GPS等外设的通信。文章详细解析了UART协议的物理层特性、数据帧格式及波特率计算,并提供了在STM32F103RCT6上的完整代码实现。通过CubeMX配置和HAL库代码,展示了UART的初始化、数据发送与接收(包括阻塞模式、中断模式和DMA传输),以及自定义协议设计的方法。原创 2025-05-11 10:08:09 · 913 阅读 · 0 评论 -
嵌入式硬件篇---CAN
本文详细介绍了CAN协议的基础知识及其在STM32F103RCT6微控制器上的实现。CAN(Controller Area Network)是一种高可靠性、多主机的串行通信协议,广泛应用于汽车电子和工业控制等领域。文章首先阐述了CAN协议的物理层特性、帧类型及数据帧格式,接着详细讲解了STM32F103RCT6的CAN硬件配置,包括引脚连接和CubeMX配置。原创 2025-05-11 09:38:02 · 2309 阅读 · 0 评论 -
嵌入式硬件篇---SPI
SPI(Serial Peripheral Interface)是一种高速、全双工的同步串行通信协议,常用于微控制器与外设(如Flash、传感器、显示屏)的连接。SPI协议通过四线制(SCK、MOSI、MISO、NSS)或三线制(半双工模式)进行通信,支持主从模式和多种时钟模式(由CPOL和CPHA决定)。典型的SPI通信流程包括主机拉低NSS、产生SCK时钟并通过MOSI发送数据,同时从机通过MISO返回数据,通信结束后拉高NSS。原创 2025-05-11 09:14:53 · 924 阅读 · 0 评论 -
嵌入式硬件篇---IIC
I²C(Inter-Integrated Circuit)是一种同步、半双工的串行通信协议,广泛用于连接微控制器与传感器、EEPROM等低速外设。本文详细介绍了I²C协议的物理层特性、通信流程及典型通信序列,并提供了在STM32F103RCT6上的硬件配置和HAL库代码实现。文章还探讨了软件模拟I²C的方法,通过GPIO模拟时序实现通信。此外,总结了I²C通信中常见的问题及调试技巧,如从机地址错误、上拉电阻未接、时序问题等,并提供了使用逻辑分析仪抓取波形的建议。原创 2025-05-11 08:56:23 · 1268 阅读 · 0 评论 -
嵌入式硬件篇---陀螺仪|PID
本文详细介绍了如何在STM32F103RCT6微控制器上使用MPU6050陀螺仪结合PID算法实现麦克纳姆轮小车的车身稳定控制。硬件部分包括主控芯片、陀螺仪模块、电机驱动和电源等组件的连接与配置。软件实现步骤涵盖了MPU6050的初始化与数据读取、姿态解算(互补滤波)、PID控制器设计以及麦克纳姆轮的协同控制。此外,文章还提供了关键优化与调试技巧,如传感器校准、PID参数整定和动态稳定性增强。扩展功能部分讨论了遥控控制叠加和多传感器融合的实现。原创 2025-05-11 08:34:56 · 1680 阅读 · 0 评论 -
嵌入式硬件篇---TOF|PID
本文详细介绍了如何在STM32F103RCT6微控制器上使用ToF(飞行时间)模块(如VL53L0X、TFmini)结合PID算法实现高精度的距离控制,适用于自动跟随、避障及工业定位等场景。文章首先列出了所需的硬件组件,包括主控芯片、ToF模块、电机、舵机及相关驱动电路,并提供了硬件连接示意图。接着,详细说明了ToF模块的初始化与数据读取方法,分别针对VL53L0X和TFmini给出了代码示例。随后,介绍了PID算法的实现,包括结构体定义、计算函数及抗积分饱和处理。原创 2025-05-11 07:58:57 · 1204 阅读 · 0 评论 -
嵌入式硬件篇---超声波|PID
本文介绍了如何在STM32F103RCT6微控制器上使用超声波传感器(如HC-SR04)结合PID算法实现稳定距离控制。文章详细阐述了硬件准备、连接方式、超声波测距原理以及代码实现(基于HAL库),包括定时器初始化、距离计算和PID控制器的实现。此外,还介绍了如何通过PID输出来控制电机或舵机,并提供了主循环逻辑和PID参数整定技巧。文章最后指出了实际应用中可能遇到的问题(如超声波噪声、死区处理和动态目标)及其优化方法,为读者提供了完整的实现方案。原创 2025-05-11 07:45:46 · 1015 阅读 · 0 评论 -
嵌入式硬件篇---麦克纳姆轮(简单运动实现)
麦克纳姆轮是一种全向轮,通过轮毂周围呈45°排列的辊子实现多方向运动,使机器人能够在平面内进行前后移动、左右平移、斜向移动及原地旋转等复杂运动。通常采用四轮布局,分为X型和O型两种对称排列方式。通过控制四个轮子的转速和方向组合,可以实现不同的运动模式,如前进、后退、平移、旋转等。麦克纳姆轮的运动可通过速度矢量合成描述,每个轮子的速度分解为前进分量和横向分量。实际应用中需注意轮子同步、地面条件、控制算法和机械损耗等问题。麦克纳姆轮因其高机动性,广泛应用于仓储机器人、全向移动底盘等场景。原创 2025-05-10 23:06:51 · 1634 阅读 · 0 评论 -
图像处理篇--- HTTP|RTSP|MJPEG视频流格式
视频流技术是现代多媒体应用的核心,常见的传输方式包括MJPEG、RTSP和HTTP流。MJPEG是一种简单的视频压缩格式,通过HTTP传输独立的JPEG图像,具有低延迟和兼容性好的特点,但带宽效率低且不支持音频,适用于网络摄像头和嵌入式设备。RTSP是专为流媒体设计的协议,通常与RTP配合使用,支持低延迟和精确播放控制,但实现复杂且兼容性有限,适用于专业视频监控和视频会议。HTTP流基于HTTP协议,支持自适应码率和广泛兼容性,但延迟较高,常用于视频点播和直播服务。未来趋势包括WebRTC的崛起、低延迟HL原创 2025-05-10 22:46:28 · 1571 阅读 · 0 评论 -
图像处理篇---MJPEG视频流处理
MJPEG(Motion JPEG)是一种简单的视频流格式,由连续的JPEG图像组成,通常通过HTTP协议传输。Python处理MJPEG流的方法包括基础处理和高级处理。基础方法包括使用OpenCV直接读取和手动解析HTTP流,前者实现简单但兼容性有限,后者可完全控制流处理但实现复杂。高级方法包括异步IO处理(asyncio)和生成器管道处理,前者适合高性能应用,后者便于添加自定义处理逻辑。专业级方法则使用FFmpeg作为后端,适合复杂场景。这些方法各有优缺点,开发者可根据需求选择合适的方式处理MJPEG流原创 2025-05-10 22:05:48 · 1099 阅读 · 0 评论 -
程序代码篇---esp32视频流处理
本文介绍了如何使用Python读取和处理ESP32摄像头的视频流。ESP32摄像头通常通过Wi-Fi提供视频流,支持HTTP、RTSP和MJPEG等协议。文章详细展示了如何使用OpenCV库读取HTTP和RTSP视频流,并通过requests库处理MJPEG流。此外,还提供了处理连接不稳定、提高视频流性能的解决方案,如降低分辨率、跳过帧等。对于高级用户,文章还介绍了使用FFmpeg和PyAV库作为后端的方法。通过这些方法,用户可以轻松获取并处理ESP32摄像头的实时视频流。原创 2025-05-10 21:40:41 · 1103 阅读 · 0 评论 -
程序代码篇---Python视频流
Python 提供了多种库(如 OpenCV、PyAV、imageio)来处理视频流,广泛应用于计算机视觉领域。OpenCV 是最常用的库,支持从摄像头或视频文件中捕获视频流,并提供了帧读取、属性设置、视频写入等基础功能。此外,OpenCV 还支持多摄像头处理、帧处理(如灰度转换、边缘检测)以及视频流分析与统计(如实时 FPS 计算)。PyAV 和 imageio 是其他常用的视频处理库,分别基于 FFmpeg 和 imageio 提供视频读取与写入功能。为了优化视频流处理,可以使用多线程技术或动态调整分辨原创 2025-05-10 21:23:37 · 686 阅读 · 0 评论 -
深度学习篇---MediaPipe 及其人体姿态估计模型详解
MediaPipe 是 Google 开发的开源跨平台框架,专为构建多模态(如视频、音频)的机器学习管道而设计,特别适用于实时应用。其核心特点包括跨平台支持(Android、iOS、Windows等)、实时性能优化、模块化设计以及多种预训练模型(如人脸检测、手势识别、人体姿态估计)。MediaPipe 提供了两种主要的人体姿态估计模型:MediaPipe Pose(BlazePose)和 MediaPipe Holistic。BlazePose 支持 33 个关键点检测,适用于移动设备,而 Holistic原创 2025-05-10 19:21:34 · 1317 阅读 · 0 评论 -
深度学习篇---姿态检测实现
坐姿检测可以通过**传统机器学习**或**深度学习**方法实现。下面我将详细介绍两种方法,并提供相应的Python实现代码。原创 2025-05-10 18:43:17 · 816 阅读 · 0 评论 -
图像处理篇---opencv实现坐姿检测
本文介绍了使用Python实现坐姿检测的方法,主要基于OpenCV和MediaPipe库。通过检测人体关键点(如肩膀、耳朵、臀部等),计算关键点之间的角度,并根据预设的阈值评估坐姿是否正确。代码实现了一个PostureDetector类,包含姿势检测、关键点获取、角度计算和坐姿评估等功能。通过分析脊柱和颈部的角度,系统能够判断用户是否保持良好坐姿,并记录姿势变化的时间。该方法适用于实时视频流或静态图像的坐姿检测,帮助用户改善坐姿习惯。原创 2025-05-10 18:21:59 · 1156 阅读 · 0 评论 -
嵌入式硬件篇---STM32 系列单片机型号命名规则
STMicroelectronics 的 STM32 系列单片机型号命名遵循一套系统化的规则,通过型号中的字母和数字可以快速识别芯片的关键参数(如性能、封装、存储容量等)。以下以 STM32F103C8T6 和 STM32F103RCT6 为例,详细解析其命名规则:一、STM32 型号命名规则STM32 的完整型号通常由以下部分组成:各字段含义如下:字段 说明STM32 系列名,表示基于 ARM Cortex-M 内核的 32 位微控制器。原创 2025-05-03 23:54:14 · 2564 阅读 · 0 评论 -
嵌入式硬件篇---STM32F103C8T6&STM32F103RCT6
STM32F103C8T6 和 STM32F103RC6 同属STM32F103 系列,基于ARM Cortex-M3 内核,但在资源、封装和外设上存在差异。// 对于 C8T6// 对于 RC6兼容性:基础功能代码(如 GPIO、USART)可无缝移植,但需注意外设和引脚差异。原创 2025-05-03 23:52:08 · 1984 阅读 · 0 评论 -
程序代码篇---ESP32云开发
本文简单介绍了实现 ESP32-S3 传感器数据上传至云平台 + 手机远程控制电机 的完整方案,涵盖推荐的云平台、手机端。一、推荐云平台及工具云平台选择阿里云 IoT 平台优势:国内稳定、支持大规模设备接入、提供完整设备管理及安全认证。协议:支持 MQTT、HTTP(S) 等协议,适合 ESP32-S3 通信。免费额度:新用户可免费使用基础功能。文档:阿里云 IoT 文档ThingsBoard(开源)优势:免费、可私有化部署、自带可视化仪表盘和手机端控制界面。原创 2025-05-01 14:03:53 · 626 阅读 · 0 评论 -
深度学习篇---模型权重变化与维度分析
通过增加网络深度和引入高级技术,模型可以解决更复杂的问题(如图像分类、自然语言处理)。理解权重的动态变化和维度传递,是设计高效神经网络的关键。本文简单介绍了神经网络模型权重变化与维度分析的相关知识。模型定义:Linear(1,1) 创建输入输出均为 1 维的全连接层,权重 (1,1),偏置 (1,)。维度匹配:权重维度确保矩阵乘法可行(如 (n,m) 与 (m,batch) 相乘)。问题 解决方案 代码示例。原创 2025-04-29 18:38:39 · 1779 阅读 · 0 评论 -
程序代码篇---ESP32 Camera Server
本文简单介绍了ESP32 Camera Server代码。这段代码实现了一个基于ESP32的摄像头服务器,支持视频流传输、图像捕获、人脸检测与识别等功能。1.摄像头初始化与配置2.HTTP服务器搭建3.实时视频流传输4.静态图像捕获5.人脸检测与识别6.摄像头参数控制7.LED闪光灯控制。原创 2025-04-27 14:13:01 · 1115 阅读 · 0 评论 -
上位机知识篇---微信小程序制作
本文简单介绍了微信小程序的制作.1.无需下载安装即用即走的应用(轻量级,内嵌于微信中)。2.跨平台(iOS/Android),基于微信生态开发。3.适合工具类、电商、服务预约等场景。创建复用组件:components/my-component,在页面中引入。原创 2025-04-27 14:01:24 · 783 阅读 · 0 评论 -
【KWDB 创作者计划】_深度学习篇---数据获取
在深度学习竞赛(如Kaggle、天池等)和研究项目中,获取大量高质量数据是成功的关键因素之一。以下是系统化的数据获取方法和资源大全。原创 2025-04-25 12:11:25 · 1127 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机知识篇---Python数据获取
本文简单介绍了通过程序自动从互联网上获取和提取数据的过程。Python因其丰富的库和简洁的语法,成为数据爬取的首选语言。数据爬取(Web Scraping)是指通过程序自动从互联网上获取和提取数据的过程。Python因其丰富的库和简洁的语法,成为数据爬取的首选语言。原创 2025-04-25 11:42:45 · 1189 阅读 · 0 评论 -
【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器&截断与溢出
本文简单介绍了寄存器和存储器的区别以及截断与溢出。在计算机中,截断(Truncation)和溢出(Overflow)都是由于数值存储空间有限而导致的数据精度或范围问题,但它们的产生原因和影响有所不同。位置:位于CPU内部,是CPU核心的一部分。寄存器是CPU的“工作台”,速度快但空间有限,直接支撑计算。存储器是“仓库”,容量大但速度慢,用于存储大量信息。现代计算机通过存储层次结构平衡速度与容量,寄存器是这一链条的顶端。当数据超出目标存储空间的位数限制时,直接丢弃高位或低位部分,导致。原创 2025-04-24 12:41:53 · 1135 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机知识篇---PlatformIO
本文简单介绍了PlatformIO的使用与开发流程,并以PlatformIO开发ESP32-S3为例进行示例介绍。原创 2025-04-23 21:52:53 · 907 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机知识篇---MicroPython
作为Python 3的精简优化实现,专为微控制器和嵌入式系统设计,在ESP32-S3等设备上展现了强大的开发优势。以下将从多个维度详细介绍其应用。原创 2025-04-23 21:37:57 · 1405 阅读 · 0 评论 -
【KWDB 创作者计划】_深度学习篇---向量指令集
向量指令集(如SIMD:Single Instruction, Multiple Data)通过并行化数据计算显著加速机器学习任务。其核心原理是利用硬件层面的并行性,在单个时钟周期内对多个数据执行相同操作。SIMD:单指令流多数据流。一个控制器控制多个处理器,同时对一组数据(数据向量)进行处理中的每一个分别执行相同的操作,实现空间上的并行的技术。原创 2025-04-23 21:08:14 · 1146 阅读 · 0 评论 -
【KWDB 创作者计划】_深度学习篇---归一化&反归一化
本文简单介绍了归一化和反归一化。归一化和反归一化是数据预处理中的关键技术,尤其在机器学习和数据挖掘领域广泛应用。通过合理应用归一化和反归一化,能显著提升模型性能并确保结果可解释性。实际应用中需根据数据分布和模型需求选择方法。归一化是将数据按比例缩放至特定范围(如[0, 1]或[-1, 1]),消除量纲差异,提升模型收敛速度和精度。将归一化后的数据还原至原始量纲,用于结果解释或反向计算。原创 2025-04-23 19:58:08 · 747 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机知识篇---ESP32-S3&Arduino
ESP32-S3是乐鑫(Espressif)推出的高性能Wi-Fi/蓝牙双模物联网芯片,相比经典ESP32增加了USB OTG、更强大的AI加速能力和更多GPIO。本指南将详细介绍如何利用Arduino IDE进行ESP32-S3开发,涵盖环境搭建、编程技巧和典型应用案例。ESP32-S3在Arduino环境下的开发流程与经典ESP32类似,但充分利用其新增特性(如USB OTG、AI加速选择正确的开发板配置合理管理双核和内存资源使用专用库发挥硬件性能建议从基础外设控制开始,逐步尝试高级功能。原创 2025-04-20 19:51:14 · 1049 阅读 · 0 评论 -
【KWDB 创作者计划】_程序代码篇---C语言程序内存布局
在C语言程序运行时,其内存布局通常分为四个主要区域:栈区(Stack)、堆区(Heap)、全局区(静态区,Static/Global)和代码区(Text Segment)。每个区域负责存储不同类型的数据,具有不同的生命周期和管理方式。栈区(Stack)作用:存储函数的局部变量、函数参数、返回值以及函数调用的上下文(如返回地址)。管理方式:由编译器自动分配和释放,遵循“后进先出”(LIFO)原则。特点:高效:分配和释放内存仅需移动栈指针。原创 2025-04-19 23:50:58 · 850 阅读 · 0 评论 -
【KWDB 创作者计划】_程序代码篇---Matlab实现S变换
本文简单简单介绍了Matlab实现S变换。原创 2025-04-18 23:58:47 · 335 阅读 · 0 评论 -
【KWDB 创作者计划】_算法篇---Stockwell变换
Stockwell变换(S变换)是一种强大的时频分析工具,它结合了短时傅里叶变换和小波变换的优点,特别适合分析非平稳信号。对于连续时间信号x(t),其S变换定义为:其中:τ:时间中心位置f:分析频率w(t,f) = (|f|/√(2π)) * e^(-t²f²/2) 是高斯窗函数Stockwell 变换是对短时傅里叶变换的改进,它将窗函数的宽度与频率成反比,使得在低频段具有较好的频率分辨率,在高频段具有较好的时间分辨率。原创 2025-04-18 20:34:56 · 769 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机操作篇---龙芯2k1000编译安装opencv
在龙芯2K1000(基于MIPS64架构)上安装OpenCV需要根据具体场景选择不同的方法。由于龙芯平台的生态与x86/ARM架构存在差异,以下提供几种详细的安装方案,涵盖本地编译、交叉编译和容器化部署。方法 适用场景 优点 缺点本地编译龙芯设备性能足够无需额外环境配置 编译时间较长交叉编译快速部署到多台设备利用x86主机性能加速编译 需要配置交叉工具链Docker 容器化隔离环境环境一致性高,易于分发需龙芯平台支持Docker根据实际需求选择合适的方法。对于初次尝试,推荐本地编译;对于批量部署,原创 2025-04-16 04:14:15 · 730 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机操作篇---Makefile
以下是关于 Makefile 的详细使用指南,本文涵盖基本语法、核心参数、常见用法及高级技巧,适用于 C/C++ 项目或其他编译型语言。CC = gcc # 定义编译器CFLAGS = -Wall -O2 # 定义编译选项TARGET = main # 定义目标名称SRCS = main.c utils.c # 定义源文件列表OBJS = $(SRCS:.c=.o) # 自动生成对象文件列表(将 .c 替换为 .o)功能 实现方法多文件编译。原创 2025-04-16 02:54:07 · 985 阅读 · 0 评论 -
【KWDB 创作者计划】_上位机操作篇---GCC命令
GCC(GNU Compiler Collection)和 G++(GNU C++ Compiler)是 Linux 环境下最常用的C/C++ 编译器。它们支持从预处理到链接的完整编译流程,并提供了丰富的命令行参数。以下从编译流程、核心参数解析到拓展知识进行详细说明。场景 常用命令快速编译 gcc main.c -o main生成调试信息启用所有警告 gcc -Wall -Werror main.c -o main。原创 2025-04-16 02:30:26 · 1175 阅读 · 0 评论