RVRV1106 / LINUX APP

RV1106 EMBEDDED LINUX APPLICATION / 2026.08

一块开发板上的 Linux 应用工程实践。

项目以 RV1106 为设备端,把摄像头、板载 Mic、触摸屏、网络和文件系统组织成可操作的应用;电脑端承担视觉比对、语音 AI、媒体服务和消息协同。下面每个模块都对应实际页面和实测素材。

RV1106ARM Linux + 1.5 TOPS NPU
480×480LVGL framebuffer 触摸 UI
10页面与系统能力模块
PROJECT SCOPE / VERIFIED
采集SC3336 摄像头、板载 Mic、触摸输入
处理H.264、AAC、YOLOv5 INT8、ASR、翻译
交互LVGL 页面、按键、语音关键词、文件管理
联网WiFi、HTTP、RTSP、MQTT、VLC
协同板端实时任务 + PC 端服务任务

这不是单一模型演示,而是一套从设备输入到页面反馈、网络传输和结果落盘的应用闭环。

TOOLS / RESPONSIBILITIES

工具不是装饰,每个工具都对应一段工作。

按“采集 → 处理 → 传输 → 展示 → 协同”的顺序看技术栈,可以清楚区分板端实时任务与电脑端计算、服务任务。

01

RV1106 / Linux

提供 ARM 设备运行环境、进程管理、设备节点、挂载目录和网络接口,是所有应用的宿主。

设备基础
02

C / LVGL

C 负责板端应用逻辑;LVGL 绘制 480×480 页面、按钮、状态栏、表情和触摸交互。

应用与 UI
03

V4L2 / RKAIQ

V4L2 访问摄像头采集帧,RKAIQ 处理 Rockchip 摄像头的曝光、白平衡等图像调校。

图像采集
04

RKNN / YOLOv5

把 YOLOv5 转成 RKNN INT8 模型,在 RV1106 NPU 上检测 person,减少 CPU 负担。

端侧视觉
05

OpenCV / Python

电脑端接收截图后做人脸框提取、特征比对和结果返回;Python 也承载 HTTP、天气和 MQTT 工具。

PC 协同
06

ALSA / arecord

通过板载 Mic 采集 WAV 音频;录音文件经 HTTP 上传给 PC 网关,再交给语音识别服务处理。

音频输入
07

H.264 / AAC / RTSP

摄像头视频编码成 H.264,音频编码成 AAC,通过 RTSP 组成可被电脑播放器拉取的媒体流。

媒体传输
08

Flask / Mimo API

PC Flask 网关接收板端音频和图片,调用 Mimo 做 ASR、翻译等 AI 处理,再把文本或判断结果传回板端。

AI 服务
09

WiFi / Shell / File I/O

Shell 调用 iw、wpa_supplicant、udhcpc 管理联网;文件 I/O 保存截图、状态和识别事件。

系统能力
10

MQTT / VLC / ZLMediaKit

MQTT 传递状态和控制小消息;ZLMediaKit 转发 RTSP;VLC 在电脑端验证板端推流结果。

验证与协同

SYSTEM MAP

板端做实时,电脑端做协同。

资源受限的 RV1106 保持采集、UI、轻量推理和设备控制;电脑端负责 OpenCV 人脸比对、Mimo API、MQTT Broker、RTSP 服务和 VLC 验证。

DEVICE / RV1106

开发板

SC3336 摄像头、板载 Mic、触摸屏、WiFi、USB 网络和 Linux 用户空间。

  • 实时画面和 LVGL 交互
  • YOLO 人体检测
  • 录音、截图、文件 I/O
  • 发布 MQTT 状态
H.264 + AAC / RTSP→
HTTP / ASR / Vision↔
MQTT 小消息↔
GATEWAY / WINDOWS + VM

电脑端

Flask 网关、OpenCV、Mimo API、MQTT Broker、ZLMediaKit 和 VLC。

  • 人脸相似度比对
  • 语音识别与翻译
  • RTSP 接收与分发
  • 浏览器查看结果
板端推流172.32.0.93→Windows 转发172.32.0.100:8554→ZLMediaKit192.168.192.135:8554→VLC 拉流

10 IMPLEMENTED SURFACES

十个页面,十份对应的实测证据。

每个模块把“页面作用、实现流程、技术栈、现场证据”放在一起。图片点击可放大,视频可以直接播放。

01
APP / INTERACTION

表情助手

提供按键控制和语音关键词控制两条入口。按键事件直接切换表情;持续语音线程识别关键词后写入命令,LVGL 定时器读取命令并刷新表情。

