SiPEED MAixにはI2S入出力があり、DockボードではI2S出力デジタルアンプが接続されていますので、スピーカーをつなぐだけで音を出すことができます。
ということで試してみました。
接続する端子は、ボード上ではLCDを接続するコネクタの隣にあります。
単なるパッドで、ピンヘッダ用の穴はありません。
ちなみに、そのすぐ下にあるのがデジタルアンプチップPAM8403です。
拡大するとこんな感じです。
パッドが4つあり、L、Rと書かれています。
正負ですが、回路図によると、どうもL+、L-、R-、R+という並びのようです。
パッドに直接ハンダ付けすると、何かと不便そうなので、まずピンソケットを取り付けました。
ソケットはArduinoなどで使われているものよりも背が低いものを使ってみました。間隔は2.5mmです。このソケットは秋月電子で入手できます。
パッドのサイズに合わせて、ピンの長さは少し切り詰めました。
ちなみにMAix GoやM5StickVはスピーカー内蔵ですので、ハンダ付けしたくなければそれらを選ぶほうが苦労がなくていいです。
aitendoで購入したスピーカーをつないでみます。
音出しのサンプルとして、SDカード上に置いたWAVファイルを再生するMicroPythonスクリプトが提供されています。(ファームウェアは0.4を使用しました。)
ただ、このスクリプトは一部をボード(Bit&Dock, Go, Maixduino)に合わせて書き換える必要がありますので、以下にDock専用のものを再掲します。
再生するファイル名は"/sd/6.wav"
になっていますので、適宜変更してください。
WAVファイルで使えるコーデックは16bit 符号付きPCMです。ADPCMは使えません。
鳴らしてみると、まあ一応音は出ますが、ノイズは結構ひどいです。
が、まあI2Sにデジタルアンプをつないだだけですから、こんなものでしょう。
秋月電子で売っているステレオミニジャックDIP化キットを使うと、スマホ用の外付けスピーカーやヘッドホンも接続できます。
アンプは大出力ですので、特にヘッドホンを使う場合、上記のスクリプトの"player.volume(40)"
のところの値を2くらいにして下さい。
WAVファイル再生以外では、ファミコンエミュレータも音が出力できます。
ファームウェア0.4では、このエミュレータはMicroPythonのモジュールになっていて、ROMファイルの指定などのAPIがMicroPythonから呼び出せます。
エミュレータ自体はCで書かれていて、ソースを見るとInfoNESという古いエミュレータを移植したもののようです。
ドキュメントがこちらにあります。
コントローラの入力は、シリアルポート経由かSPI経由で行います。
シリアルポートでは複数キー同時入力ができませんので、実用的には厳しいものがあります。
SPI経由の場合は、プレステのコントローラを使います。プレステのコントローラのインタフェース仕様ってSPIだったんですね。知りませんでした・・・
コメント