內(nèi) 容 簡 介
本書以完成一個智能家居項目為主線,講述了實訓(xùn)各個階段所需要的知識。全書分為三篇,第一篇講述了項目的界面部分,用Qt程序設(shè)計,并以一個小項目媒體播放器的制作來加深理解。第二篇講述了項目的驅(qū)動程序部分,即基于ARM學(xué)習(xí)板及擴展電路板的驅(qū)動程序的編寫。第三篇講述了系統(tǒng)的集成,即嵌入式Qt界面控制硬件,完成一個簡易的智能家居項目。
本書適合作為大專院校嵌入式專業(yè)、物聯(lián)網(wǎng)專業(yè)學(xué)生的實訓(xùn)教材。此外,有志從事嵌入式Linux開發(fā)的人員可以把本書作為入門級讀物。
前 言
Linux操作系統(tǒng)作為源碼開放的自由軟件,經(jīng)過20多年的發(fā)展與壯大,越來越受到IT界的認(rèn)可,運行于ARM平臺的嵌入式Linux在智能家居、智能汽車等智能化管理系統(tǒng)中的運用占據(jù)了很大的比重。嵌入式Linux的學(xué)習(xí)和開發(fā)相對于純粹的程序設(shè)計或是電路設(shè)計而言,門檻更高一點,因為知識面要求更廣一點,既要精通軟件,硬件知識也要懂一點。橫跨軟硬件的嵌入式Linux驅(qū)動程序開發(fā)是學(xué)生最感困難的地方,但可視化的Qt程序設(shè)計,是相對容易一些的。本書通過一個通俗、簡易的智能家居項目,先講述如何以Qt創(chuàng)建界面,然后講述驅(qū)動程序的編寫,最后集成為可視化的界面控制硬件,從而減輕讀者的學(xué)習(xí)壓力,引發(fā)讀者的學(xué)習(xí)興趣。
本書的軟件開發(fā)是基于Windows下編輯、Linux下編譯的模式,注重講解實驗的過程,力求從看到的實驗現(xiàn)象去分析背后的原理。
在第一篇的Qt程序設(shè)計中,第1章講解Qt的起源及開發(fā)環(huán)境的搭建;第2章通過幾個例題講解,讓讀者從C++基礎(chǔ)知識及Linux中的gcc makefile等基礎(chǔ)知識過渡到Qt集成開發(fā)環(huán)境Qt Creator的使用,并重點分析使用Qt Creator編輯的程序在Linux中編譯的過程;第3章詳細(xì)講解媒體播放器的制作,加深對Qt程序設(shè)計技能的掌握。
在第二篇的驅(qū)動程序開發(fā)中,第4章講解軟件開發(fā)環(huán)境的搭建,并詳細(xì)介紹實驗的硬件平臺;第5章講解Linux內(nèi)核對驅(qū)動程序的支撐,并介紹一些常見設(shè)備的驅(qū)動程序;第6章介紹本書的智能家居項目所需的8個驅(qū)動程序。
在第三篇的系統(tǒng)集成中,主要完成的工作是在硬件平臺上把圖形界面與驅(qū)動程序連接起來,實現(xiàn)圖形界面與硬件的交互。
本書由廣東理工職業(yè)學(xué)院的龍華和深圳技師學(xué)院的謝劍明共同編寫,書中的代碼在Windows下的Qt Creator、SourceInsight以及Redhat Enterprise 5虛擬機中編寫,并且在GEC2440 學(xué)習(xí)板和擴展板上通過測試。第一篇和第二篇是相對獨立的,讀者可以單獨學(xué)習(xí)第一篇,也可以單獨學(xué)習(xí)第二篇。
本書隨書贈送的資源可從清華大學(xué)出版社的網(wǎng)站下載。
本書所講解的簡易智能家居項目曾經(jīng)是作者所帶的12級嵌入式專業(yè)的“嵌入式技術(shù)綜合實訓(xùn)”的課程項目,在此感謝這些學(xué)生,他們給了作者很多靈感。學(xué)生的想法是特殊的、新穎的,特別是在圖形界面方面的設(shè)計,比老師的更容易擴展。
本書難免有不完美之處和錯誤的地方,寫作方法也因構(gòu)思創(chuàng)新而有需要進(jìn)一步改良的地方,懇請廣大讀者提出寶貴的意見。
龍 華
目 錄第一篇 Qt程序設(shè)計第1章 Qt編程基礎(chǔ)及開發(fā)環(huán)境的搭建 11.1 Qt的起源 11.2 Linux系統(tǒng)下的圖形界面 31.2.1 Linux本身包括內(nèi)核和Shell 31.2.2 關(guān)于X11 41.2.3 窗口管理器(綜合桌面環(huán)境) 51.3 Qt的特點及主要構(gòu)成 51.3.1 Qt的特點 51.3.2 Qt開發(fā)環(huán)境的主要構(gòu)成 71.4 Qt開發(fā)環(huán)境的搭建 81.4.1 安裝Qt Creator 81.4.2 安裝虛擬機 111.4.3 在虛擬機中安裝Linux操作系統(tǒng) 151.5 使用Qt開發(fā)環(huán)境創(chuàng)建第一個應(yīng)用程序 281.5.1 關(guān)于可視化編程 281.5.2 Qt Creator常用菜單的功能介紹 281.5.3 舉例 29第2章 Qt編程基礎(chǔ) 362.1 C++基礎(chǔ) 362.2 Qt程序編譯過程分析 432.2.1 Qt Creator中應(yīng)用程序的編譯過程 432.2.2 Qt的元對象系統(tǒng) 482.2.3 Qt資源文件 492.3 Qt控件編程 522.3.1 Qt的幫助系統(tǒng) 532.3.2 Qt Creator界面中的控件 542.3.3 常用控件舉例 572.4 Qt布局管理 602.5 信號與槽 612.6 媒體播放器的制作 622.6.1 制作界面 622.6.2 編寫控件的事件代碼 64第3章 智能家居項目Qt界面設(shè)計 753.1 界面跳轉(zhuǎn) 753.2 智能家居多級子項目界面設(shè)計 813.2.1 智能家居項目需求分析 813.2.2 代碼實現(xiàn) 82第二篇 驅(qū)動程序開發(fā)第4章 搭建開發(fā)環(huán)境 934.1 軟件開發(fā)環(huán)境的搭建 934.1.1 安裝VMware Workstation軟件 934.1.2 建立虛擬電腦 944.1.3 Ubuntu 12.04的安裝 1024.1.4 Ubuntu 12.04系統(tǒng)的配置 1064.1.5 安裝使用Source Insight 1134.1.6 交叉環(huán)境的搭建 1274.2 硬件環(huán)境介紹 1294.2.1 S3C2440芯片介紹 1294.2.2 S3C2440開發(fā)板主要硬件的說明 133第5章 驅(qū)動程序開發(fā)的內(nèi)核基礎(chǔ) 1445.1 嵌入式Linux操作系統(tǒng)的移植過程概述 1445.1.1 Linux操作系統(tǒng)及其特點 1445.1.2 嵌入式Linux操作系統(tǒng)的特點 1445.1.3 嵌入式Linux系統(tǒng)的移植步驟 1455.2 基于GEC2440開發(fā)板的內(nèi)核移植 1465.2.1 Linux-2.6.30內(nèi)核移植 1465.2.2 驅(qū)動模塊的動態(tài)編譯與靜態(tài)編譯 1535.3 常見的嵌入式內(nèi)核驅(qū)動編譯與移植 1615.3.1 LCD驅(qū)動移植 1615.3.2 觸摸屏驅(qū)動移植 1665.3.3 USB驅(qū)動移植 1705.3.4 網(wǎng)卡驅(qū)動移植 174第6章 智能家居項目驅(qū)動程序?qū)嶒?span id="epizqqp1gsyu" class="Apple-tab-span" style="white-space:pre"> 1776.1 房間燈驅(qū)動程序 1776.1.1 實驗?zāi)康?span id="epizqqp1gsyu" class="Apple-tab-span" style="white-space:pre"> 1776.1.2 實驗原理 1786.1.3 實驗步驟 1786.2 窗簾模塊驅(qū)動程序 1866.2.1 光敏電阻驅(qū)動程序 1866.2.2 步進(jìn)電機的驅(qū)動程序 1946.3 溫濕度控制模塊驅(qū)動程序 2036.3.1 溫濕度傳感器DHT11驅(qū)動程序 2036.3.2 直流電機驅(qū)動程序 2116.4 煙霧及紅外檢測模塊驅(qū)動程序 2156.4.1 煙霧傳感器MQ-2驅(qū)動程序 2156.4.2 紅外模塊驅(qū)動程序 2226.4.3 蜂鳴器驅(qū)動程序 228第三篇 系統(tǒng)集成第7章 Qt圖形下載到學(xué)習(xí)板 2397.1 帶QtE4的文件系統(tǒng)分析 2397.2 對QtE應(yīng)用程序的編譯 240第8章 智能家居項目集成 2418.1 把測試程序加入到Qt程序中 2418.1.1 燈光控制界面 2418.1.2 窗簾控制界面 2448.1.3 溫濕度控制界面 2488.1.4 煙霧及紅外檢測界面 2538.2 驅(qū)動程序的統(tǒng)一加載 257附錄 制作根文件系統(tǒng) 258參考文獻(xiàn) 263