×

玩转开源数字乐器克拉沃克斯

消耗积分:2 | 格式:zip | 大小:0.61 MB | 2022-11-16

王婷

分享资料个

描述

一种新型仪器

Kravox 是隆德大学(瑞典)的一个研究项目的一部分,旨在为数字乐器控制器提供传统机械乐器的感觉。

现在,每个人都可以使用 Kravox 并作为一个音乐实验平台,因此创建了这个详细的教程,以使尽可能多的人能够使用这个令人兴奋的新乐器!

如何玩克拉沃克斯

玩 Kravox 非常简单。想象一下,您正在玩​​扫帚等普通物体,您在空间中触摸和移动它的方式控制着声音的产生方式。在此视频中查看并聆听如何播放 Kravox

 
poYBAGNy8piAeyHGAAVHRv2KVr8790.jpg
 

 

什么是克拉沃斯?

Kravox 是一种跨平台兼容的开源数字乐器,由三个组件组成——控制器、接收器和软件。

 
poYBAGNy8pyAJS49AAYX3C5Ez58418.jpg
 

控制器/秒

最多可以连接三个无线控制器设备。每个控制器处理来自数字 MPU-6050 陀螺仪的方向和加速度数据以及来自连接到 Arduino Nano 的两个 MPR121 触摸传感器板的触摸数据。控制器通过 nRF24L01 无线电收发器将数据发送到接收器设备。

如果要使用多个控制器,则需要为第二个和第三个控制器分配单独的地址。有关分配地址的更多信息,请参阅控制器代码的声明/NRF24L01 部分中的信息。

接收者

接收器通过 USB 将从控制器接收到的数据与从多个电位器收集的数据一起传送到连接的计算机。提供的接收器设备代码允许与多达三个控制器进行通信,但也可以仅与一两个控制器一起使用而无需调整。

软件

来自接收器的数据在一个用Pure Data Vanilla编写的程序中处理,该程序输出声音。

我们将在本教程中构建的内容 - 分步指南

 
 

Kravox 的美妙之处在于它的形状、声音和演奏方式都可以调整。这让我有机会为本教程设计一个易于复制的 Kravox 版本。

(如果您好奇:在我的 youtube 频道上,您还可以找到我如何制作更大版本的 Kravox 的延时摄影)

 

上面的视频和本教程都将向您展示如何使用易于获得的电子元件和纸板构建功能齐全的控制器和接收器的所有必要步骤。

第 1 部分 – 收集组件和工具

您将需要以下组件来构建 Kravox 控制器 + 接收站:

 
pYYBAGNy8qKAIXLaAAPLQ6poodc252.jpg
 

{1x} 50*24 孔(最小尺寸)穿孔板,{5x} 40 针母头,{5x} 40 针公头,{5x} 10 千欧电位器和旋钮,{3x} 蓝色 5mm 标准LED,{3x} 150 欧姆电阻器,{2x} 10 微法拉电容器,{2x} 100 纳法拉电容器,{2x} NRF24L01 无线电收发器,{2x} Arduino nanos,{3x} 220 欧姆电阻器,{2x} MPR121 触摸传感器板、{1x} GY-521 MPU 6050 数字陀螺仪、{2x} USB-A 到 USB-C 电缆、{1x} 4 米(最小)1 厘米宽的铜带、{1x} 移动电源、{2x } 7 米(最小)多种颜色的电线和可选的 {1x} 0、2 米 ø=3mm 收缩管。

此外,您需要工具来组装组件:

 
poYBAGNy8qqAZNwKAANONdDFOFg957.jpg
 

后来还有一些空纸板箱或类似物品:

 
pYYBAGNy8q2Afm79AAHqO5Ey7JM083.jpg
 

和胶水、胶枪、胶带、一个或多个夹子和橡皮筋来制作外壳:

 
pYYBAGNy8rCAVAraAAG82FGSs9g932.jpg
 

第 2 部分 - 制作控制器板

接下来我将从上面提到的部分逐步解释如何制作控制器电子设备

 
pYYBAGNy8reAAhxTAAdNZhZadJY737.png
 

如果有疑问,在哪里焊接电缆,您可以随时返回下面的电路图并检查组件是否连接正确,一旦您将 arduino 和传感器板连接到我们正在创建的电路板上。

 
poYBAGNy8rqAOBUgAAEZA1unvtM329.png
 

2.1

第一步是将穿孔板和母排针切割成合适的尺寸,并用一个小电容器和一个大电容器将它们组装在一起,这有助于提高无线电收发器的可靠性:

 
pYYBAGNy8r6AC6hBAAM0OrWMTSw125.png
 

用美工刀切割穿孔板:

 
poYBAGNy8seACNynAAMOWOBisvs903.png
 

用钢锯切割母针头(我把它们放在书本上,以便从桌面上调平):

 
pYYBAGNy8sqAfLuOAAI-DVX6RR8597.png
 

 

焊接在零件中。您已经可以连接彼此相邻的两个长母头的每个引脚对。对于剩余的接头,只需用一点焊料简单地连接它们就足够了——最好是根据电路图以后无论如何都没有连接的引脚。焊接电容时,注意10微法拉电解电容的极性(两者中较大的一个)。一侧会有条纹,通常还有一条较短的腿。那一侧需要接地。较小的 100nano-farad-capacitor 没有极化,可以以任何一种方式焊接。

 
poYBAGNy8s2AKVPCAADLK_o3riA244.png
 

 

结果应该类似于:

 
poYBAGNy8tGAGSTbAAA5lfTHeeY601.png
 

2.2

第二步是用限流电阻焊接两个 LED。

 
poYBAGNy8teABY0RAASnuxGnNKE869.png
 

注意LED的极性:它的一侧是扁平的,通常也会有一个较短的腿。该侧需要在步骤 2.3 中接地。我们现在将用青色电缆将另一端连接到插孔,Arduino 插针 D3 稍后将在插入时位于该插孔:

 
pYYBAGNy8tqAToxkAACi0SdRWcY388.png
 

2.3

接下来我们添加所有红色和蓝色电源线。红色用于 3.3 伏,蓝色用于接地 (GND)

 
pYYBAGNy8t-AMQKpAAR5jnExmfE930.png
 

结果应该类似于:

 
poYBAGNy8uaAAV8LAAC_hWHBF2Y175.png
 

2.4

在第四步中,棋盘上已经有点拥挤了。三个传感器板通过 I2C 协议(内部集成电路)进行通信。这意味着它们都可以连接到相同的两个 Arduino 引脚,因此我们在它们与 Arduino 引脚 A4 和 A5 之间焊接黄色和绿色电缆。我们还为陀螺仪的中断引脚连接添加了一条白色电缆。

 
pYYBAGNy8uyAPzYNAAW35N_ETwA360.png
 

完成后,电路板如下所示:

 
pYYBAGNy8vCAePVRAADDWPFbeUI218.png
 

2.5

无线电收发器通过 SPI 协议(串行外围接口)进行通信,这需要比 I2C 更多的连接,因此我们添加了黑色、灰色、棕色、紫色和橙色电缆:

 
poYBAGNy8vaADpQFAAaiGSmEBz0540.png
 

 

这就是你将得到的:

 
pYYBAGNy8vmATi7OAAC4vR2DqRs341.png
 

2.6

现在是准备组件的时候了。

 
poYBAGNy8vuAWTO0AAB7Hq65cSo697.png
 

如果没有预先焊接,除了在公排针上焊接外,还要特别注意触摸传感器板!来自中国的便宜型号的地址引脚硬连线到地,中间没有下拉电阻,所以你需要用美工刀物理地切断电路板底部的这个连接。在写入 ADD 的位置旁边的两个焊盘之间切割。我建议使用万用表检查之后焊盘之间是否没有连接:

 
pYYBAGNy8v6ADnTFAAEbooXizGs661.jpg
 

当所有组件的排针都焊接好并准备好触摸传感器板后,您可以将 Arduino Nano、陀螺仪、两个触摸传感器板和无线电收发器插入控制器板:

 
pYYBAGNy8wOANF84AAWcOnCsdyw357.png
 

