用語集

ベアメタル
MCU ベースのシステムなど、(本格的な) OS のないシステム。ベアメタルのシステム上で動作する場合、MicroPython が事実上、コマンドインタプリタ(REPL)を備えたユーザ向け OS になります。
ボード
PCB ボードのこと。この用語は、 MCU システムの特定のモデルを示すために多用されます。場合によっては、特定のボートに対する MicroPython ポートを指す場合にも使われることがあります(さらには、 Unix ポート のような「ボードレス」なポートに対しても使われることがあります)。
呼出し先所有タプル
いくつかの組込み関数/メソッドが返すタプルで、有効な期間が限定されたデータが含まれています。通常、同じ関数(または関連する関数のグループ)への次の呼び出しまでが有効となります。次の呼出しを行うと、タプル内のデータが変更されることがあります。これにより、呼び出し先所有タプルの利用に関しては次の制限が生じます。それらの参照を他には格納できません。唯一の有効な操作は、値を抽出することです(コピーの作成を含む)。呼出し先所有タプルは、メモリ割り当ての最適化のために導入された MicroPython 固有の構造体です(一般的な Python 言語では利用できません)。呼出し先所有タプルは一度だけ割り当てられ、呼出し先側に格納されます。後続の呼出しは割当てが不可能な場合でも(例:割り込みコンテキスト)、割当てが望ましくない場合(割り当てが本質的にメモリの断片化につながるため)でも、複数の値を返すことができます。呼出し先所有タプルは、実質的には内容が変化しうるタプルであり、タプルは不変であるという Python のルールに違反していることに注意してください。(このような目的のために、変更可能なリストではなく、タプルが使われた理由に関心を持たれたかもしれません - その理由は、リストにしてしまうと、ユーザアプリケーション側からも変更できてしまうからです。ユーザは、呼出し先所有リストに対して、呼び出し先が予期しないことをできてしまい、問題につながる可能性があります。タプルはこのようなことから保護されます。)
CPython
CPython は、Pythonプログラミング言語のリファレンス実装であり、ほとんどの Python 利用者が動かしている最も有名なものです。しかし、これは多くの実装(Jython, IronPython, PyPy, MicroPython などなど)の1つです。Python 言語の正式な仕様はなく、CPython のドキュメントだけであるため、Python 言語とその特定お処理系である CPython を線引きすることは必ずしも容易ではありません。しかし、これにより他の処理系のための自由度が増します。たとえば、MicroPython は CPython とは多少の違いがありますが、Python 言語の実装を目指しています。
GPIO
汎用入出力(General-purpose input/output)のこと。電気信号を制御する最も簡単な手段です。GPIO を使用すると、ハードウェア信号ピンを入力または出力に設定し、デジタル信号値(論理 "0" または "1")を設定または取得できます。MicroPython は machine.Pin、と machine.Signal クラスを使って GPIO アクセスを抽象化しています。
GPIO ポート
GPIO ピンのグループのことで、通常、これらのピンのハードウェア特性に基づいています(たとえば、同じレジスタで制御可能であるなど)。
隔離文字列
アドレスではなく、(一意な) ID によって参照される文字列。したがって、隔離文字列は、内容を比較しなくとも、識別子だけで高速に比較できます。隔離文字列の欠点は、隔離操作に時間がかかり(既存の隔離文字列の数に比例、すなわち時間の経過とともにどんどん遅くなる)、メモリ内で隔離文字列に使われたスペースが再利用されないことです。文字列の隔離は、処理系の要求(たとえば、関数のキーワード引数は隔離文字列の ID で表されます)、または有益であると判断された場合(たとえば、文字列が十分に短く、繰り返し使われる場合に、コピー要するメモリを節約するなど)に、MicroPython コンパイラとランタイムによって自動的に実行されます。文字列操作と I/O 操作のほとんどは、上記の欠点のために隔離文字列を生成しません。
MCU
マイクロコントローラのこと。マイクロコントローラは、通常、本格的なコンピュータシステムよりもはるかにリソースが少ないですが、小型で安価であり、消費電力は非常に少なくて済みます。MicroPython は、平均的な最新のマイクロコントローラで動作するよう、十分小さく、最適化されています。
micropython-lib

MicroPython は(通常)わずかな組込みモジュールしか持たない単一の実行可能/バイナリファイルとして配布されます。 CPython に匹敵する広範な標準ライブラリはありません。代わりに、関連しているが別個のプロジェクト micropython-lib があり、CPython の標準ライブラリにある多くのモジュールの実装を提供しています。しかし、これらのモジュールの大部分は POSIX のような環境(Linux, FreeBSD, MacOS など; Windows は部分的にサポート)を必要としていて、MicroPython Unix ポートでしかうまく動作しないものもあります。しかし、モジュールのいくつかのサブセットはベアメタルへのポートにも使えます。

モノリシックの CPython 標準ライブラリと違い、micropython-lib モジュールは、個別にインストールしなければなりません - 手作業でコピーするか、 upip を使ってインストールします。

MicroPython ポート
MicroPython はさまざまな ボード 、RTOS、OS をサポートしており、新しいシステムに比較的容易に適応できます。特定のシステムをサポートする MicroPython は、そのシステムの「ポート」と呼ばれます。異なるポートは、機能が大きく異なる場合があります。このドキュメントは、異なるポート間で利用可能な汎用API (「MicroPythonコア」)のリファレンスを意図しています。一部のポートでは、ここで説明されているいくつかの API (リソースの制約など)がまだ省略されていることに注意してください。このような違いや、MicroPython のコア機能を超えるポート固有の拡張機能については、それぞれのポート固有のマニュアルに記載されています。
MicroPython Unix ポート
Unix ポートは、主要な MicroPython ポート の1つです。これは、Linux, MacOS, FreeBSD, Solaris などの POSIX 互換オペレーティングシステム上で動作するように意図されています。これは、Windows ポートの基礎としても機能します。Unix ポートの重要性は、多くの異なる ボード が存在するにもかかわらず、2人のランダムなユーザーが同じボードを持つ可能性は低いことにあります。ほとんどの現代的な OS はある程度のレベルの POSIX 互換性を持っているため、Unixポートは、任意のユーザーが利用できる、一種の「共通の土台」としても役目を持ちます。したがって、Unix ポートは、初期プロトタイプ作成、さまざまな種類のテスト、マシンに依存しない機能の開発などに使用されます。MicroPython のすべてのユーザーは、MicroPython を MCU 上で実行することだけに興味がありますが、Unix (または Windows)ポートに精通することをお勧めします。これは、生産性のための重要なヘルパーであり、通常の MicroPython ワークフローの一部であるためです。
ポート
MicroPython ポートGPIOポート のどちらか。文脈からどちらか不明となる場合は、先述のような用語をきちんと書くことをお勧めします。
ストリーム
「ファイルのようなオブジェクト」とも呼ばれます。基礎となるデータへの連続的な読み書きアクセスを提供するオブジェクトです。ストリームオブジェクトは対応するインタフェースを実装したもので、 read(), write(), readinto(), seek(), flush(), close() などのメソッドを持ちます。ストリームは MicroPython における重要な概念であり、多くの I/O オブジェクトはストリームインタフェースを実装しているので、異なるコンテキスト間でも一貫かつ交換可能に使用することができます。MicroPython のストリームの詳細については、uio モジュールを参照してください。
upip
(言い換えれば、"micro pip")。MicroPython のパッケージ管理は CPython の pip に影響されていますが、はるかに小さく、限定された機能になっています。upip は Unix ポートベアメタル ポート(ファイルシステムとネットワークのサポートを提供するポート)の両方で動作します。