直ぐ何かに影響されます。aNo研著のMAiX本を読み、約7カ月ほど「眠っていた」Kendryte K210搭載の小さな「AIカメラ」M5StickVを復活させねば、と決意いたしました。ちょうど新しいPC(といっても誰かのお古をクリーンインストールしたもの)が手に入ったので、いろいろ入れ過ぎてカオス気味のメイン機からついでにM5StickV関係をお引越しさせよう、と考えました。しかし、AI業界で7カ月は長い。いろいろ変わっていた。。。
大したAIもやらず、気付けば7カ月ものブランクが空いておりました。折角、クリーンインストールのPCに環境を全部移設、というか新規インストールするので、M5StickVの環境もアップデートして最新のものにしたい。まあ、当然と言えば当然ですかね。
ターゲットはWindows10、PCであります。しかしというか当然というか、結構面倒。普段使いのエディタ、ターミナルエミュレータ、Python、Visual Studio Code、そいつらのプラグイン、WSLにUbuntu、Ubuntuは後々長く使えるように、20.04LTSにいたします。aNo研様のお教えに従い、Ubuntu上のPython環境はMinicondaを使い、TensorflowにKerasは仮想環境を作ってそこに導入。まあ、ダウンロードしてクリクリやっていけば終わる仕事ではありますが、微妙に時間もかかるし、面倒。しかし、
昔に比べたらダウンロード時間は遥かに短くなっている気がする。
気のせいでしょうか。その代わりといっちゃなんですが、昔はダウンロードを始めるとしばらく「他の事」を出来たのが、微妙に短い時間で終わるので、画面とキーボードの傍から離れられない。YとかNとかOKとか適当に押すだけなんだけれども。
さて、「一般的なセットアップ」が終わり、いよいよM5StickVに掛かります。といっても一度セットアップ済のデバイスなので、USBで接続し、ターミナルエミュレータに接続すれば、即動きます。
動作OK
しかしね、肝心のMaixPyのファームウエアは大分古い。書き込んであるバージョンは
v0.4.0-52
というもののようですが、最新版はというと、
v0.5.0-110
らしい。これは更新しないと。しかし、ファームの更新の前に最新版のMaixPyIDEをインストールし、動作を確認。とりかえずインストール済の古いファームでも動いているっぽい。ま、更新することにしかずということで、MaiXPyのファームウエア(BINファイル)をダウンロードに行きました。しかし、みれば4つもあります。どれを入れたら良いものか?
maixpy_v0.5.0_110_g7caf245.bin maixpy_v0.5.0_110_g7caf245_minimum.bin maixpy_v0.5.0_110_g7caf245_minimum_with_ide_support.bin maixpy_v0.5.0_110_g7caf245_with_lvgl.bin
サイズは大分違います。Minimumと謳っている2つは700kバイト台。差は微妙なので、ide_supportと書いている方がIDE使うつもりなので、よいのかな。無印のbinは約2Mバイトちかい、相当いろいろ入っている?それよりさらに300Kほど大きいwith_lvglというのもある。ちょっとネットを調べてみると
lvglというのは一種のGUIらしい
とりあえず入れないでもよいかな。しかし、700kと2Mの差は気になる。当然、大きい方が、microPythonのモジュールが「いろいろ」使える筈。しかし、限りあるM5StickVのフラッシュ容量。AIやるとなるとここに学習済データなど書き込むことになる筈なので、ファームが大きくなるとデータが溢れる可能性が高くなる。どうしたものか?考えるくらいなら、書き込んで見てみればよろしかろう。どうせ、Flash書き込みツールKflash GUIも最新版をインストールするので(ただ、最新版をインストールしたらデフォルトが簡体字中国語で、エラーメッセージがなんだかわからない。古い版だと英語で立ち上がるのですが)、minimumとそうでないものを両方書いて、古い版とあわせ3者で比較してみました。
1Mバイト以上も違うので、相当モジュール数が違うのかと思いきや、どれも60個ほどのモジュール数で似たり寄ったり。違いのあるところを列挙します。まず古いv0.4.0-52標準版?
-
- _thread あり
- nes あり
- pmu あり
- touchscreen なし
- ulab なし
- video あり
次にv0.5.0-110minimum
-
- _thread なし
- nesなし
- pmuなし
- touchscreen なし
- ulab あり
- video なし
最後にv0.5.0-110の標準版?
-
- _thread なし
- nes あり
- pmu なし
- touchscreen あり
- ulab あり
- video あり
個別に見ていきます。マルチスレッドの_threadは、minimumでは無しだが、標準版ではあり。nesは任天堂ファミコンのエミュレータらしい。標準版には入っているけれども、私的には無くても良いかな~。次のpmu、これが何だかよく分からないのですが、どうもMaixPy独特のハード制御?のモジュールだった?みたい。v0.4.0では存在したが、v0.5.0では削除されている。そのせいでv0.4.0のときに動作できていた古い boot.py はエラーで落ちました。しかし、古いboot.py同等機能のお顔認識のmicroPythonデモ・スクリプトは問題なく動作。ツマラナイ顔ですが、私の顔は認識しました。pmuモジュールが要らなくなった理由は不明。touchscreenは古い標準版では使えなかったが、新しい標準版では使えるようです。しかし、M5StickV本体だけなら不要でしょうか。そしてmicroPythonにおけるNumpyであるulabは、v0.4.0ではなかったですが、v0.5.0になってminimumでもサポートになった。よかった(使ってちゃんと計算するのだろうね。)videoは古い方も新しい方も標準版ではあり、minimum版ではなし。
私などは、minimum版でも十分な気がするな~。でもメモリ足らなくなったら、minimumに取り換えれば良いのだし、とりあえず?標準版入れておきまする。