※McGrawHill經典口袋書,知識點深入淺齣講解,把書讀得很薄,迅速提升Arduino編程能力。
※迴顧Arduino程序設計的基礎內容,並介紹更多程序設計的高階功能。
※通過實例展示如何利用少的儲存器即可有效工作、使用小功率完成大性能、支持不同類型的串行口、支持USB編程、支持網絡編程、數字信號處理DSP等內容。
※75個開源的Sketches示例提供下載使用。
※100餘個Arduino程序設計技巧等你實踐。
本書從提高Arduino使用效率、數據庫打包、硬件融閤、USB編程、網絡編程、數字信號編程等幾個方麵,來綜閤講解Arduino的晉級應用方法。書中迅速帶過Arduino的基礎知識,進入能力提升的主題,通過多個實例幫助讀者快速提升Arduino編程能力。
Simon Monk博士(英國Preston)擁有控製論和計算機科學學位以及軟件工程學博士學位。他做瞭幾年的學術研究,然後迴到瞭産業界,共同創辦瞭移動軟件公司Momote Ltd.。他從十來歲起就是一個活躍的電子愛好者,而且是業餘電子和開源硬件的全職作傢。Monk博士是眾多電子書籍的作者,精於開源硬件平颱,特彆是Arduino和樹莓派。
第1章 Arduino編程 1
什麼是 Arduino 1
軟件安裝和IDE 3
Arduino概覽 6
Arduino 開發闆 8
編程語言 12
修改Blink sketch 12
變量 14
If 15
Loops 16
函數 17
數字量輸入 18
數字量輸齣 20
串口監視器 20
數組和字符串 22
模擬量輸入 23
模擬量輸齣 25
使用庫 26
Arduino數據類型 28
Arduino 指令 29
總結 30
第2章 內部機理 31
Arduino發展概況 31
Arduino內部結構 31
AVR微控製器 32
Arduino 和Wiring 35
從sketch到Arduino 38
AVR Studio 41
安裝引導程序 43
總結 46
第3章 中斷和定時器 47
硬件中斷 47
啓用和禁用中斷 53
定時器中斷 53
總結 56
第4章 讓Arduino更快 57
Arduino到底有多快? 57
Arduino開發闆之間的比較 58
算法加速 59
查找與計算 60
快速I/O 62
模擬量輸入的加速 68
總結 69
第5章 低功耗的Arduino 70
Arduino開發闆的功耗 70
電流和電池 72
降低時鍾頻率 73
關閉一些模塊 75
休眠 76
輸齣數字量控製功耗 80
總結 82
第6章 內存 83
Arduino內存 83
減少RAM的使用 84
最小化閃存占用 89
靜態與動態內存分配對比 90
字符串 91
EEPROM的使用 95
使用閃存 100
使用SD卡存儲數據 102
總結 104
第7章 I2C總綫的使用 105
I2C硬件 106
I2C協議 107
Wire庫 108
I2C示例 110
總結 116
第8章 1-Wire器件接口 117
1-Wire硬件 117
1-Wire協議 118
OneWire 程序庫 118
使用DS18B20 121
總結 122
第9章 SPI器件接口 123
位操作 123
SPI硬件 127
SPI協議 129
SPI庫 129
SPI 示例 131
總結 134
第10章 UART串行編程 135
串行硬件 135
串行通信協議 137
串行命令 138
軟件串行通信庫 140
串行通信示例 141
總結 148
第11章 USB編程 149
鍵盤和鼠標仿真 149
USB主機編程 152
總結 159
第12章 網絡編程 160
網絡硬件 160
Ethernet庫 163
以太網示例 167
WiFi庫 173
WiFi示例 174
總結 175
第13章 數字信號處理 176
數字信號處理介紹 176
讀數求均值 177
濾波介紹 179
構建一個簡易低通濾波器 180
Arduino Uno 的數字信號處理 181
Arduino Due數字信號處理 183
濾波器代碼生成 185
傅裏葉變換 188
總結 192
第14章 管理一個進程 193
轉變大型係統的編程習慣 193
為什麼你不需要綫程 194
設置和循環 194
Timer庫 197
總結 198
第15章 編寫程序庫 199
何時編寫程序庫 199
使用類與方法 200
庫示例(TEA5767 Radio) 200
測試庫文件 205
發布這個庫 205
總結 206
附件A 器件 207
Arduino開發闆 207
擴展闆 207
器件與模塊 208
供應商 208
每一章節涉及Arduino編程的特定主題。除瞭介紹、迴顧Arduino基礎知識的第1章外,剩餘的章節完全按照你的喜好來進行閱讀。
如果你是一個在其它領域有經驗的開發者,估計你會喜歡先閱讀第14章,然後把Arduino編程放到特定的語義場景中。接下來對每一章進行介紹。
1.第1章“Arduino編程”包含瞭Arduino程序設計的歸納與總結。對於需要快速掌握Arduino基礎知識的人來說,這是入門章節。
2. 在第二章“內部機理”中,我們窺視瞭Arduino的軟件是如何工作的?它來自哪裏?
3.第3章“中斷和定時器”。 新手常常避開使用中斷,其實他們完全不用這樣,因為有時采用中斷是很方便的,同時所涉及的相關代碼也不復雜。雖然中斷也有一些缺陷,本章將告訴你自己需要知道什麼。
4. 第4章“讓Arduino更快”。 Arduino的處理器速度慢、功耗低。所以有時你需要盡可能挖掘它們的潛力。例如,內嵌digitalWrite函數是安全和簡單易用的,但其效率低,特彆是同時對多個輸齣進行設置時。在這章裏,你將尋求提高性能的方法,同時學習其它技術來編寫時效性強的sketche。
5. 第5章“低功耗的Arduino”。當你用電池或太陽電池給Arduino供電時,你需要考慮把功耗降到很低。此外為瞭優化硬件設計,你也可以通過編寫代碼來降低Arduino的功耗。
6.第6章“內存”。在本章中,在sketche中,我們探尋盡量小的內存的使用及其優勢,以及動態使用內存所帶來的風險。
7.第7章“I2C總綫的使用”。 Arduino的I2C接口能很容易地實現與模塊和器件間的通信,減少所需引腳的數量。這一章闡述瞭I2C工作原理及其使用方法。
8.第8章“1-Wire器件接口”。本章著眼於1-wire總綫器件,例如Dallas傢族中非常流行、用於Arduino的溫度傳感器。你能學習1-wire總綫工作原理和使用方法。
9.第9章“SPI器件接口”。 Arduino的另一個接口標準是SPI。本章探索它的工作原理和使用方法。
10. 第10章“UART串行編程”。通過USB或Arduino的Rx和Tx引腳,在外設和其它Arduino之間,串行通信提供瞭非常重要的數據交換通道。在本章中你可以學習到串行通信的工作原理及其使用方法。
11. 第11章“USB編程”。本章介紹瞭具有USB接口的Arduino使用的各個方麵。你將學習由Arduino Leonardo提供的鍵盤和鼠標模擬功能。以及允許USB鍵盤或鼠標連接到內嵌Arduino設備的逆嚮過程。
12.第12章“網絡編程”。 Arduino在物聯網中是一個常見的器件。在本章中,你將學習Arduino的互聯網編程方法。其主題涉及Wi-Fi和以太網擴展闆、web服務的使用以及把Arduino作為迷你web服務器。
13. 第13章“數字信號處理”。Arduino具有初步的信號處理能力。本章討論瞭各種技巧,從對來自模擬輸入端的信號進行濾波,使用的是軟件技術而不是額外的電子部件,到采用傅裏葉變換技術,計算一個信號中各種頻率的相對大小。
14. 第14章“管理一個進程”。有大型係統編程背景的程序員接觸到Arduino時,往往意味著在Arduino中缺乏多綫程和並發機製,由於一些缺陷。在這章中,我試著修正和展示如何采用嵌入式係統的單綫程模型。
15. 第15章“編寫程序庫”。 總有一天,考慮到彆人能夠使用,你將把事情做得確實很好。這是把代碼打包生成庫函數並將其嚮全世界發布的時代。本章介紹瞭它的實現方法。
這本書的內容,讓我覺得在“智能硬件”這個概念的理解上,存在一些偏差。我原本以為“智能”意味著更高級的邏輯、更自主的學習能力、或者更復雜的交互方式。比如,如何利用傳感器數據來預測用戶行為,或者如何通過簡單的機器學習模型讓 Arduino 具備一定的“思考”能力。但書中所展示的“智能硬件”程序設計,更多的是將傳感器數據與一些預設的規則進行匹配,實現一些自動化的功能。這在很多情況下是必要的,也是非常實用的,但它似乎未能觸及到“智能”更深層次的含義。我希望看到的是,作者能分享一些更具前瞻性的例子,比如如何利用 Arduino 實現簡單的自然語言處理,或者如何通過數據分析來優化硬件的運行。此外,在程序設計的技巧方麵,我也覺得有些內容可以更深入。例如,在介紹多任務處理時,是否可以更詳細地講解一下 RTOS(實時操作係統)在 Arduino 上的應用?或者在討論通信協議時,是否可以對比一下不同協議的優缺點,並給齣一些選擇的建議?這本書在一些關鍵技術的講解上,顯得有些淺嘗輒止,未能充分滿足我對“進階”的需求。
評分這本書的結構安排,讓我有些許的失望。我以為“75個智能硬件程序設計技巧”會像一個寶庫,每一頁都隱藏著驚喜,能讓我立刻學到一兩個能立刻用上的、並且能顯著提升我項目能力的竅門。但實際上,很多“技巧”感覺都比較零散,缺乏係統的關聯性。比如,我翻到關於傳感器數據采集的部分,雖然提到瞭幾種不同的傳感器,但對於如何根據實際應用場景選擇最閤適的傳感器,以及如何對采集到的數據進行預處理和濾波,並沒有深入的講解。我更希望看到的是,針對同一類問題,作者能提供多種不同的解決方案,並分析各自的優缺點,以及適用的場景。例如,在處理串口通信時,除瞭基本的讀取和發送,有沒有更高級的協議設計,或者如何處理高並發的串口數據流?再比如,在討論功耗優化時,除瞭簡單的休眠模式,有沒有更精細的電源管理策略,或者如何根據任務的優先級來動態調整功耗?這些是我在實際項目開發中經常會遇到,並且渴望找到更優解的問題。這本書更多的是羅列瞭一些功能性的實現,而缺乏對“為什麼”和“如何做得更好”的深入剖析,讓我覺得它更像是一個功能集閤,而不是一個真正能啓發思考和提升能力的“技巧”指南。
評分坦白說,這本書的“75個技巧”我並沒有完全感受到其“技巧”的精妙之處。很多內容更像是對 Arduino 標準庫函數和常見硬件模塊功能的組閤應用。我期待的“技巧”應該包含一些非傳統的、能夠顯著簡化開發流程、提高程序效率、或者實現一些看似睏難的功能的“竅門”。例如,在進行傳感器數據融閤時,有哪些巧妙的算法可以幫助我獲得更準確的結果?在進行硬件抽象層設計時,有沒有什麼通用的模式可以讓我編寫齣更易於維護和擴展的代碼?再者,在處理一些低功耗場景時,除瞭基本的休眠模式,還有哪些更高級的省電策略?這本書在這些方麵的內容相對不足,讓我覺得它更像是一本“Arduino 功能手冊”的擴充版,而不是一本真正能夠提升我作為一名程序員的“思維能力”和“解決問題能力”的書籍。我希望作者能夠在未來的作品中,多分享一些自己獨到的見解和經驗,給齣一些更具深度和創造性的“編程技巧”,這樣纔能真正幫助讀者突破瓶頸,更上一層樓。
評分這本書的封麵設計很吸引人,色彩搭配大膽而富有科技感,但內容方麵,我不得不說,有些地方確實讓我感到有些摸不著頭腦。我原本是想找一些更進階的、能讓我觸類旁通的 Arduino 技巧,比如如何更高效地管理內存,或者如何利用一些鮮為人知但非常實用的庫函數來簡化復雜的邏輯。然而,翻開書頁,大部分篇幅似乎都在介紹一些基礎的硬件模塊連接和簡單的程序邏輯,比如閃爍 LED、讀取傳感器數據等等。我理解對於初學者來說,這些內容是必不可少的,但對於已經掌握瞭 Arduino 基本編程知識的我來說,這些內容顯得有些重復和冗餘。我期待的是能看到一些更深入的探討,例如如何優化代碼性能,如何進行並發編程,或者如何構建更復雜的係統,比如利用 MQTT 協議進行物聯網通信,或者集成一些機器學習的算法到 Arduino 項目中。這本書在這方麵的內容似乎有所欠缺,讓我感覺像是停留在瞭一個比較初級的水平,未能真正達到“Next Step”所暗示的進階程度。我希望作者在後續的版本中,能夠加入更多麵嚮中高級開發者的內容,分享一些更具挑戰性和實用性的編程技巧,這樣纔能真正幫助讀者在 Arduino 編程的道路上更進一步。
評分閱讀這本書的過程中,我最大的感受是,它更像是一本“上手指南”而非“進階秘籍”。我原本期望看到一些能夠幫助我解決實際開發中遇到的棘手問題的“絕招”,比如如何處理浮點數運算的精度問題,或者如何在資源受限的 Arduino 上實現更復雜的算法,又或者是如何對代碼進行單元測試和調試。但書中大部分的例程都相對簡單,容易理解,也很容易復製粘貼。這對於完全沒有接觸過 Arduino 的新手來說,或許是一個不錯的起點,但對於我這種已經積纍瞭一定經驗的開發者而言,這些內容似乎未能提供足夠的挑戰和啓發。我期待的是能看到一些關於算法優化、數據結構應用、或者與更高層係統(如 PC、服務器、雲平颱)進行交互的深入探討。例如,如何設計一個更健壯的錯誤處理機製,如何在硬件層麵實現更安全的通信,或者如何利用一些開源庫來快速實現一些高級功能。這本書在這些方麵的內容相對薄弱,讓我感覺自己像是站在瞭一個平颱邊緣,看到瞭遠方的風景,卻不知道如何邁齣那關鍵的一步。
評分貨已收到,感覺很不錯,好開心!
評分東西不錯 很喜歡 多搞活動啊
評分嗯
評分可以,書的內容不錯
評分不錯不錯不錯不錯不錯不錯
評分例子還不錯
評分不錯,還可以,非常喜歡。
評分很好的資料,認真學習一下。
評分打算學習下,買瞭很多書。都很不錯
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有