
Arduino Duemilanove (照片取自 arduino.cc)
Arduino 簡介 --- 學習單晶片微控器應用的好幫手
What is Arduino?
Arduino是一家意大利公司,這家公司設計了一些非常簡單使用的單晶片微控器(single chip microcontroller) 開發板,並且將開發板的硬體線路,開發環境,以及軟韌體的原始碼開放給所有有興趣的人。這些開發板讓使用者可以在很短的時間內就上手, 因此目前在市場上非常流行。也正因為如此, 網路上已有成千上萬的使用者分享了他們的應用和設計範例, 有很多現成的程式可以下載直接使用, 讓單晶片微控器的使用不再那麼艱澀難懂。
Arduino是一個工具,這是一基於一個簡單的微控制器的開源 (open source) physical computing (實體互動運算? 不知道要怎麼翻譯才比較貼切) 平台電路板, 也包含了軟件開發環境編。 相較於一般的桌上型或筆記型個人電腦, 它更能適用感知真實世界物理現象和事件(例如 溫度, 亮度, 聲音大小等), 同時也更容易用來控制或驅動真實世界的物體 (例如, LED 燈, 喇叭, 馬達等)。
Arduino可用於開發互動式物體,可以讀許多的輸入(例如 開關, 感測器等) 可以用來控制各種不同的燈光,馬達,及其他物理輸出。Arduino 的應用可以是單機執行 (不需要個人電腦), 也可和個人電腦的軟體 (例如:Flash,Processing 或以任何電腦程式語言編寫的程式)進行溝通已達成更多更豐富的互動或者控制的應用.
Arduino 硬體是植基於愛特梅爾 (Atmel) 的AVR 8-bit (8 位元) RISC (Reduced Instruction Set Computer: 精簡指令集) 微控制器, 目前是ATmega8, ATmega168, ATmega168 和 ATmega1280 等. 基本上, Arduino 的程式語言就是 C/C++, 程式碼被稱為 sketch (這是沿用 Processing的名稱, Arduino 的開發環境是繼承 Wiring, 而 Wiring 的開發環境就是根據 Processing改寫而來的), 程式的編譯則是使用開源編譯器(open source compiler) avr-gcc 和開源程式庫AVR Libc.
Why Arduino?
市面上其實有各式各樣的微控器平台, 從8-bit, 16-bit 到現在很流行的 32-bit ARM, 有很多甚至包含了各式多媒體輸出入和處理能力. Arduino 其實對一些學過或用過 單晶片微控器 的人來說是一個很簡單的東西, 光看他的電路設計或板子上的元件多寡就 知道了, 但是它的優勢就是開放式平台, 不僅硬體開放, 軟體也開放, 所以累積了很多共享資源, 可以直接使用, 也可以加以修改呈現更多的應用.
再來就是因為簡單, 成本低, 加上免費的開發環境, 也就容易上手, 對許多不曾接觸過單晶片的人, 只要有心, 很快就可以寫出一些簡單的控制程式.
在國外和台灣, 有不少是被用在所謂的互動藝術的創作上. 因此, Arduino 是一種工具, 一個平台, 它的真正價值是在給人無限的創意空間, 而且容易實現.
它很適合推廣到學校, 是一個很好的一個學習平台, 具備了幾乎所有的實習教具該有的特質.
筆者自製的 Arduino