邪フェス2 で邪神ちゃんしっぽマクロパッド (テンキー) を出すために久々に電子工作を再開しました。
前は自作キーボードと言えば Atmel (現: Microchip) の ATMega32U4 を用いたものが一般的でしたが、最近は Raspberry Pi 財団の開発した RP2040 が安くて (動作が) 早いということで主流になりつつあるようです。
PICO-BOOT (Raspberry Pi Pico 互換機) 購入
というわけで Raspberry Pi Pico を購入しに秋葉原に向かったのですが、 外部接続端子が USB microB だということを完全に忘れていました。いくら 700 円程度と安いとはいえ、今どき壊れやすくてケーブル調達のダルい microUSB を使いたくない…
そんなことを思いながら遊舎工房の棚を眺めていたら、 USB C 端子にした PICO-BOOT
という互換機が売られていました。お値段 1100 円。それでも ATMega32U4 の Pro Micro 互換機より安い…
QMK (オープンソースのキーボードファームウェア) 側が対応しているのも確認済みだし、実際に頒布するやつでも使おう、ということで 10 個 + 1 個 (試作用) をまとめ買いしちゃいました。お値段 12100 円。
あとせっかくだから X (旧: Twitter) でバズりやすい、というかキャッチーな感じを演出できるよう音を出して遊ぶための小道具を購入しました。
DFPlayer Mini で microSDHC カードから音楽を鳴らす
まずは DFPlayer Mini を使って microSDHC カードにある音楽を再生してみることにしました。
基板に MicroPython ランタイムを書き込み、簡単なコードを書いてブレッドボードに配線…動きました
Raspberry Pi Pico でペルちゃんを鳴らして遊んでいます
— ぜり (@zeriyoshi_s) February 4, 2024
Pico レッタちゃん #邪神ちゃんドロップキック pic.twitter.com/2ORQ9jxfDJ
まあ動いたんだけど、これって結局 DFPlayer Mini に再生命令送ってるだけだし、うーん…
PWM を用いて直接スピーカーから再生
単体で再生したい!ということでいろいろ調べてみると、どうやら Adafruit の CircuitPython を使えば PWM を用いて簡単に音楽が再生できそうだということに。
BOOTSEL
ボタンを押しながら USB 接続して CircuitPython の uf2
ファイルをコピーして書き込み、コードを書いて…動いた!
Raspberry Pi ピコちゃんのPWMだけでペルちゃん再生しました #邪神ちゃんドロップキックhttps://t.co/mjTg8fjowL pic.twitter.com/GMe40exx49
— ぜり (@zeriyoshi_s) February 5, 2024
PWM だけでやっててアンプがかまさってないから音量は小さめだけど、十分満足な感じ。
それはそうとこの PICO-BOOT とやら、 16MB (bit じゃなく byte) もの Flash ROM がついてて何なら単体で音楽プレーヤーにできそう… すごい時代ですね