この記事はlittleBits Advent Calendar 2016の5日目の記事、littleBits Arduinoモジュールからシンセスピーカーモジュールで音を鳴らす基礎のメモです。
考察
お恥ずかしながらいままでArduinoモジュールからシンセスピーカーモジュールに素のArduinoのコードだけで音を鳴らそうと思っていて、うんともすんとも鳴らせなかった悔しさがありました。根本の仕組みを理解できていない感じでして。
しかしながら、最近、明星和楽2016のネタを作る上ででGroveの圧電ブザーや、さらに音を増幅させてしっかりした音を出すGroveのスピーカーを扱って音を出す仕組みを学べました。
そのなかで「もしかしてlittleBitsのシンセスピーカーモジュールも同様の仕組みでなっているんじゃないか?」ということでArduinoの音を鳴らすコードでやってみました。
コードの準備
Groveの圧電ブザーやGroveのスピーカーで音を鳴らすときに学んだ参考記事、
をベースに以下のコードを書いてみます。
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); } }
こちらを書き込みます。
さっそくつないでみます。メロディがピコピコ鳴り、ボタンを押したときは、違うメロディが流れる仕組みです。
出力の性質をPWMに変えるためツマミを調整
また、こちらはPWM出力で音を鳴らす仕組みなので、
LittleBits Arduinoを使ってハマったこと – Qiita
の記事を参考に、
出力するArduinoのモジュールのポートはPWMにツマミを調整します。
(通常のanalogWriteでLEDをふんらり光らせたいといったときはANALOGに戻しましょう。)
いざ実行!!!
おおお!音がなりました!
このようにArduinoモジュールから音が鳴らすことができると、littleBitsのシンセキット群と絡めて音をさらに加工したり、今回のボタンモジュールのように入力モジュールと絡めるとすることができるので、インタラクティブなつくりの華場広がりますね!
それでは、よきlittleBits Lifeを!