はじめに

MicroPythonの対応ボードにファームウェアを書き込んでPC から操作する場合には、PCにTeraTerm などのシリアル通信用のアプリケーションをインストールして使用することができます。
しかしながらこの方法では、MicroPython の利用には不便な点が多いので、MicroPython を手軽に利用するための様々な支援機能が組み込まれたIDE を利用しましょう。MicroPython のIDE にはいくつかの候補がありますが、ここではRaspberry Pi のソフトウェアパッケージにPython 用IDE としてあらかじめ組み込まれているThonny を紹介します。

Thonny の概要

Thonny の情報サイトを以下に示します。

Thonny には様々な機能がありますが、例えば以下のような機能が、MicroPython を快適に使用するために大変役立ちます。

  • Python の文法を理解した組込みエディタが使える。
  • MicroPython がマイコンボード上に作成しているファイルシステムの操作をIDE のエディタなどと連携して行える。これにより、Python プログラムのマイコンボードへの書き込み・保存が簡単に行える。
  • MicroPython用に登録されたライブラリを検索し、マイコンボードのファイルシステムに組み込む機能を持っている。
  • PC 上で稼働するPython がインストールされるため、ESP-WROOM-32 のMicroPythonだけでなく、PC の標準的なPython を使用できる。また、このPython を利用してesptoolなどを使用できる。

Thonny のインストールパッケージのダウンロードとインストール

Thonny のTOP ページを開くと下の図5.1のような内容が表示されます。

図5.1 Thonny のTOP ページ

このページの右上の赤丸部分のWindows の部分をクリックすると、図5.2 の様なダウンロード
用のパネルがポップアップします。

図5.2 Thonny のダウンロードリンク

この中にはいくつかのインストールパッケージが表示されますが、特段の意向がなければ、一番上の64bit 版の.exe 形式のインストールパッケージをダウンロードしてください。このパッケージにはIDE だけでなくPC 用のPython も含まれており、PC 用のPython もこのIDE で使用できるようになっています。
ダウンロードしたインストールパッケージを起動してThonny をインストールしてください。インストール途中で、デスクトップにThonny のアイコンを設定するか聞いてくるので、それをチェックしてインストールするとThonny の起動を簡単に行えるようになります。

Thonny の起動

Thonny のインストールができたら、デスクトップ上のアイコンなどをクリックして起動することができます。Thonny を最初に起動すると、IDE のメニュー等の言語設定を選択できるので、日本語を選択するとよいでしょう。
Thonny の起動画面を図5.3 に示します。

図5.3 Thonny の起動画面

Thonny を起動すると、最初はThonny と共にインストールされたPC 用のPython を実行対象として起動されます。初期設定では、Thonny の画面は上側のペインがプログラムの編集画面、下側のペインがPython の対話的実行画面になっています。
この状態で、下部のペインのプロンプト[>>>]  にPython のプログラムを入力すれば、そのプログラムはPC 上のPython で実行されます。
ちなみに、図5.3 の中ほどの赤丸で括った対話実行用のペインの最初の部分には、Thonny とPC 用のPython がインストールされたパスが表示されます。(パスの一部に利用者のアカウント名(ログイン名)が表示されているので、図からは削除しています)また、PC 用のPython が実行対象となっていることは、右下部の赤丸で括った部分に表示されています。
Thonny と共にインストールされたPC 用のPython をコマンドプロンプト(CMD.exe) で実行したい場合には、Thonny の[ツール] ⇒ [システムシェルを開く…] メニューを選択してください。コマンドプロンプト(CMD.EXE)が起動されます。
図5.4 に示すように、コマンドプロンプトでpython と入力してエンターキーを押すと、Thonnyと共にインストールされたpython をコマンドプロンプトで起動することができます。

> python
Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec 6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello Python")
Hello Python
>>> quit()
>

図5.4 Thonny と共にインストールされたPython の実行

Thonny からコマンドプロンプトを起動すると、そのコマンドプロンプトでは、Thonny と共にインストールされたPython のパスが環境変数PATH に設定されているので、コマンドプロンプトでcd コマンドなどを使用して任意のパスに移動してPython を起動して利用できます。環境変数PATH の内容は、[set PATH] コマンドの実行で表示することができます。


