matlab传感器避障小车,激光雷达避障小车的制作

为什么用RT-Thread

作为主控芯片的实时系统,提供多线程编程.小车的每个重要的需要实时的功能都单独作为一个线程.如小车的mpu9250姿态解算出姿态角(Roll、Pitch、Yaw )的过程就单独使用了一个线程(mpu9250),小车的PID控制速度的代码也单独使用了一个线程(speed).每个功能线程(mpu9250,speed...等)都会处理完各自的数据得出结果,并且这些结果在必要的时候提供给主线程(master)使用.也正是因为rt-thread的优先级全抢占式调度使得重要的线程能及时处理完.另外rt-thread提供的finsh/msh在调试期间起到了很大的作用,同时也可以通过远程蓝牙串口控制小车的行为.

实物图

8beb03978ee818f23247599fa0a2d4a8.png

33eb36174a903ee58222f81d6ff924d2.png

fe4685a8a3290d2050594ec8e98e703e.png

主控芯片:STM32F429IGT6

其它主要配件:激光雷达,蓝牙串口,无线射频模块,MPU9250九轴姿态模块,电机驱动芯片l298n.两个自带AB相编码器的电机.履带一对.

编译环境:MDK525

RT-Thread版本:3.0.2

硬件设计

d13a8431f6661e0d49852228e89a9438.png

激光雷达通过串口通讯,以及pwm控制转速.

射频模块通过uart6通信.使用rt-thread的事件通知消息的到来.

蓝牙串口,作为msh终端的输出.方便调试.

mpu9250模块通过i2c通信.

7e2306f023d19992e1cff40f46334695.png

5c361b9f4b7358dbb1d06b58bb662621.png

软件设计

c54be782eee49e1efe0bebe99c4b7f49.png

master线程负责创建其它子线程,以及处理各种子线程处理后的信息.

eaix4线程控制激光雷达上传到消息队列里的消息,将激光雷达的版本信息,状态,以及扫描数据解析出来.

mpu9250线程通过dmp姿态解算出 姿态角(Roll、Pitch、Yaw ).

speed线程通过采集stm429自带的编码器以及pwm输出,PID控制电机转速.

几个主要的命令

命令

功能

eaix4cmd -gvf

输出激光雷达版本信息.

eaix4cmd -sc

小车开始扫描,启动避障功能.

eaix4cmd -s

激光雷达停止扫描,但是不会停车.

carMove -f

小车向前.

carMove -b

小车后退.

carMove -l

小车左转.

carMove -r

小车右转.

操作演示GIF

a50d2da18daab4a9f4be00538b709c32.gif

小车效果

源码以及PCB

https://github.com/balanceTWK/LidarCar.git

将下载下来的代码放在rt-thread-3.0.2\bsp\目录下,直接打开project.uvprojx文件即可.或者在我的百度云里下载完整的代码. 百度云地址:https://pan.baidu.com/s/1he8LQZstRXENBMgs_tQ5Mw

轻轻一扫  欢迎关注~

如果觉得好,请

转发

转发

转发

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值