マイクロビット(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>選択」は①・・④と記載します。
upload as boot script
下の「test01.py」は、前回に試した「HAPPYのイメージを表示したまま」のスクリプトに、赤枠「もしボタンAとBが同時(A+Bと記す)に押されたらSADのイメージ表示後、LEDを消してブレーク(停止)」するを足したスクリプトです。
左のHAPPYが点灯します。もしA+Bボタンが押されたら右のSADが点灯した後に全消灯になります。
A+Bボタン押したらブレーク(停止)する②の部分を切り出してmybreak()の関数にしました。ファイル名をmy_boot.pyとしました。
このmy_break.pyをThonny>Deviceから①でboot.pyとしてmicro:bitにアップロードします。
アップロードできたか②で確認しました。以下のように表示されました。アップロードできたようです。
ただし、ファイル名はmy_break.pyではなくboot.pyになっています。
次に、test01.pyを変更しtest02.pyのようにしました。
my_break.pyを読み込んでmybreak()の関数を使います。ただし、先述のようにmy_break.pyではなくはboot.pyになります。これでtest01.pyと同じ動作になりました。
この状態では、まだスクリプトをmain.pyにアップロードしていないのでmicrobit単体では動作しません。Thonnyからの実行(Run)しか動きません。Thonny>Deviceから④で確認できます。main.pyは空です。
Thonny>Deviceから③でスクリプトをmain.pyにアップロードします。④でmain.pyを確認します。
これでmicrobit単体で動作が可能です。
microbit単体動作を確認するには、Thonny>Deviceから⑤でRebootを実行します。本番の確認は電池接続をしてmicrobit単独での確認が良いと思います。赤枠は、A+Bボタンを押した(スクリプト終了)後の表示です。
ちなみにboot.pyは書き換えしなければ消えません。そのため、他のスクリプトでも「from boot import mybreak」を記入しておけばmybreak()は使えます。
とりあえずこんな感じでboot.pyが使えるようです。自作した関数、LED点灯パターンなどを追加していけば良いのかと思います。まだまだ、素人なのでこれから考えます。
エディタのスクリプトでも使える?
ところで、スクリプト中のPythonコードは?
例えばtest02.py、boot.pyに赤枠を追加して動作を確認します。
Shell部で結果が表示されます。以下のようになりました。要するにエディタのスクリプトを実行しても「読み込んでいる」ようです。boot.pyならimportなしで使えます。
実行すると文字の加算などの結果がShell部に表示されます。A+Bボタンが押されるまで、赤線のところで止まっています。
A+Bボタンが押されたので文字列を表示しています。
ちなみにmicrobit単体動作(ソフトリブート)場合も同じです。
まとめ
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