from micropython import const from machine import Pin, SPI from time import sleep_ms # ----------------------------打印机引脚配置------------------------------------------------- # TTL 引脚配置 ttl_tx = Pin(2) # TTL TX 连接到引脚22 ttl_rx = Pin(1) # TTL RX 连接到引脚23 ttl_Dtr = Pin(6) # TTL TX 连接到引脚22 # ----------------------------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}"