Arduinoとスペクトラムシールドで楽曲認識 #2

少し時間が経ちましたがArduinoで楽曲認識を行うプロジェクトの続きです。前回の記事はこちらになります。

今回はスケッチの導入について説明していこうと思います。

まず使うピンを#defineで次のように置き換えておきます。

//スペクトルアナライザ制御用のピン
#define STROBE 4
#define RESET 5
#define DC_Zero A0
#define DC_One A1

以前の記事でも紹介した通りスペクトラムシールドのヴァージョンによってはRESETピンの位置が異なる可能性があるので確認しておいてください。

基本的にはSpectrum Shield Hookup Guideに基づいてコーディングしていきます。

それではsetup()関数です。

/********************Setup Loop*************************/
void setup() {
  Serial.begin(9600);
  pinMode(STROBE, OUTPUT);
  pinMode(RESET, OUTPUT);
  pinMode(DC_Zero, INPUT);
  pinMode(DC_One, INPUT);

  digitalWrite(STROBE, LOW);
  digitalWrite(RESET, LOW);
  digitalWrite(RESET, HIGH);
  digitalWrite(STROBE, HIGH);
  delayMicroseconds(36);//18
  digitalWrite(RESET, HIGH);
  digitalWrite(STROBE, LOW);
  delayMicroseconds(36);//18
  digitalWrite(RESET, LOW);
  digitalWrite(STROBE, HIGH);
  delayMicroseconds(144);//72
}

setup()関数については公式のサンプルスケッチと比べると大きく変更しています。これはMSGEQ7のデータシートを見てコーディングしたものです。公式のサンプルスケッチと大幅に記述を変えているのは、実はスペクトラムシールドが正常に動作しなかったときに原因究明を行っていた際の名残です。(原因は前述したとおりサンプルスケッチ内のRESETピンのピン指定と実際の配線が違ったためでした。)

キチンの動作をしているため、今回は改造したsetup()関数をそのまま使用しました。

これで一応スペクトラムシールドからのデータを読み出す準備が出来ました。次回は音声信号をライン入力から実際に取り出して見ようと思います。

追記

ちなみに公式のsetup()関数はこちらです。

//Declare Spectrum Shield pin connections
#define STROBE 4
#define RESET 5
#define DC_One A0
#define DC_Two A1 
/********************Setup Loop*************************/
void setup() {

  //Set spectrum Shield pin configurations
  pinMode(STROBE, OUTPUT);
  pinMode(RESET, OUTPUT);
  pinMode(DC_One, INPUT);
  pinMode(DC_Two, INPUT);  
  digitalWrite(STROBE, HIGH);
  digitalWrite(RESET, HIGH);

  //Initialize Spectrum Analyzers
  digitalWrite(STROBE, LOW);
  delay(1);
  digitalWrite(RESET, HIGH);
  delay(1);
  digitalWrite(STROBE, HIGH);
  delay(1);
  digitalWrite(STROBE, LOW);
  delay(1);
  digitalWrite(RESET, LOW);
}

公式とはdelayをかける時間が違っています。公式の方がゆったりめにMSEGQ7のセットアップの時間をとってありますね。

こちらを使い方は公式サイトに紹介されています

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top