(也许)完成的控制器板:

 
pYYBAGNy8waAT0HRAADMOReIfOE876.png
 

2.7

仔细检查后,如果一切都连接正确,下一步是将提供的 Kravox-Controller 代码(见附件)上传到 Arduino nano,但在这样做之前,您需要安装陀螺仪库,触摸传感器板和无线电收发器。如果您不熟悉 Arduino 库,请在此处了解如何安装它们

  • MPU-6050 陀螺仪需要 Jeff Rowberg 的库“I2Cdev.h”和“MPU6050_6Axis_MotionApps20.h”,可在此处下载
  • MPR121 触摸传感器板需要 Bare Conductive 的“MPR121.h”库,可在此处找到该库至少存在两个版本。确保安装 Bare Conductive 开发的版本,而不是 Adafruit 开发的版本。
  • NRF24L01 无线电收发器板需要 TMRh20 的库“nRF24L01.h”和“RF24.h”,可在此处下载请注意:至少还存在两个同名的库版本。确保安装由 TMRh20 开发的,而不是 maniacbug 开发的。

一旦安装了库,您就可以上传 Kravox-Controller 代码。如果您已经想检查控制器是否正常工作,您可以让它通过串行监视器从触摸传感器和陀螺仪输出数据为此,您需要在上传之前取消注释接收器代码的最后一部分:

 
pYYBAGNy8wqAfLJgAAJPQjGWzq4382.png
 

通过删除开头 ( /* ) 和结尾 ( */ ) 的注释标记,代码如下所示:

 
poYBAGNy8w-AcqX2AAJO_lysjcg785.png
 

上传具有该变体的代码后,打开串行监视器,并将其设置为 115200 的波特率(数据传输速度)。现在您应该能够看到来自传感器的数据,这些数据在您移动控制器板并触摸引脚时发生变化标记为 0 到 11 的 MPR121 板。

如果没有任何效果或者您只得到零,请仔细检查您的接线并将其与上面的电路图进行比较。如果您从串行监视器得到有趣的输出,请检查您是否已将其设置为正确的波特率。

2.8

将您的控制器板连接到您要使用的移动电源。

 
pYYBAGNy8xGAJC8PAACxjBRLD3M513.png
 

如果电路板(或更准确地说是移动电源)在一段时间后没有自动关闭,则您的控制器板已完成,您可以继续进行第 3 部分!否则执行步骤 2.9

2.9

原则上控制板已经完成,但是一些移动电源在连接到控制板几秒钟后会自动关闭,因为它消耗的能量非常少

作为一个肮脏的修复,我们可以在 Arduino 的 5V 和 GND 引脚之间并联三个 220 欧姆电阻。这些电阻器会消耗额外的能量并将其转化为热量,因此控制器消耗的电量足以让移动电源保持开启状态。不用担心:即使使用小型移动电源,它仍然可以连续工作数天而无需充电

移除 Arduino Nano 并焊接在电阻器中,如下所示:

 
poYBAGNy8xmAR3dfAAa1EJ9nZJ0820.png
 

所以董事会看起来像这样:

 
pYYBAGNy8xyAP5_cAADG1Rq3HJI742.png
 

在重新连接组件后,(肯定)完成的控制器板看起来像这样:

 
pYYBAGNy8x6ATx_TAADV4D-Xd4w778.png
 

 

 
poYBAGNy8yGAI4EXAADtVhQGKbc686.png
 

第 3 部分 - 制作接收板

在本教程的这一部分中,我将向您展示如何制作接收器板。该过程与制作控制器板非常相似

 
poYBAGNy8yeAeBLgAAGi2fFUz6c363.png
 

 

如果您想检查某条电缆应该连接在哪里,您可以参考此电路图:

 
poYBAGNy8yqASJtVAACDnPbAYUw643.png
 

3.1

第一步是再次切割穿孔板和母排针的尺寸,并将它们与一个小的和一个大的电容器组装在一起,这有助于提高无线电收发器的可靠性。最低的母排针故意留得比必要的长,因此您可以稍后将其用于其他项目,例如 Arduino 颗粒合成器。您可以将此步骤与步骤 2.1 进行比较以获取更多信息

 
pYYBAGNy8y6AHSmOAACd0oBdZ8c791.png
 

 

