尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【花雕动手做】行空板 K10 系列实验之带提示音的全功能数码照相机

【花雕动手做】行空板 K10 系列实验之带提示音的全功能数码照相机
📅 发布时间:2026/8/3 20:41:58


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

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


主打:音频录放模块


相关说明

辅助:屏幕显示相关积木


LED控制模块


【花雕动手做】行空板 K10 系列实验之带提示音的全功能数码照相机
实验开源代码

// 引入行空板K10全套硬件驱动库,集成屏幕、按键、摄像头、SD卡、音频、RGB彩灯功能#include"unihiker_k10.h"// 状态计数全局变量,volatile修饰:回调函数修改,防止编译器缓存优化,主逻辑实时读取数值volatilefloatmind_n_ABC;// A按键按下回调函数前置声明,setup中绑定按键事件需要提前告知编译器voidonButtonAPressed();// 实例化行空板主硬件对象,所有硬件操作统一通过k10调用UNIHIKER_K10 k10;// 音频播放对象,用于拍摄、保存、预览时播放提示音调Music music;// 屏幕显示方向参数2,可修改0/1/2/3切换屏幕翻转角度uint8_tscreen_dir=2;// 上电/复位仅执行一次初始化函数voidsetup(){// 初始化行空板底层总线、摄像头、屏幕、I2C等硬件k10.begin();// 为A按键绑定按下触发回调函数,按下A自动执行onButtonAPressedk10.buttonA->setPressedCallback(onButtonAPressed);// 按照设定方向初始化显示屏k10.initScreen(screen_dir);// 初始化摄像头画面背景渲染功能,开启摄像头底层驱动k10.initBgCamerImage();// 默认关闭摄像头实时预览画面k10.setBgCamerImage(false);// 创建屏幕绘图缓存画布,绘图先写入缓存再统一刷新,避免屏幕闪烁k10.creatCanvas();// 初始化TF卡文件系统,照片存储、读取图片必须依赖此函数k10.initSDFile();// 设置屏幕底色为纯黑色k10.setScreenBackground(0x000000);// 画布第3行浅粉色打印实验标题k10.canvas->canvasText("行空板K10系列实验",3,0xFFCCCC);// 画布第5行浅黄色打印功能副标题k10.canvas->canvasText(" 带提示音的照相机",5,0xFFFF99);// 画布第7行浅紫色打印操作提示文字k10.canvas->canvasText(" 按A键打开相机",7,0xCCCCFF);// 将缓存中所有文字刷新到实体屏幕完成显示k10.canvas->updateCanvas();// 设置RGB彩灯全局亮度为9,亮度区间0~255,数值越小灯光越柔和k10.rgb->brightness(round(9));}// 主循环,本实验全部拍摄逻辑放在按键回调内,loop无额外执行代码voidloop(){}// A按键按下触发回调函数,每按一次自动执行一次,实现三段式相机功能切换voidonButtonAPressed(){// 每按一次A,计数变量自增1,用来区分三种相机状态mind_n_ABC+=1;// 计数对3取余=1:第一阶段——开启摄像头实时取景if((((int32_t(mind_n_ABC))%(int32_t(3)))==1)){// 播放247Hz音调,持续4000ms,取景提示音music.playTone(247,4000);// 开启摄像头背景实时画面,屏幕显示摄像头取景画面k10.setBgCamerImage(true);// 刷新画布同步画面k10.canvas->updateCanvas();// 第1颗RGB灯亮绿色,代表取景模式k10.rgb->write(1,0x00FF00);}// 计数对3取余=2:第二阶段——拍摄照片并保存到TF卡else{if((((int32_t(mind_n_ABC))%(int32_t(3)))==2)){// 播放330Hz拍照快门提示音music.playTone(330,4000);// 截取当前摄像头画面,保存为bmp图片至TF卡根目录photo.bmpk10.photoSaveToTFCard("S:/photo.bmp");// 画布第9行白色文字提示照片保存成功k10.canvas->canvasText(" 已保存照片",9,0xFFFFFF);k10.canvas->updateCanvas();// 第1颗RGB灯亮红色,代表已完成拍摄保存k10.rgb->write(1,0xFF0000);// 关闭摄像头实时取景画面k10.setBgCamerImage(false);}// 计数对3取余=0:第三阶段——全屏读取并预览保存好的照片else{if((((int32_t(mind_n_ABC))%(int32_t(3)))==0)){// 清空画布所有原有文字、画面k10.canvas->canvasClear();// 播放523Hz预览提示音music.playTone(523,4000);// 在画布坐标(0,0)全屏绘制TF卡内photo.bmp照片k10.canvas->canvasDrawImage(0,0,"S:/photo.bmp");k10.canvas->updateCanvas();// 第1颗RGB灯亮蓝色,代表图片预览模式k10.rgb->write(1,0x0000FF);// 阻塞延时3秒,保持图片预览界面delay(3000);// 3秒后清空画布,回到初始黑屏文字界面k10.canvas->canvasClear();}}}}

代码解读

一、头文件、全局变量与对象

#include"unihiker_k10.h"

引入行空板 K10 集成驱动库,内置屏幕、按键、板载摄像头、TF 卡文件系统、音频、RGB 彩灯全套硬件驱动。

volatilefloatmind_n_ABC;

作用:三段模式状态计数器,每按一次 A 键数值 + 1;
volatile关键字:变量在按键回调函数中修改,阻止编译器缓存优化,保证数值实时更新;
通过对 3 取余实现循环切换三种相机功能。

voidonButtonAPressed();

