- 博客(11)
- 收藏
- 关注
原创 STM32与ROS通信:RT-Thread移植rosserial
RT-Thread与ROS通信实践:基于rosserial的串口通信实现 本文分享了使用RT-Thread的rosserial软件包实现STM32与ROS通信的完整过程。在ROS端需安装rosserial相关组件,RT-Thread端建议使用4.1.1版本,并详细说明了软件包配置要点。通过创建cpp文件实现了ROS话题的发布与订阅功能,包括发布"chatter"话题和接收"cmd_vel"速度指令。文中还提供了ROS端启动串口节点的具体命令,以及常见问题的解决方案,如
2025-06-01 15:29:10
1101
3
原创 ROS-slam_Gmapping建图
Gmapping通过激光雷达扫描环境并结合机器人的运动信息(里程计),实时生成环境的2D栅格地图(Occupancy Grid Map)。地图数据以格式发布,用于后续的路径规划和定位。Gmapping本身仅负责建图,导航功能需结合其他ROS包(如navigation包中的move_baseamcl等模块)实现。map_server)→ 3.(AMCL)→ 4.(控制器)。
2025-05-26 13:53:56
1113
2
原创 ROS与stm32进行串口通信
本文分享了使用ROS控制小车的两种通信方案:UDP协议和无线串口模块。作者首先尝试通过WiFi内网透传使用UDP协议,但因校园网限制和虚拟机网络问题,改用无线串口模块(LoRa)实现ROS与STM32的通信。详细介绍了两种方案的代码实现,包括ROS节点订阅/cmd_vel话题、数据格式转换、串口通信配置等。测试发现UDP传输流畅但受网络限制,而串口方案存在明显延迟。文章还记录了开发过程中遇到的问题(如串口初始化异常)及解决方法,为低成本ROS小车控制提供了实用参考。附完整代码和参考资料。
2025-05-24 19:57:21
912
3
原创 stm32-遇到的奇怪BUG串口接收数据异常
在使用STM32F407VET与GY-33模块进行串口通信时,遇到了接收数据乱码的问题。通过串口调试助手发现,无论发送什么数据,接收到的都是中文乱码或不相关的内容。尝试了中断和DMA方式,问题依旧。经过多次调试和更换配置,最终发现问题的根源在于时钟频率的不稳定。将高速时钟从外部晶振切换为内部时钟后,串口通信恢复正常,数据接收准确无误。这一经验表明,在串口通信中,时钟频率的稳定性对数据传输的准确性至关重要。
2025-05-17 09:00:00
429
原创 stm32--通过WiFi模块与web端透传
本文章想记录下自己通过web前端与stm32硬件端实现数据交互的历程,一开始想用阿里云进行数据中转,弄好之后,因为是在学习阶段,所以使用时间比较长,但阿里云只有30天的试用时间,所以就想找找有什么方法可以前端与硬件直接透传的方法,经过不断的摸索,通过weisocket实现这一个方案.:当从服务器接收到消息时,解析JSON格式的数据,并根据其类型(如加工、运输、材料需求和库存情况)更新页面上的相应部分。的按钮上,使得用户可以点击按钮向STM32设备发送预定义的指令(在这个例子中是字符串"DATA")。
2025-03-24 09:00:00
1253
原创 rt-thread--pwm配置(多次踩雷后的总结)
rt-thread4.1.1在配置pwm以及在其它外设上是我用的比较顺利的版本,配置过程中基本上没什么报错,并且官方教程也都使用.
2024-11-25 17:40:23
1091
1
原创 stm32f4hal库--电机编码器配置与电机测速
通过__HAL_TIM_GET_COUNTER(&htim3)获取计数脉冲数(这个时候的脉冲数是减速比乘编码器线数乘四分频),所谓减速比,实际就是电机(减速比为30)输入轴转30圈通过减速器(通常为齿轮系统)将能量从高速低扭矩以低速高扭矩的能力形式传送到外部输出轴才转一圈,所以实际脉冲是外部脉冲的30倍.3.T1,T2都测量,可以利用A相和B相的相位差,实现四倍频(后面计算电机速度的时候脉冲应除4),大大提高位置和速度测量的分辨率,并且可通过检测这两路信号的上下沿以及他们的相位关系来判断旋转方向.
2024-10-30 09:00:00
917
原创 C语言-文件操作
fread和fwrite:适合用于处理二进制数据,尤其是结构体和固定大小的数据块。fscanf和fprintf:适合用于格式化读写文件或其他输入输出流。scanf和printf:适合用于格式化读写标准输入输出流。sprintf和snprintf:适合用于在内存中构建格式化的字符串,尤其是需要考虑安全性的场景。
2024-10-22 13:10:30
834
原创 git使用与vm编辑器了解
上传成功之后远程仓库和本地仓库会进行关联,需要再次上传代码,只要打开关联本地仓库文件,通过git add添加文件git commit -m"添加注释"加注释git push 推送到远程仓库即可完成整个代码托管流程通过git托管代码,操作简单,使用方便,可以更好的对代码进行管理和版本控制,不管是学习还行工作,都可以养成一个良好的代码管理习惯.
2024-07-16 10:29:34
703
原创 stm32--I2C通信与C语言移位判断操作
I2C总线结构可实现单片机与多个从机实现通信,通过SCL与SDA高低电平的变化来获取数据,极大提高单片机交换数据的效率.I2C在单片机上的优势:简化的硬件接口:I2C协议仅使用两条线——串行数据线(SDA)和串行时钟线(SCL)进行通信。这种简化的接口降低了硬件设计的复杂性,尤其是在连接多个设备时,可以显著减少系统内的连线数量。支持多主机和多从机:I2C允许多个主设备和多个从设备共存在同一总线上。这提供了灵活的设计选择,使得多个控制器可以管理或访问同一总线上的多个设备。
2024-07-12 09:00:00
2024
2
原创 学习k210(1)
勘智K210采用RISC-V处理器架构,具备视听一体、自主 IP核与可编程能力强三大特点,支持机器视觉与机器听 觉多模态识别,可广泛应用于智能家居、智能园区、智 能能耗和智能农业等场景。本文章讲述了k210,Canmv的下载,以及固件的下载和k210连接,并成功完成第一个示例.最后点击文档示例中的hello world.py文件,然后点击这个绿色按钮。然后再切换到烧录工具,点击浏览选择下载好的固件,最后点击下载即可。点开Canmv,点击工具中的串口烧录工具。先切换到擦除,点击全片擦除。
2024-04-24 23:29:01
2218
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人