このセッションでは、RaspberryPiとPYGAME関数を使用してサウンドボードを作成します。簡単に言うと、いくつかのボタンをRaspberry Pi GPIOピンに接続し、これらのボタンを押すと、RaspberryPiはメモリに保存されているオーディオファイルを再生します。これらのオーディオファイルは、1つずつ再生することも、すべて一緒に再生することもできます。つまり、1つまたは複数のボタンを同時に押すことができ、RaspberryPiはそれに応じて1つまたは複数のオーディオファイルを同時に再生します。この記事の最後にあるデモビデオを確認してください。また、RaspberryPiチュートリアルシリーズといくつかの優れたIoTプロジェクトも確認してください。
我々は持っている ラズベリーパイで26本のGPIOピンのうちいくつかは、いくつかの特別な機能を実行するために使用されているから、プログラムすることができますし、我々は17 GPIOが残っています。各GPIOピンは最大15mAを供給または引き出すことができます。また、すべてのGPIOからの電流の合計は50mAを超えることはできません。したがって、これらの各GPIOピンから平均で最大3mAを引き出すことができます。抵抗を使用して電流を制限します。GPIOピンとRaspberryPiとのインターフェースボタンの詳細については、こちらをご覧ください。
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルBを使用しています。すべての基本的なハードウェアとソフトウェアの要件については前に説明しましたが、必要なものを除いて、RaspberryPiの概要とRaspberryPIのLEDの点滅で調べることができます。
- OSがプリインストールされたRaspberryPi
- 電源
- スピーカー
- 1KΩ抵抗(6個)
- 押しボタン(6個)
- 1000uFコンデンサ
作業説明:
ここでは、RaspberryPiでボタンを使用してサウンドを再生しています。6つのプッシュボタンを使用して6つのオーディオファイルを再生しました。これらのボタンを押すことで、ボタンやオーディオファイルを追加してこのボードを拡張し、より美しいパターンを作成できます。さらに説明する前に、以下の手順を実行してください。
1.まず、以下のリンクから6つのオーディオファイルをダウンロードするか、オーディオファイルを使用できますが、コードでファイル名を変更する必要があります。
ここからオーディオファイルをダウンロードします
2. Raspberry Piデスクトップ画面に新しいフォルダーを作成し、「PISOUNDBOARD」という名前を付けます。
3.ダウンロードしたオーディオファイルを、前の手順でDESKTOPに作成したフォルダーに解凍します。
4. Raspberry Piでターミナルウィンドウを開き、以下のコマンドを入力します。
sudo amixer cset numid = 3 1
このコマンドは、ボード上の3.5mmオーディオジャックを介してオーディオ出力を提供するようにPIに指示します。
HDMIポートからのオーディオ出力が必要な場合は、以下のコマンドを使用できます。
$ sudo amixer cset numid = 3 2
5.スピーカーをRaspberryPiボードの3.5mmオーディオ出力ジャックに接続します。
6. PYTHONファイル(*.py拡張子)を作成し、同じフォルダーに保存します。Raspberry PiでPythonプログラムを作成して実行するには、このチュートリアルを確認してください。
7. pygameのミキサーは、 OSにデフォルトでインストールされます。プログラムの実行後にPYMIXERが呼び出されない場合は、ターミナルウィンドウで以下のコマンドを入力してRaspberryPiのOSを更新します。Piがインターネットに接続されていることを確認してください。
sudo apt-get update
OSが更新されるまで数分待ちます。
次に、以下の回路図に従ってすべてのコンポーネントを接続します。PYHTONプログラムをデスクトップに作成されたPYHTONファイルにコピーし、最後に実行を押してボタンからオーディオファイルを再生します。Pythonプログラムは、最後にデモビデオで提供されます。
回路図:
プログラミングの説明:
ここでは、ボタンの押下に応じてオーディオファイルを再生するPythonプログラムを作成しました。ここでは、プログラムで使用したいくつかのコマンドを理解する必要があります。
RPi.GPIOをIOとしてインポートします
ライブラリからGPIOファイルをインポートします。上記のコマンドを使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。
IO.setwarnings(False)
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。そうすれば、プログラムを実行するたびに警告が表示されます。このコマンドは、RaspberryPiに警告を無視してプログラムを続行するように指示します。
IO.setmode(IO.BCM)
ここでは、PIのI / Oピンを関数名で参照します。そのため、BCMピン番号でGPIOをプログラミングしています。これにより、GPIOピン番号でPINを呼び出すことができます。プログラムでPIN39をGPIO19と呼ぶことができるように。
pygame.mixerをインポートします
オーディオファイルを再生するためにpygameミキサーを呼び出しています。
audio1 = pygame.mixer.Sound( "buzzer.wav")
デスクトップフォルダに保存されている「buzzer.wav」オーディオファイルを求めています。他のファイルを再生したい場合は、上記の機能でオーディオファイル名を変更するだけです。デスクトップフォルダにある任意のファイルに名前を付けることができます。
channel1 = pygame.mixer.Channel(1)
ここでは、すべてのオーディオファイルを同時に再生できるように、ボタンごとにチャネルを設定しています。
if(IO.input(21)== 0):channel1.play(audio1)
ifステートメント の条件がtrueの場合、その下のステートメントが1回実行されます。したがって、GPIOピン21がローになるか接地されると、 audio1 変数に割り当てられたオーディオファイルが再生されます 。 回路図によると、最初のボタンを押すとGPIOピン21がローになることがわかります。したがって、対応するボタンを押すことで、任意のオーディオファイルを再生できます。
1: は永久ループとして使用されますが、このコマンドを使用すると、このループ内のステートメントが継続的に実行されます。
Pythonプログラムに変更を加えて、RaspberryPiで最も満足のいくサウンドボードを作成できます。さらにボタンを追加して、物事をより面白くし、より多くのオーディオファイルを再生することもできます。