[[Arduino勉強会]]

2019/04/27からのアクセス回数 &counter;

** 開発ボード購入 [#cc688719]
SipeedのMAIXは、RISC-V64 AIモジュール搭載の非常にユニークなCPUです。
開発用ボードには、以下のラインナップがあります。

- GO: MAIX、カメラ、液晶、アレイマイク、ステレオカメラ、ケースの全部入りキット
- Bit Kit: MAIX、カメラ、液晶のキット
- Dock: MAIX with WiFi、カメラ、液晶のキット

この中でも、Bit KitはWiFiが付いていないので、技適の問題もないので国内でもすぐに
利用できます。

Bit Kitは、$20.9(+送料$14.0)ととてもお得です。
- https://www.seeedstudio.com/Sipeed-MAix-BiT-for-RISC-V-AI-IoT-1-p-2873.html

&ref(Bit-Kit.png,,50%);



&ref(Sipeed-Bit-intro.jpg,,50%);




** ボードの回路図情報 [#gf5c95a8]
販売されて日が浅いため、中国語以外の情報が少なく、以下のサイトにある回路図から
読み取るしかありません。
- http://dl.sipeed.com/MAIX/HDK/

** MAIXのmicropytho(MaixPy)を動かしてみよう [#x3691c26]
*** バイナリファイルのダウンロード [#j02bceb8]
MaixPyの最新版は、以下のサイトからダウンロードできます。
- https://github.com/sipeed/MaixPy/releases

現在の最新版は、v0.3.0です。以下のURLからmaixpy_v0.3.0_full.binをダウンロードしてください。
- http://dl.sipeed.com/MAIX/MaixPy/release/maixpy_v0.3.0/

*** ドキュメント [#ef5238c7]
MaixPyのドキュメントは以下のサイトにあります。
- https://maixpy.sipeed.com/en/

*** K-Flashのダウンロード先 [#k0188efc]
バイナリファイルの書き込みには、k-Flashを使用します。

Windowsユーザは、以下のファイルからF-Flashをダウンロードしてください。
- https://kendryte.com/downloads/

K-Flashを起動し、DeviceにMAiX BitのCOMポートを指定し、
Firmwareにダウンロードしたバイナリファイル(maixpy_v0.3.0_full.bin)を指定して
Flashボタンを押してください。

&ref(k-flash.jpg);


LinuxとMac OSXユーザは、python3にpyserialをインストールし、
gitコマンドでflash.pyをクローンします。
#pre{{
$ pip install pyserial
$ git clone https://github.com/sipeed/kflash.py kflash
}}

私の環境では、MAiX Bitのデバイスは、/dev/cu.wchusbserial1420
なので、以下のようにしてmaixpy_v0.3.0_full.binを書き込みます。

#pre{{
$ python kflash.py -p /dev/cu.wchusbserial1420 -b 2000000 -B dan maixpy_v0.3.0_full.bin
}}

*** 動作確認 [#ke7dbd09]
Windowsユーザは、teraterm、Linux, MacOSXのユーザならpicocom等の通信ソフトでアクセスします。

以下のようにMAiXPyの絵文字がでれば書き込みは成功です。

#pre{{
$ picocom -b 115200 /dev/cu.wchusbserial1420 
picocom v2.2

途中省略

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

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

MicroPython v0.3.0 on 2019-04-19; Sipeed_M1 with kendryte-k210
Type "help()" for more information.
>>> 
}}

** プログラミング環境 [#id3be97a]
micropythonのプログラミングには、mu-editorが便利です。
MaixPyの他、exp32やmicro:bitもサポートしています。

*** mu-editorのダウンロード [#y2a32cb1]
mu-editorは、以下のサイトからダウンロードできます。
お使いのOSに合わせてダウンロードしてください。

- https://codewith.mu/en/download

*** Lチカに挑戦 [#z91cbc58]
定番のLチカをmu-editorを使って試してみましょう。

MAiXのFlashにプログラムを保存することも可能ですが、
転送ボタンの動作が不安定なので、MAiX BitにSDカードを
挿入して、そちらにプログラムを保存することにします。

mu-editorから「新規」ボタンを押して、以下のソースを入力「実行」ボタンを押下します。

#pre{{ 
import utime
from Maix import GPIO
from board import Board_Info
from fpioa_manager import *

board_info = Board_Info()

fm.register(board_info.LED_R, fm.fpioa.GPIO1)

led_r = GPIO(GPIO.GPIO1, GPIO.OUT)

for i in range(20):
    led_r.value(not led_r.value())
    utime.sleep_ms(1000)

fm.unregister(board_info.LED_R, fm.fpioa.GPIO1)
}}

&ref(mu-editor-blink.png,,50%);


MAiX Bitに搭載されたRBG LEDの赤が点滅すれば成功です。

&ref(Bit-Blink.jpg,,25%);


*** ファイルの転送 [#t6409b8d]
SDカードにスクリプト(blink.py)を転送し、それを実行するこもできます。

mu-editorの「ファイル」ボタンを押し、転送したファイルを"Files on your device:"に
ドラッグしてください。

ファイルが転送されたら、再度「ファイル」ボタンを押し、編集画面に戻り、
次に「REPL」(インタラクティブモード)を押し、">>>"のプロンプトが表示されたら、
以下のコマンドを入力してください。

もし、スクリプトが動かない場合には、一連の処理を関数で定義し、importの後に関数を呼び出すようにすると、
上手く動きます。

#pre{{
os.chdir('/sd/')
import blink
}}

** 顔認識の例題 [#p3e398da]
Lチカが上手く動いたら、カメラとLCDをBitに接続して、顔認識のスクリプトを
実行してみましょう。

&ref(Bit_w_Camera_LCD.jpg,,25%);


以下のスクリプトを入力し、「実行」ボタンを押してください。

顔が認識されるその範囲がREPLのコンソールに表示され、LCDには水色の矩形で
表示されます。

#pre{{
import sensor
import image
import lcd

def face_detect():
    lcd.init()
    sensor.reset()
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_framesize(sensor.QVGA)
    sensor.run(1)
    face_cascade = image.HaarCascade("frontalface", stages=100)
    while True:
      img=sensor.snapshot()
      objects = img.find_features(face_cascade, threshold=1.00, scale=1.1)
      for r in objects:
        img.draw_rectangle(r,color=(0,255,255))
        print(r)
      lcd.display(img)

face_detect()
}}

