Atomic Speaker Base

以下产品受支持:

Atomic Speaker Base

以下是主机端对 Speaker 的详细支持:

控制器

NS4168

SDCard

Atom Echo

Atom Lite

Atom Matrix

AtomS3

AtomS3 Lite

AtomS3R

AtomS3R-CAM

AtomS3R-Ext

✅:支持。

⭕:可选项。它与主机的一些内部资源存在冲突。

MicroPython 应用示例:

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from base import SpeakerBase
 9from hardware import sdcard
10
11
12base_spk = None
13
14
15def setup():
16    global base_spk
17
18    M5.begin()
19    base_spk = SpeakerBase(1, 5, 39, 38)
20    sdcard.SDCard(slot=3, width=1, sck=7, miso=8, mosi=6, cs=None, freq=20000000)
21    base_spk.playWavFile("/flash/res/audio/66.wav")
22    base_spk.playWavFile("/sd/66.wav")
23
24
25def loop():
26    global base_spk
27    M5.update()
28
29
30if __name__ == "__main__":
31    try:
32        setup()
33        while True:
34            loop()
35    except (Exception, KeyboardInterrupt) as e:
36        try:
37            from utility import print_error_msg
38
39            print_error_msg(e)
40        except ImportError:
41            print("please update to latest firmware")

UiFlow2 应用示例:

example.png

atoms3_speaker_example.m5f2

class SpeakerBase

构造函数

class SpeakerBase(_id, sck, ws, sd)

创建一个 SpeakerBase 对象。

参数:
  • _id (int) – I2S 端口号。

  • sck (int) – I2S SCK 引脚。

  • ws (int) – I2S WS 引脚。

  • sd (int) – I2S DI 引脚。

UiFlow2:

SpeakerBase.png

MicroPython:

from base import SpeakerBase

# atoms3 lite / atoms3 / atoms3r / atoms3r-cam / atoms3-ext
spk = SpeakerBase(1, 5, 39, 38)

# atom lite / atom matrix / atom echo
spk = SpeakerBase(1, 22, 21, 25)

SpeakerBase 类继承自 M5.Speaker 类,更多详情请参见 hardware.Speaker.Methods

class SDCard

构造函数

class SDCard(slot=2, width=1, sck=None, miso=None, mosi=None, cs=None, freq=20000000)

创建一个 SDCard 对象。

参数:
  • slot (int) – SD 卡的插槽编号。默认值为 2。

  • width (int) – width 用于选择 SD/MMC 接口的总线宽度。

  • sck (int) – sck 可用于指定 SPI 时钟引脚。

  • miso (int) – miso 可用于指定 SPI 的 MISO 引脚。

  • mosi (int) – mosi 可用于指定 SPI 的 mosi 引脚。

  • cs (int) – cs 可用于指定 SPI 片选引脚。

  • freq (int) – freq 用于选择 SD/MMC 接口频率,单位为 Hz。

UiFlow2:

SDCard.png

MicroPython:

from hardware import sdcard

# atoms lite / atom martrix / atom echo: SPI2
sd = sdcard.SDCard(slot=3, width=1, sck=23, miso=33, mosi=19, cs=None, freq=20000000)

# atoms3 / atoms3 lite / atoms3r / atoms3r-cam / atoms3-ext: SPI2
sd = SDCard(slot=3, width=1, sck=7, miso=8, mosi=6, cs=None, freq=20000000)