硬件
由于网上购买的灯带还没有回来,现阶段先将麦克风的数据采集到单片机并显示在电脑上,后面无论是接屏幕还是接灯带,都只是水到渠成的事。
目前先验证 声音采集 功能,所以接线非常精简。这阶段不需要外部电源,直接用一根 USB 数据线连接电脑和 Teensy 4.0 即可。
以下是针对这一阶段的接线规划:
核心硬件
1、TEENSY 4.0 主控板
2、INMP441 全向麦克风模块
3、面包板与几根杜邦线
4、Micro USB 数据线(连接电脑,既供电又传数据)

INMP441 麦克风 -> Teensy 4.0 接线表
把 Teensy 4.0 插在面包板上,然后按照下表用杜邦线将麦克风连接起来:
| INMP441 模块引脚 | Teensy 4.0 引脚 | 接线说明 |
| VDD | 3.3V | 麦克风电源正极。(千万不要接 5V 或 VIN,会烧坏麦克风) |
| GND | GND | 电源地线。 |
| L/R | GND | 声道选择。接到 GND 代表输出“左声道”数据。 |
| WS | Pin 20 | 字选择时钟 (Word Select)。告诉主控现在传的是左声道还是右声道。 |
| SCK | Pin 21 | 串行时钟 (Serial Clock)。同步数据传输的节拍。 |
| SD | Pin 8 | 串行数据输出 (Serial Data)。真正的音频数据从这里传给主控。 |
!!!接线避坑小贴士
1、引脚确认: Teensy 4.0 的引脚非常紧凑,接线时请对照开发板边缘印刷的数字。Pin 8、20、21 都是 Teensy 硬件 I2S 接口的默认引脚,接对这几个,后面写代码时就能直接调用官方音频库,极其省事。
2、麦克风收音孔: INMP441 模块的收音孔通常在 PCB 板的 背面(没有焊盘的那一面),测试的时候记得把那一面朝向声源。接好线之后,硬件准备就完成了。这里附上 错误接法,排针反着接就对了。接下来我们要在 Trae 里面建工程了。

实物图

软件
在 Trae 里新建一个 PlatformIO 工程,然后按照下面两步替换文件内容。
第一步:配置 platformio.ini 文件
打开工程根目录下的 platformio.ini 文件,将里面的内容全部替换为以下代码。这会让系统知道我们用的是 Teensy 4.0,并且使用 Arduino 框架。
[env:teensy40] board = teensy40 framework = arduino ; 串口波特率,用于串口监视器和绘图器 monitor_speed = 115200 |
第二步:编写测试代码 src/main.cpp
打开 src 文件夹下的 main.cpp 文件,将以下代码复制进去。代码里我加了详细的中文注释,逻辑非常简单:就是不断把麦克风收到的声音“波形数据”打印到电脑上。
#include <Arduino.h> |
第三步:测试和看效果
1、编译上传: 用 USB 线把 Teensy 4.0 连上电脑,点击 PlatformIO 的“向右箭头”图标(Upload)把代码烧录进去。
2、打开串口绘图器: 打开 VOFA+,在左侧“数据引擎”中,把协议改为 FireWater,观看仪表盘看到一条的直线。试着对着麦克风吹气、拍手或者说话,电脑屏幕上的线条就会像心电图一样剧烈跳动!声音越大,波幅越高。线条能跟着声音准确跳动,说明最核心的硬件采集环节已经完美搞定!

下一篇分享引入 FFT 算法的测试代码
我要赚赏金
