当前位置: 首页 > news >正文

【花雕动手做】行空板 K10 系列实验之摄像头识别移动检测后显示在K10屏幕上


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

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


主打:人工智能模块

移动检测相关说明


辅助:屏幕显示相关积木


LED控制模块

知识点:行空板 K10 移动侦测 AI 检测 + 屏幕显示综合介绍
一、整体方案原理

  1. 硬件基础
    行空板 K10 搭载ESP32-S3 主控,内置硬件 NPU 神经网络加速器,搭配前置 200 万像素摄像头、2.8 寸彩色 LCD 屏幕、RGB 氛围灯,无需外接模块、无需联网,本地离线实时画面动态检测。
    整套功能分为三部分:摄像头采集画面 → NPU 移动 AI 算法运算 → 屏幕文字 + RGB 灯光同步展示检测结果。
  2. 移动检测算法逻辑
    算法对比前后两帧摄像头画面像素差异,识别画面内物体移动、光影变化;
    内置灵敏度阈值可调,过滤微小光影抖动,只识别有效物体运动,区别于人脸 / 猫狗 / 二维码目标识别:
    人脸 / 猫狗:识别特定生物面部;
    二维码:识别特定图形码;
    移动检测 (Move):不区分物体,只要画面产生位移变化就触发。

二、功能清单(屏幕 + 灯光联动)
摄像头实时画面投屏
屏幕底层持续显示摄像头取景画面,检测文字叠加在画面上层,直观看到现场画面。
状态双区分显示
画面静止无移动:清空屏幕文字,RGB 红灯常亮;
检测到物体移动:屏幕打印提示文字,RGB 绿灯同步亮起,视觉双重提醒。
自定义检测灵敏度
可设置阈值 0~100,数值越大越难触发,解决窗外树影、灯光频闪误触发问题。
RGB 亮度可调
限制灯光亮度,避免强光刺眼,适配室内长时间使用。
无阻塞实时检测
代码无延时卡死,画面持续刷新,物体一移动立刻响应,无延迟。

三、完整运行流程
上电初始化:硬件、屏幕、NPU、摄像头依次启动,切换移动检测 AI 模式,设置灯光亮度与移动灵敏度;
待机静止状态:屏幕仅显示摄像头画面,无任何文字,RGB 红灯常亮;
镜头前出现移动物体(手、宠物、行人):
AI 瞬间识别画面像素变化;
屏幕上层叠加白色、浅粉色提示文字;
RGB 灯同步切换为绿色;
物体完全静止不动:
画布文字立刻清空;
RGB 灯切回红色待机,等待下一次移动触发。

四、适用项目场景
室内简易人体感应报警器:有人经过自动亮灯提示;
宠物活动监测:宠物跑动触发灯光提醒;
仓库简易异动监控:画面出现物体移动屏幕报警;
楼道人体感应提示装置;
教学 AI 视觉实验:学习帧差法动态检测、屏幕交互外设联动。

五、使用优势
纯离线本地运算,不用 WiFi、不消耗流量,无网络延迟;
屏幕实时可视化,肉眼同步看到监控画面与检测状态;
红绿灯光状态区分清晰,远距离也能判断是否检测到移动;
灵敏度可调,适配卧室、窗边、仓库等不同光线环境;
代码无阻塞,实时响应,不会出现扫码类项目 2 秒卡死的问题。


【花雕动手做】行空板 K10 系列实验之摄像头识别移动检测后显示在K10屏幕上
实验开源代码

