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” を試してみよう! 2023/6/16 らびやん
対応デバイス
下記のデバイス以外でも対応している場合があります。最新情報は 以下の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() で設定できる項目の一覧です。
Argument | Type | Description | Initial Value | Remarks |
---|---|---|---|---|
serial_baudrate | uint32_t | USB serial baud rate | 115200 | Arduino-esp32 only |
clear_display | bool | clear the screen when the device is started or not | TRUE | valid only for devices with a screen |
output_power | bool | external 5V output ON(true)/OFF(false) | TRUE | only for devices with AXP192 |
internal_imu | bool | whether internal IMU is used or not | TRUE | valid only for models with IMU |
internal_rtc | bool | whether to use built-in RTC or not | TRUE | only for the models with RTC |
internal_spk | bool | whether to use built-in speaker or not | TRUE | only available on models with speaker |
internal_mic | bool | whether to use built-in microphone or not | TRUE | available only for the model with microphone |
external_imu | bool | whether to use Unit IMU or Accel | FALSE | for Unit IMU(*1) and Accel(*2) |
external_rtc | bool | Whether Unit RTC is used or not | FALSE | For Unit RTC(*3) |
external_spk | bool | use external speaker or not | FALSE | for SPK_HAT(*4) or ATOMIC_SPK(*5) |
led_brightness | uint8_t | brightness of built-in LED (0~255) | 0 | valid only for models with built-in LED (not for RGBLED) |
M5.Speaker.config()
M5.Speaker.config() で設定できる項目の一覧です。
Item | Type | Parameter | Initial value | Remarks |
---|---|---|---|---|
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 | sample rate(Hz) | 64000 | stereo |
stereo | bool | whether the data to be handled is stereo or not | FALSE | |
buzzer | bool | whether buzzer output is used or not | FALSE | if buzzer is used, only pin_data_out needs to be set |
use_dac | bool | use built-in DAC for output | FALSE | setting is only for pin_data_out (GPIO_NUM_25 or GPIO_NUM_26) |
dac_zero_level | unit8_t | zero level reference value when DAC is used | 0 | 0: Dynamic Change |
magnification | uint8_t | multiplier for output value | 16 | 16 |
dma_buf_len | size_t | length of I2S DMA buffer | 128 | |
dma_buf_count | size_t | number of I2S DMA buffers | 8 | |
task_priority | UBasetype_t | priority of speaker playback task | 2 | |
task_pinned_core | Basetype_t | core to which speaker playback task is assigned | -1 | |
i2s_port | i2s_port_t | I2S port | i2s_port_t::I2S_NUM_0 | 0 or 1 |
参考URL
以下のURLも参照ください。