自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式linux基础:进程

本文介绍了Linux进程的基本概念、特点及管理方法。进程是运行中的程序实例,拥有独立资源,具有动态性、独立性、并发性和异步性等特点。文章对比了程序与进程的区别,阐述了父子进程关系,并详细讲解了进程创建(fork)、终止(exit)和监控(waitpid)等核心函数。通过示例代码演示了如何创建子进程、执行新程序(exec系列函数),并实现了一个保活进程监控方案,能够自动重启异常终止的子进程。最后介绍了进程状态查看(ps、pstree)和终止(kill)等实用命令,为Linux进程管理提供了实用指导。

2026-03-28 13:45:55 283

原创 linux基础:进程间通信

Linux进程通信方式及应用场景摘要 Linux系统提供了多种进程间通信(IPC)机制,主要包括: 管道(匿名/命名):适用于父子进程或任意进程间的单向数据流,效率一般但实现简单 共享内存:效率最高的方式,适用于大数据量交换,但需配合信号量等同步机制 消息队列:支持结构化数据传输,可设置优先级 信号:主要用于异步事件通知 信号量:用于进程同步控制 典型应用场景: 模块化开发:不同模块通过IPC交互,实现独立开发与调试 高性能计算:共享内存适合实时数据处理等高频场景 大数据传输:共享内存和消息队列适合大文件传

2026-03-28 13:16:17 354

原创 【无标题】

打包 tar -cvf 打包文件名(.zip .7z .tar) 路径。从电脑传输文件到设备:adb push <local> <remote>从设备传输文件到电脑:adb pull <remote> <local>mv *.png 目标目录 //移动所有png文件。mv 旧文件名 新文件名 //重命名。cp -r 复制的目录 路径。cd -回到home目录。mv 目录 目的目录。df 查看系统磁盘空间。cp 复制的文件 路径。pwd 显示当前目录。mv 移动文件/目录。

2026-03-25 13:50:16 7

原创 ROS 开发者必看:一个覆盖 TF / Nav2 / QoS / 多机器人 的开源 Skill

我开源了一个面向 ROS 1 / ROS 2 机器人开发、迁移与联调 的工程化 Skill:ros-robotics-skill。它不是泛泛的提示词包,而是围绕工作区识别、TF 排障、Nav2 联调、ros2_control、QoS、多机器人、micro-ROS 协同等真实工程场景设计的 AI 工作流。项目支持 Codex、Claude Code、Gemini CLI,提供专题文档、检查脚本、真实案例和最小可运行工作区,目标是让 AI 在 ROS 项目里“先按工程逻辑排查,再决定是否改代码”。

2026-03-14 11:17:45 426

原创 自主导航(ROS入门)

摘要:ROS Navigation Stack为移动机器人提供了一套完整的导航解决方案,包含路径规划、定位、地图服务和异常恢复等功能。核心节点move_base通过全局规划器(如A*/Dijkstra)、局部规划器(如DWA)和恢复行为插件实现自主导航,需要持续接收传感器数据、地图和TF变换信息,输出速度控制指令。该框架支持多种算法插件,开发者可根据需求灵活配置,显著降低了移动机器人导航系统的开发难度。

2026-03-13 21:19:24 575

原创 SLAM算法(ROS入门)

摘要:SLAM(同步定位与建图)技术使机器人能在未知环境中自主构建地图并定位自身位置。ROS中的地图以灰度图像形式表示,黑色为障碍物,白色为可行区域,通过锁存方式发布以节省资源。Gmapping是基于激光雷达和里程计的经典2D SLAM算法,采用粒子滤波方法,输入包括激光数据和里程计信息,输出地图和定位结果。里程计的累计误差通过地图坐标系修正,而非直接修改里程计数据。该技术为机器人导航提供了核心支持。

2026-03-12 23:31:07 257

原创 ROS相关知识(rostopic工具/topic/msg)

ROS话题调试工具rostopic详解 rostopic是ROS系统中用于管理和调试话题(Topic)的核心命令行工具。它允许用户查看、操作和验证ROS网络中的所有话题通信。主要功能包括:列出活跃话题(rostopic list)、实时监听话题内容(rostopic echo)、查询消息类型(rostopic type)、手动发布测试消息(rostopic pub)以及统计发布频率(rostopic hz)。该工具通过ROS Master获取话题元数据,并直接连接发布者/订阅者进行通信。使用前需确保rosc

2026-03-10 17:35:24 349

原创 参数服务器,动作与launch文件(ROS入门)

