前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >激光雷达避障小车的制作

激光雷达避障小车的制作

作者头像
刘盼
发布2018-07-26 15:06:20
1.4K0
发布2018-07-26 15:06:20
举报
文章被收录于专栏:人人都是极客人人都是极客

为什么用RT-Thread

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

实物图

  • 主控芯片:STM32F429IGT6
  • 其它主要配件:激光雷达,蓝牙串口,无线射频模块,MPU9250九轴姿态模块,电机驱动芯片l298n.两个自带AB相编码器的电机.履带一对.
  • 编译环境:MDK525
  • RT-Thread版本:3.0.2

硬件设计

  1. 激光雷达通过串口通讯,以及pwm控制转速.
  2. 射频模块通过uart6通信.使用rt-thread的事件通知消息的到来.
  3. 蓝牙串口,作为msh终端的输出.方便调试.
  4. mpu9250模块通过i2c通信.

软件设计

  1. master线程负责创建其它子线程,以及处理各种子线程处理后的信息.
  2. eaix4线程控制激光雷达上传到消息队列里的消息,将激光雷达的版本信息,状态,以及扫描数据解析出来.
  3. mpu9250线程通过dmp姿态解算出 姿态角(Roll、Pitch、Yaw ).
  4. speed线程通过采集stm429自带的编码器以及pwm输出,PID控制电机转速.

几个主要的命令

命令

功能

eaix4cmd -gvf

输出激光雷达版本信息.

eaix4cmd -sc

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

eaix4cmd -s

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

carMove -f

小车向前.

carMove -b

小车后退.

carMove -l

小车左转.

carMove -r

小车右转.

操作演示GIF

小车效果

视频内容

源码以及PCB

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么用RT-Thread
  • 实物图
  • 硬件设计
  • 软件设计
  • 几个主要的命令
  • 操作演示GIF
  • 小车效果
  • 源码以及PCB
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档