设备模式下某些硬件设备可以借助变量、广播或消息等手段,实现与舞台互动的效果。下面,将通过一个示例展示如何使用这两种模式进行混合编程。

示例:倒车雷达

下面就以 Grove Zero 的示例项目——倒车雷达为例,看如何借助变量,让设备模式和舞台模式的程序进行协作,实现通过硬件测距、告警,在电脑屏幕展示倒车雷达效果的程序。

项目概述

倒车雷达使用了3个 Grove Zero 的模块:蓝牙主控蜂鸣器超声波测距传感器,模块及连接方式如下图所示:
image.png
搭建带倒车雷达小车的硬件原型如下图示所示:
倒车雷达-原型.png
期望实现的效果如下所示,舞台模式下的舞台会根据硬件设备的测量结果,实时展示当前的报警状态和距离数值。 倒车雷达效果展示.mp4 (5.26MB)倒车雷达的功能描述如下:

  • 报警状态为3:接近物体的距离大于50厘米的时候,蜂鸣器和雷达均无显示
  • 报警状态为2:接近物体的距离介于20~50厘米的时候,蜂鸣器低频鸣叫,雷达显示绿色
  • 报警状态为1:接近物体的距离介于20~5厘米的时候,蜂鸣器快速鸣叫,雷达显示橙色
  • 报警状态为0:接近物体的小于5厘米的时候,蜂鸣器高频鸣叫,雷达显示红色

    项目步骤

    1. 用 Codecraft 编写设备程序

    开启 Codecraft 开始编程,在设备模式确保当前设备是 Grove Zero。
    程序创建了两个适用于所有角色的变量:“报警状态”和“距离”,如下图所示。
    image.png
    设备模式下的程序通过超声波测距传感器获取到距离数值,将数值赋予变量“距离”。然后通过一系列的判断程序,根据距离数值确定“报警状态”的数值。同时为不同的“报警状态”设定不同的蜂鸣器发声效果。
    将项目名称修改为“倒车雷达”,编写好的程序如下图所示。
    image.png

    2. 连接设备及程序测试

    如下图所示,将蓝牙主控、蜂鸣器和超声波传感器通过磁吸连接,然后将蓝牙主控和 PC连接。
    image.png
    在 Codecraft 先“连接设备”开启“在线调试”。然后在编程区点击程序,程序周围出现金色镶边代表现在已经进入了“在线调试”的状态。
    image.png
    如下图所示,当红色小车靠近超声波测距传感器的时候,可以通过蜂鸣器听到声音随距离的变化。
    image.png

    3. 舞台模式倒车雷达展示素材准备

    设计师为倒车雷达在舞台模式的展示,分别设计了4个文件如下图所示。
    image.png
    这4个文件被保存为 SVG 格式,可以在此下载:倒车雷达-素材-SVG.zip
    进入“倒车雷达”程序的舞台模式,分别置入角色和背景。
    角色可以删除默认的猫头鹰角色,添加新的倒车雷达状态图案。如下图所示,在一个角色里添加3种状态素材。
    image.png
    替换了背景后的效果。
    image.png

    4. 舞台模式下编程

    在舞台模式下,可以看到设备模式下创建的变量。
    image.png
    这些变量也会显示在舞台模式中,可以将“距离”变量从左上角拖拽到场景中间,并设置为“大字显示”,效果如下图所示。
    image.png
    最终完成舞台模式下的程序,如下图所示。
    image.png
    现在全部的编程已经完成。

    5. 混合模式下的程序测试

    回到“设备”模式下,开启“在线调试”并运行程序,具体操作参考步骤2。这时候硬件设备已经进入运行状态。
    到“舞台”模式下,点击舞台下方的 image.png 按钮,或直接点击程序,看到程序积木周围出现金色镶边,现在舞台模式的程序也进入运行状态了,如下图所示。
    image.png
    测试混合模式下的运行效果。 倒车雷达效果展示.mp4 (5.26MB)

    项目程序下载

    在此处获取倒车雷达项目的程序源文件:倒车雷达-cdc.zip