本書以“大眾創業萬眾創新”為時代背景,以物聯網和智能開源硬件發展為技術背景,總結信息時代創新模式、創新方法和創新產品。以CDIO(ConceiveDesignImplementoperate)方法為指導,構建創新產品,將北京郵電大學信息工程專業同學的創新產品開發案例進行總結,其基本內容包括Arduino設計基礎和22個案例,主要涉及智能控制類開發案例、生活便捷類開發案例、物聯網絡類開發案例、人機交互類開發案例和其他創意類開發案例。
本書主要針對創新產品的實際開發案例進行描述,包括軟件設計流程圖、硬件電路圖、各種傳感器和模塊,從功能、使用方法、電路連接和實例程序等方面介紹其使用方法; 綜合應用各種技術,提高產品的總體性能和可實現性。本書案例的內容由總到分、先模塊后代碼,創新思維與實踐案例相結合,以滿足不同層次人員的需求; 同時,本書附有實際項目的硬件設計圖和軟件實現代碼,可供讀者自我學習和自我提高使用。
本書可作為高等院校信息與通信工程及相關專業的本科生教材,也可以作為智能硬件愛好者創新手冊使用,還可以為創客的需求產生、分析產品、設計生產、實現產品提供幫助。對于從事物聯網創新開發和設計的專業技術人員,本書也可以作為主要的技術參考書。
本書從構思、設計到實現,深入理解Arduino項目開發!《Arduino案例實戰》系統論述了Arduino開源硬件的開發方法和技術。書中以豐富Arduino設計實例,介紹了智能硬件的物聯網應用。在處理嵌入式系統的開發過程中,使用Arduino開源平臺,將事半功倍,極大提高效率。本書涉及的主題:
(1) 智能控制類開發案例
(2) 人機交互類開發案例
(3) 生活便捷類開發案例
(4) 物聯網絡類開發案例
(5) 其他創意類開發案例
本書突出的特點:
(6) 典型場景的創新應用
(7) 智能開源的編程實踐
(8) 不同領域的經典案例
(9) 多種產品的功能實現
注:本書提供配套學習資源,下載地址為清華大學出版社本書頁面。
前言
物聯網、智能硬件和大數據技術給社會帶來了巨大的沖擊,個性化、定制化和智能化的硬件設備成為未來的發展趨勢。中國制造2025計劃、德國的工業4.0及美國的工業互聯網,都是將人、數據和機器連接起來,其本質是工業的深度信息化,為未來智能社會的發展提供制造技術基礎。
在“大眾創業萬眾創新”的時代背景下,人才的培養方法和模式,也應該滿足當前的時代需求。作者試圖依據當今信息社會的發展趨勢,結合Arduino開源硬件的發展及智能硬件的發展要求,探索基于創新工程教育的基本方法,并將其提煉為適合我國國情、具有自身特色的創新實踐教材。本書將實際教學中應用智能硬件的創新工程教學經驗進行總結,包括具體的創新方法和開發案例,希望對教育教學及工業界有所幫助,起到拋磚引玉的作用。
本書系統地介紹了如何利用Arduino開發平臺進行產品開發,包括相關的設計、實現與產品的應用。傳統Arduino方面的書籍僅側重介紹硬件開發平臺的實現方法,而很少關注具體創新案例的開發及工程教育方法應用。因此,本書試圖面向未來的工業創新與發展,通過CDIO的工程教育方法,以智能開源硬件平臺為基礎,培養面向工業4.0的創新型人才。
本書的內容和素材主要來自于作者所在的學校近幾年承擔的教育部和北京市的教育、教學改革項目和成果,是北京郵電大學信息工程專業的所有同學,通過基于CDIO工程教育方法的實施,使得創新產品的整個過程得到了實現,同學們不但學到了知識,提高了能力,而且為本書提供了第一手素材和資料。本書的主要內容包括Arduino項目設計基礎和22個開發案例,涉及智能控制類開發案例、生活便捷類開發案例、物聯網絡類開發案例、人機交互類開發案例及其他創意類開發案例。
對于書中的每個案例從項目背景、創意描述、功能及總體設計、具體電路圖、系統流程圖、子模塊介紹、產品展示、故障及問題分析以及每個案例所用元器件進行詳細講解,使讀者可以從不同層面對開發案例進行分析、理解和具體實現。
本書的編寫得到了教育部電子信息類專業教學指導委員會、信息工程專業國家第一類特色專業建設項目、信息工程專業國家第二類特色專業建設項目、教育部CDIO工程教育模式研究與實踐項目、教育部本科教學工程項目、信息工程專業北京市特色專業建設、北京市教育教學改革項目及北京郵電大學教學綜合改革項目的大力支持,在此表示感謝!
同時,也特別感謝林家儒教授的鼎力支持和悉心指導,感謝譚揚、鄭鋮、黃旭新、顧鐵玥等研究生同學的大力協助,感謝北京郵電大學信息工程專業所有同學,感謝父母妻兒在精神上給予的支持與鼓勵,才使得本書得以問世!
本書由北京市教育科學“十二五”規劃重點課題(優先關注)和北京市職業教育產教融合專業建設模式研究(ADA15159)資助,特此表示感謝!
本書內容由總到分、先思考后實踐,創新思維與實踐案例相結合,以滿足不同層次人員的需求; 同時,本書附有實際項目的硬件設計圖和軟件實現代碼,可供讀者自我學習和自我提高使用。本書可作為大學信息與通信工程及相關專業的本科生教材,也可以作為智能硬件愛好者創新手冊使用,還可以為創客的需求產生、分析產品、設計生產、實現產品提供幫助。對于從事物聯網創新開發和設計的專業技術人員,本書也可以作為主要的技術參考書。
由于作者的水平有限,書中難免存在不當之處,衷心地希望各位讀者提出寶貴意見及具體的整改措施,以便作者進一步修改和完善。
李永華
2017年9月
于北京郵電大學
李永華 現執教于北京郵電大學,擁有超過10年的嵌入式開發經驗,致力于物聯網和智能硬件的研究開發工作。在教學中以興趣為導向,激發學生的創造性;以素質為基礎,提高自身教學水平;以科研為手段,促進教學理念轉變。通過信息工程專業綜合改革,探索了以“學生學為中心”的教學模式,營造生動活潑的學習方法,提高學生獨立思考問題、發現問題、解決問題的能力,激發學生的創造激情。在研發及教學實踐中指導學生實現200余個創新案例,并指導著一支物聯網開發團隊,曾在物聯網、開源硬件等技術領域進行了多場學術報告,并且出版了《AllJoyn技術原理及物聯網程序開發指南》《Arduino實戰指南——游戲開發、智能硬件、人機交互、智能家居與物聯網設計30例》《Arduino軟硬件協同設計實戰指南》等多部物聯網技術方向的著作。
目錄
第1章Arduino項目設計基礎
1.1開源硬件簡介
1.2Arduino開源硬件
1.2.1Arduino開發板
1.2.2Arduino擴展板
1.3Arduino軟件開發平臺
1.3.1Arduino平臺特點
1.3.2Arduino IDE的安裝步驟
1.3.3Arduino IDE的使用方法
1.4Arduino編程語言
1.4.1Arduino編程基礎
1.4.2數字I/O口的操作函數
1.4.3模擬I/O口的操作函數
1.4.4高級I/O函數
1.4.5時間函數
1.4.6中斷函數
1.4.7串口通信函數
1.4.8Arduino的庫函數
1.5Arduino硬件設計平臺
1.5.1Fritzing軟件簡介
1.5.2Fritzing使用方法
1.5.3Arduino電路設計
1.5.4Arduino樣例與編程
第2章基于Arduino的四軸飛行器
2.1項目背景
2.2創意描述
2.3功能及總體設計
2.3.1功能介紹
2.3.2總體設計
2.3.3模塊介紹
2.4產品展示
2.5故障及問題分析
2.6元器件清單
第3章智能自動撿球機
3.1項目背景
3.2創意描述
3.3功能及總體設計
3.3.1功能介紹
3.3.2總體設計
3.3.3模塊介紹
3.4產品展示
3.5故障及問題分析
3.6元器件清單
第4章智能泊車系統
4.1項目背景
4.2創意描述
4.3功能及總體設計
4.3.1功能介紹
4.3.2總體設計
4.3.3模塊介紹
4.4產品展示
4.5故障及問題分析
4.6元器件清單
第5章北郵艇
5.1項目背景
5.2創意描述
5.3功能及總體設計
5.3.1功能介紹
5.3.2總體設計
5.3.3模塊介紹
5.4產品展示
5.5故障及問題分析
5.6元器件清單
第6章無人停車庫
6.1項目背景
6.2創意描述
6.3功能及總體設計
6.3.1功能介紹
6.3.2總體設計
6.3.3模塊介紹
6.4產品展示
6.5故障及問題分析
6.6元器件清單
第7章多功能模型小車
7.1項目背景
7.2創意描述
7.3功能及總體設計
7.3.1功能介紹
7.3.2總體設計
7.3.3模塊介紹
7.4產品展示
7.5故障及問題分析
7.6元器件清單
第8章App遙控四軸飛行器
8.1項目背景
8.2創意描述
8.3功能與整體設計
8.3.1功能介紹
8.3.2總體設計
8.3.3模塊介紹
8.4產品展示
8.5故障及問題分析
8.6元器件清單
第9章紅外遙控智能小車
9.1項目背景
9.2創意描述
9.3功能及總體設計
9.3.1功能介紹
9.3.2總體設計
9.3.3模塊介紹
9.4產品展示
9.5故障及問題分析
9.6元器件清單
第10章藍牙手柄避障小車
10.1項目背景
10.2創意描述
10.3功能及總體設計
10.3.1功能介紹
10.3.2總體設計
10.3.3模塊介紹
10.4產品展示
10.5故障及問題分析
10.6元器件清單
第11章紅外遙控自動避障小車
11.1項目背景
11.2創意描述
11.3功能及總體設計
11.3.1功能介紹
11.3.2總體設計
11.3.3模塊介紹
11.4產品展示
11.5故障及問題分析
11.6元器件清單
第12章自行車測速里程計
12.1項目背景
12.2創意描述
12.3功能及總體設計
12.3.1功能介紹
12.3.2總體設計
12.3.3模塊介紹
12.4產品展示
12.5故障及問題分析
12.6元器件清單
第13章超聲波自動避障小車
13.1項目背景
13.2創意描述
13.3功能及總體設計
13.3.1功能介紹
13.3.2總體設計
13.3.3模塊介紹
13.4產品展示
13.5故障及問題分析
13.6元器件清單
第14章DIY四軸飛行器
14.1項目背景
14.2創意描述
14.3功能及總體設計
14.3.1功能介紹
14.3.2總體設計
14.3.3模塊介紹
14.4產品展示
14.5故障及問題分析
14.6元器件清單
第15章拍照密碼鎖
15.1項目背景
15.2創意描述
15.3功能及總體設計
15.3.1功能介紹
15.3.2總體設計
15.3.3模塊介紹
15.4產品展示
15.5故障及問題分析
15.6元器件清單
第5章
北郵艇
設計者: 白帥邢瑞波凌通
5.1項目背景
常見Arduino應用主要局限于陸地和天上,將基于Arduino進行水中的創意項目則很少,基于以上事實設計制作一個微型艦艇。水中項目最大的挑戰是防水,對防水進行評估后,決定設計并制作——北郵艇,以求實現遠程操作、動力控制、超聲波探測、武器攻擊、音樂娛樂等功能,并實現藍牙手控和系統自動掃描兩種工作模式。
5.2創意描述
本項目在網絡上進行了基于Arduino的遙控船的搜索,發現幾乎沒有基于Arduino板的艦艇產品。因此發揮想象為北郵艇設計了以下幾個系統: 動力系統、藍牙遠程操控系統、偵察系統、攻擊系統、慶祝系統。其中,動力與藍牙遠程操控系統是本艇的核心,而偵察與攻擊系統相互配合使用。
本項目的創新點在于: 當偵察系統啟動后,會對周圍進行探測,當發現目標后水炮發射,攻擊目標,若攻擊結束,音樂響起,為勝利而慶祝。通過Arduino Uno板的指令進行控制操作,完成艦艇的所有功能。
5.3功能及總體設計
本產品主要分為4個部分進行設計: 動力系統、偵察系統、攻擊系統以及慶祝系統。動力系統方面提供的電壓和功率要能夠帶動艦艇的電機,同時負責船體的方向控制; 偵察系統方面,通過舵機控制方向,帶動超聲波探測敵方戰艦,前方180°準確掃描,不斷返回前方障礙物距離,一旦偵察到敵方目標,啟動攻擊系統進行攻擊; 本艦的攻擊系統由一門水炮構成,當超聲波探測到目標后,舵機停止轉動,水炮向目標發射水柱攻擊目標;慶祝系統通過控制播放“無敵”之歌,“傳郵萬里”來宣揚校訓,以及在成功攻擊的時候慶祝勝利。
5.3.1功能介紹
當超聲波探測系統啟動后,會對周圍進行探測,發現目標(返回值小于定量)后水炮發射,攻擊目標,攻擊結束,音樂響起,為勝利而慶祝。這一系列功能也可以通過手機端發送的指令進行操作。
艦艇的動力系統會在客戶端發送指令后啟動,當兩個電機同時啟動后,船會前行; 當左側電機單獨啟動,船將右轉; 當右側電機單獨啟動,船將左轉。
5.3.2總體設計
本作品分成4部分進行設計: 動力系統、偵察系統、攻擊系統以及慶祝系統。
1. 整體框架圖
項目整體框架如圖51所示。通過Arduino Uno板串聯整體,藍牙起到遠程操控作用。驅動板控制兩個電機的運轉來整體控制艦艇的行進方向。超聲波探測到目標后,舵機停止運轉,繼電器接通,水泵開始工作,當水泵停止工作,音樂播放。
圖51整體框架圖
2. 系統流程圖
系統流程如圖52所示。