Teensy 打造 USB 纯数字麦克风-Arduino中文社区 - Powered by Discuz! Archiver

Zoologist 发表于 2019-1-2 20:42

Teensy 打造 USB 纯数字麦克风

很多人喜欢在文章中引用名人名言来证明自己的观点,但是大多数名人名言都是有前提条件的,甚至前后段意义完全相反。比方说:打算宽恕别人的时候可以说“以德报怨”是中华民族的传统美德;打算复仇的时候就可以完整的引用“以德报怨,何以报德”。又比方说:在作文中我们用了无数次的“天才就是1%的灵感加上99%的汗水”;但是爱迪生要表达的是“天才就是1%的灵感加上99%的汗水,但那1%的灵感是最重要的,甚至比那99%的汗水都要重要”。所以,在我看来,这样的名人名言除了凑凑字数别无大用。与之相反,理科生的世界中,各种定理和名言充满了简洁和力量。比如:奈奎斯特教导我们说“要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。 抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。 抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。”这句话可以指导我们对音频进行采样,语音信号频率范围是:300Hz~3.4kHz,因此,电话系统的8000Hz 采样率对于传递语音信息已经足够了。                              要想让电脑处理音频,先要用声能到电能的元件进行转换,再经过放大之后达到一定幅度才能进行采样(否则只有100mv不适合采样),可以看到在这个过程中会引入需要经过很多步骤而每一个步骤都会引入不确定性,因此,很长一段时间以内,音频处理都算得上是玄学。最近我接触到了数字麦克风(MEMS micphone),和传统的相比数字麦克风输出的是数字信号,而不是通常的模拟信号。产品的基本形态有方形的,也有圆形的,形状与通常的驻极体传声器类似。基本结构为:一个换能器,用于产生代表声信号的模拟信号(通常由驻极体振膜及其背电极来完成的);和大于1的单比特∑-Δ调制器模数变换器,按照过抽样速率并以∑-Δ调制比特流的形式从模拟信号中产生数据输出信号。数字麦克风的最大优点是抗干扰能力强,无需像传统传声器那样内置高频滤波电容、滤波器电路。数字麦克风因其固有的特点,不会受到那些来自电脑、网络、射频际磁场信号源的干扰、影响,因此在接入的时候,无需采用屏蔽线,可以有效地利用相关产品的有限空间。【参考1】这次使用的是SPH0645LM4H(SPH0645)数字麦克风模块

特别注意,有孔的一面是正面,需要面对音源。硬件连接方式Teensy 3.2   SPH0645LM4H      GND             SEL      D23            LRCL         D13             DOUT         D9               BCLK         GND         GND         3.3V            3V

在https://www.pjrc.com/teensy/gui/index.html?info=AudioInputI2S#可以直接使用图形方式设定连接可以用这样的方式直接生成需要的文件头部。最终的源代码:
#include <Audio.h>

#include <Wire.h>

#include <SPI.h>

#include <SD.h>

#include <SerialFlash.h>



// GUItool: begin automatically generated code

AudioInputI2S            i2s1;         //xy=223,84

AudioOutputUSB         usb1;         //xy=435,172

AudioConnection          patchCord1(i2s1, 0, usb1, 0);

// GUItool: end automatically generated code



void setup() {

// put your setup code here, to run once:

   AudioMemory(80);

}



void loop() {

}
除了上面提到的数字麦克风的优点之外,它还有如下缺点:1.   1.对于处理器有要求。比如Teensy 3.X 能够支持这款麦克风,最主要是因为它上面有对应的处理单元。而像 Arduino Uno,并没有这样的硬件基础,因此不能直接使用;2 2.   价格昂贵。本次试验用到的模块价格为 48元。单纯的数字麦克风数字麦克风模块也要十几块; 另外,现在绝大多数的笔记本都采用这种麦克风作为内置麦克风。相信未来,这种麦克风会有更大的用途。 参考:1. https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E9%BA%A6%E5%85%8B%E9%A3%8E/6847775


Zoologist 发表于 2019-1-2 20:43

工作视频在 https://zhuanlan.zhihu.com/p/53737317 可以看到

impking 发表于 2019-3-8 10:48

这两天在你的指点下烧写hex文件,我突然想到个问题,teensy2.0和leonardo(pro micro)的芯片是一样的(都是atmega32u4),我就想问,teensy在编译后能不能提取到hex文件(arduinoIDE设置下是可以的),如果可以提取到,然后能不能把这个文件烧写到leonardo上?

Zoologist 发表于 2019-3-8 13:14

impking 发表于 2019-3-8 10:48
这两天在你的指点下烧写hex文件,我突然想到个问题,teensy2.0和leonardo(pro micro)的芯片是一样的(都 ...

teensy 2.0 的可以,没问题。这个项目最开始就是给 teensy 2.0 设计的。
页: [1]
查看完整版本: Teensy 打造 USB 纯数字麦克风