// 引入行空板K10硬件驱动库,封装屏幕、画布、RGB彩灯、摄像头、屏幕渲染等全部外设接口#include"unihiker_k10.h"// 引入离线AI视觉识别库,提供NPU初始化、多种AI模式切换、移动检测功能#include"AIRecognition.h"// 实例化行空板主控全局对象,所有屏幕、灯光、摄像头操作统一通过k10调用UNIHIKER_K10 k10;// 屏幕旋转参数:2=设备竖直正向显示,移动检测推荐竖屏摆放,识别更稳定uint8_tscreen_dir=2;// AI视觉专用对象,负责启动NPU、切换AI算法、读取移动检测状态、调节灵敏度AIRecognition ai;/** * @brief 上电初始化函数,开发板通电/复位仅执行一次 * 功能:硬件初始化、AI加速器启动、开启摄像头画面、切换移动检测模式、设置灯光亮度、调节移动检测灵敏度 */voidsetup(){k10.begin();// 初始化主板底层IO、供电、通信总线等全套硬件外设k10.initScreen(screen_dir);// 根据screen_dir参数初始化LCD显示屏,设置屏幕正向竖直显示ai.initAi();// 启动ESP32-S3内置NPU AI硬件加速器,加载移动目标检测模型k10.initBgCamerImage();// 初始化摄像头后台画面渲染功能,支持摄像头画面实时投屏到屏幕k10.setBgCamerImage(false);// 初始化阶段临时关闭摄像头画面,避免画面干扰初始化流程k10.creatCanvas();// 创建绘图缓存画布,绘图先存入缓存再统一刷新,消除屏幕闪烁ai.switchAiMode(ai.NoMode);// 临时切换AI为无识别模式,清空上一轮残留AI算法,防止模式冲突黑屏k10.setScreenBackground(0x000000);// 设置屏幕底层默认背景色为纯黑色k10.setBgCamerImage(true);// 开启摄像头实时画面投屏,屏幕持续显示镜头实时取景画面ai.switchAiMode(ai.Move);// 切换AI工作模式为【移动物体检测】,开启画面动态侦测算法k10.rgb->brightness(round(3));// 设置RGB彩灯全局亮度,有效范围0~10,3为柔和低亮度不刺眼k10.canvas->updateCanvas();// 刷新画布缓存,将初始化空白界面输出到LCD屏幕ai.setMotinoThreshold(50);// 设置移动检测灵敏度阈值,数值越大越难触发检测,50为中等灵敏度}/** * @brief 主循环函数,上电后无限循环执行,移动侦测核心逻辑 * 逻辑:画面检测到移动物体 → 屏幕打印提示文字、RGB绿灯亮起;无移动 → RGB红灯常亮,清空文字 */voidloop(){// 判断摄像头画面中是否检测到移动物体// ai.isDetectContent(AIRecognition::Move) 返回true=画面存在移动目标,false=画面静止无变化if(ai.isDetectContent(AIRecognition::Move)){// 在画布第4行,白色字体打印实验标题k10.canvas->canvasText("行空板K10系列实验",4,0xFFFFFF);// 在画布第6行,浅粉色字体打印移动检测提示k10.canvas->canvasText("检测到移动",6,0xFFCCCC);k10.canvas->updateCanvas();// 将画布文字缓存刷新输出到实体LCD屏幕k10.rgb->write(-1,0x00FF00);// -1代表控制全部RGB灯珠,0x00FF00纯绿色,检测到移动亮绿灯}else{// 画面无移动物体,清空画布文字,灯光切换为红色k10.canvas->canvasClear();k10.rgb->write(-1,0xFF0000);// 0xFF0000纯红色,静止状态常亮红灯}}

代码解读
一、头文件与全局对象

#include"unihiker_k10.h"#include"AIRecognition.h"UNIHIKER_K10 k10;uint8_tscreen_dir=2;AIRecognition ai;#include"unihiker_k10.h"

行空板 K10 硬件库,封装屏幕、画布、RGB 彩灯、摄像头、画面渲染全部外设操作。

#include"AIRecognition.h"

离线 AI 视觉库,依托 ESP32-S3 内置 NPU,提供人脸、猫狗、二维码、移动侦测四种离线视觉算法。

UNIHIKER_K10 k10

全局硬件主控对象,屏幕、灯光、摄像头所有操作都通过k10调用。

uint8_tscreen_dir=2

屏幕朝向参数,2= 竖直正向显示;移动检测推荐竖屏,横屏容易误触发、识别不稳定。

AIRecognition ai

AI 专用对象,负责 NPU 初始化、切换识别模式、设置移动灵敏度、判断画面是否存在移动物体。

二、setup () 上电初始化(仅开机执行 1 次)

