Posted at

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 を持っていたら試してみてください。