找回密码
 立即注册
查看: 722|回复: 1

基于逐飞AI8051U开源库进行移植的pmw3901光流测速模块开源介绍

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-05-18 06:45:42
已绑定手机

3

主题

2

回帖

171

积分

注册会员

积分
171
发表于 2025-5-17 22:49:45 | 显示全部楼层 |阅读模式
  第20届智能汽车竞赛中,气垫越野组别的颠簸与坎坷路况,使得传统的无悬挂编码器测速轮容易出现丢步或超步,造成测速不准,并且成本较为昂贵,容易损坏。
  所以由正点原子开源的ATK-PMW3901光流模块(使用VL53L1X测量对地高度和PMW3901测量移动速度)获得灵感,设计了一款低成本的光流测速模块,并完成了在AI8051U单片机上的初始化工作,成功获取对地高度,和deltaX,deltaY移动速度。

  在移植过程中,硬件部分需要重点注意1.8v电源和3.3v电源的上电时序,电容只需要尽量靠近被滤波部分,其他连线即可。软件部分需要注意PMW3901的spi通信方式,在手册中有这样一句话,对于读操作,地址位保持不变,而对于写操作,必须将最高位置1,也就是说,如果芯片寄存器地址位0x7F,如果要去写这个寄存器,操作的地址就要变为0x7F | 0x80,也就是0xFF”所以代码中应重点如下移植修改,其他部分只需要按手册正确操作来,即可实现初始化,成本相对来说较低(40元左右),且PMW3901的适配高度范围很广,不至于紧贴地面,但实际效果还是应该添加低通滤波,并且和tof测量的对地距离进行融合,因为在不同对地距离下PMW3901的测量数据是有分辨率差异的,这点我还没有实现,大家自行开发。
  1. /**
  2. PMW3901 spi向指定寄存器写入数据
  3. **/
  4. void PMW3901_write_register(spi_index_enum spi_n,uint8 register_name,uint8 dat){
  5. register_name |= 0x80u;//最高位置1
  6. PMW3901_CS(0);
  7. spi_write_8bit_register(spi_n,register_name,dat);
  8. PMW3901_CS(1);
  9. }
  10. /**
  11. PMW3901 spi从指定寄存器读取数据
  12. **/
  13. uint8 PMW3901_read_register(spi_index_enum spi_n, uint8 register_name)
  14. {
  15.     uint8 dat = 0;
  16.           register_name &= ~0x80u;//保持不变
  17.     PMW3901_CS(0);
  18.     dat = spi_read_8bit_register(spi_n,register_name);
  19.     PMW3901_CS(1);
  20.     return dat;
  21. }
复制代码
  硬件和软件设计并不绝对完美,仅作为思路供大家参考,附上一张实物图片
    IMG_20250517_221631.jpg


FLOW.c

13.05 KB, 下载次数: 44

C语言文件

FLOW.h

2.75 KB, 下载次数: 26

头文件

ProPrj_光流计_2025-05-17.epro

114.63 KB, 下载次数: 45

嘉立创硬件工程

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
记录我们那些尽情奔跑和自由飞翔的日子。
回复

使用道具 举报 送花

3

主题

727

回帖

165

积分

等待验证会员

积分
165
发表于 2025-5-17 22:53:00 | 显示全部楼层
在20届智能汽车竞赛中,气垫越野组别在颠簸与坎坷路况下,传统无悬挂的测速轮容易出现丢步或超步,导致测速不准,且成本高昂,易损坏。为解决这一问题,我们 inspired 由正点原子开源的ATK-PMW3901光流模块(基于VL53L1X对地高度测量和PMW3901测量移动速度)的灵感,设计了一款低成本的光流测速模块,并完成其在AI8051U单片机上的初始化工作,成功获取了对地高度和移动速度。

模块设计与功能

1. 模块功能概述  
对地高度测量:使用VL53L1X传感器,通过光流技术实现对地面高度的实时测量,适用于多种场景下的高度控制需求。
移动速度测量:基于PMW3901光流模块,通过测量光流变化,实时获取物体移动的速度和方向,适用于多种运动控制场景。

2. 模块初始化与数据处理  
通过开源模块的启发,我们完成了模块的初始化工作,包括对地高度和移动速度的初始化数据处理,确保模块在单片机上的高效运行。
模块的设计基于AI8051U单片机的性能,确保了模块的快速响应和稳定运行。

模块的优点与优势

1. 低成本设计  
该模块基于开源模块,成本较低,适用于各种预算限制的场景。

2. 快速部署  
该模块的初始化工作相对简单,能够在短时间内完成部署,适用于快速测试和快速迭代。

3. 可靠性与稳定性  
通过基于AI8051U单片机的设计,模块具有较高的可靠性和稳定性,能够适应各种复杂场景下的测量需求。

4. 应用前景  
该模块可广泛应用于智能汽车领域的各种场景,包括地面移动观测、环境监测、车辆运动控制等。

结语

该模块的提出为智能汽车领域的光流测速提供了低成本、快速、可靠的解决方案,为后续的研发和应用奠定了基础。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 1 反对 0

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 06:06 , Processed in 0.236864 second(s), 56 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表