稼働中

マイクロビット(e_03)thonny-microbit boot.py を試す

Thonnyでboot.pyの動作を試す

Thonny3.1.12のメニューからmicro:bitに転送できるファイルはboot.pyとmain.pyだけです。Thonnyのメニューの「Device」でboot.pyのアップロードができます。これを使ってboot.pyの動作を試して見たいと思います。
※boot.py本来は起動時に最初に読込むファイルだと思いますが、ここではインポート可能なファイルと解釈してください。
※Python IDE(統合開発環境)にThonnyを使用しており、MicroPythonでmicro:bitが動作できる前提で記載しています。

Device

※以降「Device>選択」は①・・④と記載します。

upload as boot script

下の「test01.py」は、前回に試した「HAPPYのイメージを表示したまま」のスクリプトに、赤枠「もしボタンAとBが同時(A+Bと記す)に押されたらSADのイメージ表示後、LEDを消してブレーク(停止)」するを足したスクリプトです。

test01.py
test01.py

左のHAPPYが点灯します。もしA+Bボタンが押されたら右のSADが点灯した後に全消灯になります。

Image

A+Bボタン押したらブレーク(停止)する②の部分を切り出してmybreak()の関数にしました。ファイル名をmy_boot.pyとしました。

my_boot.py
my_boot.py

このmy_break.pyをThonny>Deviceから①でboot.pyとしてmicro:bitにアップロードします。
アップロードできたか②で確認しました。以下のように表示されました。アップロードできたようです。
ただし、ファイル名はmy_break.pyではなくboot.pyになっています。

boot.pyの確認

次に、test01.pyを変更しtest02.pyのようにしました。
my_break.pyを読み込んでmybreak()の関数を使います。ただし、先述のようにmy_break.pyではなくはboot.pyになります。これでtest01.pyと同じ動作になりました。

test02.py
test02.py

この状態では、まだスクリプトをmain.pyにアップロードしていないのでmicrobit単体では動作しません。Thonnyからの実行(Run)しか動きません。Thonny>Deviceから④で確認できます。main.pyは空です。
main.pyは空

Thonny>Deviceから③でスクリプトをmain.pyにアップロードします。④でmain.pyを確認します。
これでmicrobit単体で動作が可能です。

main.pyにアップロード

microbit単体動作を確認するには、Thonny>Deviceから⑤でRebootを実行します。本番の確認は電池接続をしてmicrobit単独での確認が良いと思います。赤枠は、A+Bボタンを押した(スクリプト終了)後の表示です。

スクリプト終了後

ちなみにboot.pyは書き換えしなければ消えません。そのため、他のスクリプトでも「from boot import mybreak」を記入しておけばmybreak()は使えます。

とりあえずこんな感じでboot.pyが使えるようです。自作した関数、LED点灯パターンなどを追加していけば良いのかと思います。まだまだ、素人なのでこれから考えます。

エディタのスクリプトでも使える?

ところで、スクリプト中のPythonコードは?
例えばtest02.py、boot.pyに赤枠を追加して動作を確認します。

test02.py
test02.py

boot.py
boot.py

Shell部で結果が表示されます。以下のようになりました。要するにエディタのスクリプトを実行しても「読み込んでいる」ようです。boot.pyならimportなしで使えます。

実行すると文字の加算などの結果がShell部に表示されます。A+Bボタンが押されるまで、赤線のところで止まっています。
A+Bボタンが押されたので文字列を表示しています。

A+Bボタンが押された

ちなみにmicrobit単体動作(ソフトリブート)場合も同じです。

Reboot

まとめ

Thonnyでmicro:bitへboot.pyのアップロード、micro:bitからの読み込み方法について記載しました。初期読込で必要な自作関数などあればboot.pyにアップロードしておくと便利かも知れません。

追記

ここでは、boot.pyの名前で自前のファイルをmicro:bitに送ることが出来ました。しかし、名称は「boot.py」になります。後にわかりましたが「microfs」をインストールすれば、作成したファイル名のままで、micro:bitに送ることができます。そのファイルの関数を使うには通常のようにimport文で読込む必要があります。

追記

さらにThonny3.3.13に更新すると様変わりしています。別途、記載する予定です。2022.07.26