ラズベリーパイでMP3の音声ファイルをPythonプログラムで再生し、スピーカーから音を出す方法の紹介です。小型のアンプとスピーカーを組み合わせた方法も紹介します。

ラズベリーパイの音声出力ポート

まずはどんな音声出力ポートがあるか確認しましょう。

オーディオポート(3.5mmステレオミニジャック)

通常のRaspberry Piシリーズには3.5mmのイヤフォンジャックがあり、ここから音声出力ができます。ただし、そのままスピーカーにつないでもかすかな音が鳴るだけですので、まずはアンプをつなぎ、それからスピーカーに接続します。

HDMIポート

通常のRaspberry Piシリーズ、Raspberry Pi ZeroシリーズにはHDMIポートがあり、スピーカー付きのHDMIモニターに接続すると音声出力ができます。音声だけ使用したい場合、HDMI音声分離機が必要になります。

GPIO

GPIOを使う方法もあるのですが、音質が悪かったりしますのであまりおすすめしません。

Raspberry Pi 4 Mode Bの音声出力ができるところ

接続パターン

オーディオポート + アンプ内蔵スピーカー

スピーカーユニット内部にアンプが内蔵されている、ダイソーの300円のミニスピーカーや、ロジクールの1,500円のPCスピーカーなどを用意します。あとは電源用のUSBケーブルをラズパイのUSBポートに、3.5mmイヤフォンジャックをラズパイのオーディオポートに接続します。

 

オーディオポート + アンプ + スピーカー

アンプとスピーカーを自分で用意して組み合わせて使う方法です。例えば、秋月電子の以下を組み合わせると、アンプとスピーカーを小さくまとめられます。

PAM8012使用2ワットD級アンプモジュール
ブレッドボード用ダイナミックスピーカー

 

HDMIポート + 外部ディスプレイ

この方法で1番簡単なのは、HDMI入力があるテレビにつなぐことです。そのほか、ラズパイ用の小型液晶ディスプレイがいくつもありますので、スピーカーが内蔵されているものであれば音声が出力されます。

 

オーディオポート + アンプ + スピーカーの実際のやり方

必要なもの

まずは必要なパーツを揃えましょう。

PAM8012使用2ワットD級アンプモジュール x 1
ブレッドボード用ダイナミックスピーカー x 1
3.5mmステレオミニジャックDIP化キット x 1
ミニブレッドボード x 1
3.5mm ステレオミニプラグケーブル 10cm x 1
ピンヘッダ 1×40(40P) x 1
・ジャンパーコード(オス-オス) x 3
・ジャンパーコード(メス-オス) x 1

はんだづけ

アンプモジュールとミニジャックDIP化キットははんだ付けが必要なので、はんだづけします。

アンプモジュールにはピンヘッダが付属していないため、ピンヘッダを4ピンに分割したものを2つ用意して使用します。

 

DIP化キットはピンヘッダが付属しています。4ピンに分割したものを1つ、1ピンに分割したものを2つ用意して使用します。

 

接続

以下のように接続します。

 

 

Pythonで音を鳴らす

プレイヤーソフトのインストール

以下のコマンドを実行し、mpg321というCLIで操作できるプレイヤーをインストールします。

sudo apt install mpg321 

インストールしたmpg321が正しく動くか、以下のコマンドでチェックしま す。この時、test.mp3などの適当なMP3ファイルを用意しておきます。

mpg321 test.mp3

 

サンプルプログラム

Pythonのプログラムから音声ファイルを再生したい場合、以下のようにします。

import subprocess

subprocess.Popen(['mpg321', 'test.mp3'])

 

おわりに

いかがだったでしょうか? ラズパイから音が出るようになると、カメラで写真を撮る時にシャッター音を鳴らしたり、できることの幅がひろがりますのでぜひやってみてくださいね😊

関連記事:使い方