首页 理论教育 实现小车走迷宫的方法及实地测试

实现小车走迷宫的方法及实地测试

时间:2023-11-17 理论教育 版权反馈
【摘要】:例6.1自己设计一个迷宫图,通过Modkit编程控制小车行驶的距离、速度和方向,实现小车“走迷宫”的功能。首先配置LED1和LED2硬件模块,LED1代表左轮,LED2代表右轮;然后对LED代码块进行ON/OFF操作,从而控制小车左右电机的启停。图6.32迷宫实地场景照片结合实地场景行驶路径,修改延时函数的时间参数以及电机左右控制LED1/LED2块代码模块的ON/OFF属性值,单击“Play”按钮下载程序到小车单片机上,最后进行实地测试。小车行走迷宫的主要过程如图6.33所示。

实现小车走迷宫的方法及实地测试

例6.1 自己设计一个迷宫图,通过Modkit编程控制小车行驶的距离、速度和方向,实现小车“走迷宫”的功能。

功能描述:对于给定迷宫图,行驶地图线路的长度、拐弯位置、转弯方向等基本信息就可以通过编程控制电机的运行时间、转动速度和转动方向进行场景重现。主要功能如下:

①直线运行时,当线路长度一定,能够控制小车运行时间;

②直线运行时,当线路长度增加时,能够控制小车不跑偏;

③转弯时,随转弯角度变化,小车实际转弯轨迹同步变化;

④转弯时,尽量减少小车的转弯时间,同时减小运行轨迹的偏离。

1)编程思路

(1)小车调速

根据路程=时间×速度,当路程一定时,要控制小车运行时间就需要控制电机的运行速度。但是电机一但通电运行,在供电电压不变情况下,电机转速是固定的。如何控制电机速度变化呢?实际上,我们可以借鉴“平均速度”的概念来解决这个问题。即对一段给定路程L,可以让电机以正常速度启动运行一段时间,接着停止一段时间,然后又运行一段时间,又停止一段时间,这样不断重复,直到完成。整个路程中,电机正常运行时间总计为Tr,电机停止时间总计为Ts,那么汽车行驶这段路程的平均速度Va为: Va=L/(Tr+Ts)。因此,控制电机启/停时间长度,就可以控制汽车在某一路程中的速度。另外,只要电机启停的时间间隔选择合适,如小于视觉效应时间20 ms,那么小车运行过程将显得平稳。

(2)硬件设置思路

结合小车电路原理图,两个电机的启停控制端已经通过PCB线路连接到单片机的端口,即:电机B1由P0.0控制,电机B2由P0.1控制。由于单片机P0.0/P2.1引脚在图形编程中可以利用已有LED代码块进行更为简洁的编程,实现单片机端口的高低电平操作,所以,在以下编程中,LED的电平控制实际上就是对电机的电平控制。首先配置LED1和LED2硬件模块,LED1代表左轮,LED2代表右轮;然后对LED代码块进行ON/OFF操作,从而控制小车左右电机的启停。

(3)代码块编程思路

根据上述小车调速原理,在代码中引入延时函数,通过改变LED1和LED2的ON/OFF状态延时时间(即小车左右电机的启停时间)来完成小车行驶速度的动态调节,完成迷宫行驶的主要功能。注意:小车停止,即代码块设置LED为ON时,插入的延时函数Delay的时间不要超过1 s;如果小车停止延时过长,可能导致小车行驶不平稳,出现走一会儿停一会儿的尴尬情况!

2)编程实施

基于上述调速、硬件设置和代码编程思路,具体的代码块编程过程如下:(www.xing528.com)

(1)图形编程软件中的硬件设置

打开Modkit,在“Hardware”中拖出两个LED,并根据电路图设置引脚为PIN20、PIN21。

(2)图形编程软件中的块代码编程

切换至“Blocks”编程界面,进行块代码编程,参考代码块程序如图6.31所示。

图6.31 小车行驶特定路径的参考块代码

3)场景搭建与参数优化

利用积木块,设计涵盖测试主要功能的迷宫实地场景,如图6.32所示。

图6.32 迷宫实地场景照片

结合实地场景行驶路径,修改延时函数的时间参数以及电机左右控制LED1/LED2块代码模块的ON/OFF属性值,单击“Play”按钮下载程序到小车单片机上,最后进行实地测试。小车行走迷宫的主要过程如图6.33所示。

图6.33 小车迷宫行走过程图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