第3课 让智能小车转弯

情景描述

除了直行,转弯也是智能小车必备的基本功能之一。本课我们就来研究如何让小车从A点直行到B点后,能顺利转弯并直行到C点。

 

知识与概念

要让智能小车转弯,可以通过控制左右两个轮子的速度来实现。两个轮子的速度差不一样,小车转弯时的状态也不同,常见的有以下三种:

 

试一试:

请先编写如下图3-2所示的程序:

然后根据下方表格中的数据分别设置电机输出值,接着下载到智能小车中运行,观察不同参数下的运动状态,最后将观察结果记录到表格中。

注意:运行程序前请确认小车的左电机和MA端口连接,右电机和MB端口相连。

 

作品制作

要让智能小车从A点经B点到达C点,可以分三个步骤来完成:首先小车从A点直行到B点,然后在B点转弯,最后从B点直行到C点。

具体程序流程图如下所示:

 

想一想:

在上图3-3所示的程序流程图中,“右转弯”又可细化成哪几个执行动作?请你把“右转弯”右边的流程图填写完整。

 

第一步:从A点直行到B点

智能小车从A点直行到B点,执行的是与第2课类似的“直线行走”的任务。具体的程序脚本如下图3-4所示:

图3-4 "从A点直行到B点"程序代码

由于智能小车都不相同,因此请根据实际情况调整“等待”指令的参数值,使得智能小车从A点直行到B点时刚好停在B点附近。

 

第二步:在B点向C点方向转弯

智能小车到达B点后,要向C点行驶,需要向右旋转。理论上三种常见的转弯方式都可以让小车实现右转功能。下面以绕轮子的中心轴原地转弯为例,在如上图3-4所示的程序基础上继续编程:

  1. 在“等待”指令下方插入一个“设置双电机”指令,设置指令的第一个参数为“MB”、第二个参数为“-150”,使得智能小车的右电机反向转动,从而带动轮子向C点右转。

  2. 在刚添加的指令下方再插入一个“等待”指令,让右电机反向转动持续一段时间,当智能小车车头正对C点的方向时停下。具体的等待时间,可以根据实际情况调整。

    具体的程序脚本如下图3-5所示:

图3-5 "从A点直行到B点,再向C点转弯"程序代码

 

试一试:

右电机反向转动的输出值除了“-150”,还可以是其它值吗?如果改为其它数值,程序应该如何调整?

 

第三步:从B点直行到C点

智能小车在B点成功转向C点方向后,只要继续直行,就可以到达C点。可以在如上图3-5所示的程序基础上再插入一个“设置双电机”指令和一个“等待”指令。并根据实际情况调整新添加“等待”指令的参数值。

具体的程序脚本如下图所示:

图3-6 "让智能小车转弯"范例作品程序代码

 

拓展与思考

会转弯的智能小车还可以走出很多花样轨迹。请选择下列图形中的一个,编写程序让智能小车移动的轨迹与所选图形相同。