SPRESENSEで始めよう!

日本製マイコンを世界のスタンダードにしようぜ

SPRESENSEでシンセサイザー(習作)前編・先ずSDカードを認識させよう

SPRESENSEでシンセサイザーを作りたい!

あのSONYが作るSPRESENSEなら、やっぱり音楽。
シンセサイザーメーカーではないけれど、やれば出来るっしょ。

ということで、SPRESENSE シンセサイザーで検索してみると。

makers-with-myson.blog.ss-blog.jp

おおおおおお!!!!!!!!!!!!!これこれ。

デモ演奏もかなりグッとくるサウンド。もしや内部生成?ん、MP3を使う

ダブルプレイヤー機能かな。録音機能も優れているから、これ応用したらサンプラーにもなりそうね。とにかく楽しげなので作ってみよう。Githubもあるし。

さらに検索。

cellspe.matrix.jp

おおおおおお!!!!!!!!!!!!!こちらは内部生成したりいろいろしてる。

こちらは工作不要なので、まずこちらから試してみる。

必要なのは

  1. PRESENSEメインボード、
  2. 拡張ボード、
  3. USBケーブル、
  4. ステレオヘッドホン(ミニプラグ)、
  5. microSDカード。

ArduinoIDE等の準備に加えて、DSPコーデックをSDカードにインストール。

DSPコーデック、内臓SPIフラッシュにも書き込めるみたいだけど、やっぱり処理速度変わるのかな。低レイテンシが必要なエフェクター等に応用する時は比較検討してみよう。

ではFMシンセから作ってみる。その前に・・・

SDカードの読み書き、認識が出来るようにしよう

まずSDカードが認識できるようにしないと始まらない。以下の作業で、PCから読み書きできるようになる・・・のか?

Spresense Arduino IDE デベロッパーガイド - Sony Developer World

eMMC ライブラリは eMMC Add-on ボード (今後発売予定) の eMMC デバイスにアクセスするためのライブラリです。

eMMC ライブラリは、Arduino SD ライブラリ に類似した API 構成となっており、オブジェクト名を SD から eMMC へ置き換えることで、SD ライブラリと同じインターフェースを用いて eMMC デバイスへアクセスすることができます。

また、追加機能として、USB MSC (Mass Storage Class) 機能をサポートしています。 Spresense 拡張ボードにある USB と PC を接続し、beginUsbMsc() を呼び出すことで、PC から eMMC デバイス上のファイルに直接アクセスすることができます。

なるほど、分からん(笑)多分早い話、これを入れればSPRESENSEをSDカードリーダーとしてもつかえるようになるってことよ。知らんけど。(のちに間違いに気付く)

うん、良いサンプルがある

f:id:MYON:20220213011139j:plain

USB MSC機能のサンプルスケッチ

一通り試してみる。ArduinoIDEを立ち上げる。
USBはどっちにつけるんだ。とりあえず拡張ボードではなくメインボードに挿す。

フォーマットサンプルを新規スケッチにコピペ。コンパイル。ボードに書き込み。

書き込み成功。リブートされた。さて・・・

フォーマットサンプル。出来てるのか?PCからは見えない。

読み書きサンプル。よく分からん。

USB MSC 機能のサンプル。eMMC デバイスが PC 上のドライブとしてマウントされ、PC から eMMC デバイスに直接アクセスすることができ・・・おお、これだこれ。

いや、変わらん。

最後のサンプル・・・USB MSC 機能とファイル操作を組み合わせた複合アプリケーション

ここで気付く。いや、SDカード関係ないよね?「SD ライブラリと同じインターフェースを用いて」つまりSDとは違うって意味だ(笑)

物理的問題があるかも知れない?

検索してみよ。よし、これだ

spresense - SPRESENSEに接続したSDカードが認識できない - スタック・オーバーフロー

結論。メインボードを拡張ボードに強く押し込め。ほんまかいな。

絶縁袋に包んで、ギュッと押す。「カチッ!」めっちゃいい音するやん。気持ちいいやん。間違いない、挿せてなかったねコレ・・・

何しろこのコネクタ、小さい癖に100Pだものね。しかし・・・

やっぱダメか・・・もう一回ライブラリを探そう。

SDのための正しいライブラリを発見

「SDHCI ライブラリは Spresense 拡張ボードにある micro SD にアクセスするためのライブラリです」・・・これだよこれ、なにやってんだもう・・・

こっちのSDHCI ライブラリにある3 つのスケッチのサンプルを全て書き込み。

Spresense Arduino IDE デベロッパーガイド - Sony Developer World

これでダメならもうダメよダメダメ。ダメなのよ・・・(懐

動かない。SD読めない。あ、メインボードにUSB挿したままか。これを拡張ボードに変えると?認識した!

ふぅ~・・・。SDカード認識させるだけでこんなことに(笑)

何はともあれ大成功!やったぜ。

次はちゃんと自動演奏まで行きたい。ではまた。

 

今回のまとめ

SPRESENSEにSDカードを認識させPCからも読み書きできるようにするには

  1. 拡張ボードにメインボードをしっかり挿す(カチッて鳴る)
  2. SDHCIライブラリのサンプルスケッチをボードに書き込む
  3. ボードへの書き込み時はメインボードにUSBケーブルを挿す
  4. SDカードへのアクセスは拡張ボードのUSBポートを使う