- 博客(73)
- 收藏
- 关注
原创 TurtleBot3 仿真导航实战:Nav2 从「建好地图」到「车自己走过去」
地图建好了,导航却怎么都点不动——本文记录 TurtleBot3 + Nav2 从启动、给初始位姿、发目标点到成功避障的全过程,重点讲清 2D Pose Estimate 与 Nav2 Goal 的区别、Distance remaining 一直是 0 的原因,以及 /clock 只有 8 Hz 背后的性能真相。
2026-11-04 18:06:36
335
原创 TurtleBot3 + Gazebo 仿真环境搭建与 Cartographer 建图
摘要:没有硬件也能做 SLAM。本文记录在 Windows + VMware 的 Ubuntu 22.04 里,用 ROS 2 Humble + Gazebo 11 搭起 TurtleBot3 仿真、跑通遥控与激光雷达、并用Cartographer 建出第一张地图的全过程,附 5 个真实踩坑与排查命令。
2026-11-04 17:18:19
283
原创 git命令流程
这一步只做一次,做完以后这个文件夹就跟普通文件夹不一样了——git 能追踪它里面每个文件改了啥。,只是告诉 git:"接下来我要保存的改动,先把这些都算上。"你可以把它理解成购物车——先把想买的东西加进去,还没结账。就是告诉 Git:"从现在起,把这个文件夹当成一个 git 仓库看管起来。是"首次推送时把本地 main 和远端 main 绑定",绑完以后第二次起你直接敲。是把你本地这个仓库和 GitHub 上那个空仓库"绑一根线"。整个过程想成"给你的项目做云备份 + 版本管理"就好懂了。
2026-09-15 17:22:52
74
原创 使用ADC串口实现RS485数据发送与项目优化
经上一次的ADC采集usb485的数据后,还需要对数据进行发送,实现完整的双端通信,并实现叫高灵敏度的数据采集。
2026-08-12 22:33:08
155
原创 使用 ADC 采样实现 RS485 数据接收与协议显示
本实验通过直接采集 USB 转 RS485 模块 A、B 接口的总线信号,利用单片机 ADC 完成电平采样,并在软件中实现 UART 起始位检测、数据位读取、停止位判断和协议组合。最终,单片机能够将解析出的协议数据通过 UART 输出到串口调试助手,并以与发送端一致的格式显示。该实验说明:在采样率和时序精度满足要求的前提下,ADC 不仅可以采集模拟量,也能够用于低速 RS485 通信信号的采集和软件解析。
2026-08-11 22:56:00
243
原创 Maix例程代码学习
初始化摄像头硬件,配置摄像头参数(分辨率,帧率,像素格式,曝光,白平衡等参数),读取摄像头实时画面(返回图像对象-image),底层驱动管理(自动适配不同的摄像头模组,不用手动配置寄存器)—— 无论是什么类型的分类模型(只要转成 .mud 格式),都能通过该类加载和推理,无需针对不同分类算法写不同代码,是框架 “通用性” 的体现。),也能调用其内置的 “基于人脸框的裁剪逻辑”(无需关键点,仅用框坐标即可裁剪),这是新手友好的 “功能复用” 设计。:计算指定文字在屏幕上显示时的 “像素尺寸(宽 × 高)”;
2026-03-23 20:19:59
519
原创 GStreamer
GStreamer是一个开源的多媒体框架,采用基于管道的架构,用于处理音频、视频、流媒体以及任何类型的媒体数据。它提供了一套丰富的插件和工具,支持从简单的音视频播放到复杂的流媒体处理、转码、滤镜、录制、实时通信等多种应用场景。特点。
2025-12-16 13:19:06
774
原创 buildroot编译内核(包括库)
补全主机依赖(patchelf);清理编译残留;禁用 RPATH 检查(应急)。按步骤操作后,就能顺利编译出适配 IMX6ULL 的 GStreamer,Qt 多媒体功能也会打通,之前的音频 / 摄像头问题仅需处理硬件接线即可。会直接影响 Buildroot 编译主机工具(如 gperf、pkgconf、ncurses)的正常流程,最终导致之前的 RPATH 错误反复出现,甚至引发更隐蔽的编译异常。
2025-12-16 10:58:56
767
原创 alsa软件移植
ALSA(Advanced Linux Sound Architecture)是中主流的,用于管理音频设备的驱动、接口和应用开发。它取代了早期的 OSS(Open Sound System),以更灵活、模块化的设计成为解决方案。
2025-12-15 11:54:42
1002
原创 项目图片功能制作
之前已经让桌面非常显示,并且可以移动这次来做照片开始的时候,进入图片,图片加载不出来,我以为是图片格式不对改变了图片格式,并改成了英文名一个脚本,执行完后,用file命令看图片是否符合符合,但是还是卡住了而且多加了图片的读写权限看这里,platforms是进去桌面,解析的程序,要把相应的库加进去(libqjpeg.so)加进去了但是一直在加载。
2025-12-09 21:08:10
270
原创 触摸屏系统完善
首先我查到了是没有关于qt触摸屏的库,在我们这里的根目录下的,添加并增加执行权限。同时拷贝evdev键盘插件(避免触摸时按键无响应)没反应的话,实时event1或者event0。
2025-12-09 18:27:13
210
原创 imx6ullMini开发板qt项目
vim ~/.bashrcexport PATH=/home/linux/Qt/5.15.0/gcc_64/bin:$PATHsource ~/.bashrclinux@linux-virtual-machine:~/imx6ull_iot/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin$ qmake -v QMake version 3.1 Using
2025-12-09 16:00:54
605
原创 tslib及QT移植
tslib是一款开源软件,用于解决移动设备触摸屏因电磁干扰导致的精度不足和抖动问题。它能对触摸屏驱动器采集的样本进行过滤、去抖动和校准等处理,常作为触摸屏驱动器适配层,为上层应用程序提供统一接口。在有电磁噪声干扰、触摸屏操作不精准的移动设备场景中,通过tslib的功能可提升触摸屏性能,让操作更准确、稳定。最新版本的tslib已经支持了多点电容触摸屏,可以通过tslib来直观的测试多点电容触摸屏驱动,这个要比观看eventX原始数据方便的多下载链接安装相关的依赖包配置编译make。
2025-12-08 18:47:02
1143
原创 嵌入式面试题
1、关键字const有什么含义?在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。
2025-12-08 17:53:54
257
原创 busybox制作根文件系统
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Linux系统的自带的shell。
2025-12-07 21:36:01
778
原创 U-boot引导Linux内核启动
显示u_boot支持的所有命令进入 uboot 的命令行模式以后输入"help"或者"?",然后按下回车即可查看当前uboot所支持的命令。
2025-12-07 20:49:34
759
原创 裸机文件烧写
镜像文件(Image File)是一种对物理存储介质(如光盘、硬盘分区、U 盘)的,它将源介质中的所有数据(包括操作系统、应用程序、引导信息、文件系统结构等)封装成一个单一文件,可用于精确还原源介质的内容和功能镜像向量表 (IVT) 是 ROM 从提供程序镜像的启动设备中读取的数据结构,该程序镜像包含执行成功启动所需的数据组件。镜像向量表(IVT)包含程序镜像入口点、指向设备配置数据(DCD)的指针以及引导过程中只读存储器(ROM)使用的其他指针。
2025-12-07 20:01:13
397
原创 系统启动流程
是计算机中,它存储在主板上的一块可擦写芯片(通常是 CMOS 芯片)中,是计算机通电后运行的第一个程序,相当于计算机硬件与操作系统之间的 “桥梁”。其主要功能是针对CPU、内存、主板芯片组、显卡及外围硬件设备做初始化动作。
2025-12-07 19:47:45
993
原创 卡尔曼滤波了解
4.6 观测矩阵 H,有时候会有多个变量,但是我们仅仅只想对一个变量进行过滤,就引出了观测矩阵的概念,会直接将用不到,观测不到的变量进行过滤。,核心作用是在存在噪声干扰的动态系统中,从含噪观测数据中估算出系统的真实状态(如位置、速度、温度等),广泛应用于导航、控制、信号处理等领域。4.2 控制输入矩阵 B,在状态转移矩阵基础之上,基于变量,形容在固定参数之中,还出现了变量(比如调整了参数),对下一刻的变化产生影响。如果测量值更可靠,则Kₖ更大,更相信测量值。如果预测值更可靠,则Kₖ更小,更相信预测值。
2025-12-06 11:34:18
417
原创 PID算法
(Proportional)比例,按 “偏差大小” 输出控制信号,偏差越大,控制力度越强eg:水温离 80℃越远(如当前 30℃),加热器功率开得越大;接近 80℃(如 75℃),功率逐渐减小。
2025-12-06 10:58:00
369
原创 K210环境搭建(VsCode)
这时我们打开vscode,点击文件,打开文件夹,选择SDK。这里创建完成后,进入build,进行cmake编译。我们明明按照要求做了,却死活不一样,像这样。在同一个文件夹下创建MinGW文件夹。接着打开build进行cmake。可以看到cmake已经成功了。后面是我编译器的下载路径。三、MinGW的下载。
2025-12-04 11:10:37
595
原创 嵌入式面试题整理30
3. 第三次握手:客户端收到 SYN+ACK 包,回复 ACK 包(ACK=1, seq=x+1, ack=y+1),4. 第四次挥手:客户端收到 FIN 包,回复 ACK 包(ACK=1, ack=v+1),进入 TIME_WAIT。// 调用构造函数// 分配数组。2. 第二次握手:服务器收到 SYN 包,回复 SYN+ACK 包(SYN=1, ACK=1, seq=y,2. 第二次挥手:服务器收到 FIN 包,回复 ACK 包(ACK=1, ack=u+1),表示已收到关闭。} // 使用函数指针。
2025-12-02 10:12:47
697
原创 Spieed micarray开发介绍
SK9822是一种驱动智能控制电路和发光 电路于一体的LED光源控制。产品包含信号解码模块、 数据缓冲器、内置恒流电路和RC振荡器;CMOS,低电压,低功耗 消耗;256级灰度PWM调节和32级亮度调节;采用双路 输出,数据与CLK信号同步,串联各晶圆输出动作 同步。顶级SMD内部集成高品质外部控制线串联级联恒流IC;5 v应用;默认开电灯;●控制电路与RGB芯片中的SMD 5050元器件,形成完全控制像素、混色的均匀性和一致性;●采用。●三路RGB输出控制,调节亮度;●。
2025-12-01 14:50:56
470
原创 最最详细的SPI协议
核心作用:规定 “通信未发生时,SCK 引脚的默认电平”。CPOL=0:空闲时 SCK 为低电平(最常用,对应 Mode 0/1);CPOL=1:空闲时 SCK 为高电平(对应 Mode 2/3)。核心作用:规定 “主从设备什么时候读取(采样)总线上的数据”,本质是选择 “第 1 个时钟边沿” 还是 “第 2 个时钟边沿” 采样。CPHA=0:在 SCK 的第一个边沿(由空闲电平跳变后的第一个沿)采样数据;CPHA=1:在 SCK 的第二个边沿(第一个跳变沿后的反向沿)采样数据。模式0。
2025-11-29 14:49:36
1639
原创 STM32F103C8T6---OLED显示屏
使用OLED四针脚I2C接口/*引脚配置,使用软件模拟I2C协议,时钟选择GPIOB8,数据线选择GPIOB9*/
2025-11-29 13:03:16
1090
原创 FreeRTOS项目---WiFi模块(2)
在这里,我们用Flash保存读取到的ssid和pwd,在第二次如果flash中有数据就直接从flash中拿去。其次,如果想更改ssid和pwd,着时候就需要一个复位键,用来重置账户和密码复位按键,我们选取一个GPIO管脚的OUTPUT模式,当按键按下去是,进行复位。
2025-11-28 19:39:45
2015
原创 FreeRTOS项目---WiFi模块(1)
首先简单介绍一下这个项目,这个项目是在上一个项目的基础上实现的基于WIFI的控制开门锁,传感器,电器设备等。而且在这个基础上还增加了MQTT协议的发布,订阅特性,在MQTT软件中,通过发送相应的命令,去控制不同的设备去进行不同的操作模块这里使用ESP8266(在我前面的几篇文章中介绍的很清楚,包括MQTT协议),与之前不同的地方在于使用相同的通信方式的不同形式来进行通信看看UART3,这里我们设置RX是外设到内存的映射,TX是内存到外设的映射,使用DMA方式,所以数据传输不经过CPU。
2025-11-28 18:31:55
401
原创 嘉立创打板流程体
当电路刚上电时,电容两端的初始电压是 0V(上电前电容无电荷)。此时电源电压突然加载到电容两端,电容会 “瞬间试图维持电压为 0V”,相当于一个 “0V 的导线” 接在电源和地之间—— 这就是 “上电瞬间电容等效短路” 的通俗说法。但这个 “短路” 是暂时的:随着电容通过电阻 R1 充电,电容两端电压会逐渐上升,最终接近 VCC,此时电容就相当于。在画原理图的时候,要注意,复位按键旁边要接一个电容,什么原理呢。最后在结算的时候使用优惠卷,就可以得到一片免费的漂亮的板子了。这个 “短路” 是上电瞬间的。
2025-11-28 17:28:07
655
原创 MQTT协议
MQTT提供了机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足用户在各种场景下对消息可靠性的要求。MQTT(Message Queuing Telemetry Transport)协议支持三种不同的QoS级别,用于控制消息的可靠性和传输保证。MQTT的三个QoS级别:QoS 0(至多一次),QoS 1(至少一次)和QoS 2(只有一次)
2025-11-25 21:53:05
1262
原创 ESP8266蓝牙模块
ESP8266EX 由乐鑫公司开发,提供了⼀套⾼度集成的 Wi-Fi SoC 解决⽅案,其低功耗、紧凑设计和⾼稳定性可以满⾜⽤户的需求。ESP8266EX 拥有完整的且⾃成体系的 Wi-Fi ⽹络功能,既能够独⽴应⽤,也可以作为从机搭载于其他主机 MCU 运⾏。当 ESP8266EX 独⽴应⽤时,能够直接从外接flash中启动。内置的⾼速缓冲存储器有利于提⾼系统性能,并且优化存储系统。
2025-11-25 21:28:48
1197
原创 FreeRTOS项目实战(3)
1、流程介绍首先,我实现协议数据包头固定部分的数据传输,由我用串口助手发送数据,再打印出来,就证明命令已经发送过去了接着,我定义了一个结构体,里面有包协议的部分,比如包头,包地址,包标识,包长度,在这里面还定义了一个柔性数组,用于存储包内容的数据接着对uart1进行初始化,调用HAL_UARTEx_ReceiveToIdle_IT函数,接收空闲中断的数据,当我们发送数据时,会自动调用回调函数,实现数据的接收,最终用串口助手打印出来。
2025-11-23 15:04:03
816
原创 FreeRTOS项目实战(2)
在我们自己建立的项目中,添加相应的文件简单介绍一下,两个问文件放的是函数的声明,结构体的定义,结构体名字的重定义(typedef)这里我直接放代码,具体的难点会在代码中和代码后进行讲解crc16.c 这个文件不用我们自己写,这是一个crc16校验的函数,我们可以在网上查到相关代码。
2025-11-23 13:55:32
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