Page Title

第2课 让智能小车回家


2019-08-01 16:24:09

blob.png

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



blob.png

2-1 “让智能小车回家”范例作品示意图

blob.png

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

电机


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



blob.png

2-3 智能小车电机


blob.png

仔细观察好好搭搭智能小车,它的两个电机分别位于智能小车的_______________,连接主控板的____________端口。

 

 

 

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

blob.png

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

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

blob.png

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

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

 


 


blob.png

2-3 “双电机驱动”指令“试一试”程序代码

 

blob.png

我发现:好好搭搭智能小车的左右电机输出为正值时,小车向_____行驶;左右电机输出为负值时,小车向_____行驶;电机输出为_____时,小车停止行驶;电机输出的绝对值越大,小车行驶越_____

 

blob.png

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


blob.png

2-4 “让智能小车回家”范例作品程序流程图


 

第一步:启动电机                       


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


blob.png

2-5 “智能小车直行”程序代码

 

第二步:设置等待时间                       


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


blob.png

2-6 “智能小车直行后等待”程序代码


blob.png

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

 

 

 

我发现:________________________________________________________________

_______________________________________________________________________

 

第三步:停止电机                      


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

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


blob.png

2-7 “让智能小车回家”程序代码

blob.png

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

 

blob.png

 

blob.png

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

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


blob.png


 

经过调试、比赛,我所编写的智能小车程序最高得分是____分,这个程序保存在“好好搭搭”网站上的名称是_____________________。将作品共享了以后,有____人给我点赞;综合别人给我提的建议,我认为还可以在以下方面进行改进:___________________

______________________________________________________________________


阅读材料二:初步了解程序流程图

流程图是一种用图形表示算法的图。使用流程图可以帮助我们分析过程、理清思路。而程序流程图是以特定的图形符号加上说明,表示为完成某一任务而采取的方法和步骤。

一、      程序流程图的符号

程序流程图通常用一些图框来表示各种操作,直观形象、易于理解。它主要包括三个部分:表示各种操作的框、带箭头的流程线以及框内必要的文字说明。以下是几种常用的程序流程图符号:


blob.png


二、      程序的三种基本结构

程序有三种基本结构:顺序结构、选择结构和循环结构。

1.      顺序结构:这是一种最简单、最常用的程序结构。只需按照解决问题的先后顺序写出相应的语句即可。它的执行顺序是自上而下,依次执行的。如下图所示,智能小车先直行3秒,然后停止,这就是顺序结构。



blob.png


2.      选择结构:这种程序结构主要用于判断给定的条件,并根据判断的结果来选择不同的操作。如下图所示,当智能小车检测到的声音小于2000时右转;否则智能小车左转。


blob.png


3.      循环结构:这种程序结构表示反复执行某一操作,可以减少程序重复书写的工作量。如下图所示,智能小车的液晶显示屏上重复不断地显示着变量n的最新值。 


blob.png