#M5StickV의 마이크로 녹음 및 스피커로 재생을 시도했습니다.
개요
최근에 판매되고 있는 새로운 타입의 M5StickV에서는 마이크가 실장되고 있는 것이 판명되었습니다. 시리얼 넘버의 K027로부터 계속되는 숫자가 2003 이후인 모델에 마이크가 탑재되고 있습니다.
소지의 M5StickV가 마이크 대응하고 있었기 때문에, 마이크로 녹음·스피커로 재생을 해 보았다.
#M5stickV 의 마이크로 녹음·스피커로 재생을 해 보았다 🦻 피 c. 라고 r. 코 m / rPM 6kc — nnn (@nnn112358) August 21, 2020
또한 maixpy로 마이크로 녹음하려면 이전 버전의 audio 모듈에 결함이 있으며 최신 버전이 필요합니다. 두는 장소는 이쪽.
M5StickV(마이크 장착 버전)
htps //w w. 슈 tch-s 시엔세. 코 m/타타 g/6651/
M5StickV 회로도
Kendryte K210의 IO_12와 IO_13이 마이크 앰프의 Goertek4737에 연결되어 있습니다.
K210 IO | IO 이름 | 기능 |
---|---|---|
IO_12 | MIC DAT | 마이크 앰프의 DAT 터미널과 연결 |
IO_13 | MIC CLK | 마이크 Amp의 CLK 터미널과 연결 |
IO_11 | SPK SD | 스피커 Amp의 SD 단자와 연결 |
IO_14 | SPK LRCCLK | 스피커 Amp의 LRCCLK 단자와 연결 |
IO_15 | SPK BCLK | 스피커 Amp의 BCLK 단자와 연결 |
MaixPy의 Audio 모듈
MaixPy는 오디오 데이터를 처리하기 위한 Audio 모듈을 제공합니다.
Audio 객체에 매개 변수로 전달하여 Audio를 직접 녹음하고 재생할 수 있습니다.
import audio
audio.Audio(array=None, path=None, points=1024)
パラメーター
array: オーディオオブジェクトに変換可能なbytearray型のデータ。
Path:パスを指定します。現在wav形式のみをサポートしています。
points: オーディオバッファのサンプリングデータ数を指定します。0の場合、バッファは開かれません。デフォルトは1024です。
audio_data = test_audio.to_bytes ()
オーディオオブジェクトのオーディオデータをbytearray型のオブジェクトに変換します。
MaixPy의 I2S 모듈
I2S 모듈은 주로 I2S 장치를 구동하는 데 사용됩니다. k210에는 총 3개의 I2S 장치가 탑재되어 있으며 각 장치에는 총 4개의 채널이 있습니다. 사용하기 전에 핀 매핑 및 관리가 필요합니다.
from Maix import I2S
i2s_dev = I2S(device_num)
device_num:K210 の I2S デバイス番号を指定します。最大 3 です。
i2s_dev.channel_config(channel, mode, resolution, cycles, align_mode)
channel:I2S チャンネル番号
mode:チャネル送信モード、受信モードを選びます
resolution:チャネルの解像度、つまり受信データビット数を指定します
cycles:通信データのクロック周期を指定します。
align_mode:チャネルのアライメントモードを指定します
i2s_dev.set_sample_rate(sample_rate)
サンプルレートを指定します
M5StickV 마이크로 녹음하기
maixPy의 Audio 모듈을 사용하여 M5StickV의 마이크로 녹음하는 소스 코드입니다.
from Maix import GPIO, I2S, FFT
import image,lcd,math,time,gc,lcd
from board import board_info
from fpioa_manager import fm
import audio
lcd.init()
lcd.clear()
lcd.rotation(2)
sample_rate = 22050
sample_points = 4096
# I2S MIC GPIO
fm.register(board_info.MIC_LRCLK, fm.fpioa.I2S0_WS, force=True)
fm.register(board_info.MIC_DAT, fm.fpioa.I2S0_IN_D0, force=True)
fm.register(board_info.MIC_CLK, fm.fpioa.I2S0_SCLK, force=True)
mic_dev = I2S(I2S.DEVICE_0)
mic_dev.channel_config(mic_dev.CHANNEL_0, mic_dev.RECEIVER, align_mode=I2S.STANDARD_MODE)
mic_dev.set_sample_rate(sample_rate)
print(mic_dev)
player = audio.Audio(path="/sd/record_1.wav", is_create=True, samplerate=sample_rate)
queue = []
lcd.draw_string(20,50,"REC")
for i in range(100):
tmp = mic_dev.record(sample_points)
if len(queue) > 0:
ret = player.record(queue[0])
queue.pop(0)
mic_dev.wait_record()
queue.append(tmp)
player.finish()
lcd.draw_string(20,50,"finish")
M5StickV 스피커로 재생
maixPy의 Audio 모듈을 사용하여 M5StickV의 스피커로 재생하는 소스 코드입니다.
from fpioa_manager import *
from Maix import I2S, GPIO
import audio
#Speaker I2s Initialize
fm.register(board_info.SPK_SD, fm.fpioa.GPIO0)
spk_sd=GPIO(GPIO.GPIO0, GPIO.OUT)
spk_sd.value(1)
fm.register(board_info.SPK_DIN,fm.fpioa.I2S1_OUT_D1)
fm.register(board_info.SPK_BCLK,fm.fpioa.I2S1_SCLK)
fm.register(board_info.SPK_LRCLK,fm.fpioa.I2S1_WS)
wav_dev = I2S(I2S.DEVICE_1)
sample_rate = 22050
#Play Wav File
def play_wav(fname):
player = audio.Audio(path = fname)
player.volume(100)
wav_info = player.play_process(wav_dev)
wav_dev.channel_config(wav_dev.CHANNEL_1,
I2S.TRANSMITTER,resolution = I2S.RESOLUTION_16_BIT,
align_mode = I2S.STANDARD_MODE)
wav_dev.set_sample_rate(sample_rate )
while True:
ret = player.play()
if ret == None:
break
elif ret==0:
break
player.finish()
print("finish")
play_wav("record_1.wav")
참고 자료
-
이동! M5StickV 마이크
htps : // 가시 r. 코m/ぃ/1394287
-
M5Stack Docs
htps : // / cs. m5s ck. 코 m / # / 엔 / 이것 / m5s Chickv
htps : // / cs. m5s ck. 코 m / # / 엔 / 레와 d_ 도쿠 멘 ts / M5S 치 쿠 V 마이 xpy
-
M5Stack Maixpy example
htps : // / cs. m5s ck. 코 m / # / 엔 / 레와 d_ 도쿠 멘 ts / M5S 치 쿠 V 마이 xpy
-
Sipeed Maixpy Document
htps : // 마이 xpy. 시페 d. 코m/엔/
-
푸딩을 더 지켜보는 기술
htps : // 기주 b. 코 m / 그 켄 / 푸린 _
-
m5stickv_microphone_example
htps : // 기주 b. 코 m / 응 112358 / M5S 치 CK V_ 미 c로 p 호네
Reference
이 문제에 관하여(#M5StickV의 마이크로 녹음 및 스피커로 재생을 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnn112358/items/b0fc47f4518041db1cdf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이동! M5StickV 마이크
htps : // 가시 r. 코m/ぃ/1394287
M5Stack Docs
htps : // / cs. m5s ck. 코 m / # / 엔 / 이것 / m5s Chickv
htps : // / cs. m5s ck. 코 m / # / 엔 / 레와 d_ 도쿠 멘 ts / M5S 치 쿠 V 마이 xpy
M5Stack Maixpy example
htps : // / cs. m5s ck. 코 m / # / 엔 / 레와 d_ 도쿠 멘 ts / M5S 치 쿠 V 마이 xpy
Sipeed Maixpy Document
htps : // 마이 xpy. 시페 d. 코m/엔/
푸딩을 더 지켜보는 기술
htps : // 기주 b. 코 m / 그 켄 / 푸린 _
m5stickv_microphone_example
htps : // 기주 b. 코 m / 응 112358 / M5S 치 CK V_ 미 c로 p 호네
Reference
이 문제에 관하여(#M5StickV의 마이크로 녹음 및 스피커로 재생을 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nnn112358/items/b0fc47f4518041db1cdf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)