Thonny を利用したMicroPython でのプログラミング

Thonny の起動

Thonny のインストール時に作成されたデスクトップのThonny のアイコンをダブルクリックするなどしてThonny を起動してください。
図5.22 のようなウインドウが開きます。

図5.22 Thonny の起動画面

ウインドウの上のペインがプログラムの編集用で、下のペインがPython の実行用のペインです。この例では、下のペインでPC にインストールされたPython が起動されていますが、Thonny の前回の終了時の設定状況により、PC のPython が起動されるか、開発ボードの のPython が起動されるかが変わります。
どちらのPython が選択されているかは、ウィンドウ右下の赤丸で囲った部分に表示されます。また、開発ボードのMicroPython が起動される設定となっていた場合に、開発ボードがUSB でPC に接続されていない場合には、MicroPython の起動ができず図5.23 の様な表示となります。

図5.23 MicroPython 起動の失敗

MicroPython の起動


Thonny の下部のペインでMicroPython が起動されていない場合には、MicroPython の起動を行います。
開発ボードがPC に接続されていない場合には、まずUSB でPC に接続してください。
その後、Thonny のウィンドウの右下の[ローカルPython3・Thonny のPython] あるいは[MicroPython(XXX)・COMX] と書かれている部分をクリックしてください。すると、使用するPython を選択できるメニュー項目が表示されるので、その中で[MicroPython(ESP32)・COMX]という項目を選択してください。

図5.24 Thonny でMicroPython の起動

この操作により、図5.24 に示すようにThonny の下部のペインでMicorPython が起動され使用できるようになります。Thonny の下部のペインに、MicroPython のバージョンや、実行されているモジュールがESP32 であることが起動メッセージとして表示されているのを確認できます。

プログラムの対話的な実行

開発ボードでのMicroPython の対話的な実行は、Thonny の下部のペインにプログラムを入力しエンターキーを押すことで行えます。
まずは、起動メッセージに表示されているhelp() を入力してエンターキーを押してみてください。簡単な歓迎メッセージや、machine モジュールやnetwork モジュールの使用例などが表示されます。

次に、簡単な演算例を入力してみましょう。

図5.25 演算結果の出力

図5.25 に示すように、入力した処理が開発ボード上で即座に実行され、演算結果が表示されるのを確認できます。

プログラムの編集と実行

対話的な実行環境で、少し行数のあるプログラムを入力して実行しようとすると、書き間違いや書き忘れがあって、試行錯誤でプログラムの再入力が面倒なことがことがよくあります。この様な場合には、まずエディタで正しいプログラムを作成・編集し、プログラムに間違いがないことを確認してそれを実行させるのが便利です。

この様にプログラムを編集、実行したい場合には、まずプログラムエディタを使用して、プログラムを入力・編集し、間違いのないプログラムを作成します。Thonny のプログラムエディタは、図5.26 に示すように、Thonny の上側のペインにあるので、そこにプログラムを入力します。

プログラム例は、よくL チカと呼ばれる、LED を点滅させる電子工作の入門プログラムです。

図5.26 プログラムの編集

プログラムの入力が完了したら、図5.27 の上側の赤丸で囲まれた、緑色の丸の中に右向きの三角が表示されたアイコンをクリックします。

図5.27 プログラムの実行

すると、ウィンドウ下部のシェルペインに赤丸で囲ったような表示が出力され、プログラムエディタに入力したプログラムが実行されます。この例では、プログラムの実行とともに開発ボードのLED1 が点滅し始めたのを確認することができます。
このプログラム例は、print() などで計算結果を出力する部分がないのでシェルペインへの表示がありませんが、そのような処理が書かれているプログラムでは、計算結果などがシェルペインに表示されます。
なお、このプログラムは、無限ループになっており終了しませんが、シェルペインでCTRL-C を入力することで中断させることができます。プログラムを中断させた例を図5.28 に示します。

図5.28 プログラムの中断

作成したプログラムの保存

