您準備要發明什麼了呢?
Arduino平臺是切入嵌入式系統很好的出發點,而本書就是您的指路地圖。從入門基礎到複雜的感測器,甚至遊戲控制器等等,書中提供的範例發人深省,讓人有無限創意。除了知識傳授之外,更能引起讀者著手去作專題的慾望,對軟體工程師來說是極佳的入門教材。
本書有多種有趣而實用的Arduino專題,您在幾分鐘之內就可開始親手製作一些小玩意,只要一步一步跟著書中的指令與照片,即使沒有電子學相關經驗也可以直接開始!
您將學到如何使用三軸加速度計來製作動作感測遊戲手把,將Arduino連上網路並設計客戶伺服端應用程式,以及使用Arduino加上少許便宜零件就能完成的萬用遙控器。除此之外,您還能自製防盜警報器,只要有人在客廳中移動,就會自動傳送電子郵件給您,還有能在專題中整合任天堂Wii NunChuk搖桿、二進位骰子、焊接技術等等更多內容。
書中還會談到現實中許多有趣的Arduino應用專題,每章末段的練習題則幫助您靈活運用所學。而〈萬一無法成功運作〉小節,則能幫您解決一些常見的問題。
本書有三個部分:〈著手使用Arduino〉、〈8個Arduino專題〉與〈附錄〉。在第一個部分,您會學到第二部分專題所需要的一切基本知識,所以在開始練習之前請先閱讀第一部分。第二部分的專題是彼此相關的,程式碼、零件都可能通用。
每一章的開始都會列出完成該章提到之專案所需要的零件與工具,也有許多照片與圖片展示這些零件如何組裝。而側欄中則收錄了現實世界中有人做過的Arduino專題,相信您會從中得到許多靈感。
然而天有不測之風雲,因此當有線路接錯需要檢查時,這就成了一件苦差事。所以每一章最後都有〈萬一無法成功運作〉這一節,裡面會有許多常見問題說明與排解方式。
在閱讀〈萬一無法成功運作〉之前,請嘗試自行解決問題,因為對學習而言,那會是更有效的方式,不論在任何時候,疑難排解都是重要的學習。而每章的最後,也提供了許多練習題讓您來嘗試。
本書中的所有專題都在Arduino Uno、ArduinoDuemilanove上測試過,使用的是Arduino IDE 0018到0021版,但如果可以的話,請盡量使用最新的版本。
作者簡介:
梅克.施密特Maik Schmidt
擔任軟體開發人員超過15年以上,為中型企業建立過許多複雜的解決方案。除了日常工作之外,還替電腦科學雜誌撰寫書評及文章,並為開源軟體編寫程式碼。在業餘時間,喜愛閱讀、寫部落格以及潛水。著有《Enterprise Recipes with Ruby and Rails》與《Enterprise Integration with Ruby》等書。
章節試閱
歡迎來到Arduino的世界
Arduino原本是為了設計師與藝術家而開發的——這些人並不是什麼程式設計專家,但他們即使沒有程式開發的相關經驗,也能夠用Arduino創造複雜的概念原型和互動藝術作品。所以,Arduino要上手這件事對於一般人來說是非常簡單,更不用說那些具有科技背景的人。
然而,將基礎打穩非常重要,您得對Adruino開發板、它的開發環境、序列通訊等,有所了解之後,才能充分運用這項產品。
在開始之前,需要先了解一個重要概念,也就是實體運算。如果您之前使用過電腦,或許會覺得納悶,畢竟電腦本身就是實體物件,也需要依靠滑鼠、鍵盤等實體物件來輸入訊號,而輸出的聲音與影像也是透過實體的喇叭與顯示器來進行,那是否可以說所有的運算都是實體運算呢?
原則上,一般運算是實體運算的一部分:鍵盤與滑鼠是真實世界輸入資料的感測器。但要用一般電腦來控制感測器與驅動器非常困難,如果使用Arduino開發板,控制複雜甚至某些詭異的裝置就變得簡單許多。這些方法您都會在本書其他章節裡學習到。而在這一章裡,您開始會接觸實體運算,學習如何控制Arduino、所需工具、安裝程式與組裝硬體的方法等等。接下來很快地便會進入有趣的部分:開始您Arduino程式的處女作。
材料
● Arduino開發板1塊,像是Uno、Duemilanove或Diecimila等。
● 連接Arduino與電腦的USB纜線1條。
● LED燈1顆。
● Arduino IDE,由於每一章都會用到,之後不再贅述。
到底什麼是Arduino開發板?
剛開始接觸Arduino企劃的入門玩家常會覺得納悶,當他們在尋找Arduino開發板時,會聽到或是看到像是Uno、Duemilanove、Diecimila、LilyPad、Seeduino等等奇怪的名字,奇怪的是,好像沒有一個東西名子就叫做Arduino。
幾年前Arduino開發團隊設計出一個微處理器電路板,並以開放原始碼的理念免費授權任何人生產電路板的複製品。您可以在一些電子商店中購買組裝好的電路板,但許多電子玩家會從網路上下載它的電路圖後自行組裝。
在往後的幾年裡,Arduino團隊不斷改進開發板的設計,並發表了一些新的版本,這些新的板子通常都是以義大利文命名,例如:Uno、Duemilanove、Diecimila等。您可以在網路上找到Arduino一系列版本的列表,這是Arduino團隊在網路上建立並持續更新的。
而Arduino團隊不僅持續改進硬體設計,同時也發明了一些特殊用途的裝置。舉例來說,他們創造了Arduino LilyPad,這是一款把微處理器電路板嵌入織品中,可以用來製作互動型T-shirts。
除了這些官方格式的Arduino開發板之外,網路上也可以找到許多複製品,因為Arduino允許自由開發與改造,許多人擁有自己版本的Arduino相容電路板,比如說Freeduino、Seeduino、Boarduino,還有了不起的Paperduino,這個Paperduino的所有零件不是附著在印刷電路板上,而是附著在普通的紙上。
Arduino是一個註冊商標,也就是說只有官方出版的電路板才能稱作為「Arduino」,而複製品則常常在名子的尾端加上「duino」。您可以放心地使用所有的Arduino複製品,它們與官方版的Arduino毫無差別,都可以用來完成本書內容所提到的企劃。
探索Arduino開發板
首先是USB接頭,通常我們使用USB連接線來連接Arduino與電腦,因此它有以下幾種功能:
● 將新軟體上傳至開發板。
● Arduino與電腦間的溝通。
● 提供Arduino開發板所需電源。
● 請注意較舊版的Arduino(像是Arduino-NG和Diecimila)不會自動切換外接電源與USB電源模式,您會需要手動將標有PWR_SEL的電源跨接器設為EXT(外接)或USB模式。
現在您知道如何供應Arduino電源了。Arduino並不貪心,它會將電源與其他裝置分享,有一排與電源供應相關的插槽(也可以稱為針腳,因為這些針腳會從內部與微控制器的針腳連接):
● 使用標有3.3 V 與5V的針腳,就可以為外接裝置提供與連接針腳相同電壓的電源。
● 標有GND接地的針腳有兩根,這可以使外接裝置與Arduino共同接地。
● 有些企劃是設計成可攜式的,因此必須要使用像電池這類的可攜式電源。您可以將電池匣這樣的外部電源連接到Vin和GND針腳。
如果您使用AC變壓器與Arduino的電源接頭連接,就可以透過針腳提供該變壓器所標示的伏特數電源了。
在電路板的右下角,可以看到六根類比輸入針腳,編號從A0到A5,您可以用來連接類比訊號感測器。它們會將得到的資料轉換成0到1023之間的數字。第五章〈感測周遭的世界〉當中,就會使用這些針腳與溫度感測器連接。
而電路板上方有14個數位I/O針腳,編號從D0到D13,這些針腳可以依需求調整為數位輸入或輸出用,您可以用它來讀取按鈕的資料,或是開關LED等等。
其中,D3、D5、D6、D9、D10與D11這六個針腳也可以做為類比輸出針腳,在這個模式中,它們可以將0到255的數值轉換成類比電壓。
安裝Arduino IDE
為了讓使用者更容易上手,Arduino團隊開發出一個操作簡單的「整合開發環境」(IDE,integrated development environment),它在許多作業系統中都可以使用。而在您開始第一個企劃之前,必須先安裝IDE。
認識Arduino IDE
如果您曾經用過像是Eclipse、Xcode或Microsoft Visual Studio這類型的專業開發環境的話,最好不要期待太高,因為Arduino與之相較下單純多了,基本上它就只有編輯器、編譯功能、上傳功能與序列顯示器。
它並沒有像是除錯、自動結尾這樣的進階功能,只能更改一些偏好設定。和Java一樣,它無法完全使Mac作業系統的桌面整合,但還是可以使用,而且專案管理的支援還算不錯。
我們可以看到一些常用功能的快捷鍵:
● 驗證(Verify):用來編譯目前編輯器中的程式。就某方面來說,「驗證」並不是很精確的名稱,因為按下這個按鈕不只會驗證程式碼的語法的正確與否,也同時將程式碼編譯成Arduino讀得懂的語言。
● 開新檔案(New):按下這個按鈕後,編輯器內的既有程式碼會被清除,並開啟一個新的編輯頁面,但清除之前,IDE會詢問是否要儲存變更。
● 開啟舊檔(Open): 用來打開檔案系統裡現有的檔案。
● 儲存(Save):儲存目前的程式。
● 上傳程式(Upload):按下上傳按鈕時,IDE會編譯現在的程式,並且上傳到IDE的「工具」>「序列埠」選單中您所選的序列埠中。
● 序列顯示器(Serial Monitor):Arduino可透過序列通訊與電腦溝通,按下此按鈕之後會啟動一個序列顯示器視窗,從裡面可以看到電腦與Arduino之間資料傳輸來回的內容。
● 停止(Stop):終止序列顯示器。
雖然IDE使用並不困難,但仍然有可能碰到一些需要查找文件的問題,遇到這種情況時,請打開「說明(Help)」選單。它裡面包含有許多Arduino網站上的有用資源,除了提供快速解決方案外,同時也有許多參考材料與教學等。
為了要對Arduino IDE許多重要的功能能更加熟悉,我們要進行一個使發光二極體(LED)閃爍的計劃,LED價格低廉、發光效率良好,Arduino開發板上已經內建了幾顆LED,其中一個顯示Arduino現在是否有接電,另外兩個LED則顯示當下有否透過序列通訊傳輸或接收資料。
歡迎來到Arduino的世界
Arduino原本是為了設計師與藝術家而開發的——這些人並不是什麼程式設計專家,但他們即使沒有程式開發的相關經驗,也能夠用Arduino創造複雜的概念原型和互動藝術作品。所以,Arduino要上手這件事對於一般人來說是非常簡單,更不用說那些具有科技背景的人。
然而,將基礎打穩非常重要,您得對Adruino開發板、它的開發環境、序列通訊等,有所了解之後,才能充分運用這項產品。
在開始之前,需要先了解一個重要概念,也就是實體運算。如果您之前使用過電腦,或許會覺得納悶,畢竟電腦本身就是實體物件,也需要依靠滑...
作者序
歡迎來到Arduino的世界,也歡迎來到實體運算的國度中。Arduino是一個開放式的硬體與軟體專題計劃,這計劃原本是為了設計一個原型構思平臺給設計師與藝術家作為互動設計之用。然而到了現在,全世界的業餘愛好者與專家都會使用它來創造自己的專題,您當然也可以做到!
Arduino可讓我們「動手」用電腦做到自1980年代我們能自己拚裝電腦以來一直無法做到的事,它讓自製電子專題計劃變得容易許多,不管是簡單的原型或是較複雜的儀器都能夠透過Arduino來完成。你不再需為了要讓一顆LED燈閃起來而去閱讀成堆的電子學理論,或是艱澀的程式語言了,甚至去電機系修什麼進階課程。現在完成第一個Arduino計劃只需要幾分鐘就行了。
事實上,閱讀本書前完全不需要有電子學知識基礎,馬上就能直接動手操作。從翻開本書開始,您不只會學到一些最關鍵的電子零件使用方法,也會學到如何為硬體加入生命的程式寫作技巧。
本書強調理論的執行面,在每一個章節中都會有實作的部分。我會針對本書專題所需的基本知識作詳細講解,而每一章節最後面也會有一節,特別針對可能發生的問題做說明。
本書是一本快速上手指南,希望能使您立刻上手,馬上就能做出自己的專題計劃!
歡迎來到Arduino的世界,也歡迎來到實體運算的國度中。Arduino是一個開放式的硬體與軟體專題計劃,這計劃原本是為了設計一個原型構思平臺給設計師與藝術家作為互動設計之用。然而到了現在,全世界的業餘愛好者與專家都會使用它來創造自己的專題,您當然也可以做到!
Arduino可讓我們「動手」用電腦做到自1980年代我們能自己拚裝電腦以來一直無法做到的事,它讓自製電子專題計劃變得容易許多,不管是簡單的原型或是較複雜的儀器都能夠透過Arduino來完成。你不再需為了要讓一顆LED燈閃起來而去閱讀成堆的電子學理論,或是艱澀的程式語言...
目錄
致謝
序
所需材料
Ⅰ 著手使用Arduino
1 歡迎來到Arduino的世界
2 深入Arduino內部
Ⅱ 八個Arduino專題
3 二進位骰子
4 建立摩斯電碼產生器函式庫
5 感測我們周遭的世界
6 建立動作感測遊戲控制器
7 改造Wii Nunchuk
8 與網路連結
9 萬用遙控器
10 用Arduino控制馬達
Ⅲ 附錄
附錄A 電子學入門
附錄B 進階Arduino程式撰寫
附錄C 進階序列程式設計
附錄D 參考書目
致謝
序
所需材料
Ⅰ 著手使用Arduino
1 歡迎來到Arduino的世界
2 深入Arduino內部
Ⅱ 八個Arduino專題
3 二進位骰子
4 建立摩斯電碼產生器函式庫
5 感測我們周遭的世界
6 建立動作感測遊戲控制器
7 改造Wii Nunchuk
8 與網路連結
9 萬用遙控器
10 用Arduino控制馬達
Ⅲ 附錄
附錄A 電子學入門
附錄B 進階Arduino程式撰寫
附錄C 進階序列程式設計
附錄D 參考書目
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。