M5Stackのパネル修理(未完)

以前M5Stackを落っことして表示不可になり、画面にヒビが入ったことはちょっと書いた。

その画面のパネル交換ができるキットがオフィシャルで発売されていたので、セールの時にいろんなものと同時に購入してみた。

購入したのはこれ。

AliExpress.com Product - M5Stack Glass Panel Repair Kit External Acrylic Material Screen Replacement

自分の場合は割れた画面だけでいいんだけど、ボタンも付いてくる。

修理方法は販売してるサイトにも載っていた。

 https://www.aliexpress.com/item/4000020264189.html

あんまり難しいことはしてないですね。

 

壊れたM5Stackは画面が割れただけなら良かったんだけど、電源入れても表示が白くなっちゃうだけだったんで、諦めていた。

しかし先日、電源を入れてみたらなぜか表示された。

自然治癒したんだろうか…。

謎ではあるんだけど、それならパネルの修理だけしようと、届いたキットの吸盤で引っぺがした。

ホントにこれだけで外せた。iPhoneみたい。

しかし新しいパネルを貼る前に、もう一度電源を入れてみたら…

また白くなってしまった…。

 

やっぱりLCD自体が不具合起こしてるんだなあ。

しかし捨てるのももったいないし、パネル交換は一時中断して、なんとかならないかもうちょっと足掻いてみます。

(新しいM5Stack買った方が安いし早い、という気もしなくもない)

Sponsered Link

M5StickV(その4)

M5StickV回りの進化が早すぎて、やったこととメモするのも追いつかない。
特にドキュメントの更新も早く、いつの間にか内容が更新されている。

前よりずっとわかりやすくなっている。

 https://docs.m5stack.com/#/en/related_documents/v-training

その中で、一番大きい点が1クラスあたり120枚以上の画像撮影が必要だったのが、35枚以上と半分以下に変更されているところ。
これは大助かり。かなり作業が楽になる。
認識率が悪かったものをまた撮影して、データを作り直してみたいと思う。

 

それとは別件で、先日Google Colaboratory上で画像認識のトレーニングをする方法について、いろいろ調べてた件。
M5StickV用のデータまで作ることができるコードを公開しているので、とても勉強になる。
(しかし自分ではほとんど理解が追いつかない…)

 https://colab.research.google.com/drive/1mirG8BSoB3k87mh-qyY3-8-ZXj0XB6h6#scrollTo=zZaQb4KqNBzW

これを自分でもやってみた。
というより、ただ単に自分のGoogle Colaboratoryの「Python3の新しいノートブック」を開いて、コードをブロックごとにコピペしては実行しただけ。

 

DropBoxに画像データを置く必要があるんだけど、これは先日M5StickVで撮影したものを100枚ずつ入れた。
これを圧縮。フォルダの構成と内容は、
neko.zip
   ---nikol
      ---1.jpg

      ---2.jpg

      ...
   ---_lion
      ---1.jpg

      ---2.jpg

      ...
…という感じ。
フォルダ名はそのまま認識画面で使用される。
なのでカスタムする箇所は本当に何もない。


各コードは基本的に普通のコピペでいいんだけど、画像を置いたDropBoxのURLを記入するところだけ、セルのコピーを行った。
(普通のコピペでエラーになって気付いた)

この方法の何がいいって、中で何やってるか画像で見えるようにされるとこ。
こういう風に。

グラフや画像を作ってくれるんだけど、実は解析結果をどう見ればいいのか全然わかってない。
ただ、かみねこぬいぐるみの認識率がやはりダメダメなのはよくわかった…。

 

最終的にM5StickV用のデータまで作ってくれて、ダウンロードできるので、これを入れて起動すれば画像認識ができる。

無事に成功。


撮影した画像の何が悪いのか確認するのにいいんだけど、どういうことをしているのか読み解いていくのも面白そう。
自分でカスタムできるようになるのは、まだその先だろうなあ。

Sponsered Link

M5StickV(その3)

本家から、M5StickVのみを使ってお手軽に物体認識のトレーニングできる方法が出てきた。

これはすごい。というより、この進化の速さがすごいと言うべきか。

 https://docs.m5stack.com/#/en/related_documents/v-training

写真撮影もM5StickVのみというのが良い。

撮影したデータは圧縮してクラウド上にアップロードしてトレーニングさせる必要がある。

 

となると、やっぱり自力でやってみたくなる。

やったことは公式のドキュメント通り。

専用のファームウェアをM5StickVに焼き直す際、自分の通常の環境がMacだったため、以前Maix Goで使用したちょっと古いKflash_guiを使用した。

 

手順を一応書いておく。(たぶん自分が後で忘れてるので)

まずはドキュメントの「Click to download firmware file」から「M5StickV_Firmware_0813.kfpkg」をダウンロード。

Kflash_guiを起動し、ファイルとデバイス(Ver.1.32だったのでMaix Goを選択)とM5StickVを接続したポートを選択して書き込む。

書き込む時に速度が速いとエラーになったので、一番遅くしたら時間がかかった。でも成功。

 

