M5Unifiedは、M5Stack製品の仕様の異なるハードウェアを共通のAPIで扱うためのライブラリです。M5Stack Core、M5Stack Atom、M5Stack Fire、M5Stack Grayなど、さまざまなM5Stack製品を、同じコード(API)で開発することができます。
M5Unifiedを使用すると、以下のことができます。
- ディスプレイの初期化
- ボタンの状態の取得
- センサーの値の取得
- スピーカーの音声出力
- カメラの画像取得
M5Unifiedの紹介
今井英雄(らびやん)さんによる、M5Stack公式ライブラリのM5Unifiedの紹介スライドです。
2023年5月1日~5月5日、M5JPTour2023 にて使用したスライドとのことです。
これを見ると、M5Unifiedの開発意図がよくわかりますね。
M5Unifiedハンズオン
ハンズオンのスライドです。
サンプルも色々とありますので、M5Unifiedの参考になると思います。
M5Unifiedハンズオン
M5Unifiedハンズオン M5Stackシリーズ共通ライブラリ“M5Unified” を試してみよう! 2024/2/10 らびやん
対応デバイス
下記のデバイス以外でも対応している場合があります。最新情報は 以下のM5Unifiedのリポジトリ を確認してください。
GitHub - m5stack/M5Unified: Unified library for M5Stack series
Unified library for M5Stack series. Contribute to m5stack/M5Unified development by creating an account on GitHub.
メインデバイス
- M5Stack Basic / Gray / Go / Fire
- M5Stack Core2 / Core2 for AWSIoT EduKit / M5Tough
- M5StickC / M5StickCPlus
- M5Stack CoreInk
- M5Paper
- M5Atom Lite / Matrix / Echo / PSRAM / U
- M5Stamp Pico / C3 /C3U
- M5Station
外部ディスプレイ
- Unit LCD
- Unit OLED
- Atom Display / Lite (M5Atom Lite / Matrix / PSRAMと接続します。)
外部スピーカー
- SPK HAT (M5StickC / M5StickCPlus / M5Stack CoreInkと接続します。)
- Atomic SPK (M5Atom Lite / PSRAMと接続します。)
LovyanGFX、M5GFX、M5Unifiedの関係
LovyanGFX、M5GFX、M5Unifiedの関係について説明します。
LovyanGFX
- LovyanGFX は、ESP32 ベースのデバイスで使用される高性能なグラフィックライブラリです。M5Stack以外でも使用できます。
- 主にディスプレイ描画を効率的に行うために設計されています。
- 多様なディスプレイをサポートし、高速な描画能力を持っています。
M5GFX
- M5GFX は、LovyanGFX をベースにして M5Stack シリーズ向けに最適化されたグラフィックライブラリです。
- M5Stack デバイスに特化した追加機能やデバイスサポートが含まれています。
M5Unified
- M5Unified は、M5Stack シリーズ全体を統合的にサポートするライブラリです。
- デバイス管理、センサーインターフェース、ディスプレイ描画など、M5Stack デバイスの全体的な管理を目的としています。
- M5Unified 内で M5GFX を利用してディスプレイ描画を行います。
M5Unified Appendix
M5.getBoard()
M5.getBoard() で取得できる開発ボードの一覧です。
Board | Value |
---|---|
M5Stack | m5board_tboard_M5Stack |
M5StackCore2 | m5board_tboard_M5StackCore2 |
M5StickC | m5board_tboard_M5StickC |
M5StickCPlus | m5board_tboard_M5StickCPlus |
M5StackCoreInk | m5board_tboard_M5StackCoreInk |
M5Paper | m5board_tboard_M5Paper |
M5Tough | m5board_tboard_M5Tough |
M5Station | m5board_tboard_M5Station |
M5Atom | m5board_tboard_M5Atom |
M5AtomPsram | m5board_tboard_M5AtomPsram |
M5AtomU | m5board_tboard_M5AtomU |
M5TimerCam | m5board_tboard_M5TimerCam |
M5StampPico | m5board_tboard_M5StampPico |
M5StampC3 | m5board_tboard_M5StampC3 |
M5StampC3U | m5board_tboard_M5StampC3U |
M5.config()
M5.config() で設定できる項目の一覧です。
引数 | 型 | 説明 | 初期値 | 備考 |
---|---|---|---|---|
serial_baudrate | uint32_t | USBのシリアルボーレート | 115200 | Arduino-esp32のみ |
clear_display | bool | デバイス開始時に画面をクリアするかどうか | TRUE | 画面有りのデバイスのみ有効 |
output_power | bool | 外部5V出力のON(true)/OFF(false) | TRUE | AXP192搭載機種のみ有効 |
internal_imu | bool | 内蔵IMUを利用するかどうか | TRUE | IMU搭載機種のみ有効 |
internal_rtc | bool | 内蔵RTCを利用するかどうか | TRUE | RTC搭載機種のみ有効 |
internal_spk | bool | 内蔵スピーカーを利用するかどうか | TRUE | スピーカー搭載機種のみ有効 |
internal_mic | bool | 内蔵マイクを利用するかどうか | TRUE | マイク搭載機種のみ有効 |
external_imu | bool | Unit IMUまたはAccelを利用するかどうか | FALSE | Unit IMU(*1) 及びAccel(*2) 用 |
external_rtc | bool | Unit RTCを利用するかどうか | FALSE | Unit RTC(*3)用 |
external_spk | bool | 外部スピーカーを利用するかどうか | FALSE | SPK_HAT(*4) または ATOMIC_SPK(*5) 用 |
led_brightness | uint8_t | 内蔵LEDの明るさ(0~255) | 0 | LED内蔵機種のみ有効(RGBLEDではありません。) |
M5.Speaker.config()
M5.Speaker.config() で設定できる項目の一覧です。
項目 | 型 | パラメータ | 初期値 | 備考 |
---|---|---|---|---|
pin_data_out | int | I2S Data Out | -1 | GPIO |
pin_bck | int | I2S bck | -1 | GPIO |
pin_ws | int | I2S WS(LRCK) | -1 | GPIO |
sample_rate | uint32_t | サンプルレート(Hz) | 64000 | |
stereo | bool | 扱うデータがステレオかどうか | FALSE | |
buzzer | bool | ブザー出力を使用するかどうか | FALSE | ブザーを使う場合、設定はpin_data_outのみでOK |
use_dac | bool | 出力に内蔵DACを使うかどうか | FALSE | 設定はpin_data_outのみ(GPIO_NUM_25 or GPIO_NUM_26) |
dac_zero_level | unit8_t | DAC使用時のゼロレベル基準値 | 0 | 0: Dynamic Change |
magnification | uint8_t | 出力値に対する乗数 | 16 | |
dma_buf_len | size_t | I2S DMAバッファの長さ | 128 | |
dma_buf_count | size_t | I2S DMAバッファの数 | 8 | |
task_priority | UBasetype_t | スピーカー再生タスクの優先度 | 2 | |
task_pinned_core | Basetype_t | スピーカー再生タスクを割り当てるコア | -1 | |
i2s_port | i2s_port_t | I2Sポート | i2s_port_t::I2S_NUM_0 | 0 or 1 |
参考URL
以下のURLも参照ください。