このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

pyboard.py ツール

これは PC 上で動作する単体の Python ツールで、次のことができます:

  • MicroPython のデバイス上で Python のスクリプトやコマンドを素早く実行します。MicroPython のプログラムを開発するとき、デバイスとの間でファイルをコピーせずに素早くコードを試せるので便利です。

  • デバイス上のファイルシステムにアクセスします。これにより、(ボードが USB MSC をサポートしていなくても)コードをデバイスにデプロイできます。

名前とは異なり、 pyboard.py は raw REPL をサポートするすべての MicroPython のポート(STM32、ESP32、ESP8266、NRF を含む)で動作します。

最新版は GitHub からダウンロードできます。唯一の依存は pyserial ライブラリで、PiPy かシステムのパッケージマネージャからインストールできます。

pyboard.py --help を実行すると、次の出力が得られます:

usage: pyboard [-h] [-d DEVICE] [-b BAUDRATE] [-u USER] [-p PASSWORD]
               [-c COMMAND] [-w WAIT] [--follow | --no-follow] [-f]
               [files [files ...]]

Run scripts on the pyboard.

positional arguments:
  files                 input files

optional arguments:
  -h, --help            show this help message and exit
  -d DEVICE, --device DEVICE
                        the serial device or the IP address of the pyboard
  -b BAUDRATE, --baudrate BAUDRATE
                        the baud rate of the serial device
  -u USER, --user USER  the telnet login username
  -p PASSWORD, --password PASSWORD
                        the telnet login password
  -c COMMAND, --command COMMAND
                        program passed in as string
  -w WAIT, --wait WAIT  seconds to wait for USB connected board to become
                        available
  --follow              follow the output after running the scripts
                        [default if no scripts given]
  -f, --filesystem      perform a filesystem action: cp local :device | cp
                        :device local | cat path | ls [path] | rm path | mkdir
                        path | rmdir path

デバイス上でコマンドを実行する

これは、短いコード片を試したり、デバイスとのやり取りをスクリプト化したりするのに便利です。:

$ pyboard.py --device /dev/ttyACM0 -c 'print(1+1)'
2

同じデバイスとよくやり取りするなら、 --device コマンドラインオプションを使う代わりに環境変数 PYBOARD_DEVICE を設定できます。たとえば、次は前の例と同じです:

$ export PYBOARD_DEVICE=/dev/ttyACM0
$ pyboard.py -c 'print(1+1)'

同様に、 PYBOARD_BAUDRATE 環境変数で --baudrate オプションのデフォルトを設定できます。

デバイス上でスクリプトを実行する

デバイス上で実行したいスクリプト app.py があるなら、次のようにします:

$ pyboard.py --device /dev/ttyACM0 app.py

これは実際には app.py をデバイスのファイルシステムにコピーするわけではなく、コードを RAM に読み込んで実行するだけである点に注意してください。プログラムが生成した出力はすべて表示されます。

プログラム app.py が終了しない場合は、Ctrl-C などで pyboard.py を停止する必要があります。プログラム app.py は MicroPython のデバイス上で動作し続けます。

ファイルシステムへのアクセス

-f フラグを使うと、次のファイルシステム操作がサポートされます:

  • cat path デバイス上のファイルの内容を表示します。

  • cp src [src...] dest デバイスとの間でファイルをコピーします。

  • ls [path] ディレクトリの内容を一覧表示します(デフォルトはカレントワーキングディレクトリ)。

  • mkdir path ディレクトリを作成します。

  • rm path ファイルを削除します。

  • rmdir path ディレクトリを削除します。

  • touch path ファイルがまだ存在しなければ作成します。

cp コマンドは、ローカルとリモートのファイルを指すのに ssh に似た記法を使います。 : で始まるパスはデバイス上のものと解釈され、それ以外はローカルのものになります。したがって:

$ pyboard.py --device /dev/ttyACM0 -f cp main.py :main.py

は、PC のカレントディレクトリにある main.py を、デバイス上の main.py という名前のファイルにコピーします。ファイル名は省略できます。たとえば:

$ pyboard.py --device /dev/ttyACM0 -f cp main.py :

は上と同じです。

さらにいくつかの例:

# main.py をデバイスからローカルの PC にコピーします。
$ pyboard.py --device /dev/ttyACM0 -f cp :main.py main.py
# 同じことを . を使って行います。
$ pyboard.py --device /dev/ttyACM0 -f cp :main.py .

# 3つのファイルを名前を保ったままデバイスにコピーします。
$ pyboard.py --device /dev/ttyACM0 -f cp main.py app.py foo.py :

# デバイスからファイルを削除します。
$ pyboard.py --device /dev/ttyACM0 -f rm util.py

# デバイス上のファイルの内容を表示します。
$ pyboard.py --device /dev/ttyACM0 -f cat boot.py
...contents of boot.py...

pyboard ライブラリを使う

pyboard.py を、MicroPython のボードとのやり取りをスクリプト化するためのライブラリとして使うこともできます。

import pyboard
pyb = pyboard.Pyboard('/dev/ttyACM0', 115200)
pyb.enter_raw_repl()
ret = pyb.exec('print(1+1)')
print(ret)
pyb.exit_raw_repl()