AIの片隅で(22) M5StickVのお引越し、再起動

JosephHalfmoon

直ぐ何かに影響されます。aNo研著のMAiX本を読み、約7カ月ほど「眠っていた」Kendryte K210搭載の小さな「AIカメラ」M5StickVを復活させねば、と決意いたしました。ちょうど新しいPC(といっても誰かのお古をクリーンインストールしたもの)が手に入ったので、いろいろ入れ過ぎてカオス気味のメイン機からついでにM5StickV関係をお引越しさせよう、と考えました。しかし、AI業界で7カ月は長い。いろいろ変わっていた。。。

AIの片隅で 投稿順index

大した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標準版?

    1. _thread あり
    2. nes あり
    3. pmu あり
    4. touchscreen なし
    5. ulab なし
    6. video あり

次にv0.5.0-110minimum

    1. _thread なし
    2. nesなし
    3. pmuなし
    4. touchscreen なし
    5. ulab あり
    6. video なし

最後にv0.5.0-110の標準版?

    1. _thread なし
    2. nes あり
    3. pmu なし
    4. touchscreen あり
    5. ulab あり
    6. 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に取り換えれば良いのだし、とりあえず?標準版入れておきまする。

AIの片隅で(21) Lenna様のお写真 へ戻る

AIの片隅で(23) M5StickV, V-Trainingその後 へ進む