第2课 让智能小车回家

情景描述

在马路上行驶了很久的智能小车,感觉有些累了,想回家休息。让我们一起帮助它,从A点以最短的距离回到B点的家。

知识与概念

要制作本课的范例作品,需要认识以下这些模块:

电机

电机(又称“马达”)是依据电磁感应原理将电能转换为机械能的一种装置,很多常用电器和机械的动力源使用的就是各种各样的电机。好好搭搭智能小车有两个电机,主要通过电机模块分别驱动左右两个轮子实现行走(如下图2-2所示)。

试一试:

仔细观察好好搭搭智能小车,它的两个电机分别位于智能小车的什么位置?连接主控板的哪些端口?

 

要制作本课的范例作品,还需要使用以下新的指令:

使用这个指令可以设置指定端口电机的输出值,控制电机的转速。

指令默认是连接到“MA”端口的,电机输出值为“150”。通过单击第一个参数的下拉列表,可以选择电机的连接端口:MA、MB和M2;通过单击第二个参数的下拉列表或者直接输入,可以设置电机的输出值,它的取值范围是(-255,255)。

试一试:

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

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

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

 

作品制作

在数学课中,我们了解到:两点之间直线距离最短。要让小车以最短的距离回家,可以让小车直接从A点沿直线行驶到B点。编程时可以分两步来完成:首先启动电机并运行一段时间,然后停止电机,具体程序流程图如下所示:

 

第一步:启动电机

将上图2-3所示程序代码中的左右电机输出值都设置为“150”,使智能小车以150的速度向前直行。具体程序脚本如下图所示:

 

第二步:设置等待时间

运行上图2-5所示程序,智能小车已经能够向前行驶了。但由于没有时间的限制,它会一直向前行驶。要设置智能小车的行驶时间,可以再添加“控制”类别中的“等待”指令。具体程序脚本如下图所示:

想一想:

按照这样的程序运行,智能小车能停下来吗?问题出在哪里?该怎么解决?

 

第三步:停止电机

第二步编写的程序虽然设置了等待时间,但智能小车从A点行驶到B点后并没有停下,而是继续行驶。这是由于程序中缺少了让智能小车停止行驶的程序代码造成的,可以在原有程序的基础上,再添加两个“设置双电机”指令,设置它们一个驱动“MA”、另一个驱动“MB”电机,“电机输出”参数都设为“0”,停止左右电机的转动、让智能小车停下来。 具体的程序脚本如下图所示:

不同的小车,不同的环境,要达到同样的效果,“电机输出”及“等待”的数值会不相同。因此需要根据实际情况进行调试,直到完成从A点到B点“回家”的任务。请将调试过程记录到下面的表格中。

 

拓展与思考

一起用智能小车玩“夺分奇兵”的游戏吧!最后比一比谁的得分最高。

游戏规则:智能小车从起点沿着分数点行驶,如果准确到达一个分数点后,能够停止3秒再继续行驶,那么这个分数点的分数可以计入总分。