
今回はMicroPython Terminalで使用可能なモジュールについて解説します。
MicroPythonで利用可能なビルトインモジュールは、基本的に全ファームウェアで共通です。ただし、一部の機能やI/Oポートへのアクセスは、ファームウェアの設定やスリープモードによって制限される場合があるため、動作に差が出ることがあります。
XBee3でMicroPython Terminalにhelp(‘modules’)入力すれば、以下の図のように組み込みモジュール一覧を確認することができます。

XBee3 の MicroPython Terminal(REPL)で `help(‘modules’)` を使っても、実際には全ての内蔵モジュールが表示されないことがあります。これは、XBee3 の MicroPython 実装が制限された MicroPython 環境であるためです。例えばtimeモジュールは、ファームウェアに組み込まれている標準モジュールは、help(‘modules’)では表示されません。
以下にMicroPython Terminal(REPL)で利用可能なモジュール一覧を示します。
| モジュール名 | 機能 | 備考 | 
| xbee | XBee専用の通信/制御 | Zigbee/DigiMeshでの送信、スリープ制御など | 
| machine | ピン、ADC、I2Cなどの制御 | ピンマップはXBee3に最適化済み | 
| utime | 軽量なタイマー・スリープ制御 | ticks系やsleep\_msなど高精度ウェイト対応 | 
| time | RTC対応の時間処理 | localtime, time(), sleepなど | 
| gc | ガベージコレクション制御 | メモリ解放等(手動管理も可) | 
| sys | システム情報 | ファームウェアバージョンなど取得可 | 
| os | ファイルシステム操作 | ファイル保存、一覧取得など(A: 仮想ストレージ) | 
| ubinascii | base64, hex 変換など | Zigbeeのデータ処理で有用 | 
| ujson | JSONの読み書き | センサデータの構造化などに便利 | 
| ustruct | バイナリ構造体処理 | ADC値・センサデータ送信に重要 | 
| errno | エラー番号定数 | I/Oや通信エラー処理で利用可能 | 
| hashlib | SHA-1/MD5など(限定的) | 軽量暗号用途に限定(やや古い) | 
| ubinascii | バイナリ⇄ASCII変換 | 16進表現、base64処理など | 
以下に特に重要なモジュールを用途別に示します。
| 目的 | モジュール | 用途例 | 
| ZigbeeやDigiMesh送受信 | xbee | xbee.transmit()、 xbee.receive() | 
| センサやGPIO制御 | machine | Pin`, `ADC`, `I2C` | 
| 時間制御(精密) | utime | ticks_ms()`、`sleep_ms()` | 
| 現在時刻・RTC制御 | time | `time.localtime()` | 
| JSONデータ構造化 | ujson | センサデータの辞書構造化 | 
| バイナリ構造体 | ustruct | `pack()`/`unpack()`で通信整形 | 
| ファイル保存 | os | open()`, `listdir()` など | 
モジュール動作がファームウェアによる影響を受ける場合を説明します。例えばxbee.receive()の動作はファームウェアによるプロトコルの違い(Zigbee/DigiMesh/802.15.4)を考慮する必要があります。また、スリープ関連ではSM`モードによりxbee.sleep_now()やMicroPythonの動作継続が変化します。I2CやADCの使用に関してはピン設定の違いやファームウェアに依存するピン機能マッピングによる差異に注意が必要です、 |