ファイルシステム

MicroPythonのファイルシステムの使い方を学びます。


Author:Pedro LimaLast revision:2024/12/18

従来のArduinoのスケッチ(C++を利用)とは異なり、MicroPythonを利用するとき、プログラムファイルは一つに限定されません。MicroPythonでは、ファイルシステムを提供していて、マイクロコントローラーに複数のファイルを保存して管理できます。これにより、コードの整理やアセットの管理、モジュール化したプロジェクトの作成のための、強力な機能を提供します。

この記事では、MicroPythonがファイルシステムの仕組みと、ファイルの効率的な整理方法、典型的なMicroPythonプロジェクトの構成をみていきます。

MicroPythonファイルシステム: 主な違い

従来のArduinoプログラミングでは、コンパイルした一つのファイルを直接マイクロコントローラーにアップロードし、すぐに実行していました。MicroPythonでは、複数のファイルを保存できるファイルシステム内で操作します。このファイルシステムでは以下のようなことができます。

  • ファイルのアップロード・ダウンロード: 個々のスクリプトやライブラリ、アセットを直接デバイスに保存できます。
  • プロジェクトファイルの整理: モジュール化するために、フォルダの作成や複数のスクリプトの保存、ファイルの整理ができます。
  • デバイス上のファイルの直接編集: 全てを上書きせずにファイルの修正ができるので、迅速かつ柔軟に調整できます。
  • 異なるスクリプトの実行: boot.py(開始時に実行される)とmain.py(開始後に実行される)があるので、実行する他のスクリプトを、エディタから、もしくは、ボード上で作成することができます。

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

MicroPythonのファイルシステムを操作するのに、Arduino Lab for MicroPythonを使います。これは、デバイス上のファイルを直接管理・閲覧できるツールを提供します。利用方法を示します。

  1. デバイスに接続: Arduino Lab for MicroPythonを開き、マイクロコントローラーに接続します。
  2. ファイルのアップロード・ダウンロード: PCからマイクロコントローラーにファイルをアップロード、マイクロコントローラーからPCにファイルをダウンロードするのに、ファイルマネージャーを使います。
  3. ファイルの整理: フォルダの作成や複数ファイルの保存ができるので、プロジェクトを整理しやすくなります。

基本的なMicroPythonのファイル構成

典型的なMicroPythonプロジェクトは、main.pyファイルとboot.pyファイル、ライブラリ、プロジェクトに必要な他のファイルを含みます。標準構成は以下の通りです。

1
2
3
/ (Root Directory)
├── boot.py
├── main.py

主要ファイル

  • boot.py: 起動時、main.pyの前に1回実行されます。デバイスに最初に電源が入ったときに設定する必要のある、システム設定のために使われます。
  • main.py: これは、Arduinoのsetup()loop()構造に似た、基本スクリプトです。boot.py完了後に自動的に実行されます。

例: スクリプトからのコードのインポート

MicroPythonのファイルシステムでは、自分自身のスクリプトを作成し、main.pyでインポートすることができます。コードを別のファイルに保存できるので、長いスクリプトを避けるのに役立ちます。このアプローチにより、モジュール化が進みます。

main.pyファイルから別のスクリプトのコードを実行するには、以下のようにします。

  1. my_new_script.pyという名前のファイルを作成し、以下の関数を追加します。
1
2
def test():
 print("This runs from my_new_script.py")
  1. main.pyで、初期コードを実行後、my_new_script.pyの関数の実行に切り替えます。以下に例を示します。
1
2
3
4
import my_new_script
print("This runs from main.py")

my_new_script.test()
  1. REPLを見ると、以下が表示されます。
1
2
This runs from main.py # executed from main.py
This runs from my_new_script #executed from my_new_script

本質的に、これは、モジュールの動作方法です。モジュールをインポートし、そのモジュールの関数を使います。

例: スクリプトの直接実行

デバイスに保存してある別のスクリプトを直接実行することもできます。この例では、run_directly.pyという名前のファイルを作成しましょう。

  1. スクリプトに以下のコードを保存します。
1
print("I was run from main.py")
  1. main.pyで、open()exec()read()関数を使います。
1
2
with open("run_directly.py") as f:
    exec(f.read())
  • oppen(): ファイルをオープンする
  • exec(): ファイルを実行する
  • read(): ファイルを読み込む

結果として、REPLには、"I was run from main.py"と表示されます。先ほどの例とどう違うかというと、これは、run_directly.pyスクリプトが上から下に実行されているということです。一方、先ほどの例は、特定のコードセグメントをインポートしました。

モジュールとライブラリを使ったコード構成

カスタムモジュールやライブラリをインポートすると、MicroPythonは、自動的に/libフォルダを作成し、そこにモジュールやライブラリを格納します。これにより、外部のライブラリや再利用可能な関数をメインコードと分離することができます。この構造をプロジェクトに適用することで、大きなコードベースの管理が簡単になります。

例えば、

1
2
3
4
5
/ (Root Directory)
├── boot.py
├── main.py
├── /lib
│   ├── my_custom_library.py

main.pyでのライブラリの利用

再利用可能なコードを/libに置いたら、main.pyから直接インポートできます。

1
2
3
from lib.my_custom_library import some_function

some_function()

この構造で、よりきれいで、モジュール化されたコードを作成でき、プロジェクトが拡大に従い、簡単に拡張させることができます。

結論

MicroPythonのファイルシステムは、組込みプログラムに柔軟性と構造化をもたらします。これにより、より整理されたモジュール化のアプローチをとることができます。典型的なファイル構成とファイルの管理方法を理解することで、より複雑で維持管理のしやすいプロジェクトを作成することができます。

MicroPythonプロジェクトを構成するコツ

  • 追加スクリプトでコードをモジュール化する: 再利用可能あるいは特定のタスクを異なるファイルに保存し、main.pyをきれいで、ハイレベルなロジックに集中させます。
  • /libフォルダを活用する: 自動生成される/libフォルダを、ライブラリの構造化を保ち、メインのアプリケーションコードから分離するのに使います。
  • ファイルの編集と管理を容易にする: Arduino Lab for MicroPythonのファイル管理ツールは、デバイス上のファイルのアップロードやダウンロード、修正を容易にします。

よく整理されたファイルシステムで、開発プロセスを合理化し、MicroPythonで新しい可能性を拓くことができます。

オリジナルのページ

https://docs.arduino.cc/micropython/environment/file-system/

最終更新日

August 16, 2026

inserted by FC2 system