Arduino 從基礎到實踐( 0 編程經驗玩轉 Arduino 技術的完美自學手冊 )
【美】麥克羅伯茨(McRoberts,M.)著
楊繼志 郭敬 譯 .
ISBN 978-7-121-19201-2
2013 年 3 月出版
定價: 79.00 元
468 頁
16 開
編輯推薦
本書通過50個非常酷的項目講授當前流行的Arduino知識,幫你會從一個初學者,轉變成為能夠建立自己的Arduino項目的能手,而且之前絕對不需要你擁有任何編程和電子知識。
本書採用手把手教學方法,從開始你就會沉浸在項目製作中,學習如何使用各種電子元件,學習如何對Arduino編程以實現控制和溝通各種元件。每一個項目都建立在之前項目的知識基礎上,你可以穩步提升編程知識和電子技術技能。
本書採用逐步詳細講解的教學方法,列出了全部原始碼,你可以學到非常有趣的東西.學習完這本書你就可以非常自信並有創造力地製作屬於自己的項目了!一起開動吧。
內容提要
採用Arduino進行電子製作越來越流行,在網路上可以找到很多用Arduino製作機器人、媒體互動產品、電子創意項目的案例。本書用50個項目來介紹Arduino的套用,從最基礎的輸入輸出項目逐漸進入較高級的話題,比如Arduino與網際網路的連線等。每一個項目都由完整的硬體方案和軟體程式組成,讀者無須再翻閱其他書籍即可完成本書中的各種電子製作項目。
本書對讀者的基礎知識要求非常低,非常適合學生進行課外電子製作項目使用,同時本書也介紹了一些相當有難度和實用性很強的項目,對於有一定基礎的電子愛好者也有很好的參考價值。
目錄
作者簡介 iii
校訂者簡介 iv
致謝 v
前言 vi
第1章引言 1
如何使用本書 2
你需要的東西 2
Arduino到底是什麼? 3
可以開始了 6
在Windows XP上安裝 7
在Windows 7或Vista上安裝 8
在Mac OSX上安裝 8
板子和接口的選擇 9
載入第一個程式 11
Arduino的IDE 12
第2章讓我們開始吧 19
項目1——LED閃燈器 19
需要的元件 19
連線所有的東西 20
輸入代碼 21
代碼回顧 21
硬體回顧 26
項目2——S.O.S莫爾斯碼信號源 31
代碼回顧 32
項目3——交通信號燈35
需要的元件 35
把元件連起來 35
輸入代碼 36
項目4——互動交通燈37
需要的元件 38
把元件連線起來 38
輸入代碼 38
代碼回顧 41
硬體回顧 45
邏輯狀態 45
下拉電阻 46
上拉電阻 47
Arduino的內部上拉電阻 48
小結 49
本章的主題和概念 49
第3章 LED效果51
項目5——LED跑馬燈效果 51
需要的元件 51
把元件連線起來 51
代碼回顧 53
項目6——互動LED跑馬燈效果55
需要的元件 55
把元件連線起來 55
輸入代碼 56
代碼回顧 57
硬體回顧 57
項目7——閃爍燈58
需要的元件 58
把元件連起來 59
輸入代碼 59
代碼回顧 60
項目8——RGB彩燈 61
需要的元件 61
把元件連線起來 62
輸入代碼 62
代碼回顧 63
項目9——LED火焰效果 67
需要的元件 67
把元件連線起來 68
輸入代碼 68
代碼回顧 69
項目10——串口控制彩燈 70
輸入代碼 70
代碼回顧 73
小結 83
本章的主題和概念 83
第4章簡單的發聲器和感測器 85
項目11——壓電聲音報警器 85
需要的元件 85
把元件連線起來 85
輸入代碼 86
代碼回顧 87
硬體回顧 88
項目12——壓電揚聲器音樂演奏 89
輸入代碼 90
代碼回顧 91
項目13——壓電震動感測器 95
需要的元件 95
把元件連線起來 95
輸入代碼 96
代碼回顧 97
項目14——光敏元件 98
需要的元件 98
把元件連線起來 99
輸入代碼 99
硬體回顧 100
小結 102
本章的主題和概念 102
第5章驅動直流電機 104
項目15——簡單的電機控制系統 104
需要的元件 104
把元件連線起來 105
輸入代碼 106
代碼回顧 106
硬體回顧 107
項目16——使用L293D電機驅動晶片 109
需要的元件 109
把元件連線起來 110
輸入代碼 111
代碼回顧 112
硬體回顧 113
小結 115
本章的主題和概念 115
第6章二進制計數器 116
項目17——移位暫存器8位二進制計數器 116
需要的元件 116
把元件連線起來 117
輸入代碼 117
二進制數制 119
硬體回顧 120
代碼回顧 123
按位操作 125
代碼回顧(繼續) 128
項目18——16位二進制計數器 130
需要的元件 130
把元件連線起來 130
輸入代碼 131
代碼和硬體回顧 133
小結 134
本章的主題和概念 134
第7章 LED顯示器 135
項目19——LED點陣顯示器——基本動畫 135
需要的元件 135
把元件連線起來 136
輸入代碼 137
硬體回顧 140
代碼回顧 143
項目20——LED點陣顯示器——滾動畫面 146
輸入代碼 146
代碼回顧 148
項目21——LED點陣顯示器——滾動信息 151
需要的元件 152
把元件連線起來 152
輸入代碼 154
硬體回顧 159
代碼回顧 163
項目22——LED點陣顯示器——Pong遊戲 173
需要的元件 173
把元件連線起來 173
上傳代碼 174
代碼回顧 175
小結 180
本章的主題和概念 180
第8章液晶顯示器 182
項目23——基本的LCD控制 182
需要的元件 182
把元件連線起來 183
輸入代碼 184
代碼回顧 188
硬體回顧 193
項目24——LCD溫度顯示器 194
需要的元件 194
把元件連線起來 194
輸入代碼 195
代碼回顧 197
小結 201
本章的主題和概念 202
第9章舵機 203
項目25——舵機控制 204
需要的元件 204
把元件連線起來 204
輸入代碼 205
代碼回顧 206
硬體回顧 207
項目26——兩個舵機控制系統 208
需要的元件 208
把元件連線起來 209
輸入代碼 209
代碼回顧 211
項目27——操縱桿控制舵機 214
需要的元件 214
把元件連線起來 214
輸入代碼 216
代碼回顧 217
小結 218
本章的主題和概念 218
第10章步進電機和機器人 220
項目28——基本步進電機控制 220
需要的元件 220
把元件連線起來 221
輸入代碼 222
代碼回顧 223
硬體回顧 224
項目29——使用電機模板 226
需要的元件 226
把元件連線起來 227
輸入代碼 228
代碼回顧 230
硬體回顧 232
項目30——巡線機器人 233
需要的元件 233
把元件連線起來 234
輸入代碼 236
代碼回顧 239
小結 244
本章的主題和概念 244
第11章壓力感測器 246
項目31——數字壓力感測器 246
需要的元件 246
把元件連線起來 247
輸入代碼 248
代碼回顧 251
代碼回顧(繼續) 257
項目32——數字氣壓表 262
需要的元件 262
把元件連線起來 263
輸入代碼 264
代碼回顧 269
小結 275
本章的主題和概念 276
第12章觸控螢幕 277
項目33——基本的觸控螢幕 277
需要的元件 277
把元件連線起來 278
輸入代碼 279
硬體回顧 281
代碼回顧 282
項目34——觸控螢幕鍵盤 284
需要的元件 285
把元件連線起來 285
輸入代碼 286
代碼回顧 289
項目35——觸控螢幕燈控制 291
需要的元件 291
把元件連線起來 292
輸入代碼 293
代碼回顧 295
小結 297
本章的主題和概念 297
第13章溫度感測器 298
項目36——串口溫度感測器 298
需要的元件 298
把元件連線起來 299
輸入代碼 300
代碼回顧 301
項目37——單線數字溫度感測器 303
需要的元件 303
把元件連線起來 303
輸入代碼 304
代碼回顧 309
小結 312
本章的主題和概念 312
第14章超聲測距 313
項目38——簡單的超聲測距儀 313
需要的元件 313
把元件連起來 314
輸入代碼 314
代碼回顧 315
硬體回顧 317
項目39——超聲測距顯示儀 318
需要的元件 318
把元件連線起來 319
輸入代碼 321
代碼回顧 322
項目40——超聲報警 326
需要的元件 326
把元件連線起來 327
輸入代碼 327
代碼回顧 330
項目41——超聲電子音樂 333
輸入代碼 333
代碼回顧 334
小結 335
本章的主題和概念 336
第15章讀寫SD卡 337
項目42——簡單的SD卡讀寫 337
需要的元件 337
把元件連線起來 338
輸入代碼 338
代碼回顧 342
項目43——用SD卡記錄溫度數據 348
需要的元件 348
把元件連線起來 349
輸入代碼 350
代碼回顧 356
硬體回顧 361
小結 363
本章的主題和概念 363
第16章 RFID讀卡器 365
項目44——簡單的RFID讀卡器 365
需要的元件 366
把元件連線起來 366
輸入代碼 367
硬體回顧 367
項目45——門禁控制系統 368
需要的元件 369
把元件連線起來 369
輸入代碼 370
代碼回顧 373
小結 380
本章的主題和概念 380
第17章連線到Internet 381
項目46——Ethernet板 381
需要的元件 381
把元件連線起來 382
輸入代碼 382
代碼回顧 386
項目47——Internet天氣顯示 391
輸入代碼 394
代碼回顧 400
項目48——電子郵件提醒系統 410
輸入代碼 410
代碼回顧 414
項目49——微博機器人 421
輸入代碼 421
代碼回顧 425
項目50——RSS讀取氣象信息 431
輸入代碼 431
代碼回顧 436
小結 446
本章的主題和概念 446
作者簡介
米歇爾·麥克羅伯茨(Michael McRoberts)2008年在天體攝影的小項目中製作雲探測器,尋找將溫度感測器連線到PC的方法時發現了Arduino。經過研究,發現Arduino是解決這個問題的理想選擇。最後很快成功地製作出了雲探測器,而且價格便宜。米歇爾對Arduino的興趣由此開始。自那以後,他採用Arduino完成了大量的工程項目。他同時在網上發現了被稱為“地球之光電子”(Earthshine Electronics)的Arduino入門套件及組件。他採用Arduino製作的下一個項目是在UKHAS和CUSF的搭檔們的幫助下,將一個高海拔氣球送到邊緣空間進行拍照和錄像。他做這個項目僅僅是為了好玩。
當米歇爾還是一個孩子的時候,就對電子產生了濃厚的興趣。那時,無線電器材公司還在利用一百合一電子套件製作聖誕禮物單。在他青少年時,得到一台辛克萊81計算機,開始對編程感興趣。從那以後,他再也離不開計算機。最近,他又成為了Mac平台的冬粉。
他是倫敦黑客聯盟(London Hackspace)和奧爾平頓天文協會的會員,他還經常為Arduino論壇寫一些東西。他還喜歡以“Arduino愛好者”(TheArduinoGuy)為網名,潛伏在Arduino、高海拔探測項目和倫敦黑客聯盟(一個位於倫敦的非盈利性的技術人員分享工具和知識的社區)等論壇上,或在Twitter上與網民閒聊。閒暇之餘,他也喜歡研究天文學、天體攝像,以及騎機車兜風和航海。
校訂者簡介
約翰·亞當斯(John Adams)是一名程式設計師和設計師,具有超過9年的產品質量檢測軟體和管理項目設計經驗。他曾經為高校科研項目做過能夠射出27英寸電火花的特斯拉線圈。作為Isotope 11網站的首席設計師,他負責審查架構決策,及將用戶需要轉換成工作軟體。約翰畢業於阿拉巴馬大學伯明罕分校,獲得數學和哲學學位。約翰業餘時間利用他的Arduino微處理器核對了本書的程式。不工作的時候,約翰喜歡和他的家人在一起。
媒體評論
最優秀的初級到中級Arduino培訓教程。
——新IT技術顧問、HCI研究員、前數字設備公司高級職員,伊拉.拉夫斯基
對於讀者來說最合適的Arduino書。我買了大量的Arduino書籍,我一直相信我的Arduino圖書館已經足夠完全了。然而當我看到這本書,我意識到我錯了,本書絕對是一個頂級的集大成者。讀此書,我不忍釋卷,一直閱讀並對應操作至昨日凌晨。現在已經完成到了第三章項目,實在是太酷了。
——讀者,克里斯托弗.戴
本書對於初學者來說棒極了;對於高手和技術宅來說也充滿了趣味。本書非常棒,內容通俗易懂,循序漸進,從第一章開始幫助初學者建立項目樹立信心。我向各位新手們推薦它。
——讀者,愛德華.楊
前言
我第一次接觸Arduino是在2008年,當時我正在為雲探測計畫的溫度感測器與計算機的連線方法發愁。我想實現一個氣象論壇上的雲探測想法,因為這是個實習性質的項目,所以我不想因項目失敗而損失太多的錢。當時有許多解決方案,但是採用Arduino的方案對我來說有點特別,因為它不僅是容易使用、價格便宜的連線感測器的方法,而且它還可以用於其他很酷的事情。在部落格、視頻網站和論壇上有成千上萬的用Arduino做得很炫的項目。看上去很有團隊精神,每個人都試圖幫助其他人。
顯而易見,我可以從Arduino上得到很多樂趣。然而,我不想在網站上漫無目的地尋找需要的信息。我想要買一本關於Arduino的書籍,我想手邊有些資料在工作中隨時去翻閱。一番尋找後,我發現了一本書。但是,它太基礎了,信息量小,幾乎不能給我使用Arduino提供一點實際的幫助,而且我不喜歡那本書的講授方式。我希望得到的是一本手冊式的書來指導編程和學習電子知識,當我做一些東西時不想首先閱讀一大串理論知識。這種簡潔明了的書當時還不存在。
當我開始封裝基於Arduino的“地球之光”項目工具的時候,為幫助使用這個工具,我寫了一個小指導書指導其他人使用這個工具。這本小書後來非常流行,並且我從人們的提問中得到了幾百條反饋意見,包括什麼時候增加更多的項目或是否賣印刷版的指導手冊。實際上,我已經想到了寫一本初學者容易理解的書要採用這種項目講授方式,即簡單指導動手做的編寫方式。這就是這本書的來源。
我寫這本書假定讀者之前從來沒有編寫過電腦程式,也沒有電子知識,並且假定讀者在實際動手用Arduino做一些事情前沒有興趣學習大量的理論知識。因此,當你使用這本書時就從做一些小項目開始,接下來你將要完成整整50個項目,直到你對Arduino開發精通。我相信學一項技術最好的方法是通過直接動手做些事情來學。
本書是這樣編排的,第一個項目介紹一些關於Arduino編程和電子學知識的基本概念。接下來的項目再增加一點,每一個項目都建立在之前項目的基礎上,當你完成50個項目時,你就可以有信心並且專業地做你自己的項目了。用新的技巧和知識去連線Arduino的外圍元件,根據你的興趣用Arduino做電子設計項目。
每一個項目開始就列出了項目元件需求單。我選擇的都是通用元件,很容易買到。我也提供了一個電路圖直觀演示如何使用跳線和麵包板連線Arduino和元件。為給這本書生成元件圖和麵包板電路圖,我用了一款優秀的開源軟體Fritzing。這個程式用逼真的方法演示麵包板電路圖及其他電路。
當你連線電路之後,根據書中提供的代碼,把它輸入Arduino的開發環境(IDE)就可以上傳到你的Arduino中,並使項目工作。很快就可以得到一個真正的項目運行結果。當項目工作並看到它的運行結果之後,我解釋代碼是如何工作的。硬體也通過這種方式向你解釋它是如何工作的,以及如何正確地把它們連線到Arduino。之後為你一步一步地解釋代碼,因此你會非常清楚代碼每一部分的作用。通過分解電路和代碼,你就能理解整個項目,之後這些技巧和知識可用在後面的項目及今後你自己的項目中。
這種講授方式非常容易動手操作。即使你對編程和電子設計一點經驗也沒有,你也可以非常容易地以這種方式理解相關概念。更重要的是,你不會因大量枯燥的理論而喪失興趣。Arduino是強大、有趣、開源的產品,在這本書的幫助下,你會發現通過單片機使你自己的設備與環境互動是多么簡單。
MikeMcRoberts