步骤 3.1 结束时的电路板照片:

 
pYYBAGNy8zKAGXtYAACE9xyaZaU737.jpg
 

3.2

接下来我们添加所有红色和蓝色电源线。红色用于 3.3 伏,蓝色用于接地 (GND)

 
poYBAGNy8zWAYr40AADen6RO60M094.png
 

 

它应该是这样的:

 
pYYBAGNy8zmACE1DAAB5fqBhGVE243.jpg
 

3.3

焊接 SPI 通信的电缆:

 
poYBAGNy8zyARbOeAAEEwC8zS0c304.png
 

 

 
pYYBAGNy80CALrFVAACunjzYq38711.png
 

 

 
poYBAGNy80KAO_DpAACPE8hr0AA247.jpg
 

3.4

连接组件:

 
pYYBAGNy80WAf6rTAAFOS7hvYCQ100.png
 

 

 
poYBAGNy80eAF7sPAACRTRDbS5s031.jpg
 

接收器板现在已经完成,但是在我们将附件中的 Kravox-Receiver 代码上传到 Arduino Nano 之前,我们首先需要为接收器创建一个接口

第 4 部分 - 制作接收器接口

在本教程的这一部分中,我将向您展示如何使用 4 个电位器和一个 LED 为接收器制作接口。接口接线如下:

 
poYBAGNy80qAI8W5AACr85IVHgg739.png
 

并将像这样插入接收器板:

 

 
poYBAGNy806AU6aOAAGeZhugqGQ369.png
 

像这样进行:首先取一根由 8 根电缆组成的电缆束,并将其中的 5 根焊接到电位器的中间引脚上。最好使用相同的颜色以免混淆:

 
pYYBAGNy81GAIxNQAACzJ8rcM0Y728.jpg
 

接下来,切割一个 2 * 17 孔宽的穿孔板和一个 17 针公针头到尺寸

 
pYYBAGNy81OATpdoAADRTxqF2Lw202.jpg
 

将电缆和排针连接到板上。请注意上面的电路图,以确保将电缆连接在正确的位置

 
poYBAGNy81aAS7zkAABmLED1puc697.jpg
 

现在用蓝色接地电缆连接所有电位器的一侧(并且可能使用比我稍长的电缆)。还要添加带有限流 150 欧姆电阻的蓝色 LED。再次注意 LED 的极性(与步骤 2.2 相比)

 
pYYBAGNy81iAO5GvAADSXky1x44804.jpg
 

接下来用绿色的 5V 连接电缆连接所有电位器的另一侧(并且可能使用比我稍长的电缆)。

 
pYYBAGNy81uARJenAADiHqLuAg8687.jpg
 

完成的界面应该类似于这个......

 
poYBAGNy812AXsaMAAB19lXeJEc538.jpg
 

...并且可以像这样插入接收器板:

 
poYBAGNy82CAJu1xAAC-ghZ00so831.jpg
 

现在您还可以将 Kravox 接收器代码上传到接收器的 Arduino Nano。

