Skip to content

第7讲 用 Pd+micro:bit 制作电子乐器

本讲目标

组合 Pd 与 micro:bit 的传感器,制作简单的电子乐器。目标是运用至今学过的 Pd 声音处理与 micro:bit 传感器联动,做出实际「可以演奏」的乐器。

在这一讲中,我们制作以下 4 种电子乐器。

  • 使用加速度传感器的手铃
  • 使用声音传感器的强风效果
  • 使用压力传感器的鼓
  • 【参考】使用加速度传感器再现波浪

用加速度传感器制作手铃

使用 micro:bit 的加速度传感器,制作摇动机身就会发声的手铃。

加速度传感器数值的获取方法

micro:bit 内置了 3 轴(X, Y, Z)加速度传感器。摇动或倾斜机身时,各轴的数值就会变化。

  • X轴: 左右的倾斜
  • Y轴: 前后的倾斜
  • Z轴: 上下的运动(重力方向)

要检测摇动的动作,就关注加速度的变化量(尤其是 Z 轴或 X 轴)。

从摇动的检测到声音的播放

实现手铃的基本流程如下。

  1. 从 micro:bit 接收加速度传感器的数值
  2. 当数值的变化量超过一定阈值时,判定为「摇动了」
  3. 检测到摇动后,播放铃声的音频文件

阈值的调整

摇动的灵敏度用阈值来调整。数值太小的话,稍微一动就会有反应;太大的话,不用力摇就不会有反应。请一边实际尝试,一边找出合适的数值。

抖动(chattering)对策

如果一次摇动被检测到多次,请用 else/deltimer 加入在一定时间内防止重复检测的机制(抖动对策)。

补丁示例

手铃


用声音传感器吹出强风

使用 micro:bit 的声音传感器(麦克风),通过吹气来控制像风一样的噪声音。

声音传感器的原理

micro:bit v2 搭载了内置麦克风。把麦克风检测到的声音大小(音量电平)发送给 Pd,就能进行与输入强度相应的控制。

  • 安静的环境下数值较小
  • 吹气或发出很大的声音时数值会变大

用气息控制噪声

风的声音可以用噪声(杂音)来再现。根据气息的强度改变噪声的音量和滤波器,就能营造出仿佛有风吹过的效果。

  1. 从 micro:bit 的声音传感器获取音量的数值
  2. 把数值映射到 noise~ 对象的音量
  3. 使用 bp~(带通滤波器)等,加工成像风一样的音色
  4. 根据气息的强度改变音量与滤波器的频率

让风声更自然的诀窍

  • 让滤波器的频率略微随机地摇摆,风声会更自然
  • 使用 else/lowpass 让数值的变化变得平滑,可以防止音量的急剧变化

补丁示例

强风


用压力传感器敲鼓

把外部的压力传感器(感压传感器)连接到 micro:bit,以与敲击力度相应的音量发出鼓声。

压力传感器的连接方法

把压力传感器(FSR: Force Sensitive Resistor)连接到 micro:bit 的模拟输入端子。

  1. 把压力传感器的一端连接到 micro:bit 的端子(例: P0)
  2. 把另一端连接到 GND
  3. 根据需要使用上拉电阻

接线的注意事项

  • 请先确认要连接的端子(P0, P1, P2 等)再编写程序
  • 请注意接线,以免短路

强弱的表现

压力传感器的数值会随敲击的力度而变化。把这个数值映射到音量,就可以实现有强弱的演奏。

  1. 从 micro:bit 获取压力传感器的数值
  2. 超过一定阈值时判定为「敲击了」
  3. 把压力的数值转换为音量(0〜1 的范围)
  4. 用转换后的数值控制鼓音源的音量

提升表现力的方法

  • 把超过阈值瞬间的数值作为峰值获取,就能反映敲击瞬间的力度
  • 使用多个压力传感器的话,就能演奏底鼓・军鼓・踩镲等多个鼓件

补丁示例

压力鼓


【参考】用加速度传感器再现波浪

使用 else/plate.rev.m~ 对象,制作随加速度传感器的运动而变化的、如波浪般的混响效果。

关于 plate.rev.m~

else/plate.rev.m~ 是模拟板式混响(plate reverb)的对象。它会产生模仿金属板振动的残响效果。把加速度传感器的数值与这个混响联动,就能做出随晃动而变化的、如波浪般的声音效果。

实现的流程

  1. 获取 micro:bit 加速度传感器(X轴・Y轴)的数值
  2. 把加速度的数值映射到 else/plate.rev.m~ 的参数(残响时间、湿声比例等)
  3. 对输入音源(噪声或正弦波等)应用混响
  4. 倾斜或晃动机身,就能得到如波浪般变化的残响效果
参数的调整要点
  • 让残响时间(decay)与加速度的大小联动,晃动越大残响就越长
  • 让湿/干(wet/dry)的比例与倾斜联动,混响的深浅就会随倾斜而变化
  • 输入使用噪声的话,就会变成海浪一样的声音

补丁示例

波浪


面向作品制作

从下一讲开始,我们将组合至今学过的技术,制作原创的声音艺术作品。

请就以下几点思考一下。

  • 想使用哪种传感器: 加速度、亮度、声音、压力、按钮等
  • 想发出什么样的声音: 乐器音、环境音、电子音、人声加工等
  • 想做成什么样的交互: 摇动、倾斜、敲击、吹气、触摸等
  • 想提供什么样的体验: 演奏的乐趣、感受环境的变化、协作创造声音等

整理创意的方法

试着在笔记本或备忘录上写出以下 3 点。

  1. 想使用的传感器(多个也可以)
  2. 想发出的声音的意象(用文字描述或参考音源)
  3. 操作方式的意象(身体的动作)

把这些组合起来,构思属于你自己的电子乐器或声音艺术作品的创意吧。