基于Linux/QTE的塔机防撞监测系统GUI设计

时间:2022-09-21 01:04:05

基于Linux/QTE的塔机防撞监测系统GUI设计

摘 要:本文针对塔机驾驶舱内驾驶员视野狭小,导致塔机碰撞事故多发的弊病,提出了一个基于QTE开发嵌入式系统GUI的解决方案。该系统实时监测整个工地塔机的运行状态,并直观地模拟在LCD屏上运行,同时监测异常状态的发生。通过触屏界面响应用户各项操作,提升了系统的灵活性。经过嵌入式Linux内核以及QTE基本库的裁剪,使系统保证了较低的内存占用率以及优良的实时性。实验证明,该系统能够很好地实现塔机状态与防碰撞监测。

关键词:塔机监测;嵌入式Linux;QTE;GUI;实时性

中图分类号:TP368.1 文献标识码:A

1 引言(Introduction)

随着国内经济的迅速发展,中国建筑业一直持续高速增长,与此同时,建筑作业的密集化导致同一工作区域往往存在多台塔机同时作业。由于驾驶员或地面指挥人员误判,现场塔机相互碰撞、倒塔、碰撞周围障碍物的事故时有发生,如何有效地监测塔机各项运行状态,并提供给驾驶员一个明确的外部状态信息,成为解决问题的关键。考虑到驾驶舱有限的环境限制,本设计采用基于Linux平台以及QTE库设计的嵌入式GUI,其交互界面友好,操作简便。

2 系统方案设计(Scheme design)

(1)硬件平台选择

ARM处理器在嵌入式领域具有领先的性能/功耗比,并且随着ARM公司的发展,该处理器拥有广泛的第三方支持,使得基于ARM的开发更为灵活。搭载ARM1176JZF-S内核的S3C6410处理器采用64/32位内部总线架构,使得其在32位处理器的功耗上能够达到64位处理器的速度。同时该处理器强大的硬件加速器提供了优秀的视频、音频与二维图形的处理速度。基于此,选择使用S3C6410作为本系统核心处理器。

(2)操作系统选择

作为实时性要求较高的嵌入式系统,稳定性是对操作系统的基本要求。而Linux则具有良好的稳定性[1],借助Linux优秀的跨平台能力,可以在PC虚拟机上搭建Linux平台环境,交叉编译ARM平台上运行的程序,提升开发效率。通过对Linux内核的裁剪,可进一步缩小系统体积,减少不必要的资源占用[2]。构建最适合塔机监测界面的系统平台。

(3)嵌入式图形库QTE

Linux桌面GUI系统一般都基于X Window系统,但X Window本身并不是一个直接的图形操作界面,它只是作为图形环境与UNIX系统内核沟通的中间桥梁[3]。而庞大臃肿的X Window并不适合在嵌入式系统中运行,因此本系统采用Qt的嵌入式版本QTE图形库。QTE直接取代了X Server及X Library等角色,仅采用Framebuffer作为底层图形接口,从而大大减少了系统开销[4]。并由于QTE良好的可移植性,可裁剪的模块化设计,使得其十分适合嵌入式系统设计。Qt/X11与QTE系统架构对比如图1所示。

3 系统设计框架(Design framework)

考虑到嵌入式系统的限制性,本系统内部使用轻量级的SQLite数据库进行数据管理,并优化了线程间的调度与防碰撞算法。系统分别对接收到的WiMi-net无线模块与传感器数据做分包提取与模数转换,在得到系统能识别的数据后将用户输入信息(本地塔机高度,前后臂长,坐标位置,工地大小,形状,障碍物信息等)一起存入数据库,数据库将得到的数据送入防碰撞算法模块进行分析,并模拟运行状态显示到LCD上。

GUI的设计需要考虑系统与驾驶员的接口,主要的交互在于驾驶员对系统数据库,无线通讯的管理,以及系统反馈给驾驶员塔机运行状态的清晰显示。其中又包括了系统工作状态报告,塔机正常运行报告,危险状态预警,界面调节功能等。由此设计塔机监测系统用例图如图2所示。

系统主界面如图3所示,右侧状态栏用来提示系统工作状态与塔机危险状态预警,包括碰撞预警,异常状态预警等。同时当前塔机各项运行参数在下方实时显示,方便驾驶员清楚地了解当前塔机运行情况。左侧是工作区域模拟运行区,系统允许同时监测最多16个塔机,本塔机为蓝色,其他塔机为绿色,当有大概率碰撞危险产生时,以红色间断闪烁为警示。可以使用滑条缩放该区域,方便监视整个工地或是单个塔机,方向键控制平移,也可以使用触摸笔在屏幕上进行拖动。

4 系统核心技术(Key technology)

(1)Linux内核裁剪

基于Linux-3.12.7版本的内核而言,我们不需要也不应该将其完整地运行到受到资源限制的嵌入式系统中去。根据系统的实际需求,我们只需要保留网络服务、各通信口相关驱动、10.4寸触屏驱动、UDA1341音频芯片驱动、显卡驱动、声卡驱动以及其他保证系统正常运行的后台服务。在虚拟机中进入Linux-3.12.7源码包,输入make xconfig进入内核配置。在选择相应的配置时,有三种选择方式,Y表示将该功能编译进内核;N表示不将该功能编译进内核;M表示将该功能编译成可以在需要时动态插入到内核中的模块[5]。

在Makefile文件中修改硬件平台ARCH = arm以及交叉编译器CROSS_COMPILE = arm-linux。输入make dep编译相关依赖文件,然后采用gzip压缩方式编译,执行make zImage,得到内核压缩镜像文件zImage并下载到S3C6410运行适合本系统的Linux内核。

(2)QTE基本库裁剪

(3)Qt与SQLite数据库连接

5 结论(Conclusion)

本文提出了一种基于Linux平台与QTE库的塔机监测防撞系统GUI设计方法,在减少系统体积的同时提升了系统的响应速度,并采用LCD触摸屏加强了系统的交互能力。实验证明,该系统能实时显示塔机各项工作指标的功能,并在系统处于危险运行状态时及时警告驾驶员,将事故发生率降到最低。后续的工作将在进一步优化内存管理与防碰撞算法方面展开。

参考文献(References)

[1] 李亚锋,欧文盛.ARM嵌入式Linux系统开发[M].北京:清华大学出版社,2007.

[2] 韩少云,奚海蛟,谌利.ARM嵌入式系统移植开发实战[M].北京:北京航空航天大学出版社,2012.

[3] 周利.用Qt编制Linux中X-windows下的应用程序[J].电脑编程技巧与维护,2000(1):17-19.

[4] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt4. Second Edition[M].Prentice Hall,2008.

[5] 徐晨辉.嵌入式Linux内核裁剪及移植的研究与实现[D].上海:东华大学,2009.

[6] 游燕珍,赵国峰,徐川.基于Qt/E的嵌入式GUI的研究及其移植[J].微计算机信息,2008(14):120-123.

[7] Grant Allen,Mike Owens[美].杨谦,等,译.SQLite权威指南[M].北京:电子工业出版社,2012.

作者简介:

卢 扬(1990-),男,研究生.研究领域:复杂系统理论与应用.

章 红(1969-),女,副教授,硕士生导师. 研究领域:网络化控制系统故障诊断与容错,群体控制,计算机控制系统的分析与设计等.

上一篇:浅谈新媒体环境下我国的汽车营销模式 下一篇:电梯常见故障及排除方法探讨