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

自制一组树莓派驱动的机器鼓

Cherry

喜欢

4481
浏览
3
喜欢

> 更多图片

项目状态:已完成
开放度:公开
所属分类:手工
发布时间:2019-06-03
最近更新:2019-06-10

详细说明

每当夜深人静孤枕难眠的时候你想干些啥?不妨和我一样制造一支敲击乐队,抄起尘封多年的尤克里里,来给楼上玩皮球的熊孩子助助兴吧!

大家可以先看一段视频:
https://v.qq.com/x/page/d0876v24tz8.html

下面的教程中我将详细讲解它是如何运转的。这里使用很多生活用品,比如:罐头、木勺子、钢琴锤、瓶盖和鱼网等。互动性很强。当然,你在搭建自己的项目时,你可以随意发挥。


这里有两种办法来控制:
1、基于浏览器的步骤序列,被我称为:PiBeat。它可以让你可以通过树莓派或同一网络上的任何其他设备(手机,平板或计算机)以交互方式控制你的机器鼓。稍后我会在树莓派上安装它。在这里可以预览:
http://pibeat.banjowise.com/

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

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

链接表


文件库

pibeat-master.zip
[123620 Bytes at 2019-06-07, 15 次下载]



教程

组件清单
  • 树莓派(Raspberry Pi) × 1
  • 5V 八路道继电器 × 1
  • 母对母跳线 × 10
  • 3 AMP 接线端子 × 2
  • 12V 10A 电源 × 1
  • 12V 2A 电磁阀 × 8
  • 1N5401 整流二极管 × 8
  • 0.5mm宽 50cm 长电缆 × 1
  • 剥线钳 × 1
  • 老虎钳 × 1
  • 3mm 平头螺丝刀 × 1
  • 十字头螺丝刀 × 1

材料清单



树莓派(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

将树莓派连接到继电器


1、树莓派上引脚提供的最大电压为 5v。树莓派直接为 5v 电磁阀供电,不会影响机器鼓的效果。因此安装继电器的作用是以 GPIO 较低电压驱动更高电压的电路(本项目中包含一个 12v 电磁阀的电路)。

2、继电器有八个通道,可以独立的开、关八个电磁阀。每个通道包含四个连接器,其中三个在高压电路中使用,稍后会看到。剩下一个连接到低压电路的 IN 引脚上。当树莓派的 GPIO 引脚发送 5V 到给定通道 IN 引脚上时,继电器将连接到相应的 12v 电路。

3、在继电器的低压侧,还有一个 GND(接地)引脚,需要与树莓派共地,以及一个 VCC 引脚相连,电源连接到树莓派的 5v 电源。

4、关闭树莓派后,按照图表用跳线将继电器与树莓派相连。

让它鼓动起来


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

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

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

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

python3 array-sequencer.py

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

准备正极端子电路

本项目要为八个电磁阀供电,我将创建一个并联电路。如图,你可以看到一个完整的 12v 电路图。

1、使用接线端子固定电线,你可以选择使用面包板或洞洞板。
2、将所有电磁阀和每个电磁阀的二极管(后面的二极管会更多)连接到电源的一根正极线上。
3、使用切割器,切割一对八块的接线端子,切割将两块连接在一起的塑料。但请注意不要切到任何金属。
4、将所有终端连接到端子的一侧。切割七根约 35mm 长的红线,然后每根线的两端剔除约 5mm 的绝缘线皮。

5、以菊花链连接的方式将所有端子沿着端子的一侧连接在一起,使用螺钉将电线固定到位。第一个和最后一个螺丝只有一根电线,其余的则有两根电线。

安装电磁阀和二极管


由于电磁阀带有电磁铁,建议使用二极管来保护电路以免受到反激(请点击此处查看详情)。因此每个电磁阀都配有二极管,用于保护继电器。

在上个步骤中所有端子都连接到端子的一侧,现在从第一个孔开始。插入电磁阀的一根电线,再将二极管的一端添加到同一个孔中。
由于二极管只能单向电流流动,因此请确保二极管上的银条朝向端子。 用螺丝固定到位。剩余的七个孔做同样的处理。

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


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

创建继电器电路

1、准备八根约 70mm 长的黑线,每根电线末端剥离约 5mm。

2、将每根电线连接到负极端子上剩下的八个连接器上。

串接继电器的 COM 端

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

4、将继电器上所有 COM 触点(每三个为一组,中间的点为 COM 触点)连接在一起。第一个和最后一个将只有一根电线,其余有两根电线。

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


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

连接 12v 电源适配器


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

动起来

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

python3 array-sequencer.py

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

编辑 array-sequencer.py


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

安装鼓的音序器

下面是非常有趣的艺术创作部分。
1、将 sequencer 连接到树莓上。这里有一个 Web 界面,让 Python 通过 web sockets 去触发 GPIO 引脚。


2、源代码在项目文件库中可下载到。
https://make.quwj.com/project/122
假如你按照教程中的连线方式进行操作,就可以下载并运行预编译版本。打开树莓派上的终端,然后运行以下命令:

# 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、点击播放按钮,你的机器鼓应该开始播放。调试音序器直到达到你的标准。

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

制作机器鼓及底部盒子


这一步才是该项目的灵魂部分,也是机器鼓是否有趣的关键所在。你可以赋予它不一样的意义。
我使用了许多的生活用品,比如啤酒瓶,罐头,摇瓶,瓶盖,渔网,台钟,鳄鱼响板和勺子等。我使用木制的龙头将台钟固定到位,我的金属杆可以转动并将勺子固定到位。






每个鼓都是一个独立的组件,如果不喜欢可以随时的替换。
电磁阀带有螺栓孔,需要 M3 螺栓固定。提前做好钻孔标记,确保固定到位。
我使用 6mm 的中密度纤维板制作鼓,然后用胶水或螺丝固定在一起。
罐头和啤酒瓶上的锤子是用来烘托气氛的,其实电磁阀的敲击声已经足够了,这些是在视觉上增添乐趣。

底部盒子部分

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

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