新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于樹莓派平臺的電梯彩屏顯示系統設計

        基于樹莓派平臺的電梯彩屏顯示系統設計

        作者: 時間:2014-07-11 來源:網絡 收藏

          ①開發環境:Linux內核2.4或更高;GCC版本3.3或更高;用于MIPS,其GCC版本3.4或更高。

        本文引用地址:http://www.104case.com/article/249574.htm

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

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

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

          3.1.2 的移植準備

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

          ①建立一個文件夾/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-reposi tory。

          3.1.3 Qt5的編譯

          首先進入cross-compile-tools文件夾執行一個腳本fixQualifiedLibraryPaths來修改鏈接和庫路徑。

          然后編譯qtbase,配置如下:



          當在鏡像中編譯安裝完所有的模塊之后,將其復制到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所示。



          整個顯示界面通過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所示。



          結語

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

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程


        c++相關文章:c++教程



        上一頁 1 2 下一頁

        關鍵詞: ARM 樹莓派 Qt5

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 太仆寺旗| 英山县| 淅川县| 舒城县| 元氏县| 梁山县| 治多县| 醴陵市| 屏东市| 舒城县| 茌平县| 双牌县| 县级市| 嘉兴市| 诸城市| 修武县| 永仁县| 崇信县| 洛隆县| 株洲县| 文成县| 西吉县| 宁夏| 巫山县| 南昌市| 湟源县| 宝坻区| 沙坪坝区| 商丘市| 定边县| 广东省| 山西省| 监利县| 巨鹿县| 许昌县| 丽江市| 乐都县| 大名县| 抚远县| 宿松县| 衡阳市|