import lcd import sensor import time import uos from fpioa_manager import * from machine import I2C from Maix import I2S, GPIO from modules import ws2812 # # initialize # lcd.init() lcd.rotation(2) i2c = I2C(I2C.I2C0, freq=400000, scl=28, sda=29) wav_dev = I2S(I2S.DEVICE_0) class_ws2812 = None # check if it runs on UnitV devices = i2c.scan() is_unitv = False if len(devices) == 0: is_unitv = True def stickv_init(): fm.register(board_info.SPK_SD, fm.fpioa.GPIO0) spk_sd = GPIO(GPIO.GPIO0, GPIO.OUT) spk_sd.value(1) #Enable the SPK output fm.register(board_info.SPK_DIN, fm.fpioa.I2S0_OUT_D1)
#i2s.wait_record() #queue.append(tmp) #player.finish() #del i2s, player #time.sleep_ms(2000) dev = ES8374(i2c) dev.setVoiceVolume(90) dev.start(ES_MODULE._ES_MODULE_ADC_DAC) # init i2s(i2s0) i2s = I2S(I2S.DEVICE_0, pll2=262144000, mclk=31) # config i2s according to audio info # STANDARD_MODE LEFT_JUSTIFYING_MODE RIGHT_JUSTIFYING_MODE i2s.channel_config(I2S.CHANNEL_2, I2S.TRANSMITTER, resolution=I2S.RESOLUTION_16_BIT, cycles=I2S.SCLK_CYCLES_32, align_mode=I2S.STANDARD_MODE) #fm.register(19,fm.fpioa.I2S0_MCLK, force=True) #fm.register(35,fm.fpioa.I2S0_SCLK, force=True) #fm.register(33,fm.fpioa.I2S0_WS, force=True) #fm.register(34,fm.fpioa.I2S0_IN_D0, force=True) #fm.register(18,fm.fpioa.I2S0_OUT_D2, force=True) fm.register(13,fm.fpioa.I2S0_MCLK, force=True) fm.register(21,fm.fpioa.I2S0_SCLK, force=True) fm.register(18,fm.fpioa.I2S0_WS, force=True) fm.register(35,fm.fpioa.I2S0_IN_D0, force=True) fm.register(34,fm.fpioa.I2S0_OUT_D2, force=True)
hist_x_num = 50 lcd.init(freq=15000000) # close WiFi fm.register(8, fm.fpioa.GPIO0, force=True) wifi_en = GPIO(GPIO.GPIO0, GPIO.OUT) wifi_en.value(0) fm.register(20, fm.fpioa.I2S0_IN_D0, force=True) fm.register(30, fm.fpioa.I2S0_WS, force=True) # 19 on Go Board and Bit(new version) fm.register(32, fm.fpioa.I2S0_SCLK, force=True) # 18 on Go Board and Bit(new version) rx = I2S(I2S.DEVICE_0) rx.channel_config(rx.CHANNEL_0, rx.RECEIVER, align_mode=I2S.STANDARD_MODE) rx.set_sample_rate(sample_rate) img = image.Image() if hist_x_num > 320: hist_x_num = 320 hist_width = int(320 / hist_x_num) #changeable x_shift = 0 while True: audio = rx.record(sample_points) fft_res = FFT.run(audio.to_bytes(), fft_points) fft_amp = FFT.amplitude(fft_res) img = img.clear() x_shift = 0 for i in range(hist_x_num): if fft_amp[i] > 240: