UIFlowの環境でHuskyLensを使えるようにする

UIFlowとは M5Stack系列がサポートしている開発環境の1つ。主な特徴は以下の通り。 Web上でコーディングから書き込みまでできる。 ビジュアルプログラミング言語Blockly及びMicroPythonをサポートしている。 HuskyLensとは AI処理向けのSoC Kendryte K210 を搭載したAIカメラモジュール。顔認識、オブジェクト追跡、オブジェクト認識、ライン追跡、色認識、タグ(AprilTag)認識などの機能が実装されている。接続インタフェースはUART及びI2C。 MicroPython環境でHuskyLensを使う Pythonで実装されたHuskyLensとの通信用ライブラリは、RaspberryPiでの利用向けに公開されている。 MicroPython上でHuskyLensを使う場合、基本的にはここから必要な処理をコピペして使えば良さそうなのだが、一部 MicroPython(on ESP32) でサポートされていないモジュールを利用している箇所があるため、その部分を書き換える必要がある。ただし、今回はUARTでの通信を前提とする。 環境 UIFlowファームウェア : ver1.4.5.1 HuskyLens用Pythonライブラリ : 2020/06/28時点の最新 書き換えが必要な箇所 UART通信用オブジェクト生成部分 書き換え前 self.huskylensSer = serial.Serial(port=comPort, baudrate=speed) 書き換え後例 self.serial = machine.UART(1, tx=32, rx=33) self.serial.init(9600, bits=8, parity=None, stop=1) MicroPythonではmachineモジュールがもつクラスUARTを使ってUART通信バスにアクセスできる。ピン番号やボーレートは自分の環境に合わせて設定する。 参考 : クラス UART -- 二重シリアル通信バス — MicroPython 1.12 ドキュメント 16進数文字列からバイナリデータへの変換部分 書き換え前 def cmdToBytes(self, cmd): return bytes.fromhex(cmd) 書き換え後例 import ubinascii def cmdToBytes(self, cmd): return ubinascii....

June 28, 2020 · 1 min