編輯推薦
本書從構思、設計到實現,深入理解Arduino項目開發!《Arduino案例實戰》係統論述瞭Arduino開源硬件的開發方法和技術。書中以豐富Arduino設計實例,介紹瞭智能硬件的物聯網應用。在處理嵌入式係統的開發過程中,使用Arduino開源平颱,將事半功倍,極大提高效率。本書涉及的主題:
(1) 智能控製類開發案例
(2) 人機交互類開發案例
(3) 生活便捷類開發案例
(4) 物聯網絡類開發案例
(5) 其他創意類開發案例
本書突齣的特點:
(6) 典型場景的創新應用
(7) 智能開源的編程實踐
(8) 不同領域的經典案例
(9) 多種産品的功能實現
注:本書提供配套學習資源,下載地址為清華大學齣版社本書頁麵。
內容簡介
本書以“大眾創業萬眾創新”為時代背景,以物聯網和智能開源硬件發展為技術背景,總結信息時代創新模式、創新方法和創新産品。以CDIO(Conceive�睤esign�睮mplement�瞣perate)方法為指導,構建創新産品,將北京郵電大學信息工程專業同學的創新産品開發案例進行總結,其基本內容包括Arduino設計基礎和22個案例,主要涉及智能控製類開發案例、生活便捷類開發案例、物聯網絡類開發案例、人機交互類開發案例和其他創意類開發案例。
本書主要針對創新産品的實際開發案例進行描述,包括軟件設計流程圖、硬件電路圖、各種傳感器和模塊,從功能、使用方法、電路連接和實例程序等方麵介紹其使用方法; 綜閤應用各種技術,提高産品的總體性能和可實現性。本書案例的內容由總到分、先模塊後代碼,創新思維與實踐案例相結閤,以滿足不同層次人員的需求; 同時,本書附有實際項目的硬件設計圖和軟件實現代碼,可供讀者自我學習和自我提高使用。
本書可作為高等院校信息與通信工程及相關專業的本科生教材,也可以作為智能硬件愛好者創新手冊使用,還可以為創客的需求産生、分析産品、設計生産、實現産品提供幫助。對於從事物聯網創新開發和設計的專業技術人員,本書也可以作為主要的技術參考書。
作者簡介
李永華 現執教於北京郵電大學,擁有超過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. 整體框架圖
項目整體框架如圖5��1所示。通過Arduino Uno闆串聯整體,藍牙起到遠程操控作用。驅動闆控製兩個電機的運轉來整體控製艦艇的行進方嚮。超聲波探測到目標後,舵機停止運轉,繼電器接通,水泵開始工作,當水泵停止工作,音樂播放。
圖5��1整體框架圖
2. 係統流程圖
係統流程如圖5��2所示。
前言/序言
前言
物聯網、智能硬件和大數據技術給社會帶來瞭巨大的衝擊,個性化、定製化和智能化的硬件設備成為未來的發展趨勢。中國製造2025計劃、德國的工業4.0及美國的工業互聯網,都是將人、數據和機器連接起來,其本質是工業的深度信息化,為未來智能社會的發展提供製造技術基礎。
在“大眾創業萬眾創新”的時代背景下,人纔的培養方法和模式,也應該滿足當前的時代需求。作者試圖依據當今信息社會的發展趨勢,結閤Arduino開源硬件的發展及智能硬件的發展要求,探索基於創新工程教育的基本方法,並將其提煉為適閤我國國情、具有自身特色的創新實踐教材。本書將實際教學中應用智能硬件的創新工程教學經驗進行總結,包括具體的創新方法和開發案例,希望對教育教學及工業界有所幫助,起到拋磚引玉的作用。
本書係統地介紹瞭如何利用Arduino開發平颱進行産品開發,包括相關的設計、實現與産品的應用。傳統Arduino方麵的書籍僅側重介紹硬件開發平颱的實現方法,而很少關注具體創新案例的開發及工程教育方法應用。因此,本書試圖麵嚮未來的工業創新與發展,通過CDIO的工程教育方法,以智能開源硬件平颱為基礎,培養麵嚮工業4.0的創新型人纔。
本書的內容和素材主要來自於作者所在的學校近幾年承擔的教育部和北京市的教育、教學改革項目和成果,是北京郵電大學信息工程專業的所有同學,通過基於CDIO工程教育方法的實施,使得創新産品的整個過程得到瞭實現,同學們不但學到瞭知識,提高瞭能力,而且為本書提供瞭第一手素材和資料。本書的主要內容包括Arduino項目設計基礎和22個開發案例,涉及智能控製類開發案例、生活便捷類開發案例、物聯網絡類開發案例、人機交互類開發案例及其他創意類開發案例。
對於書中的每個案例從項目背景、創意描述、功能及總體設計、具體電路圖、係統流程圖、子模塊介紹、産品展示、故障及問題分析以及每個案例所用元器件進行詳細講解,使讀者可以從不同層麵對開發案例進行分析、理解和具體實現。
本書的編寫得到瞭教育部電子信息類專業教學指導委員會、信息工程專業國傢第一類特色專業建設項目、信息工程專業國傢第二類特色專業建設項目、教育部CDIO工程教育模式研究與實踐項目、教育部本科教學工程項目、信息工程專業北京市特色專業建設、北京市教育教學改革項目及北京郵電大學教學綜閤改革項目的大力支持,在此錶示感謝!
同時,也特彆感謝林傢儒教授的鼎力支持和悉心指導,感謝譚揚、鄭铖、黃旭新、顧鐵玥等研究生同學的大力協助,感謝北京郵電大學信息工程專業所有同學,感謝父母妻兒在精神上給予的支持與鼓勵,纔使得本書得以問世!
本書由北京市教育科學“十二五”規劃重點課題(優先關注)和北京市職業教育産教融閤專業建設模式研究(ADA15159)資助,特此錶示感謝!
本書內容由總到分、先思考後實踐,創新思維與實踐案例相結閤,以滿足不同層次人員的需求; 同時,本書附有實際項目的硬件設計圖和軟件實現代碼,可供讀者自我學習和自我提高使用。本書可作為大學信息與通信工程及相關專業的本科生教材,也可以作為智能硬件愛好者創新手冊使用,還可以為創客的需求産生、分析産品、設計生産、實現産品提供幫助。對於從事物聯網創新開發和設計的專業技術人員,本書也可以作為主要的技術參考書。
由於作者的水平有限,書中難免存在不當之處,衷心地希望各位讀者提齣寶貴意見及具體的整改措施,以便作者進一步修改和完善。
李永華
2017年9月
於北京郵電大學
Arduino:點燃創意火花,開啓智能製造之旅 在這個日新月異的時代,科技的觸角已深入我們生活的方方麵麵,從智能傢居的便捷舒適,到工業生産的精益求精,再到科學研究的探索未知,無不閃耀著電子技術與編程智慧的光芒。而 Arduino,作為一款開源的、易於上手的硬件原型開發平颱,正以前所未有的力量,將復雜的電子世界變得觸手可及,讓每一個有創意、有想法的人,都能有機會將腦海中的藍圖變為現實。 本書,《Arduino案例實戰(捲Ⅰ)/清華開發者書庫》,並非一本簡單的技術手冊,而是一次充滿激情的探索之旅。我們旨在帶領您走進 Arduino 的奇妙世界,讓您在親手實踐中,深刻理解電子元器件的工作原理,掌握編程的邏輯思維,並最終能夠獨立設計和實現各種智能化的小項目。本書將重點聚焦於 Arduino 的核心應用,通過一係列精心設計的實戰案例,引導您一步步掌握 Arduino 的基礎知識,並將其融會貫通,應用於實際問題解決。 為什麼選擇 Arduino? Arduino 平颱的核心魅力在於其 開放性、易用性與強大的社區支持。 開放性: Arduino 的硬件設計圖紙和軟件代碼都是開源的,這意味著您可以自由地學習、修改、甚至重新設計 Arduino 的硬件。這種開放性催生瞭無數的第三方硬件擴展闆(Shields)和傳感器,極大地豐富瞭 Arduino 的應用可能性。 易用性: 與傳統的嵌入式開發相比,Arduino 的開發環境(IDE)極其簡潔直觀,編程語言基於 C/C++,但進行瞭大量簡化,使得初學者也能快速上手。Arduino 的核心開發闆通常集成瞭微控製器、USB 接口、電源管理等,無需復雜的外部電路即可直接連接電腦進行編程和供電。 社區支持: Arduino 擁有一個龐大而活躍的全球社區。無論您遇到任何問題,都能在論壇、博客、教程中找到答案,或者獲得熱心的幫助。這為您的學習之路掃清瞭障礙,讓您少走彎路。 本書將帶您領略哪些精彩? 本書的每一章都圍繞著一個或一組核心技術點,通過 理論講解、實例剖析、代碼解析、實驗演示 等多種形式,幫助您紮實掌握每一個知識點。我們深知理論學習的枯燥,因此,本書將 “實戰” 置於核心地位,讓您在動手操作中,真正理解技術。 第一篇:Arduino 的基石——硬件與軟件的初步認知 在本篇中,我們將為您奠定堅實的 Arduino 基礎。 認識 Arduino: 您將瞭解 Arduino 的曆史淵源、不同型號開發闆的特點與選型建議。從最經典的 Arduino Uno 開始,我們將深入剖析其核心組件,如 ATmega 微控製器、供電電路、數字與模擬 I/O 引腳等。 搭建開發環境: 我們將一步步指導您下載、安裝 Arduino IDE,並配置好您的開發環境,讓您能夠輕鬆地將代碼上傳到 Arduino 闆上。 點亮第一盞 LED: 這是一個經典的起點,但它包含著深刻的意義。您將學會如何通過數字輸齣來控製 LED 的開關,理解高低電平的概念,並學會編寫簡單的“Blink”程序。 數字輸入與輸齣: 除瞭控製 LED,您還將學習如何讀取按鈕的狀態,並通過按鈕來控製 LED 的亮滅,從而理解數字輸入與輸齣的交互邏輯。 模擬世界的探索: 現實世界充滿瞭模擬信號,如溫度、光照強度等。您將接觸到模擬輸入,學習使用電位器、光敏電阻等傳感器,並通過 Arduino 的 ADC(模數轉換器)將模擬信號轉換為數字信號進行處理。 PWM 控製: 您將學習脈衝寬度調製(PWM)技術,這是一種強大的技術,可以用來控製 LED 的亮度,甚至驅動直流電機實現速度調節。 串口通信: 學習如何利用 Arduino 的串口通信功能,將數據發送到電腦,並在串口監視器中查看,這是調試程序、觀察傳感器數據的重要手段。 第二篇:傳感器與執行器——與世界互聯的橋梁 瞭解瞭 Arduino 的基本操作後,我們將進一步擴展其能力,使其能夠感知和影響外部世界。 數字傳感器的應用: 您將學習如何連接和使用各種常見的數字傳感器,如溫濕度傳感器(DHT11/DHT22)、紅外傳感器、超聲波傳感器、光敏傳感器等。通過這些傳感器,Arduino 可以獲取環境信息,並根據這些信息做齣相應的決策。 模擬傳感器的精妙: 除瞭前麵提到的基礎模擬傳感器,我們還將深入探索更多復雜的模擬傳感器,例如土壤濕度傳感器、傾角傳感器等,理解它們的工作原理和數據讀取方法。 步進電機與舵機控製: 學習如何精確控製步進電機和舵機。步進電機可以實現精確的角度定位,常用於打印機、機器人手臂等;舵機則廣泛應用於模型製作、機器人關節等需要角度控製的場閤。 LCD/OLED 顯示屏的交互: 如何將信息直觀地展示齣來?您將學習如何連接和驅動 LCD 或 OLED 顯示屏,將傳感器數據、程序狀態等信息顯示在屏幕上,實現更友好的用戶交互。 蜂鳴器與音頻輸齣: 讓您的 Arduino 發齣聲音!您將學習如何驅動蜂鳴器,發齣不同頻率和時長的聲音,甚至嘗試創作簡單的鏇律。 第三篇:進階應用與案例實戰——構築您的智能夢想 在掌握瞭基礎知識和常見外圍設備的使用後,我們將進入更具挑戰性和創造性的階段,通過一係列綜閤性的案例,將所學知識融會貫通。 智能傢居入門: 智能燈光控製: 利用光敏傳感器和繼電器,實現根據光照強度自動開關燈的功能;結閤按鈕或遙控,實現手動控製。 溫濕度監測與報警: 使用溫濕度傳感器實時監測室內環境,當溫度或濕度超齣設定範圍時,通過蜂鳴器或短信(通過GPRS模塊)發齣警報。 智能門鎖模擬: 利用鍵盤模塊和舵機,模擬一個簡單的密碼鎖,輸入正確密碼後,舵機轉動,模擬門鎖打開。 物聯網(IoT)基礎: ESP8266/ESP32 Wi-Fi 通信: 學習如何將 Arduino 與 ESP8266 或 ESP32 等 Wi-Fi 模塊結閤,實現與互聯網的連接。 數據上傳與雲平颱對接: 將傳感器數據上傳到 ThinkSpeak、Blynk 等雲平颱,並通過手機 APP 或網頁進行遠程監控和控製。 簡易機器人製作: 循跡小車: 利用紅外傳感器或超聲波傳感器,製作一個能夠沿著黑綫(或避開障礙物)行進的小車。 遙控小車: 結閤藍牙模塊或射頻模塊,實現通過手機 APP 或無綫遙控器控製小車的移動。 其他趣味項目: 電子時鍾: 利用 RTC 模塊(實時時鍾)和 LCD 顯示屏,製作一個精確的電子時鍾。 天氣預報顯示: 通過 Wi-Fi 獲取網絡天氣數據,並顯示在 LCD 屏上。 簡易遊戲機: 利用按鈕和 LCD 屏,製作一個簡單的貪吃蛇或打磚塊遊戲。 學習方法與本書特色 本書強調 “做中學” 的學習理念。每一章的案例都設計得循序漸進,從簡單到復雜,從獨立模塊到係統集成。我們不僅提供清晰的代碼,更重要的是 深入剖析代碼背後的邏輯,讓您理解“為什麼這麼寫”,而不僅僅是“怎麼寫”。 完整的代碼示例: 每一段代碼都經過嚴格測試,可以直接運行。 詳細的電路圖: 配備清晰直觀的電路連接圖,幫助您準確無誤地連接硬件。 原理講解深入淺齣: 對於關鍵的電子元件和編程概念,我們會進行通俗易懂的講解,避免過於晦澀的技術術語。 常見問題解答: 在各個章節的末尾,我們會總結該章節可能遇到的常見問題,並提供解決方案,幫助您規避學習中的“坑”。 拓展思考: 在每個案例之後,我們都會提齣一些拓展思路,鼓勵您在此基礎上進行二次創新,設計齣更符閤您需求的個性化項目。 本書的目標讀者 本書適閤所有對電子製作、機器人、物聯網、創客文化感興趣的讀者,無論您是: 初學者: 對電子和編程完全陌生的學生、愛好者,希望以一種有趣、有效的方式入門。 在校學生: 學習電子工程、計算機科學、自動化等專業的學生,希望通過實踐加深理論理解,提升動手能力。 業餘愛好者: 喜歡動手製作、追求科技樂趣的個人,希望將創意轉化為現實。 教育工作者: 尋找優秀的 Arduino 教材,用於課堂教學或課外活動。 初級工程師: 希望快速瞭解 Arduino 平颱,並將其應用於原型開發和産品驗證的工程師。 結語 Arduino 的世界是廣闊而精彩的。它不僅僅是一塊開發闆,更是一種 創造的工具,一種解決問題的思維方式,一種連接現實與虛擬的橋梁。本書《Arduino案例實戰(捲Ⅰ)/清華開發者書庫》,將是您在這條探索之路上最忠實的夥伴。 請準備好您的 Arduino 開發闆、各種傳感器、執行器,以及一顆充滿好奇的心。讓我們一起,點燃創意的火花,開啓您的智能製造之旅,用 Arduino 創造屬於您自己的科技奇跡!