StackChan ESPHome 統合

StackChan の ESPHome 統合には、電源、ディスプレイ、オーディオ、カメラ、センサー、サーボ、照明コンポーネントが含まれます。

1. デバイス概要

項目 情報
製品名 StackChan
SKU K151 / K151-R
主な機能 ディスプレイ、オーディオ、カメラ、センサー、サーボ、照明の制御
通信インターフェース I2C、I2S、UART、SPI、GPIO
ESPHome コンポーネント axp2101aw9523baw88298si12tm5ioe1ftservoscs9009(外部コンポーネント)、es7210i2s_audiomipi_spift63x6esp32_cameraltr_als_psina226remote_transmitterremote_receiverbm8563
必要な ESPHome バージョン /

2. コンポーネントの説明

外部コンポーネントの導入

StackChan の電源、アンプ、IO 拡張、ヘッドタッチ、ライトバー、サーボには、M5Stack の外部コンポーネントを使用します。

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [axp2101, aw88298, aw9523b, si12t, m5ioe1, ftservo, scs9009]
    refresh: 0s

電源管理と IO 拡張

axp2101 は CoreS3 の電源レールと LCD バックライトを制御し、aw9523b はリセットと電源方向を制御します。m5ioe1 はサーボとライトバー用の拡張 IO を提供します。

i2c:
  - id: bsp_bus
    sda: GPIO12
    scl: GPIO11
    frequency: 100kHz

axp2101:
  id: axp2101_pmu
  i2c_id: bsp_bus

aw9523b:
  id: aw9523b_hub
  i2c_id: bsp_bus
  p0_drive_mode: PUSH_PULL

m5ioe1:
  id: m5ioe1_hub
  i2c_id: bsp_bus
  reset: true

output:
  - platform: axp2101
    type: range
    channel: DLDO1
    id: lcd_backlight_output
    min_voltage: 2600
    max_voltage: 3300

BUS 出力と USB OTG を使用するには、先に昇圧回路を有効にする必要があります。

switch:
  - platform: gpio
    name: "BOOST_EN"
    pin:
      aw9523b_id: aw9523b_hub
      number: 15
    restore_mode: RESTORE_DEFAULT_ON

  - platform: gpio
    name: "USB_OTG_EN"
    pin:
      aw9523b_id: aw9523b_hub
      number: 5
    restore_mode: RESTORE_DEFAULT_OFF

  - platform: gpio
    name: "BUS_OUT_EN"
    pin:
      aw9523b_id: aw9523b_hub
      number: 1
    restore_mode: RESTORE_DEFAULT_ON
電源依存関係
BUS_OUT_ENUSB_OTG_EN は、BOOST_EN が有効な場合にのみ機能します。デフォルト状態を変更する前に、周辺機器への電源供給方向を確認してください。

マイクとスピーカー

マイクには公式の ES7210 Audio ADC と I2S Microphone を使用し、スピーカーには aw88298 外部 Audio DAC と I2S Speaker を使用します。

i2s_audio:
  id: i2s_audio_bus
  i2s_lrclk_pin: GPIO33
  i2s_bclk_pin: GPIO34
  i2s_mclk_pin:
    number: GPIO0
    ignore_strapping_warning: true

audio_adc:
  - platform: es7210
    id: es7210_adc
    i2c_id: bsp_bus
    bits_per_sample: 16bit
    sample_rate: 16000
    mic_gain: 36

microphone:
  - platform: i2s_audio
    id: i2s_mic
    i2s_din_pin: GPIO14
    adc_type: external
    sample_rate: 16000
    bits_per_sample: 16bit
    i2s_audio_id: i2s_audio_bus

audio_dac:
  - platform: aw88298
    id: aw88298_dac
    i2c_id: bsp_bus
    sample_rate: 48000

speaker:
  - platform: i2s_audio
    id: i2s_speaker
    i2s_audio_id: i2s_audio_bus
    dac_type: external
    i2s_dout_pin: GPIO13
    audio_dac: aw88298_dac

LCD とタッチスクリーン

LCD には公式の MIPI SPI Display Platform を使用し、タッチスクリーンには FT63X6 Platform を使用します。最小構成ではテスト画面を有効にします。

spi:
  - id: spi_bus
    clk_pin: GPIO36
    mosi_pin: GPIO37

display:
  - platform: mipi_spi
    model: M5CORE
    dc_pin: GPIO35
    reset_pin:
      aw9523b_id: aw9523b_hub
      number: 9
    cs_pin:
      number: GPIO3
      ignore_strapping_warning: true
    data_rate: 40MHz
    invert_colors: true
    show_test_card: true

