前言
製作一個機器人並使它能夠感應周遭的環境,是對Arduino的知識全面升級的極佳機會!在撰寫本書的時候,我充分地揮灑對創作的熱情以及對電子材料、機器人和微控制器的知識,在此,我誠摯地希望你在製作或改良機器人的時候,也和我在寫書的時候一樣充滿樂趣。
Arduino其實就是一系列的微控制器(也就是微型電腦)加上軟體開發環境,讓你可以輕鬆的撰寫程式(我們稱為草稿碼(sketch)),使它可以和外在世界互動,透過加工改造,Arduino就能以各種不同方式讓你的機器人去感知周遭的世界。
本書內容能幫助你打造一個機器人,使它能完成各種任務,本書會介紹兩種目前最流行的移動平臺製作方式,包括二輪機器人(加上一個萬向輪來保持平衡)以及四輪機器人(包含馬達)。如果你希望加快機器人組裝的進度,可以選擇本書提到的其中一種套件包,應該可以為你省去不少時間,快速進入機器人專題創意的部分。但是,無論你偏好自己設計機器人平臺,或者使用現成的套件包來製作機器人,你都會發現本書的內容對於製作有趣的機器人專題非常有用!
這本書是為誰而寫的?
這本書主要針對想要探索以下主題的讀者而寫,內容包含:移動、障礙物偵測、感測器、遙控等實體運算的概念,使得讀者了解這些概念如何能應用於機器人的製作、延伸、改良。如果你想要了解更多,可以參考本章〈延伸閱讀〉,內有延伸閱讀清單,相信這會對那些在電子零件、程式編寫領域涉獵較少的讀者有所幫助。
本書架構
本書涵蓋豐富的內容,包括許多不同的機器人功能,不管是硬體或軟體,都會循序漸進的從基礎談起,也就是說,下一個章節可能會用到前一個章節談過的概念。在第6章〈機器人基礎功能測試〉與之後的延伸章節中會介紹最簡單的「Hello Robot」草稿碼。每一個章節都會介紹一些新的草稿碼,並為機器人加上一些新的功能。如果你對於機器人已經有基本的認識,那麼你可以直接跳到感興趣的章節。本書的所有完整草稿碼都可以在網路上下載,然而,從書中可以更深入學習本書提及的技術,因為每一個草稿碼都將使機器人學會一個更加複雜的任務。
值得一提的是,本書的草稿碼有用到許多功能模組(Module),可以將這些模組儲存成Arduino IDE的標籤(詳見第5章),前面章節提過的模組會在後面的章節再次使用,但為了避免相同的草稿碼一再出現,所以後面的章節只會再列出有更動過的草稿碼。一開始我們使用的「helloRobot」草稿碼,接下來,我們會將程式定義部分放到robotDefines.ino這個模組,反射性感測器程式則會放到IrSensors.ino模組中,這個時候,草稿碼會改名為「myRobot」,這些模組在草稿碼中會以標籤的方式呈現。然後,在本書接下來的章節會陸續加入新的功能,這些功能模組都會放入新的標籤中。
本書所有的草稿碼都可以預先下載,如果想要先對整個程式架構有初步的了解,可以先把所有草稿碼下載下來。
第1章〈淺談機器人製作〉主要是簡單介紹機器人的硬體與軟體特色。
第2章〈線路組裝〉主要在描述製作機器人所需要的電子材料。
第3章〈製作二輪移動平臺〉則是在談如何組裝二輪式行動平臺(2WD)。
第4章〈製作四輪移動平臺〉自然就是針對四輪式行動平臺組裝作說明(4WD)。
第5章〈Arduino上手指南〉內容主要在介紹Arduino整合式軟體開發環境(IDE),並說明軟體安裝、硬體組裝的方式。
第6章〈機器人基礎功能測試〉會解釋第一個用來測試機器人的機器人草稿碼,值得注意的是,本章節解說的草稿碼會成為其他章節草稿碼的基礎。
第7章〈控制速度與方向〉則將重點放在機器人的動作控制。
第8章〈感測器簡介〉內容主要在介紹2WD與4WD機器人最常使用的感測器。
第9章〈面對邊界與線段〉主要在談反射式感測器的應用,使得你的機器人可以實際去感應周遭的環境,這樣一來,機器人就會有辦法沿著線移動或閃避邊界等。
第10章〈自主運動〉則是在談距離感測器的應用,裝上距離感測器之後,機器人就可以「看見」周遭的環境,並且閃避路上遇到的障礙物。
第11章〈遙控〉主要在描述遙控機器人的方法,包含有線及無線的序列指令以及類似電視的紅外線遙控方式等等。
附錄A〈機器人改良原則〉提供一些訣竅和方法來打造更多複雜的機器人專題。
附錄B〈使用其他硬體裝置〉則是在談動作控制的其他方式。
附錄C〈機器人除錯指南〉這一章會談到軟硬體出現問題時可能的偵錯方式。
附錄D〈電源供應〉這一章會談到機器人電源的其他選項。
附錄E〈程式結構〉這一章主要在介紹草稿碼中常用的程式結構,對這方面內容較不熟悉的Arduino使用者可以參考。
附錄F〈Arduino針腳與計時器的應用〉則總結了所有的針腳功能以及其他機器人會用到的Arduino資源。