05認識Arduino

(2018/01/14)

Arduino,是一個開放原始碼的單晶片微控制器,它使用了Atmel AVR單晶片(AVR 是 ATmel 這家公司設計的 8 位元晶片),採用了開放原始碼的軟硬體平台,建構於簡易輸出/輸入(simple I/O)介面板,並且具有使用類似Java、C語言的Processing/Wiring開發環境。

  • 微電腦控制板就像是一個具有大腦和神經線,但是沒有感官和行動能力的物體。

  • 也可以把它想像成一台小電腦(主機)

開發沿革:(取自維基百科)

Arduino的核心開發團隊成員包括:馬西莫·班齊(Massimo Banzi)(Italy)、大衛·奎提耶斯(David Cuartielles)(Spain)、湯姆·伊果(Tom Igor)(USA)、贊布羅塔·馬提諾(Gianluca Martino)(Italy)、大衛·梅利斯(David Mellis)(USA)和尼可拉斯·蘭比提(Nicholas Zambetti)。

據說馬西莫·班齊之前是義大利Ivrea一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。2005年冬天,馬西莫·班齊跟大衛·奎提耶斯討論了這個問題。大衛·奎提耶斯是一個西班牙籍晶片工程師,當時在這所學校做存取學者。兩人決定設計自己的電路板,並引入了馬西莫·班齊的學生大衛·梅利斯為電路板設計編程語言。兩天以後,大衛·梅利斯就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino幾乎任何人,即使不懂電腦編程,也能用Arduino做出很酷的東西,比如對感測器作出回應,閃爍燈光,還能控制馬達。隨後馬西莫·班齊、大衛·奎提耶斯和大衛·梅利斯把設計圖放到了網上。保持設計的開放原始碼理念,因為版權法可以監管開源軟體,卻很難用在硬體上,他們決定採用創用CC許可。創用CC是為保護開放版權行為而出現的類似GPL的一種許可(license)。在創用CC許可下,任何人都被允許生產印刷電路板的複製品,還能重新設計,甚至銷售原設計的複製品。你不需要付版稅,甚至不用取得Arduino團隊的許可。然而,如果你重新發布了參照設計,你必須說明原始Arduino團隊的貢獻。如果你調整或改動了電路板,你的最新設計必須使用相同或類似的創用CC許可,以保證新版本的Arduino電路板也會一樣的自由和開放。唯一被保留的只有Arduino這個名字。它被註冊成了商標。如果有人想用這個名字賣電路板,那他們可能必須付一點商標費用給Arduino的核心開發團隊成員。

Arduino主板有許多種類:

  • Arduino UNO

  • Arduino MEGA 2560

  • Arduino Nano

  • Arduino Due

  • Arduino Yun

  • ....

==========================================

認識 Arduino UNO

  • 資料取自Arduino Uno功能簡介(很好的一篇文章)

  • uno 義大利文是【一】的意思

  • 這是絕大多數Arduino入門者第一塊擁有的控制板

  • 原廠 Arduino Uno

    • 大陸相容的 Arduino Uno (兩種板子皆使用Mega328P晶片,只是不同的封裝,相容板並非盜板,因為原廠開源且授權商業用途製造之故)

      • Q:何謂數位訊號?

      • A:簡單來說,數位訊號只有兩種狀態。高電位跟低電位或者說1(ON)跟0(OFF)(可看做電燈開關,不是ON,就是OFF )。舉凡像是電腦、手機等等的電子產品幾乎都是輸送數位訊號。

      • Q:何謂類比訊號?

      • A:類比訊號,簡單的說,就是除了數位訊號以外的訊號都叫作類比訊號。像是溫度的變化之類的。都是類比訊號。類比訊號有很多種狀態,不像數位訊號只有兩種狀態

    • 數位輸出、輸入腳位

    • D0~D13,腳位編號為0到13,不過通常會寫為D0到D13表示為數位腳位(D代表Digital)

    • 這些腳位可以當【輸出腳位】,輸出高電位5V與低電位0V的數位訊號,像點亮一顆LED燈,就是輸出高電位(5V)給這顆LED燈正極所在的腳位!

    • 也可當【輸入腳位】,接受數位訊號,也就是【讀取】感測器所接腳位的0或1的訊號。

    • 某些腳位還可當【類比輸出腳位】,D3、D5、D6、D9、D10、D11的數字編號旁,還有個波浪符號(~),這表示這些腳位可以用數位訊號來模擬出類比訊號,使用的方式是PWM(Pulse Width Modulation),PWM值介於0(0V)~255(5V),可以透過PWM的方式來讓LED燈有漸亮或漸暗的效果,而不是只有上面數位輸出的全亮(1、ON)或全暗(0、OFF)。

    • 要注意的是D0與D1這兩個數位腳位,分別被標示了RX(Receiver)、TX(Transmitter),這兩個腳位用於序列埠傳送,且與USB序列埠連接,因此電腦若使用USB與控制板互傳資料時(可見到控制板上標示為RX、TX的LED閃爍),應避免使用D0、D1兩個腳位。

    • D13腳位連接著控制板上標示為L的LED,若是原廠控制板,預設會燒錄一個令D13定時切換高低電位的Blink程式,因此,首次接上電源時,會看到標示為L的LED不斷閃爍,這是初步檢視控制板是否功能正常的方式。

    • D10、D11、D12、D13是作為SPI(Serial Peripheral Interface)協定的介面,SPI使用四條線連接控制板與支援之設備。Arduino同時支援I2C與SPI兩種協定,在一些介紹到使用I2C或SPI設備的Arduino書籍中,都會有相關的說明。

  • 類比輸入腳位

    • 右下角有A0至A5六個腳位,可用來接受類比電壓輸入(讀取類比訊號值),但不能輸出類比電壓,如前所述,類比電壓必須透過數位腳位D3、D5、D6、D9、D10、D11,以PWM模擬。

    • 控制板上ATmega328內建類比數位轉換器(Analog-to-digital converter,簡稱ADC),預設會將0V到5V轉換為0至1023的數值

    • 實際上,A0至A5也可作為數位輸出、輸入腳位使用,此時A0至A5分別可視為D14至D19。

    • 常接的模組有電位計模組、光敏電阻模組、溫度模組...

    • 控制板左上方有SCL(Serial Clock)、SDA(Serial Data)兩個腳位,這是用來連接支援I2C(Inter IC)協定的設備,此協定只採用兩條接線,可在感測器與控制板如Arduino之間傳遞資訊,SCL與SDA也分別與類比腳位A5與A4連接,方便接線之用。

  • 微處理器控制單元

    • MCU: 全名是Microprocessor Control Unit,縮寫為MCU,中文叫作微處理器控制單元,你可以想成這塊板子的大腦,就像電腦的CPU,你所寫的程式碼,由它來運算解讀,並且執行你的需求。Arduino UNO R3採用的MCU是Atmel公司所生產的Atmel 328,是 ATmel 這家公司設計的 8 位元晶片。

    • 控制板右方有個顯而易見的晶片,那就是控制板的大腦ATmega328,原廠UNO採雙列直插封裝(Dual in-line package),又稱DIP封裝,市面上有單獨銷售ATmega328,如果控制板上的ATmega328損壞,可以使用小的一字起子或尖嘴鉗將之撬起,用新的ATmega328取代。

    • Arduino的微控器(Microcontroller)包含CPU、記憶體、類比∕數位訊號轉換器以及周邊控制介面。

  • 供電給Arduino Uno

    • Arduino Uno的運作直流電壓為5V

    • Arduino Uno可透過三個管道提供電源:USB連接埠、電源輸入插座、Vin腳位。

      1. 透過USB連接埠提供給控制板的電源必須是5V的電壓,最基本的方式,就是透過Type B USB連接控制板,而另一頭是Type A USB連接個人電腦,這可以提供5V、500mA的電源給控制板。

      2. 如果採藍牙連線或其他無線方式來傳送資料給控制板,不用連接個人電腦與控制板的話,那麼可以使用USB電源供應器,像是插頭或者行動電源等,請注意必須是5V的直流電壓,至少2A電流的輸出。

      3. 如果要透過電源輸入插座供電,插頭直徑必須是2.1公釐,供應的電壓限制是6V至20V,建議是直流7V至12V,「低於7V的話,5V輸出腳位可能電壓不足,控制板可能運作不正常,高於12V的話,電壓調節模組可能過熱而損壞控制板」。透過電源輸入插座供電時,可以使用電源供應器、9V電池等來供應。

      4. 在上圖原廠板子中,可看到電源輸入插座旁的直流電壓調節模組,這可以將輸入的直流電壓降為5V以及3.3V,5V除了可供控制板使用之外,也可以透過標示為5V的腳位輸出給其他電子電路元件使用,有些電子電路元件必須在3.3V才能正常運作,這可以透過標示為3.3V的腳位來提供。

      5. 透過Vin供電給控制板時,要求與透過電源輸入插座相同,Vin提供的電壓,也是經由直流電壓調節模組調整為5V與3.3V。由於直流電壓調節模組的輸入端連接了電源輸入插座供電與Vin,因此,如果你透過電源輸入插座供電,Vin也會量得與電源輸入插座相同的電壓,因此,當有兩塊Arduino控制板需要電源時,可將接有過電源輸入插座的控制板上Vin,連接至另一塊控制板的Vin。