memo: moddableでSDカードが使えるようになった
前々からModdableにSDカード機能が使えたらと思い続けていたが、突如としてDiscussionsに投稿されたスレッドが発端となる。
なんかコードもzipで怪しいと思ったら本当にSDカードらしき実装でびっくりしているhttps://t.co/hNkzKeBsW3
— STC (@stc1988) 2023年4月6日
※本記事執筆時にはちゃんとソースコードとして登録されているが、上記ツイート時にはzip一式しか格納されてなかった。
確かに動きそうな実装ではあったので、実際に使ってみた。
現状READMEではリポジトリのディレクトリをmoddableSDK本体側にコピーしているが、昨年にgitリポジトリのmanifestファイルを直接インクルードできるようになったので以下のように指定する
"include": [ { "git":"https://github.com/salarizadi/moddable-sdk.git", "include":"Modules/SD/sd-module/manifest_spi.json" } ],
サンプルコードに沿ってM5stack core2では以下のようにSDの設定をしてみたところ、確かに動いた!!
// Setup SD card trace("SD initialize : " + $SD.mount({ miso: 38, // Default 19 mosi: 23, // Default 23 clk: 18, // Default 18 cs: 4, // Default 5 ff: true, // Format if mount failed transfer_sz: 4000, max_files: 5, aus: 16 * 1024 // Allocation unit size }));
レポジトリから直接インクルードできるものの、deviceの設定の方に設定を書いていきたいので、moddableSDK本体にマージされないかな。 と思いつつ、これから追加で画像や音声リソースを入れてみて実用的なパフォーマンスで利用できるか確認してみようかと思います。
---追記( 2023/4/8 21:00)----
もう少しデバイスごとのピアアサインを手軽に使うために以下のようなマニフェストを用意すると便利そう(本当はdeviceの方に設定を書きた...
import SD from "sd" import {File, Iterator, System} from "file"; import config from 'mc/config'; const $SD = new SD(); const root = "/sdcard/"; let file; // Setup SD card trace("SD initialize : " + $SD.mount({ ff: true, transfer_sz: 4000, max_files: 5, aus: 16 * 1024, ...config.sd }));