Arduino是一塊微控器板子,比起Raspberry Pi來說,它少了許多功能,但卻更被大眾採用。原因在於它的價格低廉,並且採用硬體開放原始碼,造就了更多更便宜的Arduino相容版本的面世。
Arduino本身的功能簡單,但卻擁有極多的擴充版可以增加其功能,使得在各種需求的專案上獲得了完全的支援,例如Ethernet 擴充板、Wifi 擴充板使得Arduino擁有了有線與無線的網路功能、馬達擴充板使得Arduino在控制直流馬達、步進馬達等方面獲得了支援。許多擴充板上甚至包含了SD卡的插槽,因此需要大容量記憶體的專案也難不倒Arduino。
Arduino專案的設計牽涉到兩方面:軟體程式設計與硬體設計。在軟體程式設計設計方面,主要是使用C/C++-like語法,這對於大多數的程式設計師來說,非常容易上手,並且Arduino IDE本身也提供了許多的函式庫,讓程式設計變得極為簡單。許多擴充版也同樣提供了專屬的函式庫,讓使用者在使用上更方便。還記得嗎?Arduino是開放原始碼的,這也使得在軟體支援與硬體支援獲得了更多的發展空間。
在硬體設計方面,牽涉到一些微控器的常見電路設計,例如必須使用電阻來解決懸浮狀態,使用二極體來保護電路,使用電晶體做為開關。
對於不同的讀者而言,會有不同的軟硬體知識需求。對於背景為硬體設計的工程師來說,需要的是C/C++的語法與範例教學,函式庫的使用範例與教學。而對於軟體程式設計師來說,比較需要的是已經設計完成的電路圖,並且透過電路圖,逐步學會硬體為何如此設計的原因,而本書正是以此為出發點而撰寫的,因此更適合程式設計師來閱讀。
本書有別於其他Arduino同類書籍的內容,本書提供了更全面的內容,例如除了基本的LED、LCD控制、馬達控制、感測器應用、網路應用之外,本書還提供了如何控制Wii搖桿與Xbox把手的內容,並且除了Uno版的Arduino之外,也介紹了適合用來製作穿戴式裝置與設備的LilyPad 及Arduino Pro Mini,並提供了真實的穿戴式設備專案,讓您能發揮更多的創意。本書甚至介紹了如何自行製作擴充板,以及如何利用電腦的資源,將電腦的程式整合到Arduino專案之中,使得專案的功能突破了Arduino效能上的限制。
本書在篇排上,採用的是循序漸進,前後呼應的方式來撰寫,後面章節使用的專案,常常是將前面的專案進行些微的設計變更,或者使用完全相同的硬體設計,但卻使用不同的程式設計方式來達到更多的功能。並且在講解程式時,也特別說明了硬體方面的考量,例如為何需要delay這麼長的時間,這對於純軟體的設計師來說,更是一大幫助。