基于arm9的四翼探测飞行器设计与实现(编辑修改稿)内容摘要:

像属性,设置图像参数,捕捉图像数据,都是通过 Video4Linux 借口标准调用驱动的相关函数完成的。 Servfox 流程图 2 视频流及摄像头相关技术基础 8 8 图 22 Servfox流程图 Servfox 运行过程:。 TCP 套接字服务端 ,为图像数据发送线程做好准备。 Servfox 采集数据端 Servfox,修改 Makefile 文件为 : CC= armlinuxgcc SERVFLAGS = O2DLINU X ( WARNINGS )I / home/ gongyaof ei/ linux2. 6. 15/ include 然后编译文件 make, 在当前文件夹下就可以看到生成的可执行文件 servfox, 把此可执行文件拷贝到网络文件系统下 / home/ 2440/bin, 在开发板中运行 servfoxd /dev/video0 g s 320x240 w 7070, 就可以看到如下的提示信息 : servfox version: 1. 1. 2 dat e: 07: 10: 2020 ( C) mxhaard @magic. fr Waiting. . . for connection. CT rl_c to stop ! ! ! ! 说明 servfox 已成功运行起来了。 Video For Linux 介绍 Video For Linux(简 V4L)是 Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的 TV卡、视频基于 ARM9 的四翼探测飞行器的设计与实现 9 9 捕捉卡和 USB摄像头等。 对于 USB口摄像头,其驱动程序中需要提供基本的 I/O操作接口函数 open、 read、 write、 close的实现。 当应用程序对设备文件执行读操作时,内核将调用 file_operations结构中的 read函数。 在系统平台上对 USB口数码摄像头驱动,首先把 USB控制器驱动模块静态编译进内核,使平台中支持 USB接口,再在需要使用摄像头采集时,使用 insmode动态加载其驱动模块,这样摄像头就可以正常工作了,接着进行了下一步对视频流的采集编码。 程序中定义的数据结构 : struct video_capability grab_cap。 struct video_picture grab_pic。 struct video_mmap grab_buf。 struct video_mbuf grab_vm; 这些数据结构都是由 Video4Linux支持的,它们的用途如下: ① video_capability 包含设备的基本信息(设备名称、支持的最大最小分辨 率、信号源信息等) name[32] 设备名称 maxwidth maxheight minwidth minheight Channels 信号源个数 type 是否能 capture,彩色还是黑白,是否能裁剪等等。 值如 VID_TYPE_CAPTURE等。 ② video_picture 设备采集的图象的各种属性 Brightness 0~65535 hue colour contrast whiteness depth 8 16 24 32 palette VIDEO_PALETTE_RGB24 | VIDEO_PALETTE_RGB565 VIDEO_PALETTE_JPEG| VIDEO_PALETTE_RGB32 ③ video_channel 关于各个信号源的属性 Channel 信号源的编号 name tuners Type VIDEO_TYPE_TV | IDEO_TYPE_CCAMERA 2 视频流及摄像头相关技术基础 10 10 Norm 制式 PAL|NSTC|SECAM|AUTO ④ video_window 包含关于 capture area的信息 x x windows 中的坐标 . y y windows 中的坐标 . width The width of the image capture. height The height of the image capture. chromakey A host order RGB32 value for the chroma key. flags Additional capture flags. clips A list of clipping rectangles. (Set only) clipcount The number of clipping rectangles. (Set only) ⑤ video_mbuf 利用 mmap进行映射的帧的信息 size 每帧大小 Frames 最多支持的帧数 Offsets 每帧相对基址的偏移 ⑥ video_mmap 用于 mmap 系统硬件平台 天嵌科技 S3c2440 开发板(如图 23 天嵌科技 S3c2440 开发板),其 CPU处理器使用 Samsung S3C2440,主频 400 MHz,最高 533 MHz; 64 M SDRAM、 32 bit 数据总线、SDRAM 时钟频率 100 MHz; 256 M/1 GB Nand Flash,掉电非 易失、 2 M NorFlash,掉电非易失; 真彩 LCD,屏集成 4 线电阻式触摸屏; 100 M 以太网 RJ45 接口(采用DM9000 网络芯片)、串行口、 USB Host、 USB Slave B 型接口、 SD 卡存储接口、路立体声音频输出接口,麦克风接口、 JTAG 接口、 4 USER Leds、 I2C 总线 AT24C08 芯片、20 pin 摄像头接口;摄像头用良田,兼容 SN9C20X 系列芯片的驱动。 本系统的内核中集成了该驱动。 在 S3C2440 上对 Linux 内核及根文件系统的移植并运行,则完成了嵌入式开发平台的 搭建。 其次,本文对系统的核心功能部分即应用软件部分进行了设计和实现,包括完成 Boa 服务器配置移植,外接 USB 摄像头驱动和 WLAN 无线网卡驱动的开发和移植;利用 Video4Linux 提供的接口函数实现了摄像头的图像采集;设计了系统MPEG4 图像采集和压缩的具体编程流程,并实现了基于 MJPEG 的视频压缩;采用了 传输协议作为视频数据流传输协议,并实现了视频数据在无线局域网(WEAN)内的实时性传输;利用 MJPEG 和 Servfox 实现了压缩视频数据的解码播放。 基于 ARM9 的四翼探测飞行器的设计与实现 11 11 图 23 天嵌科技 S3c2440开发板 3 系统文件移植 12 12 3 系统文件的移植 系统配置移植环境搭建 由于嵌入式系统软件的开发特点,在进行软件开发之前需要建立一个开发环境,包括开发主机的操作系统安装,交叉编译坏境对的建立等。 一般在整个开发坏境中,需要Windows 系统工作台, Linux 系统的服务器和开发板。 工作台主要用于控制和调试开发板, Linux 系统的服务器主要用于对程序的交叉编译。 下表为开发坏境各个组成部分和相关软件表述: 图 31 开发坏境 要求 Linux 移植相关 Linux 系统组成部分介绍 一个 Linux 系统从软件的角度通常看可以分为四个层次,如下图所示: 引导加载程序:包括固化在固件中的 boot 代码,和 BootLoader 两大部分。 Linux 内核:特定于嵌入式板子的定制内核以及内核的启动参数。 文件系统:包括根文件系统和建立于 Flash 内存设备之上的文件。 用户应用程序:特定于用户的应用程序。 图 32 Linux软件层次图 基于 ARM9 的四翼探测飞行器的设计与实现 13 13 嵌入式文件系统 不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性 ,系统需求等有不同的应用场合。 在嵌入式系统 Linux 应用中,主要存储设备室 RAM( DRAM, SDRAM)和 ROM,常用的基于存储设备的文件系统类型包括: jffs2, yaffs, romfs, ramdisk, ramfs等。 Linux 移植 Linux 移植主要包括三大部分:内核的重新编译, Bootloader,重新编译文件系统的制作。 Boa 的配置移植 在嵌入式系统中, Boa 服务器运行在 Linux 系统下,轻巧高效、占用资源少,是嵌入式web 服务器的首选。 解压 Boa 服务器的源代码,通过修 改配置 ( 配置文件 boa. conf 在/etc /boa 目录下 ) ,可以将 Boa 编译进内核,从而使嵌入式 Linux 系统具备了 web 功能。 执行步骤如下:(详细过程见附录一) 1) 下载源码解压。 2) 进入 boa/src后 , configure配置生成 makefile文件,然后执行 make生成可执行文件 boa。 3) 配置 boa. conf文件,主要完成对 boa运行的用户权限,端口, Server根目录, html网页等的设置。 (下图为 Boa服务器工作原理图) 图 33 Boa服务器工作原理图 由于 服务器端的 Web 页面包括 Java 插件,所以在远程客户端 PC 机 windows 系统安装 Java 环境 ( j2sdk1_4_1) ,下载安装好 j2sdk1_4_1,在远程客户端的 IE 浏览器地址栏上输入嵌入式 Linux 视频网站的 IP 地址,就可以实现远程实时监控了。 1) 清晰度的测量由于网络状况的差异,数据传输有所不同,测试效果能达到每秒20 帧左右,满足实时播放的要求。 2) 工作环境的测试 3 系统文件移植 14 14 设备可以方便的安装在各种特殊的工业现场和某些极端恶劣的环境中,用户都能顺利的通过网络访问视频服务器网站,可以多用户同 时访问,实现视频监控。 理论传输距离空旷区域 300 米,实际测试距离 260—280 米(包含障碍物,楼房,树木等)。 基于 ARM9 的四翼探测飞行器的设计与实现 15 15 4 人机交互界面的设计 人机交互界面设计理念 软件界面是人-机之间的信息界面,从某种意义上讲,它比硬件和工作环境更为重要。 优化软件界面就是要合理设计和管理人-机对话的结构。 对话的结构设计一般可分为初始设计、形式评价和总结评价三个阶段。 五种人机交互方式: 对话方式 优点 缺点 菜单选择 学习期短 点击次数少,结构清楚,利于进行出错处理 菜单之间识别性差 表格 简化数据管理,利于比较,只 需要少量帮助 输入繁琐 命令语言 灵活,对经常性操作者有吸引力; 支持用户主管能动性 不易于广泛推广 需要大量培训和记忆 出错处理能力差 自然语言 直接使用,无学习负担 技术限制 直接操作 以视觉的方式呈现,容易学习,可以避免出错 鼓励探索,能提高高度主管满足 编程难度 多种设备使用的协调性 人机交互界面设计的原则 4 人机交互界面的设计 16 16 ( 1)媒体最佳组合 媒体界面的成功并不在于仅向用户提供丰富的媒体,而应在了解媒体的功能、 选择方法的基础上,在相关理论的指导下,在语义层上将各种媒体有机地结合起 来以更有效 地传递信息。 ( 2)界面分析与规范 在人机界面设计中,首先应进行界面设计分析,即收集有关用户及其应用环 境信息以后,进行用户特性分析,用户任务分析,记录用户有关系统的概念、术 语,这项工作可与应用系统分析结合进行。 分析任务中对界面设计要有界面规范 说明,选择界面设计类型,并确定设计的主要组成部分。 由于人机界面是为适合人的需要而建立的,所以要清楚使用该界面用户的类型,要了解用户使用系统的频率、用途及对用户的综合知识和智力的测试,这些均是用户设计中的内容。 在此基础上产生任务规范说明,进行任务设计。 任务设计的目 的在于重新组织任务规范说明以产生一个更有逻辑性的编排。 设计应精心地分别给出人与计算机的活动,使设计者较好地理解在设计一个界面时所遇到的问题,这样形成系统操作手册、训练文件和用户指南的基础。 在考虑用户工作方式及系统环境和支持等因素下,精心任务设计。 任务确定之后,要决定界面类型。 目前有多种人机界面设计类型,各有不同的 品质和性能,因此设计者要了解每种类型的优点和限制。 大多数界面使。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。