micropython
bpi

bpi:bit の MicroPython その2

9日目に続けて bpi:bit 用 MicroPython について書きます。昨日は MicroPython のファームウェアをインストールするところまででした(12/10 に新しい firmware.bin がリリースされました)。本日は mpfshell というツールを使って Hello World を実行します。

mpfshell ツール

mpfshell はリモートで MicroPython ボードを操作するためのツールです。Windows 版は bpi:bit MicroPython ダウンロードサイトWindows-Mpfshell.exe という名前であります。Linux や macOS の場合は intellij-mpfshell-1.1.1.zip をダウンロードして、展開した中にある scripy/mpfshell.py を使います。

起動はたとえば、macOS の場合では 次のようにします。シリアルポートの指定は起動してからでも open コマンドで指定できます。シリアルポートの /dev/ は省略できます。

$ python3 mpfshell.py cu.wchusbserialfa1440 

Documented commands (type help <topic>):
========================================
EOF  close     get   lexecfile  ls    mput  open  quit  runfile
cat  exec      help  lls        md    mpyc  put   repl
cd   execfile  lcd   lpwd       mget  mrm   pwd   rm  

Undocumented commands:
======================
c  e  ef  lef  o  q  r  rf

All support commands, can input help ls or other command if you don't know how to use it(ls).
looking for computer port...
serial name : cu.Bluetooth-Incoming-Port
serial name : cu.wchusbserialfa1440
input ' open cu.wchusbserialfa1440 ' and enter connect your board.
Connected to esp32

** Micropython File Shell v0.8.1, sw@kaltpost.de & juwan@banana-pi.com ** 
-- Running on Python 3.6 using PySerial 3.4 --

mpfs [/]> 

mpfshell を使えば、Unix/Linux 風のコマンドで bpi:bit を操作できます。ls や cat を使って bpi:bit のファイルシステムにあるファイルを操作できます。

mpfs [/]> ls

Remote files in '/':

       boot.py
       wifi_cfg.py

mpfs [/]> cat wifi_cfg.py
WIFI_SSID = 'webduino.io'
WIFI_PSWD = 'webduino'
HOST_NAME='bit2438'

mpfs [/]> 

Wi-Fi の設定

さて、今 cat コマンドで wifi_cfg.py の中身を見ましたが、bpi:bit の Wi-Fi 設定はこのファイルで行います。これを自分の環境用に直しておかないとシリアルに no AP found というメッセージは頻繁に出でうるさいので、ここで直してしまいましょう。実際は正当な設定ツールがあるのですが、けっこうまだるっこしいしいので直接このファイルを更新します。 wifi_cfg.py の中身は次もフォーマットです。

WIFI_SSID = "WiFiアクセスポイント"
WIFI_PSWD = "WiFiアクセスポイントのパスワード"
HOST_NAME = "ボードのネットワーク名"  # オプション

これを自分の Wi-Fi 環境用に設定したファイルを用意してから、以下のようにして mpfshell の put コマンドで転送します。

mpfs [/]> put wifi_cfg.py
mpfs [/]> 

REPL の起動

mpfshell から repl コマンドを実行すると REPL が起動します。おなじみ "Hello, World!" を print してみましょう。

mpfs [/]> repl

*** Exit REPL with Ctrl+] ***>

MicroPython v1.9.4-817-g72effc642-dirty on 2018-12-10; ESP32 module with ESP32
Type "help()" for more information.
>>> print('Hello, World!')
Hello, World!
>>> 

このボードのちょっとおもしろいところは microbit モジュールが用意されていて、micro:bit の LED スクロールなどがそのまま使えるところです。

>>> import microbit
>>> microbit.display.scroll('Hello, World!')
>>> 

bpibit_hello.gif

本日はここまです。サンプルコードは githubにたくさん用意されているので、bpi:bit を持っていたら試してみてください。