用树莓派制造一支敲击乐队

b333579fd45043da2db15fc37c318c23,w_800.jpg
MAKER:banjowise/译:趣无尽 Cherry(转载请注明出处)
每当夜深人静孤枕难眠的时候你想干些啥?不妨和我一样制造一支敲击乐队,抄起尘封多年的尤克里里,来给楼上玩皮球的熊孩子助助兴吧!

大家可以先看一段视频:

 

下面的教程中我将详细讲解它是如何运转的。这里使用很多生活用品,比如:罐头、木勺子、钢琴锤、瓶盖和鱼网等。互动性很强。当然,你在搭建自己的项目时,你可以随意发挥。
03c0314837eaccdd7ebf2e581dd5cd7d,w_800.jpg
82c43c1ef74c30e177c93331d2fe5e02,w_800.jpg
这里有两种办法来控制:
1、基于浏览器的步骤序列,被我称为:PiBeat。它可以让你可以通过树莓派或同一网络上的任何其他设备(手机,平板或计算机)以交互方式控制你的机器鼓。稍后我会在树莓派上安装它。在这里可以预览:
http://pibeat.banjowise.com/

代码在 GitHub 提供下载:
https://github.com/mnkii/pibeat

2、编码击鼓模式的 Python 脚本。你可以创作自己的乐谱,甚至来配合你的吉他。多才多艺的你还不快来组建自己的敲击乐队?

材料清单

aeec93dd56d0952c5b1dde4a6e9e2b67,w_800.jpg
3a94c656be10e00e2cc248dd858c0131,w_800.jpg
树莓派(Raspberry Pi)x1
5V 八路继电器x1
母对母跳线x10
3 AMP 接线端子x2
12V 10A 电源x1
12V 2A 电磁阀x8
1N5401 整流二极管x8
0.5mm 宽 50cm 长电缆×1
剥线钳×1
老虎钳×1
3mm 平头螺丝刀×1
十字头螺丝刀×1

将树莓派连接到继电器

f9caaccfc39986465f8080792527391b,w_800.jpg
1、树莓派上引脚提供的最大电压为 5v。树莓派直接为 5v 电磁阀供电,不会影响机器鼓的效果。因此安装继电器的作用是以 GPIO 较低电压驱动更高电压的电路(本项目中包含一个 12v 电磁阀的电路)。
5f1edbd5ea43d9664bff396c6d8fc9af,w_800.jpg
2、继电器有八个通道,可以独立的开、关八个电磁阀。每个通道包含四个连接器,其中三个在高压电路中使用,稍后会看到。剩下一个连接到低压电路的 IN 引脚上。当树莓派的 GPIO 引脚发送 5V 到给定通道 IN 引脚上时,继电器将连接到相应的 12v 电路。
a886bb84da243e72b53b14449f5d74f3,w_800.jpg
3、在继电器的低压侧,还有一个 GND(接地)引脚,需要与树莓派共地,以及一个 VCC 引脚相连,电源连接到树莓派的 5v 电源。
d577b5f5cab9ed33aa6284800a2a3e50,w_800.jpg
4、关闭树莓派后,按照图表用跳线将继电器与树莓派相连。

让它鼓动起来

c0e03d8849d0e61c19bde66e6dfe5c65,w_800.jpg
在本步骤中,虽然它还不是一个成品,但可以通过继电器的控制尝试让鼓发出声音。
随后将介绍编写击鼓模式的 python 脚本,同时可以测试一下项目目前的状态。

点击此处查看脚本要点。
启动你的树莓派,在树莓派上打开一个终端并运行下载的脚本:

1
wget https://gist.githubusercontent.com/mnkii/8ab0d749c26379936c14e96cfaa92f7e/raw/array-sequencer.py

你也许想看看代码到底能达到什么效果,不如直接运行它:

1
python3 array-sequencer.py

如果一切运行正常,你可以听到继电器打开和关闭触点的声音以及相应通道上指示灯的闪烁。看一下脚本中的序列变量,了解是否一切正常。所有通道将会一起触发,然后每个通道将被单独触发。它会一直运行,直到你按 Ctrl+C 键后退出脚本。
在接下来步骤里,你最好关闭树莓派接线,避免发生短路。

准备正极端子电路

本项目要为八个电磁阀供电,我将创建一个并联电路。如图,你可以看到一个完整的 12v 电路图。
75eebc08484feb0ee894164197e37354,w_800.jpg
1、使用接线端子固定电线,你可以选择使用面包板或洞洞板。
2、将所有电磁阀和每个电磁阀的二极管(后面的二极管会更多)连接到电源的一根正极线上。
3、使用切割器,切割一对八块的接线端子,切割将两块连接在一起的塑料。但请注意不要切到任何金属。
4、将所有终端连接到端子的一侧。切割七根约 35mm 长的红线,然后每根线的两端剔除约 5mm 的绝缘线皮。
622d461af84de3a9c54c7d72e0968259,w_800.jpg
5、以菊花链连接的方式将所有端子沿着端子的一侧连接在一起,使用螺钉将电线固定到位。第一个和最后一个螺丝只有一根电线,其余的则有两根电线。
3583a876605f6d62f177fab970055c49,w_800.jpg

安装电磁阀和二极管

2969f3b4ab7146cbb2bf8cb66ce8ab92,w_800.jpg
由于电磁阀带有电磁铁,建议使用二极管来保护电路以免受到反激(请点击此处查看详情)。因此每个电磁阀都配有二极管,用于保护继电器。
1c9bfbe00a619d48dd77ed23ed69c2c8,w_800.jpg
在上个步骤中所有端子都连接到端子的一侧,现在从第一个孔开始。插入电磁阀的一根电线,再将二极管的一端添加到同一个孔中。
由于二极管只能单向电流流动,因此请确保二极管上的银条朝向端子。 用螺丝固定到位。剩余的七个孔做同样的处理。

将负极端子连接电磁阀和二极管

dd5b9a00756a7ea9ae71fbd83b4bd256,w_800.jpg
与准备正极端子一样,在这个步骤中将制作一条负极端子,同样也是八对端子。如图所示,将二极管和电磁阀连接到端子,与正极对齐。

创建继电器电路

1、准备八根约 70mm 长的黑线,每根电线末端剥离约 5mm。
ae88611b7f2ab7b21e3a0caea68a74ba,w_800.jpg
2、将每根电线连接到负极端子上剩下的八个连接器上。
80172be75fc18a19706dd3dd2e911012,w_800.jpg

串接继电器的 COM 端

1、用跳线将继电器与树莓派连接到一侧。每个通道有三个触点,从左到右分别称为常开 NO,公共端 COM 和常闭 NC。
2、电磁阀在通道 IN 引脚上有高电压时打开,因此要使用常开触点。如果是相反的情况就使用常闭触点,电磁阀将一直打开,直到 IN 引脚上发出高电压。最后,还将使用公共触点来完成电路。
3、由于这是一个并联电路,使用菊花链连接的方式连接继电器上的所有常见触点。切割七条约为 60mm 长的黑线,每个电线末端剥离约 5mm。
ae88611b7f2ab7b21e3a0caea68a74ba,w_800.jpg
4、将继电器上所有 COM 触点(每三个为一组,中间的点为 COM 触点)连接在一起。第一个和最后一个将只有一根电线,其余有两根电线。
141f30c8ec75c325ac3baaa46ddda3b8,w_800.jpg

完成继电器剩余部分的连接

d8a9b97d8cc97a74e39ca6a92fc9521c,w_800.jpg
现在将继电器连接到电路的其他部分。将负极端子黑线的未端连接到继电器上的第一个或最后一个常开 NO 触点。其他七根做同样的处理,再将每根导线连接到下一根 NO 触点。

连接 12v 电源适配器

4ee79f389544dac61bea8262b64c1bee,w_800.jpg
1、为避免任何电路问题,请关闭电源并拔下电源插头。
如图所示,本项目的电源 12v 插头已拔下。
假如你的电源有插头,你可以购买与之相匹配的母头直流连接器,或者切断插头并剥离出两根电线,红色为正极,白色为负极。
2、将电源的正极线连接到正极端子上的第一个触点,将负极连接到继电器上的第一个公共触点。我使用大约长为 150mm 的红线和黑线并剥除末端的电线皮,使用端子连接起来。

动起来

1、关闭电源,快速检查一下所有的连接。一切准备就绪后再次启动树莓派。再次运行脚本:

1
python3 array-sequencer.py

2、如果电磁阀没有移动,但是可以听到继电器的点击,和前面步骤中一样的亮灯。终止脚本 Ctrl+C,然后等待。
3、打开电源供,再次运行脚本,所有的电磁阀都动起来了。

编辑 array-sequencer.py

7fb0220a591ab57636bee0f5c54858a9,w_800.jpg
花一些时间编辑 array-sequencer.py 文件。 尝试执行以下操作,每次更改后重新运行脚本并查看效果:
1、将 bpm 变量从 120 替换成其他数值,例如 200,以增加速度。
2、在序列变量中,将某些 0 替换成 1,以增加敲击的物品。
3、复制序列变量中右方括号之前的最后三行,以循环添加更多节拍。

安装鼓的音序器

下面是非常有趣的艺术创作部分。
1、将 sequencer 连接到树莓上。这里有一个 Web 界面,让 Python 通过 web sockets 去触发 GPIO 引脚。
1fe3987b017a50db985ba957ef240b38,w_800.jpg
82c43c1ef74c30e177c93331d2fe5e02,w_800.jpg
2、源代码在项目文件库中可下载到。
https://make.quwj.com/project/122
假如你按照教程中的连线方式进行操作,就可以下载并运行预编译版本。打开树莓派上的终端,然后运行以下命令:

1
2
3
4
5
6
7
8
9
10
11
# Create and navigate into a directory for our project
mkdir pibeat
cd pibeat
# Download the source code
wget http: //pibeat .banjowise.com /release/pibeat . tar .gz
# Extract the files
tar -zxf pibeat. tar .gz
# Install the python requirements
pip3 install -r requirements.txt
# Run the web server
python3 server.py

3、在输出中,如果一切正常,你可以看到以下输出:

======== Running on <a href="http://0.0.0.0:8080" rel="nofollow">http://0.0.0.0:8080 </a> ========
(Press CTRL+C to quit)

4、找到树莓派的 IP 地址。打开 Web 浏览器,然后在地址栏中输入http://树莓派IP:8080/index.html
此时 sequencer 将会出现。
5、点击播放按钮,你的机器鼓应该开始播放。调试音序器直到达到你的标准。

只要你的树莓派有网络,你就可以从任何设备访问树莓派的网络界面。可以在手机或平板电脑上尝试。

制作机器鼓及底部盒子

2a7c0f1e53650927d5529ce0d19b6e47,w_800.jpg
这一步才是该项目的灵魂部分,也是机器鼓是否有趣的关键所在。你可以赋予它不一样的意义。
我使用了许多的生活用品,比如啤酒瓶,罐头,摇瓶,瓶盖,渔网,台钟,鳄鱼响板和勺子等。我使用木制的龙头将台钟固定到位,我的金属杆可以转动并将勺子固定到位。
a0778678205da62d0ffaff80e163bee1,w_800.jpg
eb12a867d7f0bf0b822977642ba96897,w_800.jpg
5ddfa3976e619f52cec2c60be583ebbf,w_800.jpg
3ecc88f9471204d5bc4aa386abe913f2,w_800.jpg
726119d0214a19a50f209b83d08248b5,w_800.jpg
d586de5233293d498fddebaf1b64c0bc,w_800.jpg
每个鼓都是一个独立的组件,如果不喜欢可以随时的替换。
电磁阀带有螺栓孔,需要 M3 螺栓固定。提前做好钻孔标记,确保固定到位。
我使用 6mm 的中密度纤维板制作鼓,然后用胶水或螺丝固定在一起。
罐头和啤酒瓶上的锤子是用来烘托气氛的,其实电磁阀的敲击声已经足够了,这些是在视觉上增添乐趣。

底部盒子部分
50c65f8085bd63d2685770e26b9b4938,w_800.jpg
底部盒子部分非常的简单,由 3.6mm 的胶合板、18mm 的中密度纤维板和一些木条制成。底座的前面使用的是薄的胶合板,当勺子敲打时就会产生共鸣。底座部分不仅可以容纳所有的电子设备还可以作为鼓的平台。制作步骤如下:
1、切割两块相同尺寸的中密度纤维板制作顶部和底部。
2、切割四块 34mmx12mm 的木板,要短于盒子的宽度。
3、将四块切割好的木板与两块中密度纤维板形成盒子的形状。将木块放在距离盒子顶部和底部约 1cm 处。
4、再切割两块胶合板,使其与盒子的宽度和高度相匹配。将其固定到到盒子的正面和背面。
5、切割一块胶合板放入盒内,放在底部可以固定电子元件。
6、切割另一块胶合板将鼓连起来。这是一块平台顶部的木板。
7、在底部平台附近钻一个孔,将电源线穿过。
16fa7d0c90e11bd7722c4b7ddc7e4102,w_800.jpg
451d6d1bbe585b28116f1074e3790244,w_800.jpg

最后使用丙烯酸底漆涂上自己喜欢的颜色。一切完工后就可以开心的玩耍了。
b333579fd45043da2db15fc37c318c23,w_800.jpg
03c0314837eaccdd7ebf2e581dd5cd7d,w_800.jpg

https://www.quwj.com/2019/06/10/a-raspberry-pi-powered-junk-drum-machine.html

转载于:https://my.oschina.net/u/4047409/blog/3061588

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值