音乐科技杂志

自己动手 DIY 3D手势感应USB MIDI控制器

如何制作一个3D手势感应USB MIDI控制器。

分类标签:玩转DIY

在过去十年左右的时间里,越来越多的消费产品和传感器被推向市场,允许3D手势和运动跟踪来控制计算机、游戏机或其他电子设备。这些包括基于相机的设备,如Microsoft Xbox Kinect或Leap Motion Controller; 基于加速度计/陀螺仪的设备,如Nintendo Wii Remote或Apple iPhone,以及全新的设备,如基于EMG的Thalmic Labs Myo臂带或Google提供的基于Radar的Project Soli传感器。

这些设备中的大多数都可用于控制音乐软件,诸如用于Leap Motion控制器的Geco MIDI或用于Myo的Leviathan等。应用程序允许将这些设备转换为富有表现力的手势和动作感应MIDI / OSC控制器,还有一些专门设计的基于手势的音乐控制器,如mi.mu手套、Percussa Audiocubes或Source Audio Hot Hand。

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第1张

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第2张

与之相配套的Pi Supply Flick系列传感器板可以检测七种不同的特定手势,以及15cm范围内的3D XYZ跟踪信号,还提供15种不同类型的触摸感应控制。虽然大多数Flick板设计用于连接Raspberry Pi板,但有一个独立的Flick板可以连接到任何其他支持I2C的微控制器或微处理器,如Arduino,Teensy或BeagleBone。

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第3张

 

在本教程中,将展示如何与Teensy微控制器一起构建基于Flick的3D手势和跟踪USB-MIDI控制器。

在我看来,Teensy是建立USB-MIDI控制器的最佳平台,因为它价格低廉,易于使用,而且灵活性高。虽然Flick传感器板不像某些现有的手势和跟踪设备那样先进或功能齐全,但是以下优势仍是采用Flick和Teensy构建DIY设备的充足理由:

  • Flick传感器板价格在25-40美元之间,而经济实惠的Teensy LC板价格不到12美元。
  • 它是一个符合类USB-MIDI的设备,这意味着它可以与任何支持MIDI的操作系统一起使用,包括iOS和Android。
  • 与Leap Motion Controller或Myo不同,它不需要运行任何中间件软件。
  • 所有手势感应处理都在传感器芯片上完成,而不用借助与其连接的计算机/设备。

 

DIY开始之前,你需要准备以下材料

Teensy LC你可以使用Teensy 3.2,3.5或3.6;Flick Large Standalone传感器板(以及随附的母对公跳线)

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第4张

辅助材料:无焊面包板、USB Micro-B线

软件部分:Arduino IDETeensyduinoSkywriter Arduino的程序代码

 

DIY步骤

第1步  连接到Teensy

首先将Teensy放在面包板上,然后跨接电缆的母侧连接线到Flick板下侧的引脚上(左边是灰色的线,右边是棕色的线),如下图所示:

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第5张

 

然后,使用以下引脚连接将跳线的公侧连接到Teensy,引脚定义如下表:

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第6张

第2步 安装软件

开发Teensy之前,需要下载并安装以下两个软件:

安装完成后,你需要额外安装一个Arduino库,允许Flick传感器板与Teensy板通信。从这里下载库,并通过将’arduino / Skywriter’文件夹放入计算机上的’Arduino / libraries’文件夹(通常位于Applications / Programs目录中)进行安装。

 

第3步 编写和编译代码

安装完所有软件后,请执行以下步骤:

1.通过USB电缆将Teensy板连接到计算机。如果它是全新的Teensy,则板载LED会闪烁。

2.启动Arduino应用程序。

3.转到文件 – >新建以打开一个新的Arduino项目。

4.编写代码,用此代码替换Arduino文本编辑器中的所有文本。

5.转到工具 – >板,然后选择您正在使用的特定Teensy板。如果你找不到Teensy板部分,请返回并确保正确安装了Teensyduino。

6.转到工具 – > USB类型,然后选择“MIDI”。

7.编译代码 – 转到草图 – >验证/编译,或者只需单击Arduino工具栏上的勾选图标。

8.如果底部的控制台窗格中没有出现错误,则应弹出Teensy软件窗口。如果没有发生这种情况并且出现错误,请返回第1点并再次按照说明进行操作。

9.如Teensy软件窗口中所述,按Teensy板上的按钮使其进入程序模式,LED不应再闪烁。

10.将代码上传到Teensy板 – 在Arduino软件中,转到Sketch – > Upload,或者单击Arduino工具栏上的箭头图标。

11.如果上传成功,Teensy软件将显示一个进度条,然后显示“Reboot OK”,并且Arduino控制台窗格中不会出现任何错误。

自己动手 DIY 3D手势感应USB MIDI控制器 酷玩 第7张

第4步 测试和使用3D手势MIDI控制器

打开你的DAW / MIDI软件,并连接到名为“Teensy MIDI”的MIDI设备(或类似的东西),按以下方式使用:

  • 控制器有两种模式:“手势”模式和“跟踪”模式。要在它们之间切换,请触摸Flick传感器的底部面板。
  • 如果Flick板LED为红色,则表示处于’手势’模式。本模式可以执行七种不同的手势,每种手势都会发送不同的MIDI CC消息:
    • “投掷”手势 – 发送CC 101
    • 从西向东轻弹 – 发送CC 102
    • 从东向西轻弹 – 发送CC 103
    • 从南向北飞 – 发送CC 104
    • 向北轻拂 – 发送CC 105
    • “Airwheel”手势(顺时​​针和逆时针) – 发送CC 7
  • 在上述手势中,前五个在CC值0和127之间切换,但是“Airwheel”手势发送0-127之间的连续值,由手势的方向和速度改变。
  • 如果Flick板LED为绿色,则处于“跟踪”模式。此处传感器将跟踪3D空间中的手的位置,并发送以下具有0-127之间值的CC:
    • X位置 – 发送CC 72
    • Y位置 – 发送CC 73
    • Z位置 – 发送CC 74
  • 点击传感器的左侧,顶部和右侧面板将分别为X,Y和Z映射发送单个CC。你可以将三个跟踪CC映射到DAW中的控件,这非常有用。

你可能要做的下一件事是将自定义行为添加到DIY MIDI控制器。例如更改手势和跟踪位置创建的CC编号、范围或整个MIDI消息。所有这些都可以在编译和上传的Teensy代码中完成。

如何编写代码有点超出本教程的范围,但我在代码中放置了许多注释(以’//’开头的行)来描述每个部分正在做什么,希望它能帮助指导你想做任何修改。例如,更改“#define MIDI_CC_X 72”行末尾的数字将改变X位置跟踪将生成的MIDI CC编号。

结论

这就是你如何使用Flick传感器板和Teensy微控制器构建自己的3D手势感应USB-MIDI控制器。虽然它可能无法完成现有手势和跟踪设备可以执行的所有操作,但你已经构建了一个独立的,符合类USB-MIDI的控制器,而且可以完全根据需求进行定制,这可能会为你的音乐创作和表演带来新的表达和灵感。