趣味探しブログ「研究しましょう」 --- 日記 マガジン

    やりたい趣味を探してネットをさまよう私の、ブログです --- I'm here. Find me out.
0

ぴっぴちゃんは、両面テープとJSONでできている 📺🐰  #M5Stack #電子工作 #スタックチャン

両面テープを駆使している
 ぴっぴちゃんことスタックチャンは、私が手先が不器用なこともあって、首とか内蔵とかを、これらの両面テープを駆使して構成している。えっと、記事が文字だらけになってモアレなので 💦

 今、ニューぴっぴちゃんに向けて、調査と実験を続けている。今日、やっと、データを JSON化してSDへの書き込み読み出しからの再利用の実験ができた。手こずった。ので、ここにメモ。

JSONライブラリーは ArduinoJson.h を使った。 AIスタックチャン が使っているので、替えるわけにも行かない。

一番困ったのが、JSON データとして数値配列を入力するところ。色々調べて見つけられず、結局、『ライブラリーのサンプル』の方法をそのまま使った。

StaticJsonDocument<200> doc;
JsonArray data = doc.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);

JSONのカラム名と同じ名前だけど、データ入力は JsonArray の data の方に、一個づつ add( ) していく。配列から一気に入力する方法を探したんだけど、見つけられなかった。

この JSON をSD に保存するのは、超、簡単。

File fp = SD.open("/test.json","w");
serializeJson(doc, fp);
fp.close();

読み出しは、

File fp = SD.open("/test.json");
deserializeJson(doc, fp);
fp.close();

これだけ。

もう一つ困ったのが、大量のデーターをJSON オブジェクトに読み書きしていくと、JSON の消費メモリがドンドン上がっていって、初期設定値を超えてしまうこと。この対処は、スコープをしっかり限定したり、明示的にガベコレをするしかなかった。

上の、data の場合は data.clear(); を、データの入力でごちゃごちゃした場合の JSON オブジェクトは doc.garbageCollect( ); を、すぐにスコープから抜けようとも、その前に実施しておかなくては、doc がメモリフルになってしまう。

今回の試作では、1コマンド分の JSON ファイルは 600バイトぐらい。10個要素があったら、6KBか。メモリ上に展開する方法を考えないと、きついかもしれない。

 JSONの実験はこれぐらいにして、次は、Web API 部分の作成と、HTML + CSS もしくは JavaScript の勉強をしないといけない。

  「あとどれ位掛かるのか、見当も付かない」

それが終わったら、さえずりぴっぴちゃんの開発もしないといけないし、うぅ、AIスタックチャン をいじれない 💦

該当の記事は見つかりませんでした。

Leave a reply






管理者にだけ表示を許可する