小车综合控制实验

单片机实验

27人已加入

描述

小车综合控制实验

小车综合控制实验
一、实验目的
在前面的使用中,主要针对小车的局部功能进行编程。本实验要求综合运用小车的资
源实现小车在实际有障碍物的环境中运动,并成功避开障碍物。在小车运动过程中还需要
对速度进行控制。实验知识点:
1.综合应用小车各硬件模块,各程序模块间的协调配合。
2.多模块、复杂程序的调试方法。
二、实验预备知识
1.多程序模块间的协调问题
本实验要用到障碍物方位检测、显示、避障、PWM 控制等多个程序模块,编程时要
协调好各程序模块间的关系,否则会导致程序混乱。在编程时要注意以下几点:
① 数据寄存器的划分
在各程序模块中均要使用数据寄存器,在这些数据寄存器中,有三种类型:
第一种:数据寄存器只能由本程序模块使用,在没有运行该程序段时,其内容需要保
留,不能被其他程序模块修改。
第二种:数据寄存器用于模块间交换数据,各模块均可使用。
第三种:数据寄存器在某一模块中只是暂时使用,在不运行该程序模块时,可以提供
给其他程序模块使用。
在编程前先要建立一个数据寄存器配表,把所使用数据寄存器列出并定义好用途。如
果程序需要使用外部数据存储单元还需要建立数据存储单元分配表。在程序中使用寄存器
时必须严格按照分配表的规定是用。
② 程序模块间的关系
在小车控制程序中,检测障碍物和避开障碍物的程序应该优先执行,否则会危及小车
的安全。在实际的单片机系统中,那些程序模块优先执行要根据具体的控制功能来确定。
对需要优先执行的程序模块,可以采用中断方式实现,或者在各中断程序中通过设置中断
优先级的方式实现。
2.多模块程序的调试方法
调试多模块程序时,应首先分别调试各模块程序。如果各模块间有交换数据的单元和
状态位,则可以预先设定不同的值或状态进行多次调试。在本实验中,可以先分别调试小
车变速程序和避障程序,确定合理的速度和控制方法。
在调试完整程序时,在各程序模块的起始处设置断点的方法确认该模块是否执行,再
采用单步执行的方法检测程序执行情况。
三、硬件连接
本实验要使用红外发射和接收模块,具体连接如下:

1.用跳线冒短接JP17 左端。
2.J2、J9 各接一个红外发射模块,J7 接红外接收模块。按图3-7 安装,其中J2 接左
面的发射模块,J9 接右面的发射模块。
3.跳线JP1、JP15、JP16 短接右端,JP2、JP16、JP14 短接左端。
按以上方式连接硬件后,同学们根据硬件电路自行确定左右红外发射模块的控制端、
红外接收端及声音检测控制端所使用的I/O 口。
四、实验内容
1.先编写PWM 程序,通过运行确定合适的小车运行速度和避障时的速度。
2.编程并调试程序,实现以下功能:
小车在设有若干障碍物的工作台上运行,遇到障碍物后减速避开,然后又快速行驶,
听到声音后停止。
五、扩展内容
1.在运行过程中显示所避开障碍的数量。
2.使用小车和红外发射、接收模块,编程实现走迷宫功能,迷宫的设置如下图:

图3-19 迷宫结构图
迷宫用高度为20cm 的白色木板搭建,宽度25cm。
小车在走迷宫时要尽量不要走入死胡同,如果走入死胡同,则要能顺利退回,并沿正
确路线行进。要求穿越迷宫的时间尽量短,且尽量不要与木板发生碰撞。
控制要点:
① 根据迷宫结构,确定传感器的安装位置和数量。
② 小车的速度要合理,否则容易发生碰撞。
③ 转弯控制。
六、思考题
1.怎样减小小车的转弯半径?
2.如果小车运行速度很快,要使小车成功避开障碍物,应采取什么措施?

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分