Plus電子デバイス・電子工作用語集モータドライバ博士のQ&A読者よりいただいたお問い合わせを元に、ロボット製作者、エンジニアのみなさんに役に立つ技術解説を発信していきます。Plus電子デバイス・電子工作用語集モータドライバ博士のQ&A読者よりいただいたお問い合わせを元に、ロボット製作者、エンジニアのみなさんに役に立つ技術解説を発信していきます。Piで音遊び!」スピーカーの付いていないディスプレイを使用していたので、実は今まで無音の状態で遊んでいたのです......自宅で眠っていた小さいスピーカーを発見したので早速接続!いよいよ念願の音遊びに挑戦します!音声出力に関することは何も触れていないはずなので、デフォルト状態からのスタートです。Piにぴったり!途中で電池切れになってしまわないように、遊ぶ前にしっかり充電して準備しておきました。ひとつは、iPhone5に付属していたイヤホンです。(ちなみにコードリールはどらやき型です。早く気づくとよかったのですが......オーディオ端子に接続できれば良いので、3.5mmの一般的なイヤホンなどでも代用が可能でした。静かにテストしたいときにはイヤホンの方がオススメです。音を鳴らすには?スピーカーの準備が整ったら、早速実際に音を鳴らしてみましょう!音といえば、以前遊んだ学習用のプログラミングソフト「Scratch」に、「音」に関する項目があったので、まずはScratchで試してみたいと思います。図1このように組み立てました!ネコのアイコン(スプライト1)をクリックすると「ニャー」という鳴き声の音声が流れるという、最低限のシンプルな処理です。ネコちゃんをクリックすると、「ニャー」と......あれ?鳴らない!?もしかして音量がゼロなのかも!と思って調べてみると、コマンドラインから設定する方法を発見しました。alsamixer図2上下キーで音量を調節することができるので、適当な値に設定しておきましょう。設定が完了したら、[Escape]キーを押すことで元の画面に戻ります。Piでは、HDMIを使用している場合、音声の出力先もHDMIが選択され、音が鳴らない場合があるようです。HDMIとオーディオ端子、どちらを音声出力として使用するかを指定する必要があります。先程の「alsamixer」と似ていますが、今度は「amixer」というコマンドを使って、音声出力をアナログ出力に設定します。1気を取り直してScratchを再実行!今度はネコちゃんが「ニャー」と答えてくれました!!先程のスクリプトだと、実行後、スピーカーのノイズが鳴り止まなくなってしまったので、「すべての音を止める」の命令も追加してあげた方が良さそうです。音声が中断されてしまわないように、1~2秒のスリープ処理も入れてあげましょう。図3のようにするときれいに動きました。音楽再生に関するプリインストールソフトがないのか探してみたところ、スタートメニューの「サウンドとビデオ」の中に「VLCメディアプレイヤー」というツールを発見!まずはこちらを使って音楽を再生してみたいと思います!VLCメディアプレイヤー公式サイトWindows版・Mac版もあり、公式サイトからダウンロードできます。図4初期画面がこちらです(図4)。ちなみにこのVLCメディアプレイヤー、なぜかpiユーザーでないと起動できませんでした。(そういえば「ScratchGPIO5」を使ったときも、同じ現象が起こりましたね)図5音楽ファイルを再生するには、まず、上部のメニューの「メディア」のなかから、再生方法を選択します。ローカルファイル以外に、ディスクドライブやインターネット上のファイルを直接指定することもできます。「ディレクトリを開く」を選択すると、指定したディレクトリ内のファイルが連続で自動再生されていきます。Piの中には、パッケージで使用されている音楽ファイルがいくつかあるので、こちらのファイルを使ってテスト再生してみましょう!/usr/share/sounds//usr/share/scratch/Media/Sounds//usr/share/pyshared/pygame/examples/data/次はコマンドからmp3再生!先に間違った例をご紹介。wavファイルをテスト再生したときと同じように、mp3も「aplay」コマンドで再生できると思って実行したコマンドがこちら。/usr/share/pyshared/pygame/examples/data/house_lo.mp3実行した途端に、ひどい雑音が!調べてみると、mp3の再生には「aplay」コマンドは使えず、別途パッケージが必要だそうです。再生を止めるときは、キーボードから[CTRL]+[C]を入力!操作ミスをしたときや、誤って無限ループに入ってしまったときなどにも使える強制終了コマンドなので、覚えておくと便利です。(Windowsで言うところの[Ctrl]+[Alt]+[Delete]ですね!)気を取り直してパッケージをインストールします!今回は、コマンドラインを使ったmp3プレイヤーである「mpg321」というパッケージを使用しました。mpg321インストール後は、コマンドラインからすぐに使用することができました。/usr/share/pyshared/pygame/examples/data/house_lo.mp3図6無事に再生されました!タイトルなどのファイル情報や再生時間をコンソールに表示してくれるのですが、「-q」オプションを付けると何も表示させずに再生だけをおこなうこともできます。その他のオプション値は、「–help」オプションを付け実行すると一覧が表示されます。ちなみに、オプション値を打ち間違えた場合も、メッセージとともにこの一覧を表示してくれます。--help図7mp3を再生した際の実際の様子を動画で撮影してみました!曲が流れているのが聴こえるでしょうか?再生中にキーボード入力で音量調節ができるようになる「-K」オプションを付けて実行しました。音量は最大(100%)の状態からスタートします。オプションがなしのデフォルト状態でも同じ音量です。図8にも記載されていますが、音量を下げる場合は「/」キーを、上げる場合は「*」キーを押すと、パーセンテージが3ずつ変化するのがコンソール上で確認できます。Piの中にはテストに使えそうな動画ファイルが見当たらなかったので、先程撮影した動画を使いました。iPhoneで撮影したのでファイル形式はMOV形式(.mov)です。Piの適当なフォルダに置いておきましょう。動画を再生するためのパッケージには、Raspbianにプリインストールされている「omxplayer」というものがあります。ファイル名を指定するだけで、動画を再生してくれます。test.mov実行すると、ディスプレイ幅いっぱいに動画が表示されます。図8のようなイメージです!図8もし音が出なかった場合は、「-o」オプションを使って音声の出力先を指定してあげましょう。オーディオ端子の場合は「local」を、ディスプレイから出力する場合は「hdmi」を指定します。test.movその他のオプション値を確認するには、「-h」オプションを付けてコマンドを実行しましょう。-h図9omxplayerは、再生中にキーボード入力からの制御が可能です。キー入力については「-keys」で確認することができます。-keys図10まとめ音楽と動画の再生に成功!最初は音がなかなか出せずに苦戦してしまいましたが、なんとか目標を達成することができました(文章だと伝わりにくいですが、実はかなりの時間を費やしてしまいました......!)。「mpg321」も「omxplayer」も、オプション値がたくさん用意されているので、いろいろ変えて試しながら遊んでみるのも面白そうですね。Pi公式サイトのフォーラムにインターネットラジオ受信についての記事があったので、こちらのページを参考に挑戦してみたいと思います!円山ナカノプロフィール:プログラミング暦通算4年、最近IT業界に舞い戻ってきたプログラマーです。Piケースを鬼のデコ電してみた。甘くないラズベリーパイをいただきました。