LVGLCShellMimo ASR
结果视频展示了语音输入后,表情状态随关键词变化;命令通过 `/tmp/oy_face_cmd` 做轻量 IPC。
实测视频:语音关键词驱动 AI 表情变化
02
APP / CAMERA + MEDIA

摄像识别

A / 音视频推流

板端是采集、编码和推流端:摄像头视频进入 H.264,Mic 音频进入 AAC,RTSP 送到 Windows/VM,VLC 负责拉流播放。

V4L2H.264AACRTSPVLC
B / 端侧 AI + 人脸比对

RV1106 NPU 运行 YOLOv5 INT8 检测 person;截图上传电脑后,由 OpenCV 与主人照片比对,返回主人或陌生人结果。YOLO 负责“有人”,OpenCV 负责“是谁”。

RKNNYOLOv5RKAIQOpenCV
电脑端 VLC 拉取 RV1106 推流
图 02A:电脑端 VLC 验证 RTSP 画面
RV1106 摄像识别与人脸结果
图 02B:板端检测与人脸识别入口
03
APP / AUDIO AI

语音翻译

点击录音后,ALSA/arecord 从板载 Mic 采集 WAV,通过 HTTP 上传 PC Flask 网关;Mimo 完成 ASR 和中英翻译,板端读取文本状态并显示原文、译文。

ALSAarecordHTTPMimo ASR
边界这里是“听懂并翻译输入”的链路,不依赖 speaker,也不等同于语音播放。
实测视频:录音、识别和翻译结果
04
APP / OBSERVABILITY

系统看板

把识别结果、截图数量、存储占用、WiFi 信号、WLAN/USB IP 和电脑端入口集中成一页,便于判断系统是否正常工作。

Linux proc状态采集文件统计
结果页面素材展示了板端运行信息如何被整理成可读的应用层状态。
RV1106 系统看板实测截图:系统资源、网络和识别摘要
05
APP / CONNECTIVITY

网络管理

扫描 SSID、选择 WiFi、显示或隐藏密码、启动认证和 DHCP,并把连接状态、信号和地址反馈到页面。

iwwpa_supplicantudhcpcShell
流程LVGL 收集用户输入,Shell 调用系统网络命令;连接完成后再读取接口状态刷新页面。
网络管理 WiFi 列表
图 05A:扫描到的 WiFi 网络
网络管理 WiFi 密码连接
图 05B:输入密码并发起连接
06
APP / AUDIO OUTPUT

语音播放

使用 ALSA/aplay 播放 WAV,用于提示音和语音输出验证。当前硬件只有板载 Mic,没有板载 speaker,因此播放功能需要外接音频输出设备。

ALSAaplayWAVTTS
区分本页验证“输出”;语音翻译页验证“输入识别”。两条链路可独立排查。
语音播放页面实测截图:语音播放与输出状态
07
APP / FILE I/O

截图相册

从设备事件目录读取截图文件,提供索引、上一张、下一张、刷新和删除;人脸识别结果同步保存快照,形成文件 I/O 闭环。

Linux File I/O目录遍历JPEG事件记录
结果截图不是临时画面,而是可保存、预览、翻动和删除的设备数据。
截图相册页面实测截图:相册索引与文件预览
08
APP / MESSAGING

MQTT 消息中心

RTSP 传连续音视频,MQTT 传 WiFi、识别、语音和系统状态等小消息,也可承载远程切换表情、请求截图等控制命令。

MQTT 3.1.1TCPJSONBroker
工程价值设备状态与控制消息被集中展示,后续可扩展远程运维,而不把视频塞进 MQTT。
MQTT 消息中心状态消息
图 08A:设备状态消息
MQTT 消息中心控制消息
图 08B:消息中心页面
09
PAGE / ONLINE DATA

天气页

页面请求天气数据并把天气码转换成中文状态,显示地址、温度、湿度和风速。公网 IP 定位只是估算,固定经纬度后结果更稳定。

PythonOpen-MeteoHTTP API定时刷新
实现边界天气页是联网数据展示案例,同时验证了请求失败、刷新和地址显示等应用状态。
RV1106 天气页面实测截图:天气、位置与刷新结果
10
SYSTEM / STATUS UI

状态栏与控制中心

顶部统一显示时间、具体日期、WiFi 信号和页面状态;下拉后打开半透明控制中心,快速查看网络、视觉、文件和系统摘要。

LVGL TimerTouchOverlay状态聚合
设计目标把常用系统反馈放在所有页面都能访问的位置,适配 480×480 屏幕和 RV1106 的资源约束。
下拉状态栏与控制中心实测截图:下拉状态层和快捷摘要