&ref(Bit_face_detected.jpg,,25%);


** Sipeed Maix BiTのピン配置 [#qcd528fc]
Sipeedのサイト内容では、ピン配置がよく分かりません。
https://maixpy.sipeed.com/en/hardware/bit.html

以下に、Bitの回路図とboardinfoからBitの各ピンに割り当てられた機能を整理しました。

&ref(BiT_pin_layout.png);


** MaixPyの環境を準備する [#pf1b3dd2]
MaixPyをソースからコンパイルするには、大文字・小文字を区別するファイルシステムが必要なため、
dockerのUbuntu環境でMaixPyの開発を構築しました。

以下の手順でイメージ(約2GB)をダウンロードし、作業ディレクトリから起動してください。
maixpyのbashが起動します。

#pre{{
$ docker run -v `pwd`:/home/maix/workspace -i --name maixpyenv -t takepwave/maixpyenv
}}

再度maixpyenvで作業をするには、docker execコマンドを使用します。 起動時に指定したmaixpyenvと名前で実行プロセスを指定します。

#pre{{
$ docker exec --user maix -it maixpyenv /bin/bash
}}

** コメント [#k4f73729]
#vote(おもしろかった[33],そうでもない[3],わかりずらい[2])
#vote(おもしろかった[34],そうでもない[3],わかりずらい[2])

皆様のご意見、ご希望をお待ちしております。勉強会で分からなかったこと等、お気軽に問い合わせて下さい。

スパム防止に画像の文字列も入力してください。
- mu-editorのモードは「Python3」で良いのでしょうか?mu-editorがMAiX Goを認識しなかった。SDカードにboot.pyと言う名前でプログラムを書き込んでから、MAiX Goに差し込んで、電源スイッチをOnにしたら、プログラムが動いた。 -- [[nyu]] &new{2019-08-31 (土) 14:41:07};

#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc