-
Notifications
You must be signed in to change notification settings - Fork 433
Open
Description
Hi Developers,
I’m trying to build a Maix Bit + Sipeed Microphone Array and record audio from 6 channels to an SD card.
My wiring is exactly following tutorial from here http://www.yahboom.net/study/MicArray.
I’ve been trying to modify the record_wav.py, but I haven’t had any luck.
I’ve attached the code I tried to modify below. Can you help me out?
import image, lcd, time
import audio
from Maix import GPIO, I2S
from fpioa_manager import fm
# user setting
sample_rate = 16000
record_time = 4 #s
# default seting
sample_points = 2048
wav_ch = 6
fm.register(8, fm.fpioa.GPIO0, force=True)
wifi_en = GPIO(GPIO.GPIO0, GPIO.OUT)
wifi_en.value(0)
fm.register(23,fm.fpioa.I2S0_IN_D0, force=True)
fm.register(22,fm.fpioa.I2S0_IN_D1, force=True)
fm.register(21,fm.fpioa.I2S0_IN_D2, force=True)
fm.register(20,fm.fpioa.I2S0_IN_D3, force=True)
fm.register(19,fm.fpioa.I2S0_WS, force=True) # 19 on Go Board and Bit(new version)
fm.register(18,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)
print(rx)
#import time
# init audio
recorder = audio.Audio(path="/sd/record.wav", is_create=True, samplerate=sample_rate)
queue = []
frame_cnt = record_time*sample_rate//sample_points
for i in range(frame_cnt):
tmp = rx.record(sample_points*wav_ch)
if len(queue) > 0:
ret = recorder.record(queue[0])
queue.pop(0)
rx.wait_record()
queue.append(tmp)
print(str(i) + ":" + str(time.ticks()))
recorder.finish()I’m trying my best to grasp the concepts of fm, fpioa, and I2S from the documentation, but I’m still a bit lost. Can you help me out?
Thanks!
MichalZajac
Metadata
Metadata
Assignees
Labels
No labels