Pico Audio Pack を試す(その1)
Pimoroni が発売している RPi Pico 用の I2S audio 基板。
これを試してみる。
sample
商品ページで紹介されているのは、以下のrepository
この中で、 audio/sine_wave
を試してみた。
UI
ふぃーーん
と音を、標準入出力を利用してvolume制御したり、step(pitch?) を変更したりできる。
keycode | operation |
---|---|
+ or = |
volume up |
- |
volume down |
[ |
step down |
] |
step up |
q |
quit |
+
は、shiftを押さなくてもいいように、 =
でもいいという気の配りようがいい。(英語キーボードのみ)
USB Serial
前回と同じように、USBシリアルを利用するためにsource code に変更を加える。
audio/sine_wave/CMakeLists.txt
target_link_libraries(sine_wave_i2s PRIVATE
pico_stdlib
pico_audio_i2s
hardware_uart
)
...
# enable usb output, disable uart output
pico_enable_stdio_usb(sine_wave_i2s 1)
pico_enable_stdio_uart(sine_wave_i2s 0)
PIN 設定
商品ページの説明にもあるが、pico-playgroundで想定してるI2S PINと Pico Audio Pack の配置が違う。
上図をみると、 I2S_DATA
は PIN12
を利用している。
が、APIの呼出はGPIOの番号なので、PIN9
となる。
audio/sine_wave/sine_wave.c
struct audio_i2s_config config = {
/*
.data_pin = PICO_AUDIO_I2S_DATA_PIN,
.clock_pin_base = PICO_AUDIO_I2S_CLOCK_PIN_BASE,
*/
.data_pin = 9,
.clock_pin_base = 10,
.dma_channel = 0,
.pio_sm = 0,
};
make
source code を変更したら、build
mkdir build
cd build
cmake ..
cd audio/sine_wave
make
i2s 用以外にpwm用、spif用のバイナリもできるが、i2sをPicoにinstall する。
demo
再起動したPico と Pico Audio Pack のheadphone端子にスピーカーでも繋いでおけば、いきなり音が鳴る。
USB Serial に screen でアクセスして、volumeやstepを変更。
こんな感じの音がなる。