chakokuのブログ(rev4)

日々のごった煮ブログです

K210が搭載された評価ボード、Sipeed のMaixduinoを買った

64bit RISCコアを2つ、CNN アクセラレータやFFTも内蔵するK210用の評価ボード。おなじみのESP32もボードに乗っていてネットワーク接続も可能。MicroPythonベースのMaixPyで制御可能で、すでに機能てんこ盛りらしく、どれだけ使いこなせるのか?遊べるのか?分からないけど、すぐに売れきれになりそうなのと、高性能の割には安いので買ってしまった。

f:id:chakoku:20190814080917j:plain
MaixPy
MicroPythonで内蔵ハードやTFT、カメラを制御できるようで、とっかかりは楽。とりあえず、、USB/SerialでPCと接続して、シリアルコンソール(TeraTerm)からブートメッセージ等を確認。かなり素っ気ない。。

>>> machine.reset()
&ェイ
   ツj
     [MaixPy] sd_init | SD_CMD0 is FF

 __  __              _____  __   __  _____   __     __
|  \/  |     /\     |_   _| \ \ / / |  __ \  \ \   / /
| \  / |    /  \      | |    \ V /  | |__) |  \ \_/ /
| |\/| |   / /\ \     | |     > <   |  ___/    \   /
| |  | |  / ____ \   _| |_   / . \  | |         | |
|_|  |_| /_/    \_\ |_____| /_/ \_\ |_|         |_|

Official Site : https://www.sipeed.com
Wiki          : https://maixpy.sipeed.com

MicroPython v0.3.2 on 2019-05-15; Sipeed_M1 with kendryte-k210
Type "help()" for more information.

空きメモリを確認500KB??こ、これはかなり少ないのでは。。

>>> micropython.mem_info()
mem: total=45829, current=15489, peak=17007
stack: 1012
GC: total: 518144, used: 13440, free: 504704
 No. of 1-blocks: 103, 2-blocks: 19, max blk sz: 65, max free sz: 15725
>>> gc.mem_free()
504512

https://www.seeedstudio.com/Sipeed-Maixduino-Kit-for-RISC-V-AI-IoT-p-4047.html


宣伝ページで再確認すると、K210(正確には、Sipeedの場合、Sipeed M1 AI Module?)には6MBの汎用SRAMが搭載されているとあるのだが。。

SoC – Kendryte K210 dual core 64-bit RISC-V processor @ 400 MHz with KPU CNN hardware accelerator, APU audio hardware accelerator, 6 MB general purpose SRAM, 2MB AI SRAM memory, and AXI ROM to load user program from SPI flash

実際に動かすには初期化コードが必要ですが、、以下のループでCMOSカメラの映像がリアルタイムでTFTパネルに表示される。このシンプルさ。すばらしい。

while True:
    lcd.display(sensor.snapshot())

描画の遅延も気にならない程の高速で、24fpsぐらい出ているのかも。しかし、、メインのM1チップはかなり熱い。内部でDMAとかバリバリに動かしているのかも。ソース読んでないのでどんな実装か分かりませんが。

■ご参考URL
MaixPyの説明
github.com
https://maixduino.sipeed.com/en/hardware/k210.html

■追記(190901)
ESP32+CMOSカメラの試作で時間が一杯になっていて全く触っていないけど、、これはどうやって遊ぶのだろうか。エッジAIとして使える? とある記事を読んでいると、このボードではAIの学習(誤差逆伝播というやつですか)はできないとあったけど(CPUパワーや動かせるフレームワークの制約により)。