<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于Raspberry Pi的電梯彩屏顯示系統設計

基于Raspberry Pi的電梯彩屏顯示系統設計

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:本文針對多媒體彩屏顯示的需求,在A(yíng)RM群聳鬏派平臺和單片機接口板的硬件支持下,利用485/CAN總線(xiàn)傳輸技術(shù)、Linux應用編程、用戶(hù)界面編程,提出并實(shí)現了一種彩屏顯示系統。此彩屏顯示系統與傳統顯示系統相比,界面更美觀(guān),功能更豐富,且具有低成本、高穩定性等特點(diǎn)。實(shí)際測試結果表明,此彩屏顯示系統設計的可行性和有效性。

本文引用地址:http://dyxdggzs.com/article/201610/307092.htm

引言

近年來(lái),隨著(zhù)高層建筑數量的與日俱增,電梯的需求量也在增加?,F階段我們廣泛使用的電梯都是基于LED點(diǎn)陣列的顯示系統,顯示狀態(tài)信息比較簡(jiǎn)單,顯示方式比較單調。此外,現在的一些電梯里的廣告機,雖然改善了電梯轎內的乘坐環(huán)境,良好的廣告效果也給商家帶來(lái)了不小的經(jīng)濟效益。但是這種顯示裝置沒(méi)有和電梯控制系統融為一體,只是單純的視頻播放而已。

為了使顯示和電梯控制系統相融合,打造舒適的乘坐環(huán)境,針對現有的電梯系統提出一種由單片機完成不同廠(chǎng)商適配、由ARM/X86統一顯示的雙核處理方法。該方法中ARM/X86處理器專(zhuān)注于統一通用格式電梯狀態(tài)信息解碼、樓層圖片切換或視頻播放,從而提高整個(gè)系統的實(shí)時(shí)性與可靠性。針對不同廠(chǎng)商的電梯通信協(xié)議,只需要更改單片機的編解碼程序便可使整個(gè)系統重新工作。

Raspberry Pi(中文名為“”)是一款由英國的基金會(huì )所開(kāi)發(fā),以低價(jià)硬件及自由軟件為學(xué)生計算機編程教育而設計的卡片式電腦。其配備一枚700 MHz博通出產(chǎn)的ARM架構BCM2835處理器,256 MB內存(B型已升級到512 MB內存)的微型電腦主板。Raspberry Pi以SD卡為內存硬盤(pán),主板周?chē)袃蓚€(gè)USB接口和一個(gè)網(wǎng)口,可連接鍵盤(pán)、鼠標和網(wǎng)線(xiàn),同時(shí)擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口。以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能。其操作系統采用開(kāi)源的Linux系統,比如Debian、Arch Linux,自帶的Iceweasel、KOffice等軟件能夠滿(mǎn)足基本的網(wǎng)絡(luò )瀏覽、文字處理以及計算機學(xué)習的需要。

Qt是一個(gè)1991年由奇趣科技開(kāi)發(fā)的跨平臺C++圖形用戶(hù)界面應用程序開(kāi)發(fā)框架。Qt具有優(yōu)良的跨平臺特性,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所示。

基于Raspberry Pi的電梯彩屏顯示系統設計

1.2 子系統功能介紹

1.2.1 接口轉接板

接收RS-485/CAN總線(xiàn)上的電梯通信協(xié)議,并完成協(xié)議的解析;承載溫度傳感設備和掛在I2C總線(xiàn)上的時(shí)鐘電路,供顯示板讀取溫度和時(shí)間信息,完成用戶(hù)按鍵的檢測與編碼。

1.2.2 顯示板

接收接口轉接板譯碼后的電梯數據;讀取溫度和時(shí)間信息;實(shí)現界面應用程序。

2 接口轉接板子系統設計

接口轉接板子系統硬件主要包括ATmega8單片機、DS18B20溫度傳感器、PCF8563時(shí)鐘芯片、MAX485芯片等。其接口轉接板框圖如圖2所示。

基于Raspberry Pi的電梯彩屏顯示系統設計

電梯的通信協(xié)議有多種,本文以NICE3000通信協(xié)議為例實(shí)現本系統。

2.1 NICE3000通信協(xié)議的通信設定

通信方式:RS-485標準、異步、半雙工。

數據格式:1位起始位、8位數據位、1位停止位、無(wú)校驗位。

通信波特率:9 600 bps。

