智能小车系统设计-基于STM32 课件 【ch14】实验12-避障应用实验_第1页
智能小车系统设计-基于STM32 课件 【ch14】实验12-避障应用实验_第2页
智能小车系统设计-基于STM32 课件 【ch14】实验12-避障应用实验_第3页
智能小车系统设计-基于STM32 课件 【ch14】实验12-避障应用实验_第4页
智能小车系统设计-基于STM32 课件 【ch14】实验12-避障应用实验_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验12避障应用实验智能小车系统设计——基于STM32避障模式是指智能小车能检测到障碍物,并主动避开障碍物继续前进的状态。本章将编写智能小车避障应用程序,实现在避障模式下,小车能主动识别墙面、台阶等障碍物,并自主避开障碍物。避障模式为小车自主运行模式,不受人为控制,类似于自动驾驶。01实验内容学习智能小车避障模式的工作原理,利用小车电机、超声测距、避障模块和寻迹驱动模块,编写智能小车避障应用程序,并完成测试。实验内容02实验原理实验原理通过超声测距模块计算角度在避障模式中,遇到墙面是比较常见的情况,小车遇到墙面时的示意图如图14-1所示。首先计算出需要旋转的角度(α),然后计算出旋转时长(小车通过旋转时间长短来控制转动角度),最后选择左转或右转一定角度,达到避开墙面的目的。实验原理通过超声测距模块计算角度超声测距模块的感应角度只有15°,当它与被检测物体之间的倾角大于15°时,超声测距模块发出的超声波将会被反弹到其他方向,超声波在经过多次反射之后才有可能传回超声测距模块,使得检测精度大大降低。这样的误差具有随机性,与实验环境有关。实验原理通过超声测距模块计算角度如图14-1所示,小车与墙面间的倾角(β)一般大于15°,所以不能根据x、y和z的测量距离来计算α角。而舵机转动时,舵机与小车的相对角度是已知的,因此这里用搜寻法计算α角。实验原理通过超声测距模块计算角度如图14-1所示,小车与墙面间的倾角(β)一般大于15°,所以不能根据x、y和z的测量距离来计算α角。而舵机转动时,舵机与小车的相对角度是已知的,因此这里用搜寻法计算α角。实验原理通过超声测距模块计算角度如图14-1所示,小车与墙面间的倾角(β)一般大于15°,所以不能根据x、y和z的测量距离来计算α角。而舵机转动时,舵机与小车的相对角度是已知的,因此这里用搜寻法计算α角。通过超声测距模块计算角度

舵机计算角度的流程图如图14-2所示。这里设置了最小旋转时长,因为旋转时长过短将导致小车转向失败,最小值应不低于150ms。实验原理避障模式流程

避障模式流程图如图14-3所示,下面介绍其中的关键部分。(1)智能小车检测到无障碍物或踏空,继续前进。(2)小车检测到有障碍物后稍微后退,起到的作用是紧急刹车。(3)小车检测到左、右均有障碍物,表明小车遇到了墙角,此时可以根据小车与两面墙之间的距离差异来选择左转或右转。实验原理03实验步骤步骤1:复制文件并编译原始工程

首先,将“D:STM32KeilTest\Material\12.避障应用实验”文件夹复制到“D:\STM32KeilTesttProduct”文件夹中。然后,双击运行“D:STM32KeilTestProduct12.避障应用实验\Project”文件夹中的STM32KeilPrj.uvprojx,参见4.3节步骤1验证原始工程,若原始工程正确,则进入下一步操作。实验步骤实验步骤步骤3:完善AvoidObstacle.h文件

首先,在AvoidObstacle.c文件的“包含头文件”区,添加代码#include"Avoidobstacle.h",完成添加后,单击圈按钮进行编译。编译结束后,在Project面板中,双击AvoidObstacle.c下的AvoidObstacle.h。在AvoidObstacle.h文件中,添加防止重编译处理代码,如程序清单14-1所示。实验步骤实验步骤步骤4:完善AvoidObstacle.c文件在AvoidObstacle.c文件的“包含头文件”区添加头文件,如程序清单14-3所示。实验步骤步骤4:完善AvoidObstacle.c文件在AvoidObstacle.c文件的“枚举结构体定义”区,添加结构体StructAvoidProc的声明代码,如程序清单14-5所示。StructAvoidProc用于存储避障模式中的各种参数,下面按照顺序介绍其中的成员变量。(1)obstacleSts为有障碍标志,其值为1时,表示小车遇到障碍;为0时,小车正常前进。(2)leftDis表示小车左侧(舵机135°)超声测距结果。(3)rightDis表示小车右侧(舵机45°)超声测距结果。(4)directDis表示小车正前方(舵机90°)超声测距结果。(5)speedLower表示小车前进速度,1800~2400为最佳,最大不能超过7200。(6)spcedFaster表示小车左、右旋转速度,小车在左、右旋转时需要较大的速度,以6400左右为最佳,最大不要超过7200。(7)spinTime表示小车左、右旋转的时间。实验步骤步骤5:完善避障应用层

在Common.c文件的“包含头文件”区添加头文件,如程序清单14-10所示。实验步骤步骤6:编译及下载验证

代码编写完成并编译成功后,将程序下载到STM32微控制器中。下载完成后,调节智能小车左、右两侧的避障模块和正下边的寻迹模块。调节好后按KEY₁

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论