MAixPy、つまりMAix用のMicroPythonですが、組み込まれたモジュールが充実しています。どんなモジュールが入っているのか、調べてみました。(ファームウェアv0.4が対象です。)
まず、こちらが一覧です。
下線を引いてあるのが、MAixPy独自(MicroPython自身やMicroPython-Libに含まれていない)モジュールと思われるものです。
これらのモジュールと、オンラインマニュアルへのリンク先を以下にまとめます。
◆KPU, MAix, board
ハードウェア由来のモジュールです。KPUはニューラルネットワークのアクセラレータで、モデルをロードするのはこのモジュールを使います。
MAixはSiPとしてのMAixの機能をサポートする各種クラスを含むモジュールです。現在使えるのはGPIO、FPIOA、FFT、I2S(中国語)、Audio(中国語)、MIC_ARRAY(BBS)、freq(中国語)です。
boardはグローバル変数board_infoとBoard_Infoクラスを含みます。このクラスはピンにアクセスするためのクラスです。WiFiモジュールのイネーブル信号もここに含まれます。
◆image, nes
ハードウェアとは独立したライブラリです。imageは、MicroPythonとマシンビジョン関連機能を搭載したカメラモジュールであるOpenMV由来のモジュールです。画像ファイルの入出力や画像処理、描画、QRコードの認識などができます。
nesは以前書いたとおり、既存のNESエミュレータにMicroPythonのAPIを付けたものです。
他に、LittlvGLというGUIツールキットのクラスもマニュアルには載っているのですが、ファームウェアv4.0ではデフォルトでは組み込まれない設定になっています。
◆audio, lcd, sensor, touchscreen, video
周辺デバイスの入出力のためのモジュールです。それぞれオーディオ入出力、LCD、イメージセンサ(カメラモジュール)、タッチスクリーン、映像入出力を扱います。audio、videoのクラスはメディアプレイヤーのようなもので、ファイルへの入出力も含んでいます。
◆fpioa_manager, pye_mx
MicroPythonで書かれた小規模なモジュールです。FPIOAはデバイスの機能とGPIOピンとのマップを管理するものです。pye_mxはMicroPythonで書かれたスクリーンエディタpyeを移植したものです。
◆その他:math
なぜかmathモジュールが二つあります。謎です。
☆
videoモジュールを使ったビデオ再生は結構ちゃんと動きます。AVIファイルの形式は制約があり、Videoは320×240のMJPEG、AudioはPCMのみとなっています。デコーダはソフトでコードで、picojpegが使われているようです。
マニュアルのサンプルスクリプトに、SDカードに保存したAVIを再生する例がついているので試してみました。
ご丁寧にサンプルとしてBadAppleのAVIファイルも掲載されています。
コードはこんな感じです。(サンプルスクリプトそのものです。)
ボード上のカメラモジュールからの録画もできますが、こちらはカメラから画像として取得したものをAVIファイルに書き出すもので、ぎりぎり動画といえるフレームレート、しかも時々画像にノイズが載ります。品質的にはESP32 Cameraのうほうが良いかもしれません。
また、作成されるAVIファイルにインデックス情報がなく、普通のプレイヤーだと再生できません。VLC Media Playerでは再生できました。
コメント