-----利用动作库进行请求响应,动作的内容格式应包含三个部分,目标、反馈、结果。目标:机器人执行一个动作,应该有明确的移动目标信息,包括一些参数的设定,方向、角度、速度等等。从而使机器人完成动作任务。反馈:在动作进行的过程中,应该有实时的状态信息反馈给服务器的实施者,告诉实施者动作完成的状态,可以使实施者作出准确的判断去修正命令。结果:当运动完成时,动作服务器把本次运动的结果数据发送给客户端,使客户端得到本次动作的全部信息,例如可能包含机器人的运动时长,最终姿势等等。

2026-03-06 22:01:53 474

原创 从gcc到catkin编译系统

摘要 本文系统介绍了从基础编译工具到ROS专用构建系统的演进过程。重点分析了gcc/g++编译器的工作原理和C/C++代码编译的四个阶段(预处理、编译、汇编、链接),对比了编译执行与解释执行的特点。详细阐述了编译系统从手动编译(g++)到自动化构建(Makefile),再到跨平台构建(CMake),最终发展为ROS专用构建系统(Catkin)的技术演进路线,解释了每个阶段解决的核心问题和适用场景。特别强调了Catkin在ROS分布式系统中的多包依赖管理、消息生成等独特功能。通过show.cpp示例代码,演示

2026-03-06 21:15:18 366

原创 服务通讯机制(ROS入门学习)

ROS服务通信机制是一种同步、双向的请求-应答式通信方式,适用于临时性数据请求场景。它采用多对一模型,客户端发送请求后会阻塞等待服务端响应,避免了topic通信的资源浪费问题。服务通过.srv文件定义请求和应答数据结构,使用rosservice工具可进行服务查询和调用。相比topic通信,service机制更适合偶尔使用的功能或具体任务,如传感器开关控制等。实现时需配置CMakeList.txt和package.xml文件,并通过Python或C++编写服务端和客户端代码。

2026-03-03 22:41:27 499

原创 话题通讯机制(ROS入门学习)

ROS开发环境搭建与Topic通信机制 本文介绍了ROS开发环境搭建和Topic通信机制的核心内容。开发环境部分详细讲解了VSCode旧版本安装、ROS工作空间创建、JSON配置文件设置等步骤。重点阐述了Topic通信的理论模型和工作流程:Publisher和Subscriber通过ROS Master注册和匹配后建立直接连接,实现异步、单向的点对点通信。文中还说明了Message作为通信数据格式标准的重要性,并提供了相关资源查询方法。整个流程体现了ROS分布式架构下节点间高效的数据交互方式。

2026-03-02 21:32:31 601

原创 深度学习速成:完整的模型验证(测试,demo)套路

摘要:该代码展示了如何使用预训练模型进行图像分类。首先加载并预处理RGB图像(调整为32x32大小并转换为张量),然后将模型和数据移至GPU设备。通过加载保存的模型参数(tudui_params.pth),在评估模式下对图像进行预测。关键步骤包括为输入图像添加batch维度(1x3x32x32),最终输出分类结果(0-9之间的数字)。代码实现了从图像输入到分类输出的完整流程,适用于已训练模型的推理应用。

2026-02-05 16:59:10 242

原创 深度学习速成:利用GPU训练

本文介绍了使用GPU加速的深度学习模型训练过程。代码基于PyTorch框架,对CIFAR10数据集进行分类任务。主要内容包括:1)数据准备与加载;2)模型创建并迁移至GPU;3)定义损失函数和优化器;4)训练流程实现,包括前向传播、反向传播和参数更新;5)测试评估,计算损失和准确率;6)使用TensorBoard记录训练过程。整个训练过程共10个epoch,每100次训练记录一次时间消耗和损失值,最终保存训练好的模型参数。代码实现了完整的GPU加速训练流程,适合作为深度学习入门实践的参考。

2026-02-05 15:55:13 141

原创 深度学习速成:完整模型训练套路(CIFAR10数据集)

本文实现了一个基于PyTorch的卷积神经网络(Tudui)用于CIFAR-10图像分类任务。模型包含3个卷积层、ReLU激活函数和最大池化层,最后连接全连接层输出10类分类结果。训练过程采用交叉熵损失函数和SGD优化器,通过10个epoch的训练,每100次训练记录一次损失,并使用TensorBoard可视化训练和测试损失。最终保存模型参数,并在测试集上评估模型性能,计算整体损失和分类准确率。整个流程涵盖了数据加载、模型定义、训练循环、性能评估和模型保存等深度学习完整流程。

2026-02-05 15:37:57 106

原创 深度学习速成:模型的使用与修改,保存与读取

VGG16为例修改完的输出。

2026-02-04 20:03:50 216 1

原创 深度学习速成:损失函数与反向传播

