|
8| 7
|
[K10教程] 【花雕动手做】K10 实验之带提示音的全功能数码照相机 |
![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
【花雕动手做】行空板 K10 系列实验之带提示音的全功能数码照相机 实验开源代码 |
|
代码解读 一、头文件、全局变量与对象 引入行空板 K10 集成驱动库,内置屏幕、按键、板载摄像头、TF 卡文件系统、音频、RGB 彩灯全套硬件驱动。 作用:三段模式状态计数器,每按一次 A 键数值 + 1; volatile关键字:变量在按键回调函数中修改,阻止编译器缓存优化,保证数值实时更新; 通过对 3 取余实现循环切换三种相机功能。 按键回调函数前置声明,用于给 A 按键绑定触发事件,编译器提前识别该函数。 行空板核心硬件对象,摄像头、屏幕、SD 卡、灯光、按键全部依靠该对象操作。 音频对象,取景、拍照、预览三个阶段分别播放不同音调做状态提示音。 屏幕旋转参数,可选 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,循环切换三个功能。 案例特点 采用按键回调触发,非轮询检测,响应灵敏; 三段式状态机设计,单按键完成取景、拍照、预览全部功能; 灯光 + 提示音 + 文字三重状态提示,交互直观。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed