用地图演奏蜂鸣器音乐
CoCube 不仅能在定位地图上移动,也能把音乐地图变成一架可以滑动演奏的电子琴。在这个案例中,我们不需要连接 MIDI 模块,只使用 CoCube 自带的蜂鸣器就能演奏音乐。
在线程序:在 MicroBlocks 中打开程序
程序文件:Buzzer.ubp
1. 准备工作
你需要准备:
- 一台 CoCube
- CoCube 音乐地图
- 安装了 MicroBlocks 的电脑或平板
将 CoCube 连接到 MicroBlocks,打开并运行程序。把机器人放在音乐地图上,用手推动它经过不同的琴键,就能听到不同音高。
选用:3D 打印支架
直接推动 CoCube 时,轮子与地图之间会产生阻力。目录中提供了一个底盘支架,3D打印后可以将机器人的轮子稍微架起,让 CoCube 在音乐地图上滑动得更加顺畅。
3D打印完成后,将支架安装在 CoCube 底部,再用手推动机器人演奏。支架只用于手动滑动体验,运行电机前请先取下。
2. 音乐地图如何发声
CoCube 可以读取脚下区域的“卡片 ID”。音乐地图上的琴键使用 60–84 作为编号,这些数字同时也是 MIDI 音符编号。
例如:
60:中央 C61:升 C62:D- 编号每增加 1,音高升高一个半音
Tone 积木库中的“开始 MIDI 音符”积木可以直接把这些编号转换成蜂鸣器音高,因此不需要另外制作音符对照表。
3. 完整程序

程序只使用两个变量:
key:当前读取到的卡片 ID。last_key:上一次读取到的卡片 ID。
读取当前琴键
程序不断读取 CoCube 的卡片 ID,并把结果保存到 key。
也就是把“CoCube 卡片 ID”赋值给 key。
只在琴键变化时切换声音
当 key 和 last_key 不同时,说明 CoCube 已经进入了另一个区域。只有这时才切换音符,可以避免机器人停在同一个琴键上时不断重新启动声音。
播放和停止音符
琴键发生变化后,程序先停止上一个音符。如果新的卡片 ID 在 60–84 之间,就启动对应的 MIDI 音符。
当 CoCube 离开琴键区域时,卡片 ID 不在这个范围内,程序只会停止声音。最后用 last_key = key 记住当前状态。
10 毫秒的等待可以让程序保持灵敏,同时避免循环运行得过快。
4. 动手试一试
- 在屏幕上显示当前的
key,观察每个琴键对应的编号。 - 尝试记录 CoCube 经过的琴键,并让它自动重放刚才的旋律。