littleBits Arduinoモジュールからシンセスピーカーモジュールで音を鳴らす基礎のメモ

この記事はlittleBits Advent Calendar 2016の5日目の記事、littleBits Arduinoモジュールからシンセスピーカーモジュールで音を鳴らす基礎のメモです。

考察

お恥ずかしながらいままでArduinoモジュールからシンセスピーカーモジュールに素のArduinoのコードだけで音を鳴らそうと思っていて、うんともすんとも鳴らせなかった悔しさがありました。根本の仕組みを理解できていない感じでして。

littlebits-arduino-tone-first-step_1

しかしながら、最近、明星和楽2016のネタを作る上ででGroveの圧電ブザーや、さらに音を増幅させてしっかりした音を出すGroveのスピーカーを扱って音を出す仕組みを学べました。

littlebits-arduino-tone-first-step_2

そのなかで「もしかしてlittleBitsのシンセスピーカーモジュールも同様の仕組みでなっているんじゃないか?」ということでArduinoの音を鳴らすコードでやってみました。

コードの準備

Groveの圧電ブザーやGroveのスピーカーで音を鳴らすときに学んだ参考記事、

arduino使い方:圧電スピーカでメロディを鳴らす

をベースに以下のコードを書いてみます。

void setup()
{
  pinMode(5, OUTPUT); // D5にスピーカーつなぐ
  pinMode(A0, INPUT);
}

void loop()
{
  int inputValue = digitalRead(A0);
  if(inputValue == HIGH){
    tone(5,800,10);
    delay(100);
    tone(5,1200,10);
    delay(100);
    tone(5,800,10);
    delay(100);
    tone(5,1200,10);
    delay(100);
    tone(5,800,10);
    delay(100);
    tone(5,1200,10);
    delay(1200);
    tone(5,800,10);
    delay(100);
  } else {
    tone(5,200,10);
    delay(100);
    tone(5,300,10);
    delay(100);
    tone(5,400,10);
    delay(100);
    tone(5,500,10);
    delay(100);
    tone(5,600,10);
    delay(100);
    tone(5,700,10);
    delay(100);
    tone(5,800,10);
    delay(100);
  }
}

こちらを書き込みます。

さっそくつないでみます。メロディがピコピコ鳴り、ボタンを押したときは、違うメロディが流れる仕組みです。

littlebits-arduino-tone-first-step_3

出力の性質をPWMに変えるためツマミを調整

また、こちらはPWM出力で音を鳴らす仕組みなので、

LittleBits Arduinoを使ってハマったこと – Qiita

の記事を参考に、

littlebits-arduino-tone-first-step_4

出力するArduinoのモジュールのポートはPWMにツマミを調整します。

(通常のanalogWriteでLEDをふんらり光らせたいといったときはANALOGに戻しましょう。)

いざ実行!!!

おおお!音がなりました!

このようにArduinoモジュールから音が鳴らすことができると、littleBitsのシンセキット群と絡めて音をさらに加工したり、今回のボタンモジュールのように入力モジュールと絡めるとすることができるので、インタラクティブなつくりの華場広がりますね!

それでは、よきlittleBits Lifeを!