touchscreen:
  - platform: ft63x6
    i2c_id: bsp_bus
    reset_pin:
      aw9523b_id: aw9523b_hub
      number: 0

カメラ

GC0308 には公式の ESP32 Camera コンポーネントを使用します。setup_priority: -200 は、電源と IO エキスパンダーの初期化完了を待つために必要です。

esp32_camera:
  name: "Camera"
  i2c_id: bsp_bus
  setup_priority: -200
  vsync_pin:
    number: GPIO46
    ignore_strapping_warning: true
  href_pin: GPIO38
  external_clock:
    pin: GPIO2
    frequency: 20MHz
  pixel_clock_pin:
    number: GPIO45
    ignore_strapping_warning: true
  data_pins: [GPIO39, GPIO40, GPIO41, GPIO42, GPIO15, GPIO16, GPIO48, GPIO47]
  resolution: 320x240
  frame_buffer_location: PSRAM
カメラの初期化
setup_priority: -200 は削除しないでください。電源とリセット信号が安定する前にカメラの初期化が始まる可能性があります。

周囲光・近接・電力測定

LTR-553ALS-WA には公式の LTR-ALS-PS Platform を使用し、電圧、電流、電力には公式の INA226 Platform を使用します。

sensor:
  - platform: ltr_als_ps
    address: 0x23
    i2c_id: bsp_bus
    type: ALS_PS
    ambient_light:
      name: "Ambient Light"
    ps_counts: "Proximity Counts"

  - platform: ina226
    i2c_id: bsp_bus
    address: 0x41
    shunt_resistance: 0.01 ohm
    max_current: 3.2A
    current:
      name: "INA226 Current"
    power:
      name: "INA226 Power"
    bus_voltage:
      name: "INA226 Bus Voltage"

サーボ

2 台の SCS9009 サーボにはそれぞれアドレス 1 と 2 を使用し、ftservo Number Platform で基本的な角度制御を行います。

uart:
  tx_pin: GPIO6
  rx_pin: GPIO7
  baud_rate: 1000000

scs9009:

ftservo:
  - platform: scs9009
    address: 1
    id: x_servo
  - platform: scs9009
    address: 2
    id: y_servo

number:
  - platform: ftservo
    ftservo_id: x_servo
    angle:
      name: "Servo X Angle"
      min_value: -164
      max_value: 164
      use_raw_angle: false
      angle_offset: 164
      step: 5
サーボ可動範囲
実際に到達できる角度は、機構とゼロ位置の影響を受けます。基本設定には校正、NVS 保存、復元のロジックが含まれていないため、使用前に安全な可動範囲を確認してください。

ヘッドタッチ

si12t 外部コンポーネントは、3 チャンネルの静電容量式タッチ状態を提供します。以下では第 1 チャンネルを例に示します。

si12t:
  id: touch_hub
  i2c_id: bsp_bus

text_sensor:
  - platform: si12t
    name: "Touch Sensor 1"
    channel: CH_1
    update_interval: 1s

RGB ライトバー

12 個の RGB LED には m5ioe1 Light Platform を使用します。M5IOE1 Pin 14 は必ず有効にし、BUS 側では 5V 供給のため BOOST_ENBUS_OUT_EN も必要です。

switch:
  - platform: gpio
    name: "M5IOE1 Pin 14"
    pin:
      m5ioe1_id: m5ioe1_hub
      number: 13
      mode:
        output: true
        pullup: true
    restore_mode: RESTORE_DEFAULT_ON

light:
  - platform: m5ioe1
    name: "StackChan Light Bar"
    num_led: 12

赤外線送受信

基板上の赤外線送信と受信には、ESPHome 公式の Remote Transmitter および Remote Receiver コンポーネントを使用します。

remote_transmitter:
  pin: GPIO5
  carrier_duty_percent: 50%
  non_blocking: true

remote_receiver:
  pin: GPIO10

RTC

基板上の RTC には公式の BM8563 Platform を使用します。起動時に RTC を読み取り、Home Assistant の時刻同期完了後に RTC へ書き戻します。

time:
  - platform: bm8563
    i2c_id: bsp_bus
    update_interval: never
  - platform: homeassistant
    on_time_sync:
      then:
        - bm8563.write_time:

3. 参考例

完全な設定は packages から読み込めます。

packages:
  remote_package_files:
    url: https://github.com/m5stack/esphome-yaml
    files: [examples/kit/stackchan-bsp.factory.yaml]
    ref: main
    refresh: 0s

完全なソースコードは stackchan-bsp.factory.yaml を参照してください。

Home Assistant にデバイスを接続すると、StackChan の基本エンティティを確認できます。

ESPHome 統合に表示されるデバイスエンティティ:

4. 関連リンク

Page Tools
PDF
On This Page