本書(shū)將以CDIO工程教育理念為指導(dǎo), 以開(kāi)源硬件平臺(tái)Arduino為基礎(chǔ), 以C/C++編程語(yǔ)言的具體應(yīng)用為導(dǎo)向, 系統(tǒng)介紹Arduino軟硬件協(xié)同設(shè)計(jì)的理論與項(xiàng)目實(shí)踐, 給出了Arduino實(shí)戰(zhàn)指南在游戲開(kāi)發(fā)、智能設(shè)備、人機(jī)交互、智能家居與物聯(lián)網(wǎng)設(shè)計(jì)領(lǐng)域應(yīng)用的25個(gè)案例。
本書(shū)從構(gòu)思、設(shè)計(jì)到實(shí)現(xiàn),深入理解Arduino項(xiàng)目開(kāi)發(fā)!《Arduino案例實(shí)戰(zhàn)》系統(tǒng)論述了Arduino開(kāi)源硬件的開(kāi)發(fā)方法和技術(shù)。書(shū)中以豐富Arduino設(shè)計(jì)實(shí)例,介紹了智能硬件的物聯(lián)網(wǎng)應(yīng)用。在處理嵌入式系統(tǒng)的開(kāi)發(fā)過(guò)程中,使用Arduino開(kāi)源平臺(tái),將事半功倍,極大提高效率。本書(shū)涉及的主題:
(1)智能控制類開(kāi)發(fā)案例
(2)人機(jī)交互類開(kāi)發(fā)案例
(3)生活便捷類開(kāi)發(fā)案例
(4)物聯(lián)網(wǎng)絡(luò)類開(kāi)發(fā)案例
(5)其他創(chuàng)意類開(kāi)發(fā)案例
本書(shū)突出的特點(diǎn):
(6)典型場(chǎng)景的創(chuàng)新應(yīng)用
(7)智能開(kāi)源的編程實(shí)踐
(8)不同領(lǐng)域的經(jīng)典案例
(9)多種產(chǎn)品的功能實(shí)現(xiàn)
注:本書(shū)提供配套學(xué)習(xí)資源,下載地址為清華大學(xué)出版社本書(shū)頁(yè)面。
物聯(lián)網(wǎng)、智能硬件和大數(shù)據(jù)技術(shù)給社會(huì)帶來(lái)了巨大的沖擊,個(gè)性化、定制化和智能化的硬件設(shè)備成為未來(lái)的發(fā)展趨勢(shì)。中國(guó)制造2025計(jì)劃、德國(guó)的工業(yè)4.0、美國(guó)的工業(yè)互聯(lián)網(wǎng),都是將人、數(shù)據(jù)和機(jī)器連接起來(lái),其本質(zhì)是工業(yè)的深度信息化,為未來(lái)智能社會(huì)的發(fā)展提供制造技術(shù)基礎(chǔ)。
在“大眾創(chuàng)業(yè)、萬(wàn)眾創(chuàng)新”的時(shí)代背景下,人才的培養(yǎng)方法和模式也應(yīng)該滿足當(dāng)前的時(shí)代需求。作者依據(jù)當(dāng)今信息社會(huì)的發(fā)展趨勢(shì),結(jié)合Arduino開(kāi)源硬件的發(fā)展及智能硬件的發(fā)展要求,采取激勵(lì)創(chuàng)新的工程教育方法,培養(yǎng)可以適應(yīng)未來(lái)工業(yè)4.0發(fā)展的人才。因此,試圖探索基于創(chuàng)新工程教育的基本方法,并將其提煉為適合我國(guó)國(guó)情、具有自身特色的創(chuàng)新實(shí)踐教材。本書(shū)將實(shí)際教學(xué)中應(yīng)用智能硬件的創(chuàng)新工程教學(xué)經(jīng)驗(yàn)進(jìn)行總結(jié),包括具體的創(chuàng)新方法和開(kāi)發(fā)案例,希望對(duì)教育教學(xué)及工業(yè)界有所幫助,起到拋磚引玉的作用。
本書(shū)系統(tǒng)地介紹了如何利用Arduino開(kāi)發(fā)平臺(tái)進(jìn)行開(kāi)發(fā)產(chǎn)品,包括相關(guān)的設(shè)計(jì)、實(shí)現(xiàn)與產(chǎn)品的應(yīng)用。傳統(tǒng)Arduino方面的書(shū)籍僅側(cè)重介紹具體硬件開(kāi)發(fā)平臺(tái)的實(shí)現(xiàn)方法,而很少關(guān)注具體創(chuàng)新案例的開(kāi)發(fā)及工程教育方法應(yīng)用。因此,本書(shū)面向未來(lái)的工業(yè)創(chuàng)新與發(fā)展,通過(guò)CDIO的工程教育方法,以智能開(kāi)源硬件平臺(tái)為基礎(chǔ),培養(yǎng)面向工業(yè)4.0的創(chuàng)新型人才。
本書(shū)的內(nèi)容和素材主要來(lái)自于作者所在的學(xué)校近幾年承擔(dān)的教育部和北京市的教育、教學(xué)改革項(xiàng)目和成果,北京郵電大學(xué)信息工程專業(yè)的同學(xué)們通過(guò)基于CDIO工程教育方法的實(shí)施,實(shí)現(xiàn)了創(chuàng)新產(chǎn)品的整個(gè)過(guò)程,不但學(xué)到了知識(shí),提高了能力,而且為本書(shū)提供了第一手素材和資料。
本書(shū)對(duì)每個(gè)案例從項(xiàng)目背景、創(chuàng)意描述、功能及總體設(shè)計(jì)、具體電路圖、系統(tǒng)流程圖、子模塊介紹、產(chǎn)品展示、故障及問(wèn)題分析,以及每個(gè)案例所用元器件進(jìn)行詳細(xì)講解,使讀者可以從不同層面對(duì)開(kāi)發(fā)案例進(jìn)行分析、理解和具體實(shí)現(xiàn)。
本書(shū)的編寫得到了教育部電子信息類專業(yè)教學(xué)指導(dǎo)委員會(huì)、信息工程專業(yè)國(guó)家第一類特色專業(yè)建設(shè)項(xiàng)目、信息工程專業(yè)國(guó)家第二類特色專業(yè)建設(shè)項(xiàng)目、教育部CDIO工程教育模式研究與實(shí)踐項(xiàng)目、教育部本科教學(xué)工程項(xiàng)目、信息工程專業(yè)北京市特色專業(yè)建設(shè)、北京市教育教學(xué)改革項(xiàng)目、北京郵電大學(xué)教學(xué)綜合改革項(xiàng)目的大力支持,在此表示感謝!
同時(shí),也特別感謝林家儒教授的鼎力支持和悉心指導(dǎo),感謝鄭鋮、譚揚(yáng)、黃旭新、顧鐵玥等研究生同學(xué)的大力協(xié)助,感謝北京郵電大學(xué)信息工程專業(yè)所有同學(xué),感謝父母妻兒在精神上給予的支持與鼓勵(lì),才使得此書(shū)得以問(wèn)世!
本書(shū)由北京市教育科學(xué)“十二五”規(guī)劃重點(diǎn)課題(優(yōu)先關(guān)注)、北京市職業(yè)教育產(chǎn)教融合專業(yè)建設(shè)模式研究(ADA15159)資助,特此表示感謝!
由于作者的水平有限,書(shū)中不當(dāng)及錯(cuò)誤之處在所難免,衷心地希望各位讀者多提寶貴意見(jiàn)及具體的整改措施,以便作者進(jìn)一步修改和完善。
李永華于北京郵電大學(xué)
2017年5月
李永華 現(xiàn)執(zhí)教于北京郵電大學(xué),擁有超過(guò)10年的嵌入式開(kāi)發(fā)經(jīng)驗(yàn),致力于物聯(lián)網(wǎng)和智能硬件的研究開(kāi)發(fā)工作。在教學(xué)中以興趣為導(dǎo)向,激發(fā)學(xué)生的創(chuàng)造性;以素質(zhì)為基礎(chǔ),提高自身教學(xué)水平;以科研為手段,促進(jìn)教學(xué)理念轉(zhuǎn)變。通過(guò)信息工程專業(yè)綜合改革,探索了以“學(xué)生學(xué)為中心”的教學(xué)模式,營(yíng)造生動(dòng)活潑的學(xué)習(xí)方法,提高學(xué)生獨(dú)立思考問(wèn)題、發(fā)現(xiàn)問(wèn)題、解決問(wèn)題的能力,激發(fā)學(xué)生的創(chuàng)造激情。在研發(fā)及教學(xué)實(shí)踐中指導(dǎo)學(xué)生實(shí)現(xiàn)200余個(gè)創(chuàng)新案例,并指導(dǎo)著一支物聯(lián)網(wǎng)開(kāi)發(fā)團(tuán)隊(duì),曾在物聯(lián)網(wǎng)、開(kāi)源硬件等技術(shù)領(lǐng)域進(jìn)行了多場(chǎng)學(xué)術(shù)報(bào)告,并且出版了《AllJoyn技術(shù)原理及物聯(lián)網(wǎng)程序開(kāi)發(fā)指南》《Arduino實(shí)戰(zhàn)指南——游戲開(kāi)發(fā)、智能硬件、人機(jī)交互、智能家居與物聯(lián)網(wǎng)設(shè)計(jì)30例》《Arduino軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南》等多部物聯(lián)網(wǎng)技術(shù)方向的著作。
第1章Arduino項(xiàng)目設(shè)計(jì)基礎(chǔ)
1.1開(kāi)源硬件簡(jiǎn)介
1.2Arduino開(kāi)源硬件
1.2.1Arduino開(kāi)發(fā)板
1.2.2Arduino擴(kuò)展板
1.3Arduino軟件開(kāi)發(fā)平臺(tái)
1.3.1Arduino平臺(tái)特點(diǎn)
1.3.2ArduinoIDE的安裝
1.3.3ArduinoIDE的使用
1.4Arduino編程語(yǔ)言
1.4.1Arduino編程基礎(chǔ)
1.4.2數(shù)字I/O口的操作函數(shù)
1.4.3模擬I/O口的操作函數(shù)
1.4.4高級(jí)I/OPulseln(pin,state,timeout)
1.4.5時(shí)間函數(shù)
1.4.6中斷函數(shù)
1.4.7串口通信函數(shù)
1.4.8Arduino的庫(kù)函數(shù)
1.5Arduino硬件設(shè)計(jì)平臺(tái)
1.5.1Fritzing軟件簡(jiǎn)介
1.5.2Fritzing使用方法
1.5.3Arduino電路設(shè)計(jì)
1.5.4Arduino樣例與編程
第2章PM2.5檢測(cè)儀
2.1項(xiàng)目背景
2.2創(chuàng)意描述
2.3功能及總體設(shè)計(jì)
2.3.1功能介紹
2.3.2總體設(shè)計(jì)
2.3.3模塊介紹
2.4產(chǎn)品展示
2.5故障及問(wèn)題分析
2.6元器件清單
第3章表情口罩
3.1項(xiàng)目背景
3.2創(chuàng)意描述
3.3功能及總體設(shè)計(jì)
3.3.1功能介紹
3.3.2總體設(shè)計(jì)
3.3.3模塊介紹
3.4產(chǎn)品展示
3.5故障及問(wèn)題分析
3.6元器件清單
第4章簡(jiǎn)易心率監(jiān)測(cè)儀
4.1項(xiàng)目背景
4.2創(chuàng)意描述
4.3功能及總體設(shè)計(jì)
4.3.1功能介紹
4.3.2總體設(shè)計(jì)
4.3.3模塊介紹
4.4產(chǎn)品展示
4.5故障及問(wèn)題分析
4.6元器件清單
第5章App控制智能小風(fēng)扇
5.1項(xiàng)目背景
5.2創(chuàng)意描述
5.3功能及總體設(shè)計(jì)
5.3.1功能介紹
5.3.2總體設(shè)計(jì)
5.3.3模塊介紹
5.4產(chǎn)品展示
5.5故障及問(wèn)題分析
5.6元器件清單
第6章智能天然氣控制報(bào)警系統(tǒng)
6.1項(xiàng)目背景
6.2創(chuàng)意描述
6.3功能及總體設(shè)計(jì)
6.3.1功能介紹
6.3.2總體設(shè)計(jì)
6.3.3模塊介紹
6.4產(chǎn)品展示
6.5故障及問(wèn)題分析
6.6元器件清單
第7章自動(dòng)控制風(fēng)扇
7.1項(xiàng)目背景
7.2創(chuàng)意描述
7.3功能及總體設(shè)計(jì)
7.3.1功能介紹
7.3.2總體設(shè)計(jì)
7.3.3模塊介紹
7.4產(chǎn)品展示
7.5故障及問(wèn)題分析
7.6元器件清單
第8章多功能加濕器
8.1項(xiàng)目背景
8.2創(chuàng)意描述
8.3功能及總體設(shè)計(jì)
8.3.1功能介紹
8.3.2總體設(shè)計(jì)
8.3.3模塊介紹
8.4產(chǎn)品展示
8.5故障及問(wèn)題分析
8.6元器件清單
第9章多功能鬧鐘
9.1項(xiàng)目背景
9.2創(chuàng)意描述
9.3功能及總體設(shè)計(jì)
9.3.1功能介紹
9.3.2總體設(shè)計(jì)
9.3.3模塊介紹
9.4產(chǎn)品展示
9.5故障及問(wèn)題分析
9.6元器件清單
第10章紅外遙控旋轉(zhuǎn)小風(fēng)扇
10.1項(xiàng)目背景
10.2創(chuàng)意描述
10.3功能及總體設(shè)計(jì)
10.3.1功能介紹
10.3.2總體設(shè)計(jì)
10.3.3模塊介紹
10.4產(chǎn)品展示
10.5故障及其問(wèn)題分析
10.6元器件清單
第11章基于自建云服務(wù)器的智能家居
11.1項(xiàng)目背景
11.2創(chuàng)意描述
11.3功能及總體設(shè)計(jì)
11.3.1功能介紹
11.3.2總體設(shè)計(jì)
11.3.3模塊介紹
11.4產(chǎn)品展示
11.5故障及問(wèn)題分析
11.6元器件清單
第12章語(yǔ)音控制臺(tái)燈
12.1項(xiàng)目背景
12.2創(chuàng)意描述
12.3功能及總體設(shè)計(jì)
12.3.1功能介紹
12.3.2總體設(shè)計(jì)
12.3.3模塊介紹
12.4產(chǎn)品展示
12.5故障及問(wèn)題分析
12.6元器件清單
第13章盲文教學(xué)器
13.1項(xiàng)目背景
13.2創(chuàng)意描述
13.3功能及總體設(shè)計(jì)
13.3.1功能介紹
13.3.2總體設(shè)計(jì)
13.3.3模塊介紹
13.4產(chǎn)品展示
13.5故障及問(wèn)題分析
13.6元器件清單
第14章智能拳擊手套
14.1項(xiàng)目背景
14.2創(chuàng)意描述
14.3功能及總體設(shè)計(jì)
14.3.1功能介紹
14.3.2總體設(shè)計(jì)
14.3.3模塊介紹
14.4產(chǎn)品展示
14.5故障及問(wèn)題分析
14.6元器件清單
第15章簡(jiǎn)易翻譯機(jī)
15.1項(xiàng)目背景
15.2創(chuàng)意描述
15.3功能及總體設(shè)計(jì)
15.3.1功能介紹
15.3.2總體設(shè)計(jì)
15.3.3模塊介紹
15.4產(chǎn)品展示
15.5故障及問(wèn)題分析
15.6元器件清單
第16章智能教室管理系統(tǒng)
16.1項(xiàng)目背景
16.2創(chuàng)意描述
16.3功能及總體設(shè)計(jì)
16.3.1功能介紹
16.3.2總體設(shè)計(jì)
16.3.3模塊介紹
16.4產(chǎn)品展示
16.5故障及問(wèn)題分析
16.6元器件清單
第17章基于Arduino實(shí)現(xiàn)的激光雕刻機(jī)
17.1項(xiàng)目背景
17.2創(chuàng)意描述
17.3功能及總體設(shè)計(jì)
17.3.1功能介紹
17.3.2總體設(shè)計(jì)
17.3.3模塊介紹
17.4產(chǎn)品展示
17.5故障及問(wèn)題分析
17.6元器件清單
第18章自動(dòng)掃碼分揀裝置
18.1項(xiàng)目背景
18.2創(chuàng)意描述
18.3功能及總體設(shè)計(jì)
18.3.1功能介紹
18.3.2總體設(shè)計(jì)
18.3.3模塊介紹
18.4產(chǎn)品展示
18.5故障及問(wèn)題分析
18.6元器件清單
第19章肩帶式轉(zhuǎn)向警示器
19.1項(xiàng)目背景
19.2創(chuàng)意描述
19.3功能及總體設(shè)計(jì)
19.3.1功能介紹
19.3.2總體設(shè)計(jì)
19.3.3模塊介紹
19.4產(chǎn)品展示
19.5故障及問(wèn)題分析
19.6元器件清單
第20章水位監(jiān)測(cè)預(yù)警器
20.1項(xiàng)目背景
20.2創(chuàng)意描述
20.3功能及總體設(shè)計(jì)
20.3.1功能介紹
20.3.2總體設(shè)計(jì)
20.3.3模塊介紹
20.4產(chǎn)品展示
20.5故障及問(wèn)題分析
20.6元器件清單
參考文獻(xiàn)
第5章App控制智能小風(fēng)扇
5.1項(xiàng)目背景
設(shè)計(jì)者:吳澤君何江東
本項(xiàng)目為基于Arduino控制的實(shí)用功能型產(chǎn)品。夏季高溫炎熱,對(duì)于還沒(méi)有安裝空調(diào)的宿舍,小小的電風(fēng)扇則成為大家的“救命稻草”。但傳統(tǒng)的電風(fēng)扇需要手動(dòng)控制,電風(fēng)扇的開(kāi)關(guān)、風(fēng)速大小、轉(zhuǎn)向等均需要手動(dòng)調(diào)節(jié),與當(dāng)今生活硬件智能化的主題格格不入。因此,本項(xiàng)目致力于開(kāi)發(fā)一個(gè)由手機(jī)APP控制的智能小風(fēng)扇,對(duì)其所有操作只需在手機(jī)客戶端單擊按鈕即可。
5.2創(chuàng)意描述
作為實(shí)用功能型產(chǎn)品,它通過(guò)Arduino板將傳統(tǒng)硬件與軟件相結(jié)合,實(shí)現(xiàn)我們?nèi)粘I钣闷返闹悄芑V饕呻婏L(fēng)扇、信息轉(zhuǎn)換部分、手機(jī)APP、點(diǎn)陣顯示部分組成,通過(guò)手機(jī)APP對(duì)電風(fēng)扇實(shí)現(xiàn)智能控制。
創(chuàng)新點(diǎn):通過(guò)手機(jī)APP便可實(shí)現(xiàn)電風(fēng)扇的開(kāi)關(guān)、延時(shí)關(guān)閉、電風(fēng)扇狀態(tài)顯示;實(shí)用性比較強(qiáng),應(yīng)用對(duì)象也很廣,可以對(duì)諸如加濕器、空調(diào)甚至熱水器等做類似應(yīng)用移植。
5.3功能及總體設(shè)計(jì)
本產(chǎn)品主要分為三個(gè)部分進(jìn)行設(shè)計(jì):開(kāi)關(guān)部分、延時(shí)關(guān)閉部分和狀態(tài)顯示部分。首先,通過(guò)藍(lán)牙模塊來(lái)實(shí)現(xiàn)手機(jī)與Arduino板的通信。開(kāi)關(guān)部分主要是Arduino板通過(guò)繼電器來(lái)控制電風(fēng)扇的開(kāi)啟和關(guān)閉;延時(shí)關(guān)閉部分是由延時(shí)程序以及繼電器模塊的有效組合實(shí)現(xiàn)在一定時(shí)間之后關(guān)閉風(fēng)扇;狀態(tài)顯示部分主要是通過(guò)控制一個(gè)8×8點(diǎn)陣來(lái)顯示電風(fēng)扇當(dāng)前運(yùn)行狀態(tài)。
5.3.1功能介紹
智能小風(fēng)扇能讓用戶在吹風(fēng)時(shí)享受更加方便、智能的服務(wù),通過(guò)手機(jī)輸入便可選擇風(fēng)扇的開(kāi)關(guān),多長(zhǎng)時(shí)間以后關(guān)閉,并能看到風(fēng)扇的運(yùn)行狀態(tài)。開(kāi)關(guān)部分主要是通過(guò)手機(jī)字母輸入,以控制電風(fēng)扇的開(kāi)啟和關(guān)閉;延時(shí)關(guān)閉部分是指可以在手機(jī)控制端通過(guò)選擇不同的檔位來(lái)選擇何時(shí)關(guān)閉風(fēng)扇;狀態(tài)顯示部分主要是通過(guò)一個(gè)8×8點(diǎn)陣來(lái)顯示風(fēng)扇當(dāng)前運(yùn)行狀態(tài),用戶可自由選擇是否開(kāi)啟點(diǎn)陣以獲得相關(guān)信息。
5.3.2總體設(shè)計(jì)
要實(shí)現(xiàn)上述功能,需要將作品分成三部分進(jìn)行設(shè)計(jì):關(guān)閉部分、延時(shí)部分和點(diǎn)陣顯示部分。
1.整體框架圖
項(xiàng)目整體框架如圖51所示。繼電器和LED8×8點(diǎn)陣直接連到ArduinoUNO板上,風(fēng)扇連接到繼電器的輸出端,這樣,通過(guò)Arduino板便可控制小風(fēng)扇以及LED顯示屏。
圖51整體框架圖
2.系統(tǒng)流程圖
系統(tǒng)流程如圖52所示。接通電源以后,如果繼電器模塊輸出高電平,則電風(fēng)扇開(kāi)始轉(zhuǎn)動(dòng)。Arduino板與LED點(diǎn)陣相連可控制顯示屏開(kāi)始顯示。
圖52系統(tǒng)流程圖
3.總電路圖
系統(tǒng)總電路及ArduinoUNO開(kāi)發(fā)板引腳如圖53所示。從左到右依次是帶紅外避障模塊的LED點(diǎn)陣、藍(lán)牙模塊、Arduino板、繼電器、電風(fēng)扇。其中,LED點(diǎn)陣的2、3、4接口與Arduino板的12、11、10相連,GND與GND相連,6端口與5V相連。藍(lán)牙模塊的RX、TX、VCC、GND和Arduino板的1、0、5V、GND相連。繼電器模塊的VCC、GND、IN分別和5V、GND、2端口相連。繼電器的OUT與電風(fēng)扇的正極相連,而GND便與GND相連。
5.3.3模塊介紹
本項(xiàng)目主要包括以下幾個(gè)模塊:藍(lán)牙模塊、繼電器模塊、LED點(diǎn)陣顯示模塊。下面分別給出各模塊的功能、元件、電路圖和相關(guān)代碼。
1.藍(lán)牙模塊
1)功能介紹
實(shí)現(xiàn)手機(jī)App與Arduino板的通信,把手機(jī)App上輸入的信息傳遞給Arduino板。元器件包括HC05藍(lán)牙模塊、杜邦線和面包板。藍(lán)牙模塊接線如圖54所示。