本文介绍了深度学习中常用的损失函数和优化方法。主要讨论了三种损失函数:L1损失(计算预测值与目标值的绝对误差均值)、MSE损失(均方误差)和交叉熵损失(适用于分类问题),并给出了PyTorch实现示例。其次阐述了反向传播原理,说明其通过链式法则计算梯度来优化网络参数。最后介绍了优化器(如SGD)的使用流程:梯度清零→反向传播→参数更新。这些方法共同构成了深度学习模型训练的核心技术框架。

2026-02-04 17:35:01 338

原创 ESP32-S3入门教程:#include无法找到的解决方案

本文介绍了在VSCode中配置ESP32项目C/C++插件的解决方案。主要问题在于IntelliSense插件默认使用MinGW路径而非Xtensa交叉编译工具链,导致找不到ESP-IDF头文件。提供两种配置方法:1)通过图形界面设置编译器路径和编译命令;2)直接编辑JSON配置文件。核心原理是利用ESP-IDF编译生成的compile_commands.json文件自动获取所有头文件路径和编译选项。文章还包含验证配置、创建项目模板和常见问题解答,帮助开发者实现"一次配置,永久有效"的目

2026-02-03 20:40:49 1260

原创 ESP32-S3入门教程:配置芯片

本文介绍了ESP32-S3-WROOM-1-N16R8芯片的配置流程。首先明确芯片型号定位,然后从四个维度进行配置:封装外flash设置、封装内PSRAM配置、主频调整以及freertos系统配置。文章最后于2026年2月3日完成,为开发者提供了该型号芯片的完整配置指南。

2026-02-03 20:27:15 265

原创 香橙派和STM32的GND的理解

昇腾芯片运行在 GHz 频率,它的信号回流非常“挑剔”。如果你接的“随便个地”(比如金属外壳或不相连的屏蔽罩)到芯片主地的电阻太大,或者存在感抗,1.8V 这种极其微弱的信号就会淹没在噪声里。很多板子的金属外壳(如果你接的是外壳)和电路板内部的信号地(Digital GND)是通过电容耦合或者压敏电阻连接的,它们在直流电上可能是不通的,或者是高阻态。如果你的 OLED 屏幕的地和板子处理器参考的地之间存在。(哪怕只有 0.5V),对于 1.8V 逻辑来说,它就分不清什么是“0”什么是“1”了。

2026-01-04 11:37:06 207

原创 Linux SPI/I2C 学习笔记

本文总结了在Linux系统下使用SPI和I2C接口的学习笔记,基于Orange Pi AI Pro开发板实现。内容涵盖: 基础对比:比较Linux与STM32在SPI/I2C实现上的差异,包括初始化方式、数据传输等 I2C实现: C语言示例:设备扫描、寄存器读写 Python实现:使用smbus2库简化操作 SPI基础:介绍Linux SPI设备文件操作,包括模式配置和速度设置 开发要点:强调权限管理、错误处理和性能优化等注意事项 项目提供完整的C和Python示例代码,适合从STM32转向Linux开发的

2026-01-03 18:07:05 600

原创 GitHub项目编辑完整指南

GitHub项目编辑指南提供了两种修改方式:本地编辑(推荐)和网页编辑。本地编辑适合批量操作,需安装Git工具,支持离线工作;网页编辑适合快速修改单个文件,无需安装工具。指南详细介绍了本地编辑的完整流程(编辑→查看→提交→推送),以及文件修改、添加、删除、重命名等具体操作命令和示例。网页编辑部分则讲解了通过GitHub界面直接编辑文件的简单步骤。无论选择哪种方式,都能有效管理GitHub项目文件。

2025-12-05 11:16:21 1043

原创 STM32温湿度采集监测系统 - 从PCB到代码完整实现

本文介绍了一个基于STM32F103C8T6的温湿度采集监测系统,从硬件设计到软件实现的完整开发过程。系统通过DHT11传感器采集环境温湿度数据,采用4位数码管动态显示,支持阈值设置和蜂鸣器报警功能。文章详细阐述了PCB设计、焊接调试中的常见问题及解决方案,并重点讲解了DHT11驱动、按键识别和数码管扫描等核心模块的实现方法。该项目为嵌入式系统开发提供了完整的参考案例,涵盖了硬件设计、驱动开发和系统调试等关键环节,具有较高的实用价值和学习参考意义。

2025-12-05 11:10:41 921

原创 嵌入式状态机设计完全指南