Thonny のエディタで作成したプログラムは、ファイルとして保存することができます。
MicroPython のファームウェアには、ESP32 のフラッシュメモリ上に小さなファイルシステムを作成する機能も含まれています。このため、ファイルはPC 上だけでなく、開発ボード上のファイルシステムに保存することができます。
ファイルを開発ボード上のファイルシステムに保存した場合には、その開発ボードを他のPC で使用する場合でも使用することができるようになります。
まず、Thonny の[表示] ⇒ [ファイル] メニューを選択してください。図5.29 のように、ウィンドウの左側にファイルペインが表示されます。

図5.29 ファイルペインの表示

ファイルペインの上側は、PC 上のファイル、下側は開発ボード上のファイルを示しています。この例では、開発ボードにすでにboot.py が保存されていることが示されています。上下のファイルペインでは共に、エクスプローラーで行うように、フォルダの作成や削除、フォルダ間の移動などを行うことができます。
ここでは、現在編集しているプログラムをblink.py という名前で保存してみましょう。
まず、Thonny の[ファイル] ⇒ [名前を付けて保存…] メニューを選択してください。図5.30 のようなダイアログが出てくるので、適切な保存先を選択してください。
ここでは、開発ボード上に保存する事とし、[MicroPython デバイス] をクリックして選択します。

図5.30 ファイルの保存先の選択

すると、図5.31 に示すようなファイル名を入力するダイアログが表示されるので、保存するプログラムにファイル名を付けて入力してください。ここでは、blink.py と名付けて保存します。

図5.31 ファイルの名の入力

プログラムをファイルとして保存した後のThonny の画面を図5.32 に示します。

図5.32 ファイルの保存後

図5.32 では、エディタペインの上部タブ部部分の[無題] となっていた部分が[blink.py] に変更されたことと、ファイルペインの下側に、[blink.py] が追加されたことを確認できます。
この後に、プログラムの内容を変更すると図5.33 に示すように、変更されたファイルを再保存するためのアイコンが有効化されることが確認できます。このアイコンをクリックすると、変更内容がファイルに保存されます。

図5.33 ファイルの変更

ファイルとして保存されたプログラムは、再度呼び出して編集、実行することができます。例えば、blink.py のファイルペインの上部タブの右側の×をクリックすると、編集処理を終了させることができます。編集結果が保存されていない場合には、ファイルとして保存するかどうかの確認が表示されるので、保存するか否かを指示してください。
ファイルの編集を修了すると編集ペインの内容が削除されて、図5.34 のような画面になります。

図5.34 編集の終了

ファイルの編集を終了しても、ファイルペインのファイルをダブルクリックすることで、図5.35に示すようにThonny のエディタにプログラムを読み込み再度編集・実行することができます。

図5.35 プログラムの再編集

MicroPython のライブラリの導入

python で使用するライブラリは、PC 上のPython ではpip を利用してインストールするのが一般的ですが、MicroPython のライブラリは、PC 上のPython ではないのでpip を使用してインストールすることはできません。MicroPython でのライブラリのインストールは、Thonny のパッケージ管理ツールを使用するか、blink.py の編集・保存と同様な方法でライブラリのプログラムをESP-WROOM-32 上のファイルシステムに保存することでインストールできます。

パッケージ管理ツールの利用

ここでは、MicroPython 用に作成されたライブラリのインストール法を紹介します。マイクロファンの多くの開発ボードでは開発ボード上にOLED ディスプレイを搭載できるようになっています。ESP8266用のMicroPython にはOLED ディスプレイ用のライブラリがssd1306 という名前で標準で組み込まれており、単にインポートして使用することができます。しかしながら、ESP32 用のMicroPython には、OLED を操作するためのライブラリが標準で組み込まれていないので、それを見つけてインストールする必要があります。幸いにして、ESP8266 用のMicroPython に組み込まれているssd1306 はThonny のパッケージ管理ツールでESP-WROOM-32 にインストールして使用することができます。
まず、Thonny の[ツール] ⇒ [パッケージを管理…] メニューを選択してください。図5.36 のようなダイアログが出てくるので、適切な保存先を選択してください。

図5.36 パッケージ管理ダイアログ

ssd1306 を入力して検索すると、候補のパッケージ(ライブラリ)が複数リストアップされます。
ここでは、赤丸で囲んだmicropython-ssd1306 をクリックして選択してください。

