トラ技の今月号(2019年11月号)の特集は、SiPEED MAixです。
実はこのボード、約1年ほど前にIndiegogoのクラウドファンディングで入手していたのですが、当時は時間が確保できずに積みボードになってしまっていました。
せっかく特集記事もあることだし・・・と、遅ればせながら引っ張り出してきて、動かしてみました。
購入したものはM1w dock suitというもので、現在も継続して販売されています。当時は16ドル+送料5ドルでした。今もそれほど変わらず安価に入手できるようです。
このキットはカメラモジュールとTFT LCDモジュールが付属していますので、まずそれらをボードに接続します。
下のように、コネクタの黒いプラスチックを引き起こしてから、リボンケーブルの電極部分を下にして差し込み、プラスチック部分を再度倒してロックします。
ボードにはUSBシリアルのチップとしてCH340が搭載されています。
このドライバは自動ではインストールできませんので、あらかじめインストールしておきます。
私は、以下のSparkfunのサイトからダウンロードしました。
How to Install CH340 Drivers – learn.sparkfun.com
ファームウェアとしては最初からMicroPythonが書き込まれています。
USB-Cケーブルを接続すると、LCDにWelcomeメッセージが表示され、シリアルポート経由でMicroPythonのREPLにアクセスできます。
起動スクリプトはこんな感じになっていました。
>>> import os >>> os.listdir() ['f 63200 /Maix.bin', 'f 550 /pwm.py', 'f 540 /init.py'] >>> f=open('init.py') >>> print(f.read()) import uos import os import machine import platform import board board_info=board.board_info() pin_init=platform.pin_init() pin_init.init() test_gpio_pin_num=18 fpioa=machine.fpioa() fpioa.set_function(test_gpio_pin_num,63) test_pin=machine.GPIO(7,2,0) lcd=machine.st7789() lcd.init() lcd.draw_string(116,121,"Welcome to MaixPy") fpioa.set_function(board_info.LED_R,fpioa.GPIO0) fpioa.set_function(board_info.LED_B,fpioa.GPIO1) fpioa.set_function(board_info.LED_G,fpioa.GPIO2) if test_pin.value() == 0: print('test') machine.test() >>>
これは古いファームウェアなので、まずは最新のファームウェアに書き換えます。
専用のファームウェア書き換えツール(kflash_gui
)があるので、以下からダウンロードします。
Release v1.5.3 · sipeed/kflash_gui
ファームウェアは以下からダウンロードできます。現時点では0.4.0が最新のようです。
何種類かありますが、「maixpy_v0.4.0_50_gcafae9d.bin
」をダウンロードします。
ファームウェア書き換えはシリアルポート経由です。
書き込み終わって起動してみると、液晶表示が180度反転して背景色も変わっています。
__ __ _____ __ __ _____ __ __ | \/ | /\ |_ _| \ \ / / | __ \ \ \ / / | \ / | / \ | | \ V / | |__) | \ \_/ / | |\/| | / /\ \ | | > < | ___/ \ / | | | | / ____ \ _| |_ / . \ | | | | |_| |_| /_/ \_\ |_____| /_/ \_\ |_| |_| Official Site : https://www.sipeed.com Wiki : https://maixpy.sipeed.com MicroPython v0.4.0-50-gcafae9d on 2019-09-21; Sipeed_M1 with kendryte-k210 Type "help()" for more information. >>>
組み込みモジュールは以下のようになっていました。
大分充実していますね。
>>> help('modules') KPU gc random uio Maix hashlib re ujson __main__ heapq sensor uos _boot image socket urandom _thread json struct ure _webrepl lcd sys usocket array machine time ustruct audio math touchscreen utime binascii math ubinascii utimeq board micropython ucollections uzlib builtins modules ucryptolib video cmath nes uctypes zlib collections network uerrno errno os uhashlib fpioa_manager pye_mp uheapq Plus any modules on the filesystem >>>
サンプルスクリプトが以下のサイトにあるので、まずはこれを動かしてみました。
Webからコピーして、MicroPythonのREPLにCTRL-EでPasteすれば動かせます。
sipeed/MaixPy_scripts: scripts for MaixPy ~ have a good time~
沢山のスクリプトがありますが、やはりmachine_visionフォルダが気になります。
現在は5つのスクリプトが入っています。
◆demo_find_face.py
カメラから顔画像を探すスクリプトです。顔認識のためのモデルを別途フラッシュに書き込んでおく必要があります。
モデルのファイルはこちらです。
フラッシュへの書き込みは、上述のファームウェア書き込みツールが使用できます。
記事冒頭の写真は顔認識の例です。
◆demo_find_green_blob.py
カメラから緑色の領域を探すスクリプトです。
実行するとこんな感じです。
◆demo_fps_display.py
カメラ画像をLCDに表示し、FPSを測定します。
◆demo_image_deal.py
画像処理のサンプルです。
◆demo_scan_qr_code.py
QRコードスキャンのサンプルです。
QRコードを認識した結果はREPL側へ出力されます。
全般的に、想像していたよりもかなり高速で、ちょっと驚きました。
名刺の半分ほどのサイズのマイコンボードで、ここまでできてしまうのですね。
コメント