voidsetup(){k10.begin();// 初始化主板底层IO、供电、通信总线等全部硬件k10.initScreen(screen_dir);// 初始化LCD屏幕,设置竖直正向显示ai.initAi();// 启动ESP32-S3内置NPU AI加速器,加载移动检测模型k10.initBgCamerImage();// 初始化摄像头后台投屏功能,屏幕实时显示摄像头画面k10.setBgCamerImage(false);// 初始化阶段临时关闭摄像头画面,避免画面干扰初始化流程k10.creatCanvas();// 创建绘图缓存画布,绘图先存缓存再统一刷新,消除屏幕闪烁ai.switchAiMode(ai.NoMode);// 清空上一轮AI运行模式,防止多算法冲突、设备黑屏k10.setScreenBackground(0x000000);// 设置屏幕底层背景为纯黑色k10.setBgCamerImage(true);// 开启摄像头实时画面投屏ai.switchAiMode(ai.Move);// 切换AI算法为【移动目标检测】,开启画面动态侦测k10.rgb->brightness(round(3));// 设置RGB彩灯亮度,取值0~10,3亮度柔和不刺眼k10.canvas->updateCanvas();// 刷新画布,输出初始化空白界面到屏幕ai.setMotinoThreshold(50);// 设置移动检测灵敏度阈值}

关键接口说明:ai.setMotinoThreshold(50)
阈值范围:0 ~ 100
数值越小:轻微光影、微小移动就会触发检测;
数值越大:需要大幅度物体移动才会判定为移动;
本代码设 50,中等灵敏度,兼顾灵敏与抗光影误触发。
初始化执行顺序
硬件初始化 → 屏幕初始化 → AI 加速器启动 → 画布 / 摄像头初始化 → 清空旧 AI 模式 → 开启摄像头画面 → 切换移动检测算法 → 设置灯光亮度、移动灵敏度。

三、loop () 主循环(无限循环,核心侦测逻辑)

voidloop(){// 判断摄像头画面是否检测到移动物体if(ai.isDetectContent(AIRecognition::Move)){// 第4行白色文字:实验标题k10.canvas->canvasText("行空板K10系列实验",4,0xFFFFFF);// 第6行浅粉色文字:检测提示k10.canvas->canvasText("检测到移动",6,0xFFCCCC);k10.canvas->updateCanvas();// 刷新文字到屏幕k10.rgb->write(-1,0x00FF00);// -1=全部RGB灯,0x00FF00纯绿色,检测到移动亮绿灯}else{// 画面静止无移动k10.canvas->canvasClear();// 清空屏幕所有文字,只保留摄像头画面k10.rgb->write(-1,0xFF0000);// 0xFF0000纯红色,静止状态常亮红灯}}
  1. AI 判断函数
ai.isDetectContent(AIRecognition::Move)

返回布尔值:
true:画面存在移动的物体 / 光影变化;
false:画面完全静止,无动态变化。
2. 两大分支逻辑
分支 1:检测到移动(if)
在屏幕固定行数打印两行提示文字;
刷新画布,文字显示在摄像头画面上层;
全部 RGB 灯切换为绿色,作为移动提醒。
分支 2:画面静止(else)
清空画布所有文字,恢复纯净摄像头画面;
RGB 灯切换为红色常亮,代表待机静止状态。

四、完整运行流程
开发板上电,自动初始化硬件、AI、摄像头,开启移动侦测;
镜头前无物体移动:屏幕仅显示摄像头画面,RGB 红灯常亮;
手、物体在镜头前移动:屏幕弹出文字提示,RGB 立刻切换绿灯;
物体静止不动后,文字瞬间清空,灯光切回红色待机。
全程无delay()阻塞,实时持续侦测,响应速度快;
红绿灯光区分两种状态,直观易懂;
可自定义移动灵敏度阈值,适配室内、强光等不同环境;
限制 RGB 亮度,灯光柔和不刺眼。

五、使用注意事项
设备必须竖直摆放,横屏会大幅降低检测稳定性、增加误触发;
避开持续晃动的光影(窗帘、窗外树影、频闪灯光);
阈值调节参考:居家室内 40~60,强光窗边 70~90;
禁止在 loop 循环里频繁切换 AI 模式(移动 / 人脸 / 二维码),容易黑屏、设备重启。

Mind+图形编程


实验场景图与视频记录





http://www.jsqmd.com/news/1065284/

相关文章:

  • 豆包在抖音生态中的实战应用场景大纲
  • PIMI:基于FPGA的并行伊辛机硬件加速大规模图优化问题
  • 3分钟上手Mermaid Live Editor:告别繁琐图表工具,用代码画出专业图表
  • 2026年靠谱的山西万能材料试验机/万能材料试验机/试验机源头工厂推荐 - 品牌宣传支持者
  • 智能合约安全审计指南
  • iPaaS核心功能系列(二)| 数据映射与转换——让不同系统“说同一种话”
  • Agent Skills:基于Markdown的AI能力契约协议解析
  • 如何在3分钟内掌握FancyZones:Windows窗口管理终极指南
  • 3分钟上手!drawio-desktop:你的免费本地专业绘图神器
  • (2026最新)宿迁防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • Claude Code接入非Anthropic模型的完整配置指南
  • GPT-4o与Codex技术演进解析:从代码生成到原生多模态理解
  • Harness Engineering:AI Agent可交付的四大工程支柱
  • 2026年口碑好的压力试验机/山西太原试验机口碑好的厂家推荐 - 行业平台推荐
  • 2026年西安人必看:就业指导哪家培训公司更靠谱?
  • 深度学习模型训练技巧
  • 魔兽争霸3优化指南:三步解决宽屏适配、地图加载与帧率限制问题
  • 为什么ABCJS是音乐爱好者的最佳选择:从乐谱新手到网页音乐专家的奇妙旅程
  • Superpowers+Claude Code:AI技能编排实现业务需求到代码的稳定转化
  • 王蕊瑜伽课合集全套视频下载
  • BlenderMCP架构实现:基于MCP协议的AI驱动3D建模自动化解决方案
  • Apache解析漏洞与条件竞争:文件上传安全边界的深度攻防实践
  • JavaScript 其他值到布尔值的转换规则是什么?
  • 北京高净值离婚律师推荐:路军芳律师详解财产保全与第三者资产追回 - 本地品牌推荐
  • 工业级存储选型指南:从NAND颗粒到固件策略
  • OpenClaw本地化部署指南:Node.js与飞书CLI集成实战
  • 本地AI开发的第0步:Node.js环境为何必须用nvm管理
  • Slack集成Claude Code实现Vibe Coding工作流
  • AI浪潮下,企业如何挑选内训机构?四大核心维度与高分机构推荐
  • 2026年热门的十堰钢琴搬运/十堰家具拆装/十堰同城搬家行业领先公司 - 品牌宣传支持者