通信地址定義:廣播地址為0,外接節點(diǎn)地址為1~31(外招板撥碼開(kāi)關(guān)確定),地址同時(shí)也表示外招所在樓層;顯示板只是接收顯示,地址設定為0(撥碼),無(wú)需通信回復。

數據校驗:采用兩位異或校驗。

數據幀分類(lèi):共有兩種形式,其中廣播幀用于外招顯示內容的信息,不需要返回幀,另外還有一種是普通幀,主要完成主控制板與外招之間的控制信息交換。

2.2 幀格式

數據幀采用固定長(cháng)度,5個(gè)字節,結構為幀頭、用戶(hù)數據、幀尾。

幀頭:包括1個(gè)字節地址,即主控制板發(fā)送給外招的標識,從機(外招)根據幀頭判斷本機是否響應當前通信。如果地址是廣播地址,則從機接收信息,但是不用返回。

用戶(hù)數據包括:數據2個(gè)字節,根據發(fā)送方向(主到從或是從到主)以及幀形式定義不同的用戶(hù)數據。

幀尾:包括2個(gè)字節校驗數據,先發(fā)低位,后發(fā)高位。

電梯系統接收到的數據幀不能直接顯示,需要根據數據幀格式,對數據進(jìn)行校驗,然后解析,最后提取有用的數據給顯示系統進(jìn)行顯示。本系統的操作如下:

基于Raspberry Pi的電梯彩屏顯示系統設計

3 顯示板子系統設計

對于彩屏電梯顯示系統而言,液晶屏的顯示效果對客戶(hù)的影響是至關(guān)重要的。因此,應用層的程序開(kāi)發(fā)相當重要??紤]到圖形界面控件的豐富程度、漂亮程度以及開(kāi)源免費的持續升級等因素,選擇了QTE/圖形開(kāi)發(fā)平臺。顯示板子系統的架構如圖3所示。

基于Raspberry Pi的電梯彩屏顯示系統設計

3.1 Qt的移植

3.1.1 Qt的移植條件

Qt for Embedded Linux是用于嵌入式Linux所支持設備的領(lǐng)先應用程序架構。Qt可以在任何支持Linux的平臺上運行,創(chuàng )建具有獨特用戶(hù)體驗的具備高效內存效率的設備和應用程序。Qt的移植需要滿(mǎn)足以下幾個(gè)基本條件:

①開(kāi)發(fā)環(huán)境:Linux內核2.4或更高;GCC版本3.3或更高;用于MIPS,其GCC版本3.4或更高。

②占用存儲空間:存儲空間取決于配置,壓縮后為1.7~4.1 MB;未壓縮為3.6—9.0MB。

③硬件平臺:易于載入任何支持帶C++編譯器和幀緩沖器驅動(dòng)Linux驅動(dòng)的處理器;支持ARM、x86、MIPS、PowerPC。

④Raspberry Pi(B型)滿(mǎn)足以上條件,故可以進(jìn)行的移植。

3.1.2 Qt5的移植準備

在做Qt5移植之前首先做以下移植準備:

①建立一個(gè)文件夾/home/opt來(lái)存放編譯所需的源碼和文件。

②下載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鏡像掛載到此文件夾下,并進(jìn)入Qt5源碼文件夾執行初始化代碼init-reposi tory。

3.1.3 Qt5的編譯

首先進(jìn)入cross-compile-tools文件夾執行一個(gè)腳本fixQualifiedLibraryPaths來(lái)修改鏈接和庫路徑。

然后編譯qtbase,配置如下:

基于Raspberry Pi的電梯彩屏顯示系統設計

當在鏡像中編譯安裝完所有的模塊之后,將其復制到SDcard。

3.1.4 安裝Qt Creator

從網(wǎng)站http://qt-project.org/wiki/Crcate#QtonPi_App_SDK上下載Qt Crcator安裝包,并在Linux系統下對其進(jìn)行安裝配置。由于Qt5需要Qtcreator2.6.0以上的版本作為支持,本文采用2.6.1版本。

3.2 外圍部件讀取程序

本系統通過(guò)讀取掛在I2C總線(xiàn)上的實(shí)時(shí)時(shí)鐘芯片來(lái)獲取時(shí)間信息,通過(guò)溫度傳感設備獲取溫度信息。本文以讀取實(shí)時(shí)時(shí)鐘芯片的數據為例,操作如下:

基于Raspberry Pi的電梯彩屏顯示系統設計

