Sipeed Maixduino を購入 ーエッジAI活用への道 1ー
我が家でもエッジAIなるものを活用してみたくSipeed Maixduinoというものを購入してみました。
ここではMaixduinoの初期設定から開発環境の導入までを記載いたします。
目次
Maixduinoとは
Sipeed 社のK210搭載AI開発ボードです。2.4インチLCDとカメラモジュールがついて非常にお買い得な商品です。ESP32も搭載されております。
Arduinoのようにピンヘッダもついていますので入門としては最適ではないでしょうか。
参考
ファーム更新
Maixduinoのファームウェアアップデートはkflash_guiというソフトで実施します。私はバージョン1.5.3を用いました。
ファームウェアは以下より入手します。
https://github.com/sipeed/MaixPy/releases
私はバージョン0.3.2を用いました。maixpy_v0.3.2_minimum.binをダウンロードしました。
先ほど入手したkflash_guiを起動しFileで.DLしたbinファイルを指定します。ボードとシリアルポートを設定後 “Download”クリックでファーム更新されます。
maixpy_v0.3.2_full.binを書き込むとメモリ不足で動きませんでした。
参考
MaixPyでカメラとLCDのテスト
MaixduinoにはMaixPyというK210向けのMicropython環境がすでに搭載されています。MaixduinoとPCをUSB接続してシリアル通信で実行可能です。
私はWin10PCでTera Termで楽しみました。ポートとボーレート(115200)を指定するのみで使用できます。
Pythonのように対話形式での利用も可能ですがctrl+eでコードまるごと貼り付けできctrl+dで実行されます。
以下のカメラで撮った画像をLCDに表示するコードを実行してみました。
とりあえずカメラとディスプレイは出来たけど たしかにケースないと辛いな#Maixduino pic.twitter.com/VctpubFBTE
— HomeMadeGarbage (@H0meMadeGarbage) September 26, 2019
LEGOでケース製作
ちょっとカメラやLCDのフレキがプラプラですごく扱いにくいのでLEGOでケースこしらえました。
ケースをこしらえました#Maixduino #LEGO pic.twitter.com/Qm2beZqNF3
— HomeMadeGarbage (@H0meMadeGarbage) September 26, 2019
かなり扱いやすくなりました♪
MaixPy IDE
シリアルでコード入力しつつけるのもつらいのでやはりIDEを導入したく。いろいろな開発方法があるようで何を使っていいかわからなかったのでツイッターでアンケートを取ってみました。
Sipeed Maixduinoを購入いたしました。
初めてのK210です。より多くの幸せを得られる開発環境は?
— HomeMadeGarbage (@H0meMadeGarbage) September 26, 2019
MaixPy IDEの人気が高かったので早速導入しました!
MaixPy IDE導入
バージョン0.2.3をインストールしました。
maixpy-ide-windows-0.2.3.exe をDLしてインストールしました。
- MaixPy IDEを起動して”ツール”クリック -> “Select Board”選択 -> “Sipeed Maixduino”選択
- 接続アイコンをクリックしてボードのUSBポートを指定します。接続後アイコンは緑から赤になります。
- コードを記載してスクリプト実行アイコンクリックで開始されます。
- コードをMaixduinoのフラッシュに書き込むには
“ツール”クリック -> “Save open script to board(boot.py)”クリックで実施されます。
顔認識サンプルコード
顔認識コードを試してみました。
ファーム更新で無事 顔認識できました。https://t.co/07zfygpn3g
こりゃすごい#Maixduino pic.twitter.com/gCYtbSbpJh
— HomeMadeGarbage (@H0meMadeGarbage) September 26, 2019
学習済み顔認識モデル face_model_at_0x300000.kfpkg をkflash_guiであらかじめ書き込んでおきます。
ほぼサンプルコード通りに書き込みましたが、カメラとLCDディスプレイの位置関係によって表示画像の回転やミラー反転が必要でした。
lcd.direction(lcd.YX_RLUD)
上記をlcd.init()後に挿入しました。
R, LとU, Dの位置を変更することでLCD表示画像が回転したりミラー反転します。
参考
- https://maixpy.sipeed.com/en/get_started/maixpyide.html
- https://maixpy.sipeed.com/zh/get_started/maixpyide.html
今後の夢
将来的には以下のようなシステムを構築したいと思います。雑でアレですが。。
金魚水槽にエッジAIを組み込んで素敵なシステムを実現したいです。
まだできるかどうかもわかりませんがこの道もひたむきに進むのみです。
参考
- トランジスタ技術 2019年8月号
Sipeed MAixについての記載がございました。基礎的知識が手に入りました!