見出し画像

Raspberry Pi PicoでUSBサウンドインターフェースを作成する

2022/6現在、半導体の不足で相変わらず入手が困難な状態が続いているRaspberry Piですが、Raspberry Pi Picoだけは店頭で見かけます。ただし他のRaspberry Piがシングルボードコンピューターであることに対してRaspberry Pi Picoはいわゆるマイコンです。実行するプログラムを作成し、これをRaspberry Pi Picoに書き込むとこれをずっと実行してくれます。

今回はRaspberry Pi PicoでUSBサウンドインターフェースを作成する手順を追いながら、プログラム開発環境をセットアップを紹介していきます。

Raspberry Pi Pico

◇ 必要なもの

1. Raspberry Pi Pico

今回セットアップするマイコン本体です。ピンヘッダ付で販売しているものもありますが2~3倍の価格ですので自分ではんだ付けをします。

2. Pimoroni PIM544 Pico Audio Pack (Line-Out and Headphone Amp)

Raspberry Pi Pico用のオーディオ アドオンボードです。アンプが付いたヘッドフォン出力端子とアンプのないラインレベル出力端子があります。

3. 1×40ピンヘッダ(2.54 mmピッチ)

Raspberry Pi PicoとPico Audio Packを接続するとき、Raspberry Pi Picoにピンヘッダーをはんだ付けをする必要があります。20ピンずつに割って使えるこちらのパーツがおすすめです。

4. はんだごて、はんだ、ブレッドボード

ピンヘッダのはんだ付けに使います。今回は白光のFX-600(こて先は2C型)を使います。また、ピンヘッダをRaspberry Pi Picoにはんだ付けをするときにブレッドボードがあると固定できます。

5. USBケーブル(TypeA/MicroB)

音声を再生する機器とRaspberry Pi Picoを接続するUSBケーブルです。最終的にはRaspberry Piと接続するため、短いUSBケーブルを使います。

6. 3.5mm ステレオミニプラグ

Pico Audio Packとスピーカーを接続するケーブルです。

7. 3.5mmステレオライン入力のあるスピーカー

Pico Audio Packを出力するスピーカーです。今回はAnkerの「Soundcoreポータブル」を使いました。

8. パソコン

Raspberry Pi Picoの開発環境を作成するパソコンです。今回はWindowsパソコンを使います。

◇ Raspberry Pi PicoをUSBサウンドインターフェースにする手順

1. Raspberry Pi Picoにピンヘッダをはんだ付けをする

ピンヘッダの足の長い方をブレッドボードに挿して、Raspberry Pi PicoのGPIOを合計40点はんだ付けをしていきます。

ピンヘッダをはんだ付けをした後のRaspberry Pi Pico

2. Pimoroni PIM544 Pico Audio Packを接続する

Pico Audio Packの基盤裏面にUSBと記載があります。Raspberry Pi PicoのUSB端子がこちら側に来るようにRaspberry Pi PicoピンヘッダをPico Audio Packのピンソケットに挿します。これでハードウエア作成は完了です。

Pico Audio Pack基板の裏面

3. 開発環境をセットアップする

パソコンにRaspberry Pi Picoで動作するプログラム開発環境を設定します。Pico setup for Windowsというセットアップスクリプトを活用すれば必要なファイルを自動的にセットアップできます。まずPico setup for WindowsのGitHubのページにアクセスします。

Releasesをクリックします。

Pico setup for Windowsのダウンロード(1)

最新(Latestと表示されている)のpico-setup-windows-x.x.x-x64.exeのインストーラーをクリックしてダウンロードします。ダウンロードしたファイルのインストールを開始します。

Pico setup for Windowsのダウンロード(2)

インストールが完了しましたら、インストール先フォルダーに移動し、pico-setup.cmdを起動します。サンプルプログラムのコンパイルが開始し、問題なく終了すれば開発環境の作成が完了です。

4. プログラムを変更し、コンパイルする

Pico setup for Windowsのインストール先フォルダーにあるVisual Studio Code for Picoを起動するとVisual Studio Codeが起動します。Raspberry Pi Picoで開発するときにはVisual Studio Code for Picoから起動してください。
Visual Studio Codeの「フォルダーを開く」をクリックし、Pico setup for Windowsのインストール先フォルダーにある「pico-playground」フォルダーを開きます。

Visual Studio Codeの起動

pico-playgroundが読み込まれましたら、エクスプローラにPICO-PLAYGROUNDが展開されます。画面の一番下を見てCmakeがReleaseになってること、コンパイラがGNU Arm Embeddedになっていることをを確認します。異なっていましたら変更します。

PICO-PLAYGROUDの展開とCmake,コンパイラの確認

開発環境に問題なければソースコードを変更していきます。Pico Audio Packのホームページに以下のように記載がありますので、これを反映したいと思います。

Pico Audio Packは、Raspberry Piの実験例で提供されているI2Sオーディオの例(usb_sound_cardとsine_wave_i2s)で使用できます。どのピンがオーディオデータに使用されているかをサンプルに伝えるために、#define PICO_AUDIO_I2S_DATA_PINとPICO_AUDIO_I2S_CLOCK_PIN_BASEをそれぞれ9と10にする必要があるでしょう。

Pico Audio Pack販売元Pomoroniの製品ページより

PICO-PLAYGROUNDのapps -> usb_sound_card -> usb_sound_card.cを開きます。12行目の#include "pico/audio_i2s.h"を右クリックして「定義へ移動」を選択しますと参照するヘッダーファイルに飛びます。

PICO_AUDIO_I2S_DATA_PINとPICO_AUDIO_I2S_CLOCK_PIN_BASEを探す

開いた audio_i2c.hで#define PICO_AUDIO_I2S_DATA_PIN と#define PICO_AUDIO_I2S_CLOCK_PIN_BASEを検索し、以下のように変えてください。

#define PICO_AUDIO_I2S_DATA_PIN 9
#define PICO_AUDIO_I2S_CLOCK_PIN_BASE 10

ファイルを保存し、これを画面下のBuildを押します。Buildが完了するまでしばらく待ち、Build finished with exit code 0がでれば完了です。

プログラムのBuild

5. Raspberry Pi Picoにプログラムを書き込む

Buildが終わると「pico-playground」フォルダー内のbuild -> apps -> usb_sound_cardにusb_sound_card.uf2が生成されていますので、このファイルをRaspberry Pi Picoに書き込みます。

Raspberry Pi Pico用の実行ファイル

Raspberry Pi PicoをパソコンにUSBケーブルで接続します。接続するときにBOOTSELボタンを押しながらパソコンにつないでください。usb_sound_card.uf2をRaspberry Pi Picoにドラッグ&ドロップするとその時点からusb_sound_card.uf2の動作が始まります。

BOOTSELボタンを押しながらパソコンと接続する

Pico Audio PackのLine Out端子とスピーカーのステレオミニプラグケーブルで接続し、試しにプログラムを書き込んだパソコンから何か音を再生してください。音が再生できれば今回の作業は完了です。

私は以前にRaspberry Piで作成したFM3 Buddha Machineにこのサウンドインターフェースを接続しました。Raspberry PiにRaspberry Pi Picoを接続する

本来であればRaspberry Pi Picoのソフトウエア開発環境を設定するにはさまざまなソフトウエアをインストールするのですが、Pico setup for Windowsはこのあたりを全て設定してくれますので非常に便利です。

この記事が参加している募集

つくってみた

この記事が気に入ったらサポートをしてみませんか?