【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机
2026-06-16844
AI 快速预览详细
行空板K10是一款专为快速体验物联网和学习人工智能设计的开发学习板,集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器等资源。通过简单的代码,可以实现三秒钟屏显录音机项目,支持离线语音识别与合成。该板适用于STEM教育场景,帮助孩子快速入门编程与物联网。
![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |






【【花雕动手做】行空板 K10 系列实验之音频录放模块最简单的三秒钟屏显录音机#DIY动手做 #行空板K10 #学编程难不难 #科技
https://www.bilibili.com/video/BV1anjg64EP6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
[media=x,500,375]https://www.bilibili.com/video/BV1anjg64EP6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987[/media]
一、头文件与全局对象
[code]#include "unihiker_k10.h"[/code]
导入行空板 K10 集成驱动库,内置屏幕、按键、RGB 灯、麦克风、喇叭、TF 卡文件系统全部驱动,无需额外引入库文件。
[code]UNIHIKER_K10 k10;[/code]
行空板总硬件对象,屏幕、按键、灯光、SD 卡、音频全部通过 k10 调用接口。
[code]uint8_t screen_dir=3;[/code]
屏幕旋转参数,取值 0/1/2/3,3 为当前设定的显示方向。
[code]Music music;[/code]
音频专用对象,封装两大核心功能:麦克风录音保存至 TF 卡、读取 TF 卡 wav 音频播放。
二、setup () 上电初始化(仅运行一次)
k10.begin():初始化主板底层硬件总线;
k10.initScreen(screen_dir):按指定方向初始化显示屏;
k10.creatCanvas():创建绘图缓存画布,文字先写入缓存再统一刷新,消除屏幕闪烁;
k10.initSDFile() 关键函数:初始化 TF 卡文件系统,不调用则无法读写存储卡,录音功能失效;
setScreenBackground(0xFFFFFF):屏幕底色设白色;
k10.rgb->brightness(3):全局设置 RGB 灯亮度,范围 0~255,数值越小灯光越暗;
canvasText():在画布固定行打印不同颜色提示文字,展示实验标题与操作说明;
updateCanvas():把缓存里的文字刷新到实体屏幕,文字才会显示。
三、loop () 主循环,程序上电后无限重复执行
分支 1:检测 A 按键按下,执行录音
[code]if (k10.buttonA->isPressed())[/code]
轮询判断 A 键是否被按住:
屏幕第 8 行打印青色文字「正在录音......」并刷新画面;
music.recordSaveToTFCard("S:/sound.wav", 3)
调用麦克风录音,文件保存到 TF 卡根目录,录音时长固定 3 秒;
录音完成后清空第 8 行旧文字,打印橙色提示「录音完成」,刷新屏幕。
分支 2:检测 B 按键按下,播放 TF 卡音频
[code]if (k10.buttonB->isPressed())[/code]
轮询判断 B 键是否被按住:
清空第 8 行原有文字;
全部 RGB 灯点亮蓝色,作为播放状态提示;
屏幕打印蓝色文字「正在播放音频......」;
music.playTFCardAudio("S:/sound.wav") 读取 TF 卡内 sound.wav,喇叭播放录音;
delay(3000) 阻塞延时 3 秒,保持播放提示界面;
清空底部文字,打印红色「结束播放」并刷新屏幕。
四、整体功能逻辑
硬件前提:行空板 K10 必须插入 TF 内存卡;
开机屏幕显示功能说明;
按住 A 键:自动录制 3 秒声音,存入 TF 卡 sound.wav;
按住 B 键:读取刚才录制的音频播放,同时 RGB 亮蓝灯提示。
实验开源代码
[code]// 引入行空板K10官方综合驱动库,包含屏幕、按键、RGB彩灯、音频、SD卡文件全套硬件驱动
#include "unihiker_k10.h"
// 实例化行空板全局主硬件对象,所有硬件操作都通过k10调用
UNIHIKER_K10 k10;
// 屏幕显示方向参数3,可填0/1/2/3切换屏幕横竖翻转
uint8_t screen_dir=3;
// 音频功能实例,支持内置旋律、自定义音调、TF卡录音、TF卡音频播放
Music music;
// 上电/复位仅执行一次的硬件初始化函数
void setup() {
// 初始化行空板底层所有硬件通信总线
k10.begin();
// 根据设定参数初始化显示屏驱动
k10.initScreen(screen_dir);
// 创建屏幕绘图缓存画布,绘图先写入缓存再统一刷新,防止屏幕闪烁
k10.creatCanvas();
// 初始化TF/SD卡文件系统,开启文件读写权限,录音、播放音频必须调用此函数
k10.initSDFile();
// 设置屏幕背景底色为纯白色 0xFFFFFF
k10.setScreenBackground(0xFFFFFF);
// 设置板载RGB彩灯全局亮度,取值范围0~255,此处亮度3,灯光柔和不刺眼
k10.rgb->brightness(round(3));
// 在画布第2行绘制蓝色大标题文字
k10.canvas->canvasText(" 行空板K10系列实验", 2, 0x0000FF);
// 在画布第4行绘制红色副标题,说明本实验功能:录音、读取TF卡音频
k10.canvas->canvasText(" 录制音频与播放TF卡音频", 4, 0xFF0000);
// 在画布第6行绿色文字提示操作:A键录音
k10.canvas->canvasText("按下A按键,开始录制音频......", 6, 0x006600);
// 将画布内所有文字刷新到实体显示屏,文字才会显示
k10.canvas->updateCanvas();
}
// 主循环函数,初始化完成后无限循环检测按键、执行录音播放逻辑
void loop() {
// 判断A按键是否处于按下状态
if ((k10.buttonA->isPressed())) {
// 在画布第8行打印青色提示文字:正在录音
k10.canvas->canvasText(" 正在录音......", 8, 0x339999);
k10.canvas->updateCanvas();
// 录音函数:保存到TF卡根目录S:/sound.wav,录音时长3秒
music.recordSaveToTFCard("S:/sound.wav", 3);
// 清空画布第8行原有文字
k10.canvas->canvasClear(8);
// 第8行橙色文字提示录音结束
k10.canvas->canvasText(" 录音完成", 8, 0xFF6600);
k10.canvas->updateCanvas();
}
// 判断B按键是否处于按下状态
if ((k10.buttonB->isPressed())) {
// 清空第8行原有提示文字
k10.canvas->canvasClear(8);
// -1代表全部板载RGB灯,点亮蓝色作为播放提示
k10.rgb->write(-1, 0x0000FF);
// 第8行蓝色文字提示正在播放音频
k10.canvas->canvasText(" 正在播放音频......", 8, 0x0000FF);
k10.canvas->updateCanvas();
// 读取TF卡内sound.wav音频文件并播放
music.playTFCardAudio("S:/sound.wav");
// 阻塞延时3秒,维持播放提示界面
delay(3000);
// 清空第8行文字
k10.canvas->canvasClear(8);
// 红色文字提示播放结束
k10.canvas->canvasText(" 结束播放", 8, 0xFF0000);
k10.canvas->updateCanvas();
}
}[/code]
LED控制模块
相关说明
本案例使用TF卡