ESP-WROOM-02でMicroPython (Mac) shellの導入

More than 1 year has passed since last update.

ESP-WROOM-02でMicroPythonではESP-WROOM-02にmicropythonのインストールまでを行いましたが、このままだとREPLで対話的に使うしかないです。1M以上のメモリがあればファイルシステムが使えるのですが、ファイルシステムにファイルをコピーするのも面倒です。そこで、mpfshellという簡単なシェルを導入してみました。


mpfshell

mpfshellはローカルのMacからftpライクにファイルのput、getや簡単なファイルアクセスができるツールです。


準備


mpfshellのダウンロード

mpfshellをhttps://github.com/wendlers/mpfshellよりダウンロードします。


関連ツールのインストール

mpfshellのドキュメントには、

$ sudo pip install pyserial

$ sudo pip install colorama
$ sudo pip install websocket_client

以上の3つをインストールするように書いてありますが、私のmacにはpyserialがインストールされていましたので、省略しました。

インストールされているパッケージは、以下で確認できます。

$ sudo pip list


mpfshellのインストール

ダウンロードしたmpfshellの中にあるsetup.pyを実行し、mpfshellをインストールします。

$ sudo python setup.py install


テスト

mpfshellを起動し、ボードにアクセスしてみます。

'open tty.usbserial-xxxx'のxxxxは実際のUSBシリアルのデバイス名です。

openした後にlsすると、ボードのファイルシステムの一覧が見れます。

デフォルトではboot.pyがインストールされています。

$ mpfshell 


** Micropython File Shell v0.7.6, sw@kaltpost.de **
-- Running on Python 2.7 using PySerial 3.1.1 --

mpfs [/]> open tty.usbserial-xxxx
Connected to esp8266
mpfs [/]> ls

Remote files in '/':

boot.py

以上でインストールとテストは終了です。


使い方

使い方はftpと似ています。


ファイル取得

mpfs [/]> get boot.py

boot.pyファイルをMacのカレントディレクトリにコピーします。


ファイル送信

mpfs [/]> put main.py

main.pyをMacのカレントディレクトリからコピーします。

ちなみに、main.pyというファイルがあると、起動後に自動的に実行するようになってます。


ファイルの表示

mpfs [/]> cat boot.py

# This file is executed on every boot (including wake-boot from deepsleep)
#import esp
#esp.osdebug(None)
import gc
import webrepl
webrepl.start()
gc.collect()


main.pyの実行

前回のLチカのスクリプトをmain.pyに書いて、LEDを点灯させます。

以下のファイルをMacで作成しておきます。

$ cat main.py

import machine
import time

pin = machine.Pin(4, machine.Pin.OUT)
pin.high()
time.sleep(3)
pin.low()

mpfshellでファイルを送信し、mpfshellからreplを起動します。

mpfs [/]> put main.py

mpfs [/]> cat main.py
import machine
import time

pin = machine.Pin(4, machine.Pin.OUT)
pin.high()
time.sleep(3)
pin.low()

mpfs [/]> repl

*** Exit REPL with Ctrl+] ***
>
MicroPython v1.8.4-10-gbc28ac8 on 2016-09-09; ESP module with ESP8266
Type "help()" for more information.
>>>

ここで、Ctrlーdを入力すると、ソフトリブートし、main.pyが実行されます。

うまくいけば、LEDが3秒間点灯するはずです。

replからmpfshellに戻るには、Ctrl+]を入力します。

ボードをリセットすると、同様にLEDが3秒点灯します。