7浏览
查看: 7|回复: 7

[K10教程] 【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

[复制链接]
【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1

行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好


【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图2

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

本帖最后由 驴友花雕 于 2026-6-16 11:11 编辑

主打:音频录放模块

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1

相关说明

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图2

本案例使用TF卡

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图3



回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

辅助:屏幕显示相关积木

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图2

LED控制模块

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

【花雕动手做】行空板 K10 系列实验之音频录放模块最简单的三秒钟屏显录音机
实验开源代码

  1. // 引入行空板K10官方综合驱动库,包含屏幕、按键、RGB彩灯、音频、SD卡文件全套硬件驱动
  2. #include "unihiker_k10.h"
  3. // 实例化行空板全局主硬件对象,所有硬件操作都通过k10调用
  4. UNIHIKER_K10 k10;
  5. // 屏幕显示方向参数3,可填0/1/2/3切换屏幕横竖翻转
  6. uint8_t      screen_dir=3;
  7. // 音频功能实例,支持内置旋律、自定义音调、TF卡录音、TF卡音频播放
  8. Music        music;
  9. // 上电/复位仅执行一次的硬件初始化函数
  10. void setup() {
  11.         // 初始化行空板底层所有硬件通信总线
  12.         k10.begin();
  13.         // 根据设定参数初始化显示屏驱动
  14.         k10.initScreen(screen_dir);
  15.         // 创建屏幕绘图缓存画布,绘图先写入缓存再统一刷新,防止屏幕闪烁
  16.         k10.creatCanvas();
  17.         // 初始化TF/SD卡文件系统,开启文件读写权限,录音、播放音频必须调用此函数
  18.         k10.initSDFile();
  19.         // 设置屏幕背景底色为纯白色 0xFFFFFF
  20.         k10.setScreenBackground(0xFFFFFF);
  21.         // 设置板载RGB彩灯全局亮度,取值范围0~255,此处亮度3,灯光柔和不刺眼
  22.         k10.rgb->brightness(round(3));
  23.         // 在画布第2行绘制蓝色大标题文字
  24.         k10.canvas->canvasText("      行空板K10系列实验", 2, 0x0000FF);
  25.         // 在画布第4行绘制红色副标题,说明本实验功能:录音、读取TF卡音频
  26.         k10.canvas->canvasText("  录制音频与播放TF卡音频", 4, 0xFF0000);
  27.         // 在画布第6行绿色文字提示操作:A键录音
  28.         k10.canvas->canvasText("按下A按键,开始录制音频......", 6, 0x006600);
  29.         // 将画布内所有文字刷新到实体显示屏,文字才会显示
  30.         k10.canvas->updateCanvas();
  31. }
  32. // 主循环函数,初始化完成后无限循环检测按键、执行录音播放逻辑
  33. void loop() {
  34.         // 判断A按键是否处于按下状态
  35.         if ((k10.buttonA->isPressed())) {
  36.                 // 在画布第8行打印青色提示文字:正在录音
  37.                 k10.canvas->canvasText("             正在录音......", 8, 0x339999);
  38.                 k10.canvas->updateCanvas();
  39.                 // 录音函数:保存到TF卡根目录S:/sound.wav,录音时长3秒
  40.                 music.recordSaveToTFCard("S:/sound.wav", 3);
  41.                 // 清空画布第8行原有文字
  42.                 k10.canvas->canvasClear(8);
  43.                 // 第8行橙色文字提示录音结束
  44.                 k10.canvas->canvasText("               录音完成", 8, 0xFF6600);
  45.                 k10.canvas->updateCanvas();
  46.         }
  47.         // 判断B按键是否处于按下状态
  48.         if ((k10.buttonB->isPressed())) {
  49.                 // 清空第8行原有提示文字
  50.                 k10.canvas->canvasClear(8);
  51.                 // -1代表全部板载RGB灯,点亮蓝色作为播放提示
  52.                 k10.rgb->write(-1, 0x0000FF);
  53.                 // 第8行蓝色文字提示正在播放音频
  54.                 k10.canvas->canvasText("         正在播放音频......", 8, 0x0000FF);
  55.                 k10.canvas->updateCanvas();
  56.                 // 读取TF卡内sound.wav音频文件并播放
  57.                 music.playTFCardAudio("S:/sound.wav");
  58.                 // 阻塞延时3秒,维持播放提示界面
  59.                 delay(3000);
  60.                 // 清空第8行文字
  61.                 k10.canvas->canvasClear(8);
  62.                 // 红色文字提示播放结束
  63.                 k10.canvas->canvasText("               结束播放", 8, 0xFF0000);
  64.                 k10.canvas->updateCanvas();
  65.         }
  66. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

代码解读

一、头文件与全局对象

  1. #include "unihiker_k10.h"
复制代码

导入行空板 K10 集成驱动库,内置屏幕、按键、RGB 灯、麦克风、喇叭、TF 卡文件系统全部驱动,无需额外引入库文件。

  1. UNIHIKER_K10 k10;
复制代码

行空板总硬件对象,屏幕、按键、灯光、SD 卡、音频全部通过 k10 调用接口。

  1. uint8_t screen_dir=3;
复制代码

屏幕旋转参数,取值 0/1/2/3,3 为当前设定的显示方向。

  1. Music music;
复制代码

音频专用对象,封装两大核心功能:麦克风录音保存至 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 按键按下,执行录音

  1. if (k10.buttonA->isPressed())
复制代码

轮询判断 A 键是否被按住:
屏幕第 8 行打印青色文字「正在录音......」并刷新画面;
music.recordSaveToTFCard("S:/sound.wav", 3)
调用麦克风录音,文件保存到 TF 卡根目录,录音时长固定 3 秒;
录音完成后清空第 8 行旧文字,打印橙色提示「录音完成」,刷新屏幕。
分支 2:检测 B 按键按下,播放 TF 卡音频

  1. if (k10.buttonB->isPressed())
复制代码

轮询判断 B 键是否被按住:
清空第 8 行原有文字;
全部 RGB 灯点亮蓝色,作为播放状态提示;
屏幕打印蓝色文字「正在播放音频......」;
music.playTFCardAudio("S:/sound.wav") 读取 TF 卡内 sound.wav,喇叭播放录音;
delay(3000) 阻塞延时 3 秒,保持播放提示界面;
清空底部文字,打印红色「结束播放」并刷新屏幕。

四、整体功能逻辑
硬件前提:行空板 K10 必须插入 TF 内存卡;
开机屏幕显示功能说明;
按住 A 键:自动录制 3 秒声音,存入 TF 卡 sound.wav;
按住 B 键:读取刚才录制的音频播放,同时 RGB 亮蓝灯提示。

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

Mind+图形编程

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

实验场景图与视频记录
【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1


【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图2


【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图4

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图3
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 17 分钟前

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机

本帖最后由 驴友花雕 于 2026-6-16 11:43 编辑

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图1

【花雕动手做】K10实验之音频模块简单三秒钟屏显录音机图2

【【花雕动手做】行空板 K10 系列实验之音频录放模块最简单的三秒钟屏显录音机#DIY动手做 #行空板K10 #学编程难不难 #科技
https://www.bilibili.com/video/BV1anjg64EP6/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail