第一章 認識Arduino

在這個章節,你將可以學到:

  • 熟悉Arduino UNO的構造與功能。
  • 架設Arduino的開發環境。

第一節 認識Arduino

Arduino Uno開發板

我們之後用來作實習的Arduino開發板,是Arduino眾多型號中,最容易取得的一個,Arduino UNO R3,你可以把它想像成一台小電腦,首先我們來看看他的構造,如圖1-1-1

圖1-1-1:Arduino UNO開發板_

  • MCU: 全名是Microprocessor Control Unit,縮寫為MCU,中文叫作微處理器控制單元,你可以想成這塊板子的大腦,就像電腦的CPU,你所寫的程式碼,由它來運算解讀,並且執行你的需求。我們在之後實習所使用的開發板Arduino UNO R3,採用的MCU是Atmel公司所生產的Atmel 328。
  • Digital I\/O port: 數位的輸入輸出埠,MCU可藉由這14支腳去讀數位值,或是輸出High\/Low訊號。

  • Analog input: 類比的輸入,MCU可藉由這6支腳,讀取類比的值並轉成數位值,稱為ADC。

  • Reset button: 按下去之後,可以重置MCU,你可以想成把電腦重開機。

  • Power on LED: 電源提示燈,當USB或DC-in的電壓進來之後會亮起。

  • USB port: USB連接埠,連接板子和電腦的USB接口,除了可以上傳資料到Arudino之外,也可提供+5V的電壓給板子當電源使用。

  • TX\/RX LED: 當upload code到MCU時,這兩顆LED會同時跟著閃爍,TX燈號是提示Arudino正在傳送資訊給外部元件,RX則是提示Arduino正在接收資料。

  • DC-in port: 可以外接充電器,但輸入電壓必須在7~12V內。

  • PWR function port:

    • $$Vin$$ port: 可外接7~12V給板子電源。

    • 5V port: 提供外部電路電壓。

    • 3.3V port: 提供外部電路電壓。

    • RESET port: 短路到地的時候會重置MCU。

Arduino IDE

要讓Arduino完成你想達成的功能,除了要把設計好的電路接好,最重要的就是把命令Arduino做的事,以Arduino程式語言來撰寫,經過電腦編譯後,燒錄到Arduino開發板中。

以上的功能,都可以在Arduino IDE中完成,如圖1-1-2

圖1-1-2:Arduino IDE_

IDE是Integrated Development Environment的縮寫,也就是Arduino的軟體開發環境,你可以在上面寫好程式碼,按下「驗證鍵」,等待Arduino IDE檢查你的程式沒有問題以後,再按下「上傳鍵」,Arduino IDE就會將你的程式碼,透過USB傳輸到你的Arduino開發板上了,如果電路也連接正確,Arduino開發板就會執行你設計的工作囉。

架設Arduino的開發環境

要開始Arduino的開發,必須有個好的開發環境,你要準備的是:

  1. 一台安裝好Windows\/OSX作業系統的電腦。
  2. 一個Arduino開發板,在這裡我們使用Arduino UNO作為示範。
  3. 一條TypeA To TypeB的USB傳輸線。
  4. Arduino IDE主程式與驅動程式,你可以點選這裡取得。

接下來就要開始架設我們的開發環境了,請按照順序來做。

安裝Arduino驅動程式-以Windows為例

如果你的電腦作業系統是Apple的Mac OS,請直接點選此處,跳過這部分。

  • 將Arduino開發板,以USB線連結到你的電腦。系統會跳出正在安裝的畫面,但最後卻安裝失敗,不過不要緊張,請繼續往下做。
  • 我的電腦->按滑鼠右鍵->管理->裝置管理員,如圖1-1-3

圖1-1-3: Windows裝置管理員

  • 在裝置管理員,我們會發現有一個「無法辨識的裝置」,如圖1-1-4。因為你的電腦上,還沒有安裝Arduino的驅動程式,所以它無法辨識甚至運作你的Arduino開發板,所以接下來我們要安裝驅動程式。

圖1-1-4: 無法辨識的裝置

  • 解開剛剛下載的主程式,以及驅動程式壓縮檔(arduino-1.0.4-windows.zip),解壓縮檔案以後,可以得到一個名稱為arduino-1.0.4的資料夾,如圖1-1-5,裡面包含Arduino IDE的主程式與驅動程式等等檔案。

圖1-1-5: 解壓縮後的資料夾

  • 在裝置管理員->無法辨識的裝置旁->按滑鼠右鍵->更新驅動程式軟體,如圖1-1-6

圖1-1-6: 更新驅動程式

  • 選擇「瀏覽電腦上的驅動程式」,如圖1-1-7,把執行路徑指到,您剛剛解壓縮arduino-1.0.4的drivers位置。

圖1-1-7: 更新驅動程式

以我自己使用的電腦為例,因為是在D槽底下解開壓縮檔,故路徑要指定為: D:\arduino-1.0.4\drivers,如圖1-1-8

圖1-1-8: 指定安裝路徑

在更新驅動程式軟體同時,系統會出現「Windows 無法驗證此驅動程式軟體的發行者 」警告訊息。此時請選擇「仍安裝此驅動程式軟體」,如圖1-1-9圖1-1-9: Windows安全性訊息

等候數秒電腦會顯示「Windows已順利更新您的驅動程式軟體」,表示此時Arduino驅動程式已順利完成安裝,如圖1-1-10

圖1-1-10: 順利安裝驅動程式畫面

如果還不放心,可以在「裝置管理員」確認,如圖1-1-11紅框處。

圖1-1-11: Arduino UNO R3出現在裝置管理員列表

以上就完成了Arduino的驅動程式安裝,注意,這個步驟只有在你第一次將Arduino插上你的電腦時才需要做這個動作,就像你從外面買回來隨身碟,第一次需要安裝驅動程式,讓電腦認識你的新外接裝置。

安裝Arduino驅動程式-以OSX為例

如果你的電腦作業系統是Microsoft Windows,請直接跳過這部分。

OSX本身就內建了 Arduino的驅動程式,所以只需要下載OSX版本的Arudino IDE即完成。

透過以上步驟操作,就可以完成Arduino開發環境的架設,接下來要進行真正的Arduino專題實作!

第二節 Hello! Arduino

接下來,我們希望你可以透過這個專題,學會以下觀念:

  • 熟悉Arduino的基本開發流程。
  • 學習使用Arduino IDE。

專題資訊

  1. 專題目標:透過Arduino開發板,將我們想寫的訊息“Hello Arduino!”輸出至螢幕上。

  2. 材料清單:

    • 筆記型電腦一台,並安裝好Arduino IDE

    • Arduino UNO R3 開發板 x 1

實作步驟與說明

Arduino的應用開發,分成電路實作Arduino程式實作兩部分,接下來我們針對這兩部分做介紹,請跟著一起練習看看。

電路實作

這次的實習很簡單,我們直接將Arduino UNO開發板透過USB傳輸線連結到你的電腦上的USB port就好,不用再另外連接任何電子元件,如圖1-2-1

圖1-2-1: 將Arduino以USB線連接至電腦

Arduino程式實作

我們在編輯區,輸入程式碼,如圖1-2-2

圖1-2-2: Arduino IDE編輯區

要輸入的程式碼內容如下:

完整程式碼

void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.println("Hello! Arduino");
  delay(1000);
}

接著按下驗證鈕,如果程式碼內容沒有語法的錯誤,Arduino IDE就會顯示以下編譯完成,如圖1-2-3

圖1-2-3: 編譯完成畫面

驗證成功以後,再按下上傳鈕,看到上傳成功的畫面,如圖1-2-4,就可以來驗收成果囉。

圖1-2-4: 上傳完畢畫面

驗證結果

在工具列選擇「工具」,然後選擇「序列埠監控視窗」,可以看到序列埠監控視窗,如圖1-2-5

圖1-2-5: 開啟序列埠監控視窗

最後,你可以看到,Arduino每一秒輸出一次「Hello! Arduino」的訊息,如圖1-2-6表示你成功完成這次的專題!

圖1-2-6、序列埠監控視窗

隨堂作業

  1. 試試看輸出的訊息,改成你的名字,例如”Hello! Lawrence”。

  2. 試試看將輸出訊息的頻率,改成三秒輸出一次。

第三節 閃爍LED

第一個專題一直跳出文字,看久了好像有點無聊,雖然你以後就會知道這件事的重要性,可以先偷偷Google搜尋debug這個字是什麼意思,我們以後會介紹這個技巧,在這之前,我們來做一些更有意思的專題,讓你更熟悉Arduino的開發流程。

專題資訊

  1. 專題目標:了解麵包版的使用,並學習Arduino Pin腳的控制

  2. 材料清單:

  • 電腦一台,並安裝好Arduino IDE

  • Arduino UNO R3 開發板 x 1

  • 麵包板 x 1

  • 任何顏色的LED x 1

  • 220歐姆的電阻 x 1

小知識:Led: (Light-Emitting Diode) 俗稱發光二極體,是一種半導體元件,特點是便宜,耐用,低耗電,與一般燈泡不同的是Led有極性之分(長腳為正極、短腳為負極)如若接反則無法工作。

實作步驟與說明

首先需要將LED的正極(長腳)串聯一顆220ohm的電阻並連接至Pin13,LED的負極(短腳)連接至GND。

小知識:LED可承受的電流大約是20mA(0.02A),而Arduino開發板會提供5V電壓,扣掉LED的正向電壓差,也就是最小可點亮LED的電壓約為2V

根據歐姆定律(R=V\/I)計算出2V \/ 0.02A = 100 ohm,所以我們選用阻值更大的電阻220ohm,避免LED因為過大電流而燒毀,關於電學的知識,我們會在下一章介紹。

電路實作

佈線圖

Arduino程式實作

完整程式碼

void setup() //setup() 函數只會於電源啟動時執行1次
{
  pinMode(13, OUTPUT); //因為使用pin13腳連接led故將之設定為OUTPUT
} 

void loop() //loop() 函數會不斷的被重複執行
{ 
  digitalWrite(13, HIGH); //設定PIN13腳位為高電位(開啟LED)
  delay(1000); // 設定延遲時間 1秒(發亮 1 秒) 
  digitalWrite(13, LOW); // 設定PIN13腳位為低電位(關閉LED
  delay(1000); // 設定延遲時間 1秒(變暗 1 秒)
}

程式碼說明

  • 本專題目標實作是利用Arduino的Pin 13腳作為輸出連接至LED,讓LED產生閃爍的功能,所以程式設計的概念就是讓Pin 13腳,持續交互切換至高電位或低電位。

  • 第1行void setup()的函數用於初始化設定,此函數內的設定值只會於電源開啟時執行一次,基本上用於設定腳位狀態。

  • 第3行pinMode(13, OUTPUT),是將pin 13 設定為輸出腳位(語法使用請參照語法說明)。

  • 第08行到第11行是程式的主體,被包含在函數void loop()內,在void loop()函數內的程式碼會一直重複執行。

  • 第08行到第11行,是在使LED執行亮一秒滅一秒的動作。

    • 08行的digtalWrite(13,HIGH)是使是將PIN 13 寫入HIGH高電位的狀態讓LED發亮,第09行delay(1000)是讓程式停留1000毫秒才進入下一個程式。
    • 第10行digitalWrite(13, LOW)則是讓pin 13 輸出低電位讓LED熄滅。
    • 第11行依舊是使程式碼停留1000毫秒。
    • 當執行完第11行時,程式會回到第8行重新開始執行,如此一來即可完成LED閃爍的效果。
  • 如果不使用delay( )的話,LED明滅的速度會過快,人眼會無法看出閃爍的效果。

程式語法說明

  • pinMode(pin, mode): 將指定的引腳配置成輸出或輸入。

    • pin:要設置模式的引腳
    • mode:可設定成INPUT或OUTPUT
  • delay(ms): 使程序暫定設定的時間(單位毫秒)。

    • 參數:ms:暫停的毫秒數
    • 一秒等於1000毫秒
  • digitalWrite(pin, value): 給一個數位引腳寫入HIGH或者LOW。

    • pin: 引腳編號(如1,5,10,A0,A3),value: HIGH or LOW

驗證結果

LED將會持續亮一秒,持續暗一秒地交錯,產生閃爍的視覺效果。

隨堂作業

  • 讓LED閃爍得更急促。
  • 改變使用Pin12控制LED。
  • 再加入一個LED,讓這兩個LED交互閃爍。

results matching ""

    No results matching ""