按键回调函数前置声明,用于给 A 按键绑定触发事件,编译器提前识别该函数。

UNIHIKER_K10 k10;

行空板核心硬件对象,摄像头、屏幕、SD 卡、灯光、按键全部依靠该对象操作。

Music music;

音频对象,取景、拍照、预览三个阶段分别播放不同音调做状态提示音。

uint8_tscreen_dir=2;

屏幕旋转参数,可选 0/1/2/3,2 为当前屏幕显示朝向。

二、setup () 上电初始化(仅执行 1 次)
k10.begin():初始化主板底层所有硬件总线;
setPressedCallback(onButtonAPressed):给 A 按键绑定按下回调,按下 A 自动执行回调函数,不受 delay 阻塞;
initScreen(screen_dir):按指定方向初始化显示屏;
initBgCamerImage():初始化摄像头背景预览底层驱动;
setBgCamerImage(false):开机默认关闭摄像头实时画面;
creatCanvas():创建屏幕绘图缓存,绘图先存入缓存再统一刷新,消除闪屏;
initSDFile() 关键函数:初始化 TF 卡系统,不调用无法保存、读取照片;
setScreenBackground(0x000000):屏幕底色设黑色;
canvasText():在固定行打印彩色开机提示文字,介绍实验功能与操作方式;
updateCanvas():把缓存文字刷新到实体屏幕;
rgb->brightness(9):设置 RGB 彩灯全局亮度。

三、loop () 主循环
函数内部为空,所有拍摄、预览、存储逻辑全部放在按键回调里,不需要轮询检测按键。
四、按键回调核心逻辑 onButtonAPressed()
每按下一次 A 键,计数mind_n_ABC += 1,通过 数值 % 3 循环切换 3 种模式,循环顺序:取景 → 拍照保存 → 图片预览。

余数 = 1 取景模式(第一次按 A)
播放 247Hz 长提示音;
开启摄像头实时画面投屏到屏幕;
第 1 颗 RGB 绿灯亮起,代表实时取景状态。

余数 = 2 拍照存储(第二次按 A)
播放 330Hz 快门提示音;
截取当前摄像头画面,保存为S:/photo.bmp覆盖 TF 卡旧照片;
屏幕打印文字提示 “已保存照片”;
RGB 红灯亮起,关闭摄像头实时画面。

余数 = 0 图片预览(第三次按 A)
清空屏幕所有文字与画面;
播放 523Hz 预览提示音;
在屏幕左上角全屏读取 TF 卡内photo.bmp显示;
RGB 蓝灯亮起;
delay(3000) 阻塞停留 3 秒,之后清空画布回到开机文字界面。
第四次按下 A,计数取余再次等于 1,重新进入取景模式,无限循环。

四、整体运行流程
硬件必备:行空板 K10、板载摄像头、插入 TF 内存卡
开机黑屏,显示相机实验介绍文字;
第 1 次按 A:屏幕实时显示摄像头画面,绿灯;
第 2 次按 A:抓拍画面存入 TF 卡,屏幕提示保存,红灯;
第 3 次按 A:全屏展示刚拍摄的照片,蓝灯,停留 3 秒自动清屏;
重复按压 A,循环切换三个功能。

案例特点
采用按键回调触发,非轮询检测,响应灵敏;
三段式状态机设计,单按键完成取景、拍照、预览全部功能;
灯光 + 提示音 + 文字三重状态提示,交互直观。

Mind+图形编程

实验场景图与视频记录




【【花雕动手做】行空板 K10 系列实验之带提示音的全功能数码】

https://www.bilibili.com/video/BV19njG6NEpr/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987

K10实验之带提示音的全功能数码照相机

相关新闻

  • 广州小程序定制开发vsSaaS模板优缺点深度对比:2026年怎么选更稳_ - 维双云小凡
  • 5分钟解锁AI超能力:免费OpenAI API密钥完整使用指南
  • 2026年性价比高的老牌首饰黄金回收店,重庆合扬不容错过 - 奢侈品交易观察员

最新新闻

  • Unity依赖冲突解决指南:NuGetForUnity版本管理与工程实践
  • iOS调试思维培养:iOS-Debug-Hacks教你如何高效定位问题
  • 2026年 快消品经销商咨询公司推荐榜单:全渠道动销实战策略,精准利润提升与数字化管理服务商优选 - 优企名品
  • 游戏数据修改器原理与应用:从内存扫描到脚本编写的实用指南
  • RenderSingleCamera 之剔除:渲染世界的“守门人“
  • 顺达商务出行【长岳老牌专线】|岳阳⇌长沙正规合规城际商务出行服务 - 资讯动态

日新闻

  • 112、LLC谐振变换器的输入电压瞬态仿真分析
  • 2026深圳疑难签证办理指南:拒签再签/商务签/高端定制机构怎么选 - 互联网科技品牌测评
  • C-LODOP在Edge等现代浏览器中的部署、适配与实战应用

周新闻

  • 怀化母婴除甲醛公司测甲醛中心怎么选:康之居母婴除甲醛标准、流程、避坑指南 - 信誉隆金银铂奢回收
  • 三步打造你的终极音乐中心:foobox-cn网络电台功能完整指南
  • Lance湖仓格式:为多模态AI工作流设计的终极数据存储方案

月新闻

  • ClickHouse版本管理深度实战:4步构建零风险升级与回滚体系
  • Java 23 种设计模式:从踩坑到精通 | 番外:责任链模式 —— 物流审批流程实战
  • 华硕笔记本性能解放指南:G-Helper轻量级控制工具全面解析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号