前回說了,微控制器是台體積小、運算能力弱、記憶體也少的電腦,但是儘管如此並不代表他們就沒用。首先,許多需要控制的東西,例如 LED 燈、開關等等,所需的運算能力跟你滑 FB 所需的運算能力遠遠不一樣;而微控制器因為它們的低功耗、低記憶體讓他們相對便宜,所以長久以來被用在這類領域。
現在問題來了,如果微控制器這麼方便便宜,為什麼我們聽到學寫程式都是學如何寫電腦程式,而不是微控制器程式呢? —— 答案就是對一般人來說,寫微控制程式的難度太高了;要解釋這為何難度高就要講講上回說到「嚴格來說, Arduino 並不算是個微控制器,它是一個橫跨軟硬體的方案」的這件事情了。



Arduino 是一個橫跨軟硬體的解決方案
圖片來源: 1. Wikipedia Commons, 2. Wikimedia Commons, 3. Pixabay
首先來談談 Arduino 開發板,不論你拿的是 Uno、Due、Nano、Pro Mini 還是準備停產的 Arduino 101 它們都是 Arduino 家族的一員,組成了 Arduino 這個方案的硬體部分。雖然前面已經說過它們最重要的部分、也是它們的核心,其實就是前面在說的微控制器,但是者所謂的硬體部分其實還包含了電路板以及被銲上去的各種電阻、電晶體、按鈕、LED 燈、穩壓器、針腳、插槽、USB 接孔等部分,讓 Arduino 更容易使用。

圖片來源: Wikimedia Commons
而 Arduino 的軟體部分又可以分為兩種,一種是在 Arduino 硬體上執行的軟體(一般我們會叫這種軟體為韌體),跟跑在你的電腦上的軟體(稱為整合開發環境 Intergrated Development Environment,IDE);如果有用過 Processing 這個軟體的話,可能會發現 Arduino 的整合開發環境介面跟它的介面很類似,這是因為 Arduino 的開發軟體就是從 Processing 修改而來。整合開發環境讓我們方便我們寫程式、檢查程式碼、上傳程式到硬體,並且提供顯示資訊的介面,而韌體則負責確保上傳的程式會被執行。

(左) Processing 的操作介面、(右) Arduino 的整合開發環境
圖片來源: 1. Wikipedia Commons, 2. Wikimedia Commons
好啦那你現在知道了,雖然我們說 Arduino 的時候往往是指硬體的那塊板子,但是事實上 Arduino 可不是小小一塊板子那麼簡單,它是一個包含軟體、硬體、韌體的產品,要是沒有了軟體和韌體方面的輔助,使用 Arduino 的難度可是會大大增加的啊。
P.S. 如果看完這篇有感覺到 Arduino 團隊的強大,別忘記可以支持他們喔~