Galileo是一塊用來建立電子專題的高效能Arduino相容開發板。結合了Intel與Arduino兩種不同功能的Galileo,讓你可以構想出硬體架構、打造電子電路、編寫控制程式,將你的想法變成實際的作品。
書中除了採用循序漸進的方式來教導你如何替Galileo編寫Arduino的腳本程式碼,也為你介紹使其成為強力開發平臺的Linux作業系統。這個強而有力的開發平臺,搭配上具有x86能力的作業系統、USB連接埠、Mini PCI傳輸功能與乙太網路,可以讓你用更快的方式打造更厲害的微控制器專題。
本書特色
準備好要打造具有高階硬體與感測器的專題了嗎?
● 結合了Intel與Arduino兩種不同功能的Galileo,讓你可以構想出硬體架構、打造電子電路、編寫控制程式,將你的想法變成實際的作品。
● 教你如何替Galileo編寫Arduino的腳本程式碼,並將Linux系統安裝於SD卡中,且多安裝SSH與Wi-Fi的功能。
● 教你學會建立以Arduino或Python程式語法為基礎的網頁。
作者簡介:
麥特.理查森Matt Richardson
麥特.理查森是來自布魯克林的創意技術人員與影片製作人。他是《Make》雜誌與Makezine.com的特約編輯,也是Awesome Button Studios這家科技顧問公司的老闆。他的重要作品包含了敘述相機(Descriptive Camera),這臺相機運用文字敘述取代拍攝的方式來呈現照片中的景象。另外,他還製作了Enough Already,當電視播出的某個關鍵詞時,這個自製裝置會發送訊號使電視靜音。他的作品受到了《紐約時代》、《Wired》與《紐約雜誌》的高度矚目,並曾在美國內華達州的藝術博物館與希臘的Santorini Biennale美術館中展出過。他目前則是在紐約大學互動通信計劃中(Interactive Telecommunications Program)擔任研究員。
譯者簡介:
謝瑩霖
國立臺灣師範大學應用電子系畢,譯有《Raspberry Pi快速上手指南》、《給邪惡天才的30個Arduino專題》,目前於馥林文化擔任《Make》與《ROBOCON》國際中文版編輯。
蔡睿烝
國立臺灣師範大學科技應用與人力資源發展學系碩士班畢,譯有《給邪惡天才的30個Arduino專題》,目前於馥林文化擔任MIS。
曾吉弘
CAVEDU教育團隊技術總監,對於Android、機器人與各種合金玩具有狂熱。著、譯有多本Android、Arduino、Raspberry Pi與機器人相關書籍,為一群活潑近乎躁動的機器人玩家頭目。官方網站:http://www.cavedu.com
邱柏憲
建國中學在學。CAVEDU教育團隊技術研究員。
章節試閱
第一章 為你介紹Galileo
用來構成Arduino平臺的硬體與軟體,其開發目的是為了要降低打造電子專題時的難度。這表示當你在使用科技進行實驗、創造與探索新創意時,不至於因不夠專精而被限制住。採用與Arduino相容的軟硬體,使Galileo可以提供一個更簡單上手的平臺,並且可做到比一般Arduino開發板更強大的功能。
什麼是Galileo?
Galileo是一塊硬體開發板,也就是一塊可以協助你開發互動裝置的電路板,透過讀取現實環境的訊號並進行運算後,再呈現於現實環境中。如果將裝置連上網路,甚至也可以像網頁伺服器一樣與其他裝置進行溝通,整體而言,Galileo就是一塊可與Arduino相容的開發板。
什麼是Arduino?
「什麼是Arduino?」對於這個問題有幾個答案。第一個也是最基本的,那就是它跟Galileo一樣都是硬體開發板,而它有著許多型號,好比說Arduino Uno、Arduino Mega與Arduino Yun。每一個不同型號的Arduino都有不同的功能,而最基本的Arduino Uno也就是大家所泛指的「Arduino」。
此外,還有Arduino的開發環境軟體,可安裝於電腦中,用來協助你編寫程式碼與上傳程式到開發板中,而Arduino一詞也代表用來撰寫開發板程式的語法名稱。
如果你對於Arduino完全不了解,並且想要了解更多關於它的內容,可以到Arduino的官方網站(http://arduino.cc/)找到許多資源,其中包含了使用指南、參考資訊、社群、專題與最新的更新情況。而瑪西摩.班吉所寫的《Arduino使用指南》(歐萊禮出版社)就是我在使用這類熱門開發板時的第一本參考指南。書中有寫到Arduino的設計原理(Arduino的設計方式),並引導你從最基礎的部分開始使用它。這本書一樣也會包含許多基本原理,不過是主角從Arduino換成Galileo而已。
Galileo是一款與Arduino相容的開發板,這就表示它可以使用Arduino的開發環境與程式語言。其針腳位置與Arduino 1.0的一樣,此種設計可以讓人清楚地知道板子上的哪一個位置上對應哪一個針腳,而因為這種設計方式是可與Arduino 1.0相容,所以你可以在其上方裝上Arduino擴充模組,以堆疊的做法用來添加更多功能。常見的電路包含了馬達驅動模組、多顆LED的控制模組或是播放聲音的模組。此種設計也可以方便你在參考專為Arduino所撰寫的教學書籍時,用更簡單的方式來使用Galileo。
輸入端與輸出端
與其他硬體開發板一樣,Galileo可以讀取輸入端訊號並由輸出端進行控制。輸入端負責接收現實環境的訊號傳入開發板的處理器中,這些訊號可以由撥動按鈕或開關來得到,也可以是像你在混音板上看到的撥鈕或滑桿。另外,感測器也可以用來提供現實環境的訊號給輸入端,而感測器的種類繁多,包含溫度、亮度、音量、加速度等。
輸出端則是指Galileo這類的開發板如何作動於現實環境中,最簡單的例子就是發光二極體,或叫做LED,它會在電流流過時亮起。LED可以用來顯示裝置啟動與否,或是顯示錯誤動作的情況發生(此種情況適合閃爍紅色LED)。輸出端也可以是安裝在機器人身上用來控制輪子的馬達,或是顯示溫度的顯示器與播放音樂旋律的喇叭。
舉例來說,一個簡單的碼表就同時具有輸入端與輸出端,開始鈕即代表輸入端,當你按下開始鈕時,便會觸發一個計時器,並且會由輸出端將計時器的訊號顯示在碼表上。
而一個數位錄音裝置則是以麥克風做為聲音輸入端,小型喇叭做為聲音輸出端。它跟碼表一樣也具有一個按鈕替輸入端提供訊號,以控制錄音的開始與停止,並使用一個小型顯示器告訴你在填滿裝置的記憶體前,你還有多少時間可以進行錄製。
程式
當然這並不像連接Galileo上的輸入端與輸出端那麼的簡單,反而你必須告訴開發板你想要如何使其回應輸入端的訊號,以及如何控制輸出端。透過編寫開發板程式,就可以讓它理解你要它做些什麼。
舉例來說,一個簡單的恆溫器專題會定期地檢查溫度感測器傳回的數值,並比較使用者透過控制旋鈕所設定的溫度值。假設感測器偵測到的溫度比設定的溫度值要來得低,開發板便會開啟暖氣,讓溫度提高到接近設定的溫度值,而這類的邏輯判斷就是由你所編寫的程式定義而來。
Galileo可以讓使用者一再地重複編寫程式,而事實上,在開發專題的過程中,你將會重複進行編寫程式、上傳程式至開發板、檢查程式作動的結果、找出問題、重新調整程式,並重新上傳程式這幾個步驟。
你或許會發現你可能會在一個專題中使用開發板,而幾周後會將開發板取下,並重新編寫一套程式,用在另一個完全不同的專題中。
通訊方式
Galileo可以透過一些不同的方式與其他裝置進行溝通,你可以用USB將Galileo與電腦相連,並進行資料的傳輸與接收。你可以將Galileo正在執行的訊息傳遞到你電腦的控制視窗中,因此你便可以得知為什麼有些地方無法正常執行(這種方式又被稱為除錯)。抑或是你可以讓Galileo傳遞感測器的資訊到電腦上,直接呈現出動態圖形。
Galileo也可以藉由內建的乙太網路或是可額外選購的Wi-Fi模組來與其他裝置透過網路進行連接,因此它可以接收氣象資訊或是你的私人email,甚至還可以在Twitter進行搜尋等。此外還可以透過網路連接傳送溫度感測器的資訊、網路攝影機所拍攝的影像,或者是你家小狗的水盆目前的水量。
是什麼讓Galileo與眾不同?
如果你曾經使用過標準的Arduino平臺,比方說Uno,它們跟Galileo會有一些地方稍微不同。事實上,Galileo的整體規格使它看起來像Arduino Uno與低階電腦的綜合體。
Galileo外型要比Arduino Uno大上一些,但這種尺寸也替你帶來更高規格的處理器,在執行程式時可提供更大的記憶體暫存空間、更大的資料儲存空間、一個可以連上網路的乙太連接埠,還有可連接電腦週邊的USB埠與底部的Mini PCI傳輸連接埠。
而在Galileo上所使用的韌體則比目前Arduino Uno所用的還要更高階,在一般Uno或其他Arduino開發板上所用的韌體稱為載入器(bootloader),也就是說它只能幫助你上傳程式到開發板的處理器中,並執行程式而已。反觀在Galileo上的韌體,它不僅能幫你上傳程式到開發板並執行,還可以追蹤檔案、記錄日期與時間,並且可以協助分享開發板上的多種資源到多個同時執行的程式中,就這方面來看,Galileo更像一臺電腦。
事實上,在Galileo上的韌體其實是使用常見於桌上型電腦和伺服器中的免費作業系統Linux的某一個版本,Galileo或許沒有螢幕或桌面環境,但它還是可做到大部分作業系統可提供的功能。並且可以藉由這些功能來執行你編寫的程式,做出比一般Arduino更多的功能,舉例來說,如果你想要製作一個專題,運用網路攝影機拍下照片並寄送出去,如果只使用Arduino程式的話可能會非常困難,但是有了Linux的支援,這件事情就會變得很簡單。
第一章 為你介紹Galileo
用來構成Arduino平臺的硬體與軟體,其開發目的是為了要降低打造電子專題時的難度。這表示當你在使用科技進行實驗、創造與探索新創意時,不至於因不夠專精而被限制住。採用與Arduino相容的軟硬體,使Galileo可以提供一個更簡單上手的平臺,並且可做到比一般Arduino開發板更強大的功能。
什麼是Galileo?
Galileo是一塊硬體開發板,也就是一塊可以協助你開發互動裝置的電路板,透過讀取現實環境的訊號並進行運算後,再呈現於現實環境中。如果將裝置連上網路,甚至也可以像網頁伺服器一樣與其他裝置進行溝通,整體而...
目錄
前言
第一章 為你介紹Galileo
第二章 了解Galileo的第一步
第三章 關於Galileo的輸出端
第四章 關於Galileo的輸入端
第五章 深入程式
第六章 連上網路
附錄A Arduino程式語法參考資源
附錄B 麵包板基礎教學
附錄C 電阻規格參考資源
附錄D 製作存放於MicroSD卡中的映像檔
附錄E 在Windows作業系統上設定Galileo
附錄F 在Linux作業系統上設定Galileo
附錄G 在Mac OS X作業系統上設定Galileo
附錄H 使用串列埠與Galileo相連
前言
第一章 為你介紹Galileo
第二章 了解Galileo的第一步
第三章 關於Galileo的輸出端
第四章 關於Galileo的輸入端
第五章 深入程式
第六章 連上網路
附錄A Arduino程式語法參考資源
附錄B 麵包板基礎教學
附錄C 電阻規格參考資源
附錄D 製作存放於MicroSD卡中的映像檔
附錄E 在Windows作業系統上設定Galileo
附錄F 在Linux作業系統上設定Galileo
附錄G 在Mac OS X作業系統上設定Galileo
附錄H 使用串列埠與Galileo相連