Page Title

第7课 遥控智能小车


2019-08-02 10:09:12

图片.png 

用遥控器控制小车前进、后退、左转弯、右转弯和停止,将会使小车行驶的轨迹更加自由多变。本节课,就让我们一起来设计一辆遥控智能小车(如下图7-1所示)。


blob.png

7-1 “遥控智能小车”范例作品示意图

图片.png 

要制作本课的范例作品,除小车外,还需具备以下硬件模块:

红外遥控器

红外遥控器是一种无线发射装置,每一个按键信息都是通过现代的数字编码技术进行编码的,主要用于远程控制机械设备。红外遥控器发射部分的主要元件为红外发光二极管。好好搭搭智能小车套件中的红外遥控器如下图7-2所示:


blob.png

7-2 好好搭搭智能小车套件中的红外遥控器

红外接收模块

红外接收模块,又称红外接收头,主要用于接收红外遥控器发出的信号。好好搭搭智能小车套件中的红外接收器(如下图7-3)已集成在主控板上。


blob.png

7-3智能小车主控板上集成的红外接收器


除具备红外遥控器和红外接收模块外,要完成遥控智能小车的设计,还需了解以下指令:

blob.png

  通过这个指令可以读取“红外接收模块”接收到的信号值。在实际应用中,这个指令不能单独使用,一般仅作为其他指令的一个参数值。

blob.png   

  这个指令中的参数值一一对应着遥控器上的相应按键。通过单击指令的下拉列表,用户可以方便地选择所需的按键,而不必刻意记住每个按键的键值。编程时,这个指令也不能单独使用,一般只作为其他指令的一个参数值而已。

图片.png 

     遥控智能小车在接收到遥控器ok”按键发射的红外线时,停止行驶。接收到“向上”、“向下”、“向左”、“向右”按键发射的红外线时,则分别执行前进、后退、左转弯、右转弯等行驶动作。具体可以按以下步骤创作:

第一步:测一测遥控器键值                      


遥控器上的每一个按键,都有一个相应的键值。运用红外接收模块和数码管显示程序(如图7-4所示),可以方便地获取遥控器上各按键的键值。


blob.png 

 

7-4 在数码管上显示遥控器按键值的程序代码


图片.png 

把数码管连接到C0端口,编写如图7-7所示的程序代码,并编译下载到智能小车中运行,测一测遥控器上各按键的值,记录到如图7-8所示的表格中。


blob.png

7-5 遥控器上的各按键值记录表

第二步:判断读取的红外值                      


    在用遥控器控制智能小车行驶时,需要将智能小车实时读取的红外值和已知键值进行比较。如果两个值相等,那么智能小车执行相应的指令。具体可以按以下步骤编程:

    首先创建一个存储红外值的变量,在计算机内存中开辟一块存储空间,如ir

然后拖动“数据”模块中的“将ir设定为”指令到脚本区,和“好好搭搭硬件程序”组合在一起,并将“更多模块”中的“读取红外值”指令拖放到参数框中。

接着拖动“控制”模块中的“如果……那么……”指令到“将ir设定为读取红外值”指令下方并组合在一起;拖动“数字和逻辑运算”模块中的“等于”指令到“如果……那么……”指令的判断框内,并把“数据”模块中的变量“ir”拖放到“等于”指令的第一个参数框内,同时在第二个参数框内输入已测得的键值,如119(遥控器上的“向上”按键的键值)。

最后拖动“控制”模块中的“重复执行”指令到“好好搭搭硬件程序”下方,将刚添加的指令都包含在内。具体程序代码如下图7-6所示:


blob.png

 

7-6 判断实时读取的红外值的程序代码


图片.png 

如果把图7-6所示程序代码中的键值“119”改为“红外按键值”指令,智能小车还能照常行驶吗?


 

第三步:创建、调用功能块                     


“更多模块”中有一个“新建功能块”按钮。通过这个按钮新建的功能块可以把相关的指令有序地组合在一起,以完成一个动作或展示一种效果。在程序中运用功能块,主要可以方便阅读和调试。功能块的创建和调用可以按以下步骤操作:

首先单击“更多模块”类别中的“新建功能块”按钮(如下图7-7所示)


blob.png

7-7 单击“新建功能块”操作示意图


然后在New Block”对话框中输入功能模块的名称并单击“确定”按钮。注意:功能模块的名称尽量通俗易懂,且不能使用中文(如下图7-8所示)


blob.png

7-8 创建功能块名称的操作示意图


接着在脚本区的“定义qianjin”功能块下方添加让智能小车前进的相关指令(如7-9左图所示)

最后把定义好的功能模块qianjin”拖放到“如果……那么……”指令中。这样,定义好的功能模块“qianjin”就被成功调用了(如7-9右图所示)


blob.png

7-9 让智能小车前进的功能块定义及调试示意图


图片.png 

运用已掌握的知识技能,创建后退、左转、右转、停止等功能模块,并在合适的位置调用相应的功能模块,编译下载到智能小车中运行。使智能小车在遥控器上的“”、“”、“”、“”、“ok”键被按下时,能执行相应的前进、后退、左转、右转和停止等动作。


 

图片.png 

    除了前进、后退、左转、右转和停止动作外,遥控器还能指挥智能小车实现哪些功能呢?请你综合运用前面所学知识,充分发挥想象,设计一辆酷炫的遥控智能小车吧。

我设计的“酷炫遥控智能小车”能实现____________________________________等功能。相应的程序保存在“好好搭搭”网站上,名称是_________________。将作品共享了以后,有____人给我点赞;综合别人给我提的建议,我认为还可以在以下方面进行改进_______________________________________________________________________________

_______________________________________________________________________________