首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于Raspberry Pi的电梯彩屏显示系统设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于Raspberry Pi的电梯彩屏显示系统设计
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2015-1-30 20:10
|
只看该作者
基于Raspberry Pi的电梯彩屏显示系统设计
经济效益
,
控制系统
,
视频播放
,
单片机
,
广告机
近年来,随着高层建筑数量的与日俱增,电梯的需求量也在增加。现阶段我们广泛使用的电梯都是基于LED点阵列的显示系统,显示状态信息比较简单,显示方式比较单调。此外,现在的一些电梯里的广告机,虽然改善了电梯轿内的乘坐环境,良好的广告效果也给商家带来了不小的经济效益。但是这种显示装置没有和电梯控制系统融为一体,只是单纯的视频播放而已。
为了使显示和电梯控制系统相融合,打造舒适的乘坐环境,针对现有的电梯系统提出一种由单片机完成不同厂商适配、由ARM/X86统一显示的双核处理方法。该方法中ARM/X86处理器专注于统一通用格式电梯状态信息解码、楼层图片切换或视频播放,从而提高整个系统的实时性与可靠性。针对不同厂商的电梯通信协议,只需要更改单片机的编解码程序便可使整个系统重新工作。
Raspberry Pi(中文名为“树莓派”)是一款由英国的树莓派基金会所开发,以低价硬件及自由软件为学生计算机编程教育而设计的卡片式电脑。其配备一枚700 MHz博通出产的ARM架构BCM2835处理器,256 MB内存(B型已升级到512 MB内存)的微型电脑主板。Raspberry Pi以SD卡为内存硬盘,主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口。以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能。其操作系统采用开源的Linux系统,比如Debian、Arch Linux,自带的Iceweasel、KOffice等软件能够满足基本的网络浏览、文字处理以及计算机学习的需要。
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。Qt具有优良的跨平台特性,Qt支持下列操作系统:Microsoft Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNIX(OSF/1、Tru64)、FreeBSD、BSD/OS,SCO、AIX、OS390、QNX等等。
1系统整体设计
1.1系统框架
本系统的硬件部分主要由接口转接板和显示板组成,系统框图如图1所示。
图1系统框图
1.2子系统功能介绍
1.2.1接口转接板
接收RS-485/CAN总线上的电梯通信协议,并完成协议的解析;承载温度传感设备和挂在I2C总线上的时钟电路,供显示板读取温度和时间信息,完成用户按键的检测与编码。
1.2.2显示板
接收接口转接板译码后的电梯数据;读取温度和时间信息;实现界面应用程序。
2接口转接板子系统设计
接口转接板子系统硬件主要包括ATmega8单片机、DS18B20温度传感器、PCF8563时钟芯片、MAX485芯片等。其接口转接板框图如图2所示。
图2接口转接板框图
电梯的通信协议有多种,本文以NICE3000通信协议为例实现本系统。
2.1 NICE3000通信协议的通信设定
通信方式:RS-485标准、异步、半双工。
数据格式:1位起始位、8位数据位、1位停止位、无校验位。
通信波特率:9600 bps.
通信地址定义:广播地址为0,外接节点地址为1~31(外招板拨码开关确定),地址同时也表示外招所在楼层;显示板只是接收显示,地址设定为0(拨码),无需通信回复。
数据校验:采用两位异或校验。
数据帧分类:共有两种形式,其中广播帧用于外招显示内容的信息,不需要返回帧,另外还有一种是普通帧,主要完成主控制板与外招之间的控制信息交换。
2.2帧格式
数据帧采用固定长度,5个字节,结构为帧头、用户数据、帧尾。
帧头:包括1个字节地址,即主控制板发送给外招的标识,从机(外招)根据帧头判断本机是否响应当前通信。如果地址是广播地址,则从机接收信息,但是不用返回。
用户数据包括:数据2个字节,根据发送方向(主到从或是从到主)以及帧形式定义不同的用户数据。
帧尾:包括2个字节校验数据,先发低位,后发高位。
电梯系统接收到的数据帧不能直接显示,需要根据数据帧格式,对数据进行校验,然后解析,最后提取有用的数据给显示系统进行显示。本系统的操作如下:
3显示板子系统设计
对于彩屏电梯显示系统而言,液晶屏的显示效果对客户的影响是至关重要的。因此,应用层的程序开发相当重要。考虑到图形界面控件的丰富程度、漂亮程度以及开源免费的持续升级等因素,选择了QTE/Qt5图形开发平台。显示板子系统的架构如图3所示。
图3子系统的架构图
3.1 Qt的移植
3.1.1 Qt的移植条件
Qt for Embedded Linux是用于嵌入式Linux所支持设备的领先应用程序架构。Qt可以在任何支持Linux的平台上运行,创建具有独特用户体验的具备高效内存效率的设备和应用程序。Qt的移植需要满足以下几个基本条件:
①开发环境:Linux内核2.4或更高;GCC版本3.3或更高;用于MIPS,其GCC版本3.4或更高。
②占用存储空间:存储空间取决于配置,压缩后为1.7~4.1 MB;未压缩为3.6-9.0MB.
③硬件平台:易于载入任何支持带C++编译器和帧缓冲器驱动Linux驱动的处理器;支持ARM、x86、MIPS、PowerPC.
④Raspberry Pi(B型)满足以上条件,故可以进行Qt5的移植。
3.1.2 Qt5的移植准备
在做Qt5移植之前首先做以下移植准备:
①建立一个文件夹/home/opt来存放编译所需的源码和文件。
②下载Raspbian Wheezy镜像,本文采用2012-07-15-wheezy-raspbian.img.
③下载工具链,本文采用gcc-4.7-linaro-rpi-gnueabihf.
④下载交叉编译工具,本文采用cross-compile-tools.
⑤下载Qt5源码。
⑥下载qtjsbackend库的应用补丁。
然后建立文件夹mnt/rasp-pi-rootfs,将Raspbian Wheezy镜像挂载到此文件夹下,并进入Qt5源码文件夹执行初始化代码init-repository.
3.1.3 Qt5的编译
首先进入cross-compile-tools文件夹执行一个脚本fixQualifiedLibraryPaths来修改链接和库路径。
然后编译qtbase,配置如下:
接着再编译其他模块如qtimageformats、qtsvg、qtjsbackend、qtseript、qtxmlpatterns、qtdeelarative、qtsensors、qt3d、qtgraphica1effects、qtjsondb、qtlocation、qtdocgallery等。
当在镜像中编译安装完所有的模块之后,将其复制到SDcard.
3.1.4安装Qt Creator
从网站
http://qt-project.org/wiki/Crcate#QtonPi_App_SDK
上下载Qt Crcator安装包,并在Linux系统下对其进行安装配置。由于Qt5需要Qtcreator2.6.0以上的版本作为支持,本文采用2.6.1版本。
3.2外围部件读取程序
本系统通过读取挂在I2C总线上的实时时钟芯片来获取时间信息,通过温度传感设备获取温度信息。本文以读取实时时钟芯片的数据为例,操作如下:
这些设备的操作通过C代码来实现,然后将其编译成动态链接库的形式,供界面应用程序调用。
3.3界面应用程序的实现
图形界面开发是Qt/Embedded开发的一个重点,本系统的界面结构包括楼层信息区域、运行方向区域、图片显示区域、温度时间显示区域、状态显示区域、本系统涉及到视图的跳转、数据的传递、控件的使用、布局和事件处理等等。其程序流程如图4所示。
图4程序流程图
整个显示界面通过MainWindow类实现,该类继承自QmainWindow,而各显示区域均通过继承QWidget类来实现。如图3所示,通过定时器1每隔30 ms调用Main-Window的槽函数checkLiftStstus()来获取由C函数open_uart485(int data[])解析的串口数据。
connect(timer,SIGNAL(timeout()),this,SLOT(checkLiftStatus()));//获取电梯信息
将解析后的信息传递给楼层信息区域,运行方向区域,状态显示区域分别进行显示。
indicatorDirection(data[0]);//方向信息
indicatorState(data[1]);//状态信息
liftCurrentFloorNum(data[2]);//楼层信息
图片视频显示区域是在类ShowController中实现的,当系统需要显示图片时,该类调用ImageView类的对象负责图片显示;当系统需要显示视频时,该类调用PlayerWidget类的对象负责处理视频播放。ImageView类和PlayerWidget类也是继承自Qwidget.ImageView类负责获取SD卡上的图片实例,将其显示在正确的位置,并通过定时器2实现图片的切换。PlayerWidget类负责启动MPlayer,并控制视频显示到正确的位置。
温度时间显示区域是在TimeView类和temperatureView类中实现。TimeView类的成员函数getCurrentTime()通过调用动态链接库的C函数getpcf8563Time(pcf8563_time*pTime)来读取挂在I2C总线上的时钟芯片的时钟信息,并将其显示在正确的区域上。
temperatureView类主要用于显示温度数据,而真正获取温度数据的过程是在TemperatureHandler类中实现的。开辟一个新的线程,通过定时器3每隔500 ms在槽函数readData()中调用一次动态链接库的C函数therm_dsl8b20(long*date)来读取温度传感器的数据。
temperatureThread=new QThread(this);//开辟新线程
connect(temptimer,SIGNAL(timeout()),this,SLOT(readData()));//读取温度
4系统调试结果
根据模拟的NICE3000通信协议、外围部件的操作及Qt5的图形界面编程,实现了电梯彩屏显示系统,其硬件设备图和调试结果图如图5、图6所示。
图5硬件设备图
图6调试结果
结语
本文对基于Raspberry Pi并利用Qt5编程来实现的电梯彩屏显示系统进行了阐述。首先介绍了整个系统的构架;接着在接口转接板子系统中介绍了NICE3000通信协议,并对其进行解析;然后在显示板子系统中介绍了外围部件的操作,以读取实时时钟芯片的数据为例;最后根据解析、读取的数据利用Qt5编程实现了电梯彩屏显示系统。本文对传统的LED点阵列电梯显示系统提供了有效的改进方法,改变了其单调的显示方式,成本低廉,更具商业价值。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议