M5のUnitV2のオブジェクト認識機能を使って、検出されたオブジェクトの名前と確率をArduinoで表示したい
sketch
1 2#include <SoftwareSerial.h> 3#include <ArduinoJson.h> 4 5// RX, TX 6SoftwareSerial mySerial(0, 1); // ピン0をRX、ピン1をTXとしてソフトウェアシリアル通信を設定 7 8void setup() { 9 // シリアル通信を開始し、ポートが開くのを待つ: 10 Serial.begin(115200); 11 while (!Serial) { 12 ; // シリアルポートが接続するのを待つ。ネイティブUSBポートのみ必要 13 } 14 15 // ソフトウェアシリアルポートのデータレートを設定 16 mySerial.begin(115200); 17 18 // UnitV2に物体認識機能に切り替えるコマンドを送信 19 mySerial.println("{\"function\":\"Object Recognition\", \"args\" : [\"yolo_20class\"]}"); 20} 21 22void loop() { // 繰り返し実行 23 if (mySerial.available()) { 24 // UnitV2からのデータを読み取る 25 String input = mySerial.readStringUntil('\n'); 26 27 // ArduinoJsonライブラリを使用してJSONデータを解析する 28 StaticJsonDocument<1024> doc; 29 DeserializationError error = deserializeJson(doc, input); 30 if (error) { 31 Serial.print(F("deserializeJson() failed: ")); // deserializeJson()の失敗を表示 32 Serial.println(error.f_str()); 33 return; 34 } 35 36 // 検出されたオブジェクトの数を取得 37 int num = doc["num"]; 38 39 // 検出されたオブジェクトを通過し、その名前と確率を出力 40 for (JsonObject object_item : doc["object"].as<JsonArray>()) { 41 const char* object_item_name = object_item["name"]; 42 double object_item_prob = object_item["prob"]; 43 Serial.print(object_item_name); 44 Serial.print(": "); 45 Serial.println(object_item_prob); 46 } 47 48 } 49} 50
上記のコードでうまくいきません。
まずUnitV2のオブジェクト認識機能が起動しているのか?
何度かプリント表示が出たりもするのですが、おかしい
です
よろしくお願いします。

あなたの回答
tips
プレビュー