设备模式下某些硬件设备可以借助变量、广播或消息等手段,实现与舞台互动的效果。下面,将通过一个示例展示如何使用这两种模式进行混合编程。
示例:倒车雷达
下面就以 Grove Zero 的示例项目——倒车雷达为例,看如何借助变量,让设备模式和舞台模式的程序进行协作,实现通过硬件测距、告警,在电脑屏幕展示倒车雷达效果的程序。
项目概述
倒车雷达使用了3个 Grove Zero 的模块:蓝牙主控,蜂鸣器,超声波测距传感器,模块及连接方式如下图所示:
搭建带倒车雷达小车的硬件原型如下图示所示:
期望实现的效果如下所示,舞台模式下的舞台会根据硬件设备的测量结果,实时展示当前的报警状态和距离数值。
倒车雷达的功能描述如下:
- 报警状态为3:接近物体的距离大于50厘米的时候,蜂鸣器和雷达均无显示
- 报警状态为2:接近物体的距离介于20~50厘米的时候,蜂鸣器低频鸣叫,雷达显示绿色
- 报警状态为1:接近物体的距离介于20~5厘米的时候,蜂鸣器快速鸣叫,雷达显示橙色
- 报警状态为0:接近物体的小于5厘米的时候,蜂鸣器高频鸣叫,雷达显示红色
项目步骤
1. 用 Codecraft 编写设备程序
开启 Codecraft 开始编程,在设备模式确保当前设备是 Grove Zero。
程序创建了两个适用于所有角色的变量:“报警状态”和“距离”,如下图所示。
设备模式下的程序通过超声波测距传感器获取到距离数值,将数值赋予变量“距离”。然后通过一系列的判断程序,根据距离数值确定“报警状态”的数值。同时为不同的“报警状态”设定不同的蜂鸣器发声效果。
将项目名称修改为“倒车雷达”,编写好的程序如下图所示。
2. 连接设备及程序测试
如下图所示,将蓝牙主控、蜂鸣器和超声波传感器通过磁吸连接,然后将蓝牙主控和 PC连接。
在 Codecraft 先“连接设备”开启“在线调试”。然后在编程区点击程序,程序周围出现金色镶边代表现在已经进入了“在线调试”的状态。
如下图所示,当红色小车靠近超声波测距传感器的时候,可以通过蜂鸣器听到声音随距离的变化。
3. 舞台模式倒车雷达展示素材准备
设计师为倒车雷达在舞台模式的展示,分别设计了4个文件如下图所示。
这4个文件被保存为 SVG 格式,可以在此下载:倒车雷达-素材-SVG.zip
进入“倒车雷达”程序的舞台模式,分别置入角色和背景。
角色可以删除默认的猫头鹰角色,添加新的倒车雷达状态图案。如下图所示,在一个角色里添加3种状态素材。
替换了背景后的效果。
4. 舞台模式下编程
在舞台模式下,可以看到设备模式下创建的变量。
这些变量也会显示在舞台模式中,可以将“距离”变量从左上角拖拽到场景中间,并设置为“大字显示”,效果如下图所示。
最终完成舞台模式下的程序,如下图所示。
现在全部的编程已经完成。5. 混合模式下的程序测试
回到“设备”模式下,开启“在线调试”并运行程序,具体操作参考步骤2。这时候硬件设备已经进入运行状态。
到“舞台”模式下,点击舞台下方的 按钮,或直接点击程序,看到程序积木周围出现金色镶边,现在舞台模式的程序也进入运行状态了,如下图所示。
测试混合模式下的运行效果。项目程序下载
在此处获取倒车雷达项目的程序源文件:倒车雷达-cdc.zip。