CNK Arduino 教程(六)

空气鼓槌

材料准备

硬件连接

  • 将 Genuino 101 安装到底座上
  • 将 IO 扩展板 安装在 Genuino 101 上
  • SD 卡模块 按照线序,安装在扩展版上的 SD 卡接口上。
  • 用魔术扎带将 101、扩展版、SD 卡模块 捆住固定,留出一段绕手一圈的长度,待用。
  • 9V 电源线与电池连接好,待用。

软件准备

系统推荐:Windows / macOS(预装 Excel 或 Numbers)
开发环境推荐:Arduino IDE 1.6.12
开发版支持库推荐:Intel Curie Boards by Intel  1.0.7
iOS 设备(iPhone 或 iPad 皆可)预装 GarageBand App

项目完整代码:链接: https://pan.baidu.com/s/1c2rdNmo 密码: tytu

采集数据

首先烧写 SDWrite.ino 到 Genuino 101 上。
代码如下:


#include “SPI.h”
#include “SD.h”
#include “CurieIMU.h”

#define SAMPLING_INTERVAL 10//ms

File myFile;
float ax, ay, az;
uint64_t timer;

void setup() {
  timer = 0;
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  CurieIMU.begin();
  CurieIMU.autoCalibrateXAccelOffset(0);
  CurieIMU.autoCalibrateYAccelOffset(0);
  CurieIMU.autoCalibrateZAccelOffset(1);
  CurieIMU.setAccelOffsetEnabled(true);
  CurieIMU.setAccelerometerRange(4);
  
  if(!SD.begin(4)) {
      Serial.println(“initialization failed!”);
      return;
  }
}

void loop() {
    timer = millis();  
     CurieIMU.readAccelerometerScaled(ax, ay, az);
    myFile = SD.open(“data.csv”, FILE_WRITE);
    if(myFile) {
        myFile.print(ax);
        myFile.print(“,”);
        myFile.print(ay);
        myFile.print(“,”);
        myFile.print(az);
        myFile.print(“\n”);
    }
    myFile.close();   
    while((millis() – timer) < SAMPLING_INTERVAL);   
}


1. 烧写完程序以后,拔下 usb 烧写线,

2. 将设备用魔术扎带捆绑到手背上,如下图:

3. 将 9V 电池 和 Genuino 101 相连上电,开始做向下敲击的动作,连续重复做向下敲击动作约 20 次,注意在每次敲击的动作幅度、速度尽量一致,这样以后方便看动作波形。

4. 拔下电池线,将 SD 卡取出通过适配器插到电脑上,打开 SD 卡中的 DATA.CSV 文件,选中 ABC3 列数据-> 点击插入-> 插入折线图 ,如下图:

上面我们看到的每一个波形都是一次敲击,下面我们的工作就是把杂波剪切掉。

数据处理

这里我们要做的就是把每组动作前后的杂波去掉,去掉的方法就是对应着删除数据即可;比如我们要裁剪掉下图的前后两端的杂波。

通过将鼠标指针放在折线上可以看到所在点

比如这里是头部杂波结束的地方,我们就把他之前的数据给删除即可。
尾部杂波的删除以此类推。

然后,我们用同样的方法来采集第二个向右甩手的动作。
两个处理后的数据分别保存为“1.csv”和“2.csv”,放入 pipeline-curie 文件夹下的 train_data 里,再对“config.csv”文件进行如下修改:

然后运行“QriNeuronPipeline.exe”,程序会自动进行处理。

至此数据处理就结束了。

数据学习和识别

处理后的数据会存放在“QriNeuronPipeline.exe”的同目录下,“trainer_neurons.csv”文件。
我们把这个文件重命名为“neurons.csv”,然后存进 SD 卡里即可。

现在我们把“curie-classify-blemidi.ino”烧进 Genuino 101,并插入 SD 卡,等待 30 秒后,Curie 就可以自动进行学习和识别了。

效果测试

首先我们打开 iPhone 或 iPad 上的 GarageBand App。然后我们选择乐器为“鼓”,点击“原生声”进入。

点击右上角的扳手图标

选择“高级”

选择“蓝牙 MIDI 设备”


选择“Curie”,进行连接。


这里显示已连接的时候就可以开始,挥舞你手上的“Genuino 101”玩耍啦~

发布者:Cara,转载请注明出处:http://www.makercollider.com/curie/1136

发表评论

登录后才能评论
QR code