当前您在:主页 > F人生活 >动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子
动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子
分类:F人生活 热度: 657℃

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

设计概念中,需使用 10KΩ 的电位器, 并配合 Arduino UNO 底板来製作一个「图像拍子机」。

按一般操作旋钮的习惯,顺时针转动电位器顺时针增大讯号,逆时针转动是减少讯号,故此在下面 10KΩ 电位器图片中,左边接脚和右边接脚会分别接驳到 Arduino 电脑版的 GND 和 5V 位置,中间的接脚是讯号输出,就可以製造出顺时针旋转时,中间接脚与左边接脚 GND 的电阻值会变大,电压输出亦会同样增加的效果。

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

电位器和 Arduino UNO 接驳方式。

Arduino 的类比数码转换器

Arduino 内置了类比数码转换器( Analog to Digital Converter, ADC ),在 Arduino Uno 底板中,可使用的类比接口为 A0 到 A5 输入,可读取 0 到 5V 的电压输入,解析度为 10 个位元,总共有 1,024 个不同的数值,读取到的值是由 0 到 1,023 。

按照下列的电路图,将电位器的三个接口,连接到 Arduino 的 GND 、 5V 及 A0 :

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

按着上图的线路接驳,就可以把电位器作为拍子机的输入,并利用 Arduino 的 A0 类比接口读取电压变化,并将数据转换为不同速度的节拍。

撰写图像节拍器程式

接着是利用编程软件 mBlock ,来建立图像拍子机。首先要认识 mBlock 有「弹奏鼓声」的方块,其中第一个数字是代表不同的乐器,例如 1 是代表军鼓,第二个数字是「拍子」的意思,即是等待多少时间(秒),便会打一
下鼓,例如在下面的方块中,便会每 0.5 秒打一下鼓,同样道理,设定「拍」为 2 时,表示每 2 秒打一下鼓。

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

于声音里面找出「声音」里面找出「播放声音」方块。

量度音乐速度 BPM

音乐速度可以每分钟多少拍( Beats per minute , BPM )作量度单位,很多时是表示一个特定的音符,例如四分音符,在一分钟内出现的次数。当形容一首歌的速度为 120BPM 。那即是说在这首歌中,每分钟有 120 个四分音符,当然 BPM 的数值越大,音乐速度便越高。

因此,如果想製造出 BPM 为 120 的拍子时,「弹奏鼓声」方块的「拍子」设定就是 60 / 120 = 0.5 (因为一分钟有 60 秒),即是每半秒製造出一下鼓声。

当明白到 BPM 和音乐速度的关係后,就可以继续编写程式,把电位器作为这个拍子机的输入,并且控制拍子的速度。

参考一般市面上机械式拍子机的速度範围,我们先定下拍子机的最高和最低的节拍速度,分别是 40 ( Grave )和 208 ( Prestissimo ),因此会设计由左至右转动电位器时,音乐速度可以从 40 调节到 208 。刚才介绍了 Arduino 的类比接口为 A0 ,可读取到的值是由 0 到 1,023 ,即时说,我们要将 0 至 1,023 这个範围的数值,转换至 40 至 208 这个範围的数值,因此设计了以下这个数学函式:

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

在上述公式中的为拍子速度 BPM , x 为 A0 类比接口读取得到的数值。

在 mBlock 程式中,建立数学函式的方法可参照下图。为简化拍子机的製作,就会产生整数 BPM 速度的拍子,故此于下列的函式中,我们加了一个四捨五入的处理,令到计算出来的 BPM 的数值是一个整数,而不是有小数点后的数字。

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

设计上用 Arduino UNO ,若过往 mBlock 未曾安装,就需要在「控制器」勾选。

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

现在接机械人模组就会出现 Arduino 相关方块;然后于「运算」里将相关方块组合拉出及填写数字。

动手做 STEM 设计拍子机(三)动手做 STEM 设计拍子

图中就是拍子机的组合方块。

下期待续……

上一篇: 下一篇:
相关文章

最新文章

随机精彩图文