mBotで音楽を再生させる2つの方法
MakeXには、オーディオプレーヤーを使うタスクが存在する
2019のMakeXのタスクの中に、各チームのロボットを1台ずつ所定のステージに移動させ、一方のロボットが音楽を再生している間に、もう一方のロボットが、ダンスを踊るというタスクで、最低3秒以上、音楽とダンスが同時に行うというタスクで、2つのチームが共同でこのタスクに取り組みます。
mBotでダンスをさせるというのは、前後左右に移動させるようなプログラムを組めば問題ないでしょう。また、mBotで音楽を再生させる方法の最もポピュラーな方法は、ブザーの音階を調整するやり方ですね。
参考記事:mBotを歌わせてみる
参考記事:mBotを歌って踊らせる
音楽を演奏させる場合に、mBotに標準で装備されているブザーを使うやり方はプログラミング学習にも非常に役に立ちます。
今回は、もう一つの方法、オーディオプレーヤーを使って音楽を再生させる方法を見ていきたいと思います。
ちなみに、このオーディオプレーヤーは、MakeX2018では、参加者用に販売されていた機能拡張パックに、入っていました。まだ予想ですが、たぶん、MakeX2019日本大会も専用のアドオンパックが販売されることと思います。また、それ以外でも、こちらのサイトでバラ売りされています。
参考記事:MakeX2018アリーナパック・アドオンパックレビュー
AudioPlayer(オーディオプレーヤー)の概要と機能
オーディオプレーヤーの主な構成要素は3つです。
1、スピーカー
2、マイク
3、SDカード
SDカードは、基本的には、同梱されています。RJ25ケーブルは、mCoreの白のポートに挿します。
AudioPlayerの機能
機能については、mBlock5のブロックで説明します。
① ポートを自動でセレクトする
② SDカードに入っている音声ファイルの再生。インデックス番号を指定する
③ SDカードに入っている音声ファイルの再生。ファイル名を指定する
④ 前曲の再生
⑤ 次曲の再生
⑥ 一時停止/再生
⑦ 停止
⑧ ボリューム調整。静かな室内であれば50%で大丈夫
⑨ ボリュームアップ
⑩ ボリュームダウン
⑪ 録音スタート/録音したファイル名の記入
⑫ 録音ストップト
⑬ 再生モード選択/1回のみ・繰り返し・リスト指定・ランダム
機能として、特徴的なのが、ポートを自動でセレクトする機能と録音機能ですね。マイクがあるので、自分の声とかを録音して、それを再生することが可能です。
Makeblock Audio Playerの使い方
使い方もそんなに難しくありません。ここでは、超音波センサーの値による音楽再生・赤外線リモコンによる録音と、録音した音源の再生をしてみたいと思います。
STEP1:SDカードに音源を入れる
まずは、オーディオプレーヤーに付属のSDカードに、音源を入れる作業です。↓の画像のように、マイクロUSBケーブル経由でPCと接続します。
次にPCにある音源ファイルを、SDカードのファイルにドラック&ドロップします。ここは、特別な作業ではありませんね。PCにある音源ファイル名ですが、漢字が入っている日本語ではプログラムがファイル名を読み込めない可能性もあるので、簡単な数字やアルファベットにしておきましょう。
尚、対応している音声ファイルは、MP3・WMA・WAVの3種類です。
STEP2:プログラムを組んで実行
次に、mBlockプログラムを組んで、mBotにアップロードします。以下の2つのプログラムを試してみます。
■手が10㎝以内に近づいたら音楽再生
超音波センサーを使って、手(障害物)が10㎝以内に近づいたら音楽を再生させます。
オーディオプレーヤーは、Makeblockの他の拡張モジュールと違い、mCoreの白ポート(=つまりどのポートでもOK)に指せば、ポート番号を自動認識してくれます。↑のプログラムの一番上にある「イニシャライズ」のブロックがその部分です。ボリュームは、静かな屋内であれば50%程度で十分です。
このプログラムをアップロードして実行した結果が以下の動画です。
■リモコンのボタンを使って録音開始・停止・録音したファイルの再生
今度は、リモコンを使って録音・再生をしてみます。
このプログラムは、mBotに付属している赤外線リモコンを使い、
・Aボタンを押したら、録音がされ、ファイル「T001」がSDカードに保存される
・Bボタンを押したら、録音がストップされる。
・→ボタンを押したら、録音保存した「T001」が再生されるというプログラムです。
ちなみに、録音されたファイルは、SDカードの中に以下のように、指定したファイル名で自動で保存されます。
MakeXのタスクへの活用
MakeXのタスクでは、2台のmBotをシンクロさせる必要があります。ですので、1台のmBotが踊っている最中にIR送信をし、もう1台のmBotは、IR受信をしたら、音楽を再生させるというような事で攻略できそうです。
2台のmBotの動作を赤外線(IR送受信)によってシンクロさせる方法については、以下の記事を参考にしていただけたらと思います。
参考記事:mBot2台を赤外線通信で会話させる
例えば、こんな形で、2台をシンクロさせることが可能です。
オーディオプレーヤーを使った拡張パックが存在(日本未発売)
最後に、MakeXとは離れますが、Makeblockの拡張モジュールであるオーディオプレーヤーを使ったmBot向け機能拡張アドオンパック「Talkative Pet」もあります。
こちらは日本未発売ですが、私は、こちらのサイトから普通に購入できました(笑)