這些設備的操作通過(guò)C代碼來(lái)實(shí)現,然后將其編譯成動(dòng)態(tài)鏈接庫的形式,供界面應用程序調用。

3.3 界面應用程序的實(shí)現

圖形界面開(kāi)發(fā)是Qt/Embedded開(kāi)發(fā)的一個(gè)重點(diǎn),本系統的界面結構包括樓層信息區域、運行方向區域、圖片顯示區域、溫度時(shí)間顯示區域、狀態(tài)顯示區域、本系統涉及到視圖的跳轉、數據的傳遞、控件的使用、布局和事件處理等等。其程序流程如圖4所示。

基于Raspberry Pi的電梯彩屏顯示系統設計

整個(gè)顯示界面通過(guò)MainWindow類(lèi)實(shí)現,該類(lèi)繼承自QmainWindow,而各顯示區域均通過(guò)繼承QWidget類(lèi)來(lái)實(shí)現。如圖3所示,通過(guò)定時(shí)器1每隔30 ms調用Main-Window的槽函數checkLiftStstus()來(lái)獲取由C函數open_uart485(int data[])解析的串口數據。

connect(timer,SIGNAL(timeout()),this,SLOT(checkLiftStatus()));//獲取電梯信息

將解析后的信息傳遞給樓層信息區域,運行方向區域,狀態(tài)顯示區域分別進(jìn)行顯示。

indicatorDirection(data[0]); //方向信息

indicatorState(data[1]); //狀態(tài)信息

liftCurrentFloorNum(data[2]);//樓層信息

圖片視頻顯示區域是在類(lèi)ShowController中實(shí)現的,當系統需要顯示圖片時(shí),該類(lèi)調用ImageView類(lèi)的對象負責圖片顯示;當系統需要顯示視頻時(shí),該類(lèi)調用PlayerWidget類(lèi)的對象負責處理視頻播放。ImageView類(lèi)和PlayerWidget類(lèi)也是繼承自Qwidget。ImageView類(lèi)負責獲取SD卡上的圖片實(shí)例,將其顯示在正確的位置,并通過(guò)定時(shí)器2實(shí)現圖片的切換。PlayerWidget類(lèi)負責啟動(dòng)MPlayer,并控制視頻顯示到正確的位置。

溫度時(shí)間顯示區域是在TimeView類(lèi)和temperatureView類(lèi)中實(shí)現。TimeView類(lèi)的成員函數getCurrentTime()通過(guò)調用動(dòng)態(tài)鏈接庫的C函數getpcf8563Time(pcf8563_time*pTime)來(lái)讀取掛在I2C總線(xiàn)上的時(shí)鐘芯片的時(shí)鐘信息,并將其顯示在正確的區域上。

temperatureView類(lèi)主要用于顯示溫度數據,而真正獲取溫度數據的過(guò)程是在TemperatureHandler類(lèi)中實(shí)現的。開(kāi)辟一個(gè)新的線(xiàn)程,通過(guò)定時(shí)器3每隔500 ms在槽函數readData()中調用一次動(dòng)態(tài)鏈接庫的C函數therm_dsl8b20(long*date)來(lái)讀取溫度傳感器的數據。

temperatureThread=new QThread(this); //開(kāi)辟新線(xiàn)程

connect(temptimer,SIGNAL(timeout()),this,SLOT(readData())); //讀取溫度

4 系統調試結果

根據模擬的NICE3000通信協(xié)議、外圍部件的操作及Qt5的圖形界面編程,實(shí)現了電梯彩屏顯示系統,其硬件設備圖和調試結果圖如圖5、圖6所示。

基于Raspberry Pi的電梯彩屏顯示系統設計

結語(yǔ)

本文對基于Raspberry Pi并利用Qt5編程來(lái)實(shí)現的電梯彩屏顯示系統進(jìn)行了闡述。首先介紹了整個(gè)系統的構架;接著(zhù)在接口轉接板子系統中介紹了NICE3000通信協(xié)議,并對其進(jìn)行解析;然后在顯示板子系統中介紹了外圍部件的操作,以讀取實(shí)時(shí)時(shí)鐘芯片的數據為例;最后根據解析、讀取的數據利用Qt5編程實(shí)現了電梯彩屏顯示系統。本文對傳統的LED點(diǎn)陣列電梯顯示系統提供了有效的改進(jìn)方法,改變了其單調的顯示方式,成本低廉,更具商業(yè)價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>