基于ARM+LINUX的无线视频采集系统设计----------项目整体介绍
开发平台:
ARM板:TQ2440/GQ2440
内核:linux-2.6.30
硬件配置:
无线路由器
无线网卡
Usb摄像头
电机驱动模块+小车
整体介绍:
本项目选用S3C2440作为主控制器,驱动小车为载体,裁剪linux2.6.30内核,使其具备无线上网功能,支持usb接口功能。然后构建根文件系统,移植boa服务器,编写html+css静态界面。然后利用无线路由器构建一个局域网,使得用户可以通过浏览器来查看小车终端的相关信息,并通过cgi脚本程序/java applet 进行用户端和终端的交互。
总共是四个界面:
l 首页:欢迎界面,以及用来扩展显示后续的温湿度等传感器采集到的信息。
l 网络控制LED灯:是用来控制arm板的led灯显示,作用主要有两个,一个是测试用户端和终端是否建立连接了。例外一个是用来根据温室内传感器传递回来的信息,来控制温室内相关的照明设备
l 智能小车操纵:用来控制小车在温室内行走。
l 网络摄像头:java applet技术,用来接收显示arm端摄像头采集到的视频信息
整个界面采用html+css实现,非常易于扩展。
知识剖析:
1. B/S结构的实现
B/S结构即基于浏览器/服务器的工作模式。在这个项目中是如何构建这样一个B/S结构的呢?
首先需要一个无线路由器,对路由器进行配置,共享热点。然后在arm上移植无线网卡驱动,配置无线上网,使其连接到此无线路由器的热点上。然后移植boa服务器到arm上。编写网页文件。这样服务器端就搭建好了。客户端只要连上此路由器的热点,及可以通过浏览器来访问网页了。
2. cgi脚本程序实现交互
平时我们上网,访问的大多数网页已不再是以前的静态网页了【html】,动态交互是非常常见的,如注册、登陆界面。通用计算机领域,客户端和服务器的动态交互主要是采用asp,php,.net等动态脚本语言。这些语言都被web服务器如iis,apache等支持。而在嵌入式环境中,由于设备硬件资源有限,所以无法支持常见的web服务器,需要有专门的web服务器,本项目中选用的boa服务器,非常轻巧,编译后只有几十kb。Boa服务器不支持asp等服务器端脚本语言。所以选用了cgi。【最早的服务器端脚本语言,后因为编写困难,功能单一逐渐被目前的这些脚本语言替代】cgi:公共网关接口,本身并不是一门编程语言,只是个开放的脚本语言。可以用shell,c等来实现。这里因为c语言可移植性好,本人比较熟悉,所以选用他。
在html中可以通过提交表单、超链接、SS来进行调用CGI脚本程序。然后在CGI脚本程序中完成对arm硬件的相关操作。
3. 视频传输服务
本项目最大的特色及亮点就是视频传输服务。那么视频如何进行传输的呢。
首先是在配置linux内核支持摄像头驱动,然后编写摄像头应用采集程序。客户端是通过网页中嵌入JAVA applet来进行视频信息的接收。
这篇是大体介绍,后面会详细介绍具体技术的实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?