📝 嵌入式状态机设计摘要 状态机(State Machine)是嵌入式开发中处理复杂流程的核心设计模式,将系统分解为明确的状态+转换条件,使代码更清晰、易维护。 🔹 核心概念 状态:系统当前工作模式(如空闲、验证中) 转换:状态间的切换(如验证成功→成功状态) 条件:触发转换的事件(如超时、按键按下) 🔹 5步设计法 拆解流程:列出所有阶段(如指纹识别的等待、验证、锁定) 绘制状态图:用箭头标注转换逻辑 定义枚举:将状态转为代码(如FP_STATE_IDLE) 框架搭建:用switch-case实现状

2025-10-23 20:28:01 1356

原创 STM32 笔记:从“程序卡死”到揪出 HardFault 真凶

在STM32开发中,程序卡死并进入HardFault_Handler是常见问题。本文通过一个AS608指纹模块驱动案例,分析了HardFault的根本原因。当定义320字节的大数组作为局部变量时,会导致堆栈溢出,触发HardFault。通过添加static关键字或将数组改为全局变量可临时解决,但最佳方案是增大startup文件中的Stack_Size值。遇到HardFault时应重点检查堆栈溢出、空指针、外设时钟和数组越界四个方向。

2025-10-21 20:46:20 841

原创 利用嘉立创EDA制作简易校园卡NFC

嘉立创EDA可用于设计NFC校园卡,需选择合适的NFC芯片(如NTAG213系列)并设计匹配的天线。天线应保持13.56MHz谐振频率,采用4-6圈0.3-0.5mm线宽的对称布局,芯片置于中心位置。制作时需注意PCB布局,避免干扰,并建议使用四层板增强稳定性。完成后需测试响应距离,常见问题包括频率偏移、读取距离短等,可通过调整天线或检查供电解决。

2025-09-29 13:01:35 584

原创 K230视觉开发入门:从像素到自适应色彩追踪

摘要:本文介绍了K230视觉开发的基础知识,从计算机图像的基本概念开始,讲解了像素、RGB色彩空间等核心理论,并通过Python代码演示了图像的矩阵本质。接着详细讲解了Python面向对象编程中的类、实例化、继承等概念,为后续K230硬件操作打下基础。文章还介绍了K230开发中的异常处理机制和稳健代码结构,并讲解了图像处理中的ROI区域和色彩空间转换等核心概念。最后通过一个实战项目,演示如何获取ROI区域的主导颜色,展示了K230视觉开发的实际应用。

2025-09-03 21:56:31 976

原创 【问题解决】VS Code + CMake + STM32:`printf` 无法输出浮点数的终极解决方案

摘要:在STM32开发中,使用VS Code+CMake+ARM-GCC时,printf无法输出浮点数。这是由于默认链接的newlib-nano库精简了浮点支持。提供两种解决方案:1)在项目CMakeLists.txt中添加target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-u _printf_float");2)修改工具链文件,在CMAKE_EXE_LINKER_FLAGS中加入-Wl,-u,_printf_float实现全局生效。同

2025-09-02 18:55:27 1770 3

原创 C语言过渡python(基础语法篇)

这篇笔记旨在帮助有C语言背景的开发者顺利过渡到Python。文章首先对比了两种语言的核心设计思想,强调了Python从“面向机器”到“面向开发者”的转变,涵盖了编译型与解释型、静态与动态类型、以及手动与自动内存管理的差异。接着,笔记详细梳理了基础语法的不同点,包括变量声明、以缩进代替大括号的代码块、以及更具可读性的操作符。文中还通过并排的代码示例,直观展示了for循环、函数定义、多返回值等方面的区别,并重点介绍了Python强大的内置数据结构,如列表、元组、字典和集合。

2025-09-01 20:58:18 814

原创 PID 控制算法学习笔记(电机驱动应用)

PID控制算法学习摘要 PID控制是工业中广泛应用的闭环反馈控制算法,通过比例(P)、积分(I)、微分(D)三个环节协同工作,实现精确控制。P项响应当前误差,I项消除静态误差,D项预测变化趋势。离散化实现有位置式(输出绝对值)和增量式(输出变化量)两种形式,后者能避免积分饱和问题。参数整定(Kp/Ki/Kd)直接影响系统性能:增大Kp加快响应但可能振荡,增大Ki消除静差但可能超调,增大Kd抑制振荡但对噪声敏感。PID适用于电机驱动等需要高精度控制的场景,通过合理参数调节可实现稳定、快速、准确的系统响应。

2025-08-31 13:11:27 1896

原创 GitHub宕机自救全攻略

注:可根据实际需求调整章节顺序或补充具体技术细节(如企业级灾备方案)。

2025-08-31 12:39:11 375

空空如也

空空如也

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

TA关注的人

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