【Arduino】Adafruit Wave Shield for Arduino Kit – v1.1のプログラミングの前に

こんばんは!時にはまっすぐ帰りたいですよね!
ヨリミチ団です

さてさて!いよいよプログラミングに入りましょう!
でもその前に…
そもそもWave Shield for Arduino Kit – v1.1は何ができるんだって言うお話ですよね

なにはともあれ一旦Arduinoのアプリケーションを起動しましょう。
起動
起動したら今日の日付のついた画面が出てきます。
これをスケッチと言います。ここでプログラミングを書いて、パソコン内でプログラミングが合っているか検証して
最終的にArduinoUNOにUSBを介して書き込みます。
ちなみに、Arduinoは何度もスケッチを書き換えることができるのでご安心ください!

そして、プログラミングでなにか間違っていると赤い字でArduino先生から叱られます。

kiji_07_01

叱られるとArduinoにプログラムを送れません。

さて、いきなりですがWave Shield Kitを作動させるためのプログラムのコピペはWaveShieldの本家サイトのExamplesに様々なパターン用意してくれています。
Examplesページ
これを下にスクロールすると
7個の例
この様なチュートリアル(テンプレの様なもの)があります。
このシールド(Arduinoに乗せるボードの総称:今回はWaveシールドを指します)は6つのボタンを取り付けることが可能となっております。
それを踏まえて訳と解説すると…

1
.waveファイル(音源ファイル)を順番に全て再生。ただし、1回のみ。←ボタン関係無し

2
.waveファイル(音源ファイル)を順番に全て再生。それをループ再生させる
つまり最後までいったらまた頭から再生します←これもボタン関係無し

3
ボタンが押された時、waveファイル(音源ファイル)を最後まで再生させる。それをループ再生させる。
これは一度ボタンを押したら、最後まで音源が再生されます。
解説:ボタンごとに音源をいくつか用意できます。これはArduinoの処理できる限界まで入れられるので、
意外と多くのトラックを入れることができます。

例えば ボタン1にA.wav B.wav ボタン2にC.wav D.wav を入れたら、
ボタン1を押した時にAとBの音源が再生され、再び先頭に戻りA-Bをいつまでも再生します。
途中でボタン2を押したら、C-Dの音がループして再生されます。
ただし、これらは音源が最後まで再生し終わるまで他のボタンは使えません!

4
.waveファイル(音源ファイル)をボタンが押されている時のみ、音源の終わりまで再生(楽器のキーボードの様な感じ)。
音源と言っても色々あると思いますが、短い音階の音を用意してあげれば、
まるでキーボードの様に扱えますよー という意味だと思います。

5
.waveファイル(音源ファイル)をボタンが押されている間、ループして再生(サンプラーキーボードの様な感じ)。
これは単音というより、短いフレーズを押している間ループして再生したい場合に効果的かと思います。

6
ボタンを押したら.waveファイル(音源ファイル)を最後まで再生し、ループする。ただし、再生中に他のボタンを押すと割り込むことができる。
つまり、ボタン1を押している間はボタン1に仕込んだトラックの数だけ音源が最後まで再生し、再び先頭トラックから再生を繰り返します。しかし、途中でボタン2を押したらボタン2に仕込んだトラックが割り込んで再生されます。
つまり、トラックのスキップができるのです。

7
ボタンを押したら.waveファイル(音源ファイル)を1つだけ最後まで再生する。ただし、再生中に他のボタンを押すと割り込むことができる。
注意するべき点は、例えばボタン1に複数トラック用意しても1つの音源しか再生されません。
つまり、先頭のトラックしか再生されません。
ここでちょっとした工夫をすれば非常に効果的に使えるのではないか!?と思いました

私は今回のプレゼントを作るにあたって、とてもわがままでした
というのも、ぬいぐるみを振ったら喋る…
どうせならいろんな音楽やメッセージを仕込みたい…
でも一方的に音源を入れて送るので、好みが違ったら最後まで聞かせてしまうのも忍びないなぁ…
それでいて順番通りだとそのうち飽きちゃうからランダム再生にもしたいし…
もやもや…

ここで私は7のチュートリアルが最も適切であると考えたのでした

これで取り組むべき課題が明確になりました
①ぬいぐるみを振ったら、ボタンを押すと同じ動作をする仕組みを考える
②トラックをいっぱい用意して、それをランダムに再生させる仕組みを考える
そしてその解決方法は
①は物理的にArduinoにボタンの代わりとなるセンサーを付け加えることで解決
②はボタン1に対する再生をランダムにかき乱すプログラムを付け加える
ということになりました。

話が決まれば、まずはプログラミングからやっつけましょう!

つづく

この記事が気に入ったら
いいね ! しよう


PAGE TOP