Arduino 簡介

     什麼是 Arduino?

 

     我相信很多的人對 Arduino 有一定層度的錯誤認知!

 

     第一個,就唸法上,很多人就唸錯,Arduino 這個字,它不是英文,它是義大利文,

所以用英文唸法唸它就是一個錯誤,想知道它的正卻唸法嗎?很簡單,

請上 Youtube 搜尋關鍵字『Arduino』 然後將喇叭打開,聽聽外國人怎麼唸,跟著學就沒錯。

『阿水(台語)No』...這才是正確的唸法,別再唸台灣人獨特的『阿丟No』了。

 

    很多人把 Arduino 跟 Raspberry Pi 拿來比較,這就是第二個錯誤!

樹莓派是一「台」完整的電腦,只是它用 SD 卡取代 HDD,尤其是樹莓派3,電腦該有的它全部都沒少。

樹莓派要安裝作業系統才能使用,樹莓派接上電源一樣要等作業系統開機;注重安全性的,一樣要帳密登入。

除了CPU架構、指令集跟「一般」的電腦不同、又多了40Pin 的GPIO接腳外,樹莓派就是一台完整的電腦。

 

     那 Arduino 呢?

 不知道台灣哪個網站開的頭,很多國內的網頁都把 Arduino 叫做「開發板」!

開發板!?...還真讓人搞不清楚它到底是什麼的叫法!開發什麼?什麼的開發板?來看看wiki的敘述吧!

 

     Arduino沒有作業系統,Arduino插上電源就開始工作,所以 Arduino 跟本不是電腦

玩過電控或自動控制的人一定知道PLC;而我看Arduino它跟本就是一台多功能又便宜的PLC...

Arduino 有 Digital I/O,Arduino Due 有 54 隻 DIO 接腳、 

Arduino 有 Analog Input,Arduino Mega 有 16 隻 AI 接腳,Arduino Due 有 12 隻 AI 其中 2 隻能做 AO (DAC)、

Arduino 有 PWM,Arduino Mega 有 14 隻 PWM 輸出、(PWM說明)

Arduino 有 Serial Port (UART),Arduino Due 跟 Mega 都有 4 組 Serial Port、(UART說明)

Arduino 有 I2C Bus,Arduino Due 有2組 I2C Bus、(I2C Bus)

Arduino 有 SPI,Arduino 火紅的型號 Uno、Mega、Due、Zero 等,都有 SPI 介面,(SPI Bus)

Arduino 有 CAN bus,Arduino Due 有 1 組 CAN Bus ,(CAN Bus)

所以,請問一套PLC要含括以上這些模組,需要多少成本?

原廠的 Arduino 則 3000 摳台幣有找,最貴的 Arduino Tian 也不超過 3000 台幣...

更何況Arduion是開放源碼的機板,也就是說功能完全一樣,副廠的更便宜。(Arduino 各版本比較)

 

    所以,樹莓派 (電腦) 跟 Arduino (PLC) 怎麼比較?就像冰箱跟電視,功能完全不一樣的東西怎麼比較? 

我認為很多人會拿樹莓跟 Arduino 比較其原因出在於 - 樹莓的原罪 GPIO 接腳!

樹莓有了GPIO接腳後,讓樹莓也有了控制硬體的可能性,應該就是這樣才讓樹莓被拿來與 Arduino 做比較,

而我的看法是... Raspberry Pi + Arduino 才是 IOT 真正的大利器...低電耗、低成本。

 

    我們這篇主要是講 Arduino,所以還是回到主題...Arduino !

Arduino 它的開發環境就是原廠提供的 Arduino IDE...就這樣...沒了,就這麼簡單!

它的語言...在我來看比較像 C 語言,一樣有很多的 Library 可供下載與使用,

一樣用 Include .h 檔來呼叫這些 Library,市售的 Arduino 硬體元件,

在網路上幾乎都找的到元件製造商或第三方寫好的 Library來使用。

 

     Arduino 的語言有兩個內定的函式,一個叫 『void setup ()』,另一個叫『void loop ()』;

 大家都知道,C語言是由 main 函式開始執行,而 Arduino 則是由 setup () 開始執行,

當執行完 setup () 後,Arduino 就接著執行 loop ()函式,並且loop () 會一直 looping,

不用另外去使用 while ()來延續程式生命,

Arduino 也接受 exit (n),所以當不想讓 Arduino 一直 looping,就可用 exit (n) 來離開。

 

     很有趣的是,遇到 exit (n) 的 Arduino 雖然停下動作,但按下 Arduino 上的 Reset 按鈕,或是再拔插上電源,

Arduino 又立即的重新執行程式...這...這不是PLC那是什麼!?

 

     所以,對會 C 語言的人來說,Arduino 的親合力應該有 90 分以上的,便宜、簡單,

加上無限的可能,所以讓人愛不釋手!

 

     Arduino 有一堆的硬體元件可供選用,光一個 Relay 就可以控制很多電器的電源了....

若再加上各種的感測器,那接下來的就是...只有想像力能限制妳!

 

    記得 15 還 16 年前,參加了 omron 一場產品發表會,內容是 omron 公怖了一款 Oracle 的 PLC 模組,

這模組讓 omron 的 PLC 可以安裝 Oracle 資料庫,而那場發表會後,

相信很多跟我一樣在自控界的程式工程師都對未來憂心忡忡,

記得 PP 還開玩笑的說...我們要失業了,因為未來的 PLC 就可以做程控了,不需要軟工了。

 

     而如今,我還在,也隨著 Arduino的出現,樹莓的成熟,反倒讓我的路是越來越寬,Iot 有了革命性的爆發,

用自己熟悉的語言與環境,加上低廉的成本,穩定的硬體若有天馬行空的想法,那什麼都有可能。

 

     玩樹莓還要熟悉 Linux,但是玩 Arduino...則簡單到會讓人想笑。

Uno (ICShop飆機器人)原廠的一片還不到一張小朋友(副廠),

雖然接點少了點,但它是經典入門款,所有網路上找到的 Arduino 範例幾乎都是用 Uno,所以不玩玩看真的可惜了。 

 

    Arduino Due :

 

    接腳編號及用途都貼心的標在上面:

 

     Arduino Due 各接腳詳細說明圖解:

 

    Arduino 顯示模組 - Nokia 5110 LCD。現成免費的第三方Library及Example

     各式各樣的感測器:

    這些模組的軟體資源,在網路上可輕鬆取得。  

 

    所以只要有簡單的電子相關知識,知道 AC / DC 的差異,看的懂電壓/電流, 會用三用電表,

像我沒有電子學背景,一樣可以玩 Arduino 玩的很快樂,寓教於樂...ㄎㄎㄎ(不要被電到就好)。

 

    更何況已經會 C 語言,比別人學習障礙至少少了 50% up,對不對?以上就是我對 Arduino 的理解與心得。

(若要 Buy ,建議 Arduino Due,安裝問題少,接點多、速度快;衷心奉勸 => 千萬別選 Mega 系列啊!)