図5.37 ssd1306 の検索

ダイアログの内容が図5.38 の様に切り替わるので、下部のインストールボタンをクリックしてください。

図5.38 ssd1306 パッケージ

インストールができたら、パッケージ管理ダイアログの右下の[閉じる] ボタンをクリックしてを閉じてください。
ライブラリ(パッケージ)インストール後のThonny のファイルペインのMicroPython デバイスの部分を見ると、図5.39 に示すように、[lib] フォルダが追加されていることが確認できます。また、[lib] フォルダの左側の[+] をクリックすると[lib] フォルダの中が表示され、ssd1306 ライブラリがインストールされていることを確認できます。

図5.39 インストールされたライブラリ

MicroPython のファイルシステム上にライブラリがインストールされると、そのライブラリをimport 文でプログラムに読み込んで使用することができます。
新しくインストールしたssd1306 ライブラリをインポートして使用するプログラム例を図5.40に示します。

図5.40 ssd1306 ライブラリの利用

このプログラムを実行すると、開発ボードに接続しているOLED ディスプレイに‘HelloWorld’ と表示されます。

MicroPython の起動時の特殊ファイル

MicroPython のファイルシステムには、様々なPython プログラムファイルやデータファイルを保存することができますが、boot.py とmain.py という2つの特別なPython ファイルを保存することができます。
MicroPython では、デバイスがリセットされ再起動された際に、ファイルシステムにboot.pyが保存されていると最初にboot.py の内容が自動的に実行され、ファイルシステムにmain.py が保存されていると次にmain.py の内容が自動実行されます。
boot.py とmain.py は一般的に以下の様に使い分けます。

  • boot.py には、その開発ボードを使用するときに汎用的に使える基本的な初期化処理や、便利に使える関数やクラスを記述する。
  • main.py には、開発ボードの具体的な用途ごとに異なるアプリケーションプログラムを記述する。

なお、MicroPython のファームウェアをESP-WROOM-32 などに書き込んだ時点では、中身はコメントのみで実質的なコードは書かれていませんが、デフォルトでboot.py がファイルシステムに登録されています。

boot.py

開発ボードの基本的な出力の設定等をboot.py に記述して、デバイスのファイルシステムに設定しておくと、その後のプログラミングで、具体的なピン番号など気にする必要がなくなるので便利です。

from machine import Pin, I2C

i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000) # i2c 回線の設定

led = Pin(2, Pin.OUT) # D2, LED1

図5.41 boot.py の記述例

main.py

開発ボードの起動時に実行すべき処理をmain.py に記述してMicroPython のファイルシステムに設定しておくと、起動時に毎回行う処理などを自動化することができます。
図5.42 の例では、先のboot.py の初期化処理と組み合わせて開発ボードの起動時に必ずLED の点灯が行われるようになります。この例では、無限ループになっていないので、処理は1回のみ行われます。
なお、PC と接続せずに開発ボードを単体で使用する場合には、main.py の内容は、図5.43 のLED の点滅プログラムの様に、実行が終了しない無限ループのプログラムとなるのが一般的です。

led.on()

図5.42 main.py の記述例

min.py に無限ループのプログラムが書き込まれていない場合には、開発ボードが単独で使用されると、main.py の内容の実行が完了した後は、開発ボードは機能が停止したのと同じ状況になってしまいます。一方、開発ボードに接続されThonny でMicroPython が利用できるようになっている場合には、このmain.py のプログラムの実行後の処理を引き続きThonny を使って入力・実行できることになります。


関連製品

Thonnyを使用してMicroPythonのプログラミングに初めて取り組むのであれば、様々な機能やプログラミング技術が楽しめるオールインワンタイプの開発ボードの利用をお勧めします。

ESP32-C3M-TRY

様々な入出力やセンサーを備え、これ1台で多様なMicroPythonプログラミングを楽しめる開発ボードです。ESP32シリーズのMCUを搭載しているので、無線接続の実験も行えます。

RP2040-PLAY

人気のRaspberry Pi PICOと同じRP2040を使用し、様々な入出力やセンサーを備え、これ1台で多様なMicroPythonプログラミングを楽しめる開発ボードです。カラー表示のプログラミングを行えます。