8. robit智能小车案例06:反应力小游戏

8.1. 目的


  • 使用Robit主板上的红外线接收模块和红外线遥控器完成反应力测试小游戏。

8.2. 使用材料


  • 1 x Robit智能小车主板

  • 1 x 红外遥控器

8.3. 背景知识

光线传感器


红外遥控是一种广泛应用的通信和控制手段,由于其结构简单、功耗低、抗干扰能力强、可靠性高及成本低等优点而广泛应用于家用电器、工业控制和智能仪器系统中。通用红外遥控系统由发射和接收两大部分组成。应用编码/解码专用集成电路芯片来进行控制操作。

Robit主板上的搭载了一组红外遥控系统,有红外发射端和红外接收端。

8.4. 硬件连接图


板载红外线接收传感器,连接在micro:bit的P8口。

../../_images/lNAWQsx.png

带有上下左右和电源按键的红外线遥控器。

../../_images/xaePCpG.jpg

8.5. 软件


微软makecode

8.6. 编程


步骤 1

在MakeCode的代码抽屉中点击Advanced,查看更多代码选项。

microbitKit\robit_smart_car\./images/LjMR5IU.png

为了给红外模块编程,我们需要添加一个代码库。在代码抽屉底部找到“Add Package”,并点击它。这时会弹出一个对话框。搜索“Robit”,然后点击下载这个代码库。

microbitKit\robit_smart_car\./images/ISZ6w26.png

注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

步骤 2

开机时初始化红外线接收模块为P8口,设置接收变量receiver,显示变量show,分数变量score,游戏轮数变量num

设置当接收到红外信号为电源键按下时设置receiver``score``num为0,初始化游戏。如果接收到为上箭头设置receiver接收变量为1,下箭头同理。

../../_images/hfUPPVs.png

创建永久循环模块,检查游戏轮数,如果等于5,一直显示游戏分数,为一轮结束。如果不等于5,则游戏尚未结束,将游戏轮数变量加1,显示321倒计时。

../../_images/oIMWiCU.png

随机生成0到1的数字加1,随机生成两种情况,判断是否等于1,如果等于1,显示上箭头,将显示变量设置为1,延迟0.5秒。

然后判断接收变量和显示变量是否一致,如果一致,分数变量加1,将显示变量和接收变量归0,分数变量加1,显示√,延迟2秒。

如果不一致,将显示变量和接收变量归0,显示X,延迟2秒。

../../_images/2yCd90H.png

如果随机生成数字加1后不等于1,显示下箭头,判断流程同上,不做赘述。

../../_images/I8H9sqE.png

程序

请参考程序连接:https://makecode.microbit.org/_L9oPJWXxEJKh

你也可以通过以下网页直接下载程序。

---

8.7. 结论


上电游戏开始,321倒计时后随机显示箭头发现,延迟0.5s判断是否按下相应箭头,如果在规定时间按下相应方向按键,则显示√,如果没有显示X,游戏共5轮,自动结束显示分数。 按下电源键重启游戏。

../../_images/Mb6YT0d.gif

8.8. 思考


如何添加更多反应按键?

8.9. 常见问题


8.10. 相关阅读