from micropython import const from machine import Pin, SPI from time import sleep_ms # ----------------------------epaper配置------------------------------------------------- # SPI引脚配置 sck = Pin(47) # SCK pin47 miso = Pin(46) # MISO pin46 mosi = Pin(21) # SDI/MOSI pin21 # 控制引脚配置 dc = Pin(40) # D/C pin40 cs = Pin(45) # CS pin45 rst = Pin(41) # RES pin41 busy = Pin(42) # BUSY pin42 # 按钮引脚配置 btn1 = Pin(46, Pin.IN, Pin.PULL_UP) # 按钮1连接到引脚46 btn2 = Pin(20, Pin.IN, Pin.PULL_UP) # 按钮2连接到引脚20 btn3 = Pin(12, Pin.IN, Pin.PULL_UP) # 按钮3连接到引脚12 btn4 = Pin(11, Pin.IN, Pin.PULL_UP) # 按钮4连接到引脚11 # 蜂鸣器引脚配置 buzzer_pin = 14 # 蜂鸣器连接到引脚14 # epaper屏幕尺寸 WIDTH = 400 HEIGHT = 300 # 初始化 SPI2(HSPI/VSPI 视固件而定) spi = SPI(2, baudrate=2_000_000, polarity=0, phase=0, sck=sck, miso=miso, mosi=mosi) # 如果你板子上真有单独的 EPD 电源控制 FET,就按实际 IO 改; # 若只是直接 3.3V 供电,可以把下面这一段去掉。 epd_power = Pin(2, Pin.OUT) epd_power.on() sleep_ms(10) # ----------------------------epaper配置------------------------------------------------- class BoardConfig: def __init__(self, name): self.name = name self.pins = {} self.audio = {} self.mic = {} # ----------------------------------------------------------------------------- # 非摄像头版本配置 (NON_CAMERA_VERSION) # 对应 C++: NON_CAMERA_VERSION_CONFIG # ----------------------------------------------------------------------------- NON_CAMERA = BoardConfig("NON_CAMERA") NON_CAMERA.pins = { 'bl': 3, # 背光 'mosi': 10, # SPI MOSI / SDA 'sck': 9, # SPI CLK / SCK 'dc': 46, # Data/Command 'rst': 11, # Reset 'cs': 12, # Chip Select 'btn': 0 # Boot按键 } NON_CAMERA.audio = { 'enabled': True, 'sd': 7, # Serial Data (DOUT) -> 扬声器 'bck': 15, # Bit Clock (BCLK) 'ws': 16, # Word Select (LRCK) 'sample_rate': 24000 } NON_CAMERA.mic = { 'enabled': True, 'sd': 6, # Serial Data (DIN) <- 麦克风 'sck': 5, # Bit Clock (SCK) 'ws': 4, # Word Select (WS) 'sample_rate': 16000 } # ----------------------------------------------------------------------------- # 摄像头版本配置 (CAMERA_VERSION) # 对应 C++: CAMERA_VERSION_CONFIG # ----------------------------------------------------------------------------- CAMERA = BoardConfig("CAMERA") CAMERA.pins = { 'bl': 38, 'mosi': 45, 'sck': 48, 'dc': 47, 'rst': 1, 'cs': None # 无 CS 引脚 } # 摄像头版本使用 Duplex I2S (同一组引脚) CAMERA.audio = { 'enabled': True, 'sd': 39, # DOUT 'bck': 42, 'ws': 40, 'sample_rate': 16000 } CAMERA.mic = { 'enabled': True, 'sd': 41, # DIN 'sck': 42, # 复用 BCLK 'ws': 40, # 复用 WS 'sample_rate': 16000 } # ============================================================================= # 当前使用的配置 # ============================================================================= # 默认使用 NON_CAMERA (普通版),请根据你的实际硬件选择 CURRENT_CONFIG = NON_CAMERA # ============================================================================= # 服务器配置 # ============================================================================= SERVER_IP = "118.196.74.38" SERVER_PORT = 8811 SERVER_PATH = "/ws/audio" SERVER_URL = f"ws://{SERVER_IP}:{SERVER_PORT}{SERVER_PATH}"