公式ドキュメントから今度は「Click here download bootzip」から「V-Training_boot_0823.zip」をダウンロードし、解凍。

MicroSDカードにフォルダの中身の3つのファイルをコピーし、M5StickVに挿して起動。

この画面通り、カメラが起動したらメインのボタンでシャッターを押して1種類につき120枚以上の画像を撮影し、別の種類の時に上のボタンを押してまた120枚撮影。原寸はこんな感じ。

これを3種類(3クラス)以上行う。疲れた。

 

もう一度SDカードを引っこ抜いて、中にできた二つのフォルダを接続したPCにコピー。

「train」に1から100と121からそれ以上の画像、「vaild」に101〜120が入ってるはず。

確認したら二つまとめてzipに圧縮して、今度は「lick to visit upload page」のところからzipファイルをアップロード。

アップロードにはメールアドレスが必要。

トレーニングが完了したらメールで教えてくれるので、そこに書いてあるリンクをクリックすると必要なデータがダウンロードされる。

ダウンロードしたファイルを解凍し、中にある3つのファイルをまたSDカードにコピーして(前のは捨てる)、M5StickVに挿して起動。

 

今回認識に使用したのは机に置いてあるぬいぐるみたち。

カミネコが二匹あるけど、片方はヤママヤーに変更しました。(懐かしい…)

最初は胴体まで入れてたんだけど、認識率が良くなかったので頭の部分を中心に撮影して二度目で成功。

ただ、その二度目の画像もアップロード後にエラーが出て、3度繰り返したせいで(?)M5Stackの中の人がメンテしてくれました。(わざわざメールくれました…申し訳ない)

ざっと検索してみた限りでは、Tensorflowのエラーのようだったけど治ったみたいです。

 

ツイッターに上げた通り、ニコルとポンデライオンの認識率は高いんですがそれ以外が微妙。

またやり直すか、他のぬいぐるみとかオブジェクトに変えてみるかしてみます。

でも120回以上映すの、大変なんだよなあ。

Sponsered Link

M5StickV(その2)

M5StickCだったり、M5StickVだったりとちょっとの違いでややこしい。

(たまに本家M5Stackも紛れたりする)

今度はM5StickVの方。いじってて気になったことメモ。

 

先日M5StickVでMicroSDカードに入れたプログラムがすんなり動いて、最初は喜んでいたんだけど…。

充電したのでUSBケーブルを抜いて単体で起動したところ、通常の顔認識プログラムしか動かなくなっていた。

慌ててケーブルを繋いだらまた動くようになったんで、電圧が足りないのかな。

正確には、SDカードから起動しないこともある、という不安定な感じ。

これがSDカード側の問題なんだろうか。別メーカーのSDカードで試してみたいところ。

 

それとSDカードに入れるmaixpyファイルは、boot.pyという名前にしておけばそのまま起動できることを初めて知った。

(最初に気付けよという感じだが)

なので例えばSipeed公式にあるスクリプトの、一番簡単なやつ

 
import lcd

lcd.init()
lcd.draw_string(100, 100, "hello maixpy", lcd.RED, lcd.BLACK)

これをboot.pyに書いてSDカードに入れておけば、

と、すぐに結果が確認できた。

 

これで楽しくなって色々遊んでたんだけど、ちょっと難しい(?)スクリプトになると、素直に移植できなかった。

やっぱりそう簡単にはいかないか。

もちろん、画面サイズの問題もあるんだけど。

面白いものがうまく移植できたら、またメモしておきます。

Sponsered Link

M5StickC(その3)

先日M5StickVを購入したんだけど、そのついでにM5StickCの小物も購入していた。

買ったのはスピーカーと、温度湿度とかの環境センサー。

AliExpress.com Product - M5StickC ESP32Mini IoT Development Board Finger Computer Compatible Speaker PAM8303 Amplifier MP4/MP3

 

AliExpress.com Product - M5StickC ESP32Mini IoT Development Board Finger Computer Compatible Hat ENV Weather Station and Compass Application

どちらも数ドル程度で安いし、ちっちゃいしでお手軽に扱える。

やっぱりM5StickCに直接刺せるのがいい。

ちなみにわざわざ中国から買っちゃったけど、今はスイッチサイエンスで買えるようになっていた。

 

Aruino IDEで簡単に動作確認。

今回サンプルのスケッチは公式のを使う。

 https://github.com/m5stack/M5StickC/tree/master/examples/Hat

念のため、M5StickCのドキュメントも見直し。

 https://docs.m5stack.com/#/ja/quick_start/m5stickc/m5stickc_quick_start_with_arduino_Windows

日本語なのは良いなあ。

 

M5StickCのライブラリはちょっとだけバージョンアップしていた。

それとENVのスケッチでコンパイル時にエラーが出て焦ったけど、Adafruit_BMP280のライブラリが自分の環境にインストールされてなかっただけだった。

問題があったのはそれぐらいで、元々M5StickCの環境が整っていればあとは普通に使用できるはず。

 

しかし見てるとどんどん温度が上がっていくぞ。

やっぱ発熱してるのかな。

ちゃんと動作してるということだから、これはこれで良いか。

Sponsered Link