LoginSignup
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-10-18

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秒点灯します。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8