フルーツピアノ¶
このプロジェクトは、MPR121タッチセンサーからの入力を読み取り、DACを通じて音楽を再生するシンプルなフルーツピアノです。言い換えれば、フルーツをキーボードに変え、それらに触れるだけで音楽を演奏できるようにしました。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
- |
|
- |
配線図
回路図
コード
注釈
ファイル
02_fruit_piano.ino
をelite-explorer-kit-main\fun_project\02_fruit_piano
のパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、 「Adafruit MPR121」 を検索してインストールしてください。
どのように動作しますか?
以下はコードの詳細な説明です:
ライブラリとオブジェクトの初期化:
必要なライブラリをインポートします:
Wire
ライブラリ(I2C通信用)、Adafruit_MPR121
ライブラリ(MPR121のドライブ用)、analogWave
ライブラリ(アナログ波形の生成用)、およびpitches.h
(ノートの周波数を定義する)。Adafruit_MPR121
とanalogWave
のオブジェクトのインスタンスを作成します。 各タッチチャネルに対応するノートを格納するノート配列を定義します。setup()
:シリアル通信を初期化し、開始を待ちます。 MPR121をチェックし、初期化します。見つからない場合は、シリアルモニタにエラーメッセージを表示し、実行を停止します。
analogWave
オブジェクトを初期化し、最初の正弦波周波数を10Hzに設定します。loop()
:MPR121の現在のタッチチャネルを読み取ります。 すべてのチャネルを反復処理し、どれがタッチされたかをチェックし、対応するノートを演奏します。 各反復の間にわずかな遅延を加えます。
ノートを演奏する
playNote()
:playNote
関数はnote
パラメータを取り、対応するノートを演奏するためにDACの周波数を設定します。 ノートを演奏する期間遅延を加えます。 ノートの演奏を停止します。