如果您想查看它是否正在工作并从控制器接收数据,您再次需要在上传之前对代码进行轻微调整。默认情况下,接收器将以纯数据可以解释的格式输出其数据,但不会在串行监视器上显示有用的信息。但是,您可以通过注释(在前面添加 //)以下行来更改代码中的这种行为:

#define WRITE_AS_BYTES

并取消注释(删除前面的//)说:

// #define PRINT_VIA_SERIAL_MONITOR

 

所以你把这个:

 
pYYBAGNy82OASQuSAACZ_ZzX5Os330.png
 

进入:

 
pYYBAGNy82aAJB5SAAD3_falUsA262.png
 

上传更改后的代码后,您将能够看到来自控制器的数据和串行监视器上的 4 个电位器,正如我在此视频中演示的那样:

 

第 5 部分 - 制作控制器接口 + 外壳

与接收器一样,控制器也有一个界面——我们将使用铜带制作的触摸界面:

 
pYYBAGNy82qABQYXAACowqBhJis758.png
 

 

它将像这样连接到控制器板:

 
poYBAGNy822AS1ObAAE8RLDuaVs127.png
 

由于我们直接希望将触摸界面连接到控制器的外壳,因此您手头应该已经准备好制作外壳的(非导电)材料。我用了装保鲜膜和塑料袋的空盒子:

 
pYYBAGNy83CATxJsAAI2-2Lngsg547.png
 

通过标记要连接触摸电极的位置开始制作控制器界面。请注意,它们不得相互接触或重叠:

 
pYYBAGNy83SABZsJAAH_iBp-z90839.jpg
 

接下来,将 24 个铜电极切割成合适的尺寸……

 
pYYBAGNy83eAQXtlAAG11TrZ07c845.jpg
 

...并将它们连接到外壳:

 
poYBAGNy83qATdkdAAHsYWh2Khw920.jpg
 

现在我们可以制作插头了。为此,切割一个 2 * 24 孔宽的穿孔板和一个 24 针公头以调整尺寸并将 24 根电缆焊接到其上。中间的电缆应至少有 10 厘米长。在外部添加电极的宽度以及每根电缆之间的间距。例如,如果您使用 1 厘米宽的铜带并在电极之间留出 3 毫米,则电缆长度应增加 1.3 厘米,例如 10 / 11.3 / 12.6 / 13.9 / 15.2...

 
pYYBAGNy83yAPKulAAE59J81sNg588.jpg
 

并将电缆的另一端焊接到电极上,如下所示:

 
poYBAGNy84CAC-i2AAS2T2IhBE8329.jpg
 

通过用非导电胶带覆盖铜表面来完成接口:

 
poYBAGNy84OAND3dAAKg3wN8I_Q973.jpg
 

接下来将接口折叠成一个盒子并粘上它:

 
poYBAGNy84WActaQAAEIgkhV6rw634.jpg
 

将一个较小的盒子粘到我们在上一步中制作的盒子上。稍后它将包含移动电源:

 
poYBAGNy84iATXRBAADLiVyXHf4678.jpg
 

用一些剩余的纸板或其他稍厚的非导电材料覆盖控制器板的背面:

 
pYYBAGNy84uALA_jAADMgCnXCMw636.jpg
 

为 LED 切出孔并将它们和移动电源(图中的黄色物体)粘合到位。确保以您仍然可以插入和移除 USB 电缆的方式放置移动电源,因为这是您打开和关闭控制器的方式。还将触摸界面连接到控制器板并将其放入盒子中。它很可能不会移动太多,所以你不需要把它粘进去。

 
poYBAGNy846ALvRLAAEpw8-HFzI951.png
 

在两个盒子的连接处为 USB-A 到 USB-C 电缆做一个切口,将其拉过并将其连接到 Arduino Nano:

 
pYYBAGNy85CABnrvAAEXp-XyZ0s349.jpg
 

现在控制器完成了!

 
poYBAGNy85iAW36kAAfk8oE3gk8927.png
 

您可以用一些橡皮筋将其关闭。如果以后在没有触摸时传感器识别触摸有问题,请尝试在触摸感应外壳和电路板之间放置一些非导电材料,如保鲜膜或类似的东西,以及弯曲的电缆。当外壳的触摸敏感部分不接触您的手或其他任何东西时,请确保连接移动电源。有关详细信息,请参阅第 7 部分。

 
pYYBAGNy856AVN8gAAkE8H9VJX8842.png
 

 

第 6 部分 - 制作接收器外壳

在第六部分中,我们还将为接收器制作一个外壳。您将需要另一个纸板箱(我之前选择了一个包含蓝牙收发器的纸板箱——合适吧?)和一些用于电位计的旋钮

 
poYBAGNy86GAdMosAAFALgusw28626.jpg
 

首先为电位器 LED 切出一些圆形孔。还要在要将 USB 电缆连接到 Arduino Nano 的位置切出一个切口

 
pYYBAGNy86SAZ28fAAIZUtj-2rE972.jpg
 

将接收器板粘进去。确保 Arduino Nano 的 USB-C 插孔与您在上一步中为电缆连接切出的孔对齐。

 
poYBAGNy86aAUbtTAADIipkfunk232.jpg
 

接下来粘上 LED 并拧入所有电位器。如何放入它们的顺序与上面的电路图相同:

 
pYYBAGNy86yAMTiCAAd9Y81msL0706.png
 

现在你只需要连接旋钮....

 
poYBAGNy87CAD5k9AAF2v5bReKU337.jpg
 

...接收器完成了!

 
pYYBAGNy87SAHofjAAYCQukFQEo311.png
 

第 7 部分 – 将接收器连接到纯数据

现在所有硬件都完成了,是时候用它播放一些音乐了!为此,您需要可以将硬件连接到的软件。对于 Kravox,该软件是 Pure Data Vanilla,您可以在此处免费下载

将 Pure Data 安装到您的计算机后,启动它并打开附件中的 Kravox.pd 文件。请注意,它需要保存在您的计算机上与它随附的drumsamples 文件夹相同的位置 - 否则 Pure Data 无法找到样本

一旦 Kravox.pd 软件界面打开,寻找一个蓝色信息框并安装框中列出的四个所谓的外部。安装它们很简单:只需单击 Pure Data 菜单中的“帮助”,选择“在 Internet 上查找其他对象”(可能措辞略有不同),搜索“comport”、“zexy”、“freeverb”和“arraysize” "一一安装最新版本。现在标记为 comport、repack、freeverb 和 arraysize 的四个对象应该有一个实心轮廓,如下图所示。您可能需要为此重新启动 Pure Data

 
pYYBAGNy87mAQRCaAAMz45NDCr4502.png
 

安装必要的外部设备后,您可以通过 USB 连接接收盒。如果您更改了第 4 部分中的代码以将接收器与 Arduino 串行监视器一起使用,您需要先撤消此更改并将原始代码上传到接收器的 Arduino Nano,然后再连接并关闭 Arduino 串行监视器,因此接收器不会忙于尝试和它说话。

现在看看 Pure Data 的日志/信息窗口。如果您看到一个快速更新的数据流,这很好,因为这意味着纯数据已经找到了接收者,但很可能它会向您显示一条红色消息,如下所示,每隔一段时间刷新一次:

 
pYYBAGNy87uAGS9RAAAg2iOQSR8487.png
 

红色消息可能有点不同,但结果是一样的:Pure Data 尚未成功连接到您的接收器。那是因为需要告诉程序,要监听哪个 USB 端口。不过,USB 端口有时有点有趣:在 2014 年的 macbook Pro 上,Pure Data 将两个 USB 端口识别为串行端口 3,无论您将接收器连接到哪个。在米兰,我将 Kravox 与只有一个工作 USB 端口的联想瑜伽垫一起使用,需要作为串行端口 6 联系,最近将其安装到另一台带有两个 USB 端口的 Windows 笔记本电脑上,希望作为串行端口进行寻址8 和 9...所以我的建议只是尝试使用您的 USB 端口的数字。为此,我创建了一个简单的对话框作为 Kravox.pd 界面的一部分,您可以在其中单击数字,直到其中一个有效。您还可以尝试“显示可用端口”和“显示连接的 USB 设备”按钮 - 有时,但不经常提供有用的信息。但是,您需要一段时间才能在信息窗口中获得响应。

 
poYBAGNy876AZThdAACFC5o5VOU118.png
 

当信息窗口显示像这样快速更新的数据流时,您会注意到您找到了正确的端口号并且已建立连接:

 
pYYBAGNy88GABWXBAABMTFq8fAM851.png
 

到目前为止非常好!单击保存,Pure Data 将在下次自动打开时尝试连接到此端口。

但是,我们仍然需要打开控制器。如果您在步骤 2.7 中取消注释 Kravox 控制器代码的最后一部分以将控制器连接到串行监视器,您现在应该再次上传原始版本。

将控制器板连接到移动电源。执行此操作时,应关闭电路板周围的触摸界面外壳,并且外壳的触摸敏感部分不应触摸您的手或其他任何东西,因为触摸传感器在通电时会感知其环境并假设它是未触动的状态

恭喜——你完成了!

玩 Kravox 玩得开心!

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !