Arduino UNO控制板簡介

本文旨在補充《超圖解Arduino互動設計入門》的Arduino控制板選用說明。書本第一章1-4頁提到,本書範例主要採用2007年推出的Arduino Duemilanove。但當今在Arduino電路實驗中,最被廣納採用的控制板應非Arduino UNO莫屬,書中的說明與範例,也完全和UNO控制板相容。

認識Arduino UNO控制板

Uno是義大利文”1”的意思,代表Arduino開發工具迎向1.0版的里程碑(註:於2011.11.30發表,在此之前,開發工具軟體的版本是0019, 0023之類的編號)。

同時,Arduino UNO控制板的插槽設計,也稱為「1.0腳位(1.0 Pinout)」。比起之前的板子,多了SDASCL(位於AREF插孔左側)以及IOREF(位在RESET插孔左側)。

Arduino UNO控制板的接腳說明

Arduino微控器的許多接腳身兼兩種用途,像類比A4和A5腳,也是I2C介面的SDA和SCL腳位(詳閱第十一章「認識Wii左手把的通訊介面I2C」一節)。

新增的SCL和SDA插孔,分別和類比腳位A5與A4相連,新增這兩個插孔的好處是,做實驗時從板子的標示(註:標示在板子背後),能立即分辨SCL和SDA。

IOREF(輸出入埠電壓參考)插孔和5V(電源輸出)插孔相連,它可以讓擴充板(Shield)得知此Arduino板的運作電壓(註:大部分的擴充板都沒有使用到這項功能)。

IOREF左邊插孔是空接,所以沒有任何作用,未來的控制板也許會用到此插孔。

比較Arduino UNO與Arduino Duemilanove

UNO控制板最大的特色是採用了另一個微控制器(MEGA16U2或MEGA8U2),作為Arduino與電腦USB溝通的序列轉換介面。

因此,UNO的生產成本比較高,售價甚至比後進Arduino Leonardo(李奧納多)板子還貴一點。

早期的Arduino板(如:Duemilanove),採用普通的USB序列介面轉換IC(如:FTDI公司的FT232RL晶片):

Arduino Duemilanove控制板

在Mac OS X系統上,使用者必須自行到FTDI公司的網站下載驅動程式,才能從電腦傳輸寫好的程式給Arduino板;Windows 7系統會自行搜尋並安裝驅動程式。

在絕大部分的使用情況下,UNO和舊版的Arduino控制板,並沒有差別,因為它們的核心都是ATmega328型號的微控制器。

Mac OS X和Linux系統的使用者,無須安裝UNO的USB驅動程式;Windows版的Arduino軟體安裝程式,可在安裝過程中,一併安裝UNO的驅動程式。

Arduino UNO板的優勢在於,使用者可以自行燒錄USB序列轉換控制器的韌體。最初的UNO板採用的是MEGA8U2晶片,它的記憶體容量比較小(8KB快閃記憶體、512Bytes主記憶體與EEPROM,詳細請參閱ATMEL公司的這份PDF技術規格文件);UNO ”R3”版則換成記憶體容量較大的MEGA16U2晶片(16KB快閃記憶體、512Bytes主記憶體與EEPROM),並新增燒錄韌體的ICSP接腳。

透過自訂的USB晶片韌體,能讓電腦將UNO控制板辨識成MIDI數位音樂介面卡、PlayStation 3的控制器(手把)或其他USB周邊裝置。

然而,Arduino的開發工具軟體並不具備燒錄MEGA16U2韌體的功能。Arduino的官方網站的“Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 using DFU”這篇文章,說明了使用ATMEL公司的FLIP軟體燒寫韌體的步驟,有興趣的朋友請自行參考。

延伸閱讀

14 thoughts on “Arduino UNO控制板簡介

  1. 老師好久不見^_^
    老師你看這個好酷喔
    http://www.youtube.com/watch?v=6PGBJ9CBa3s
    它好像是用手機的耳機孔,輸出的音頻訊號去做控制
    這是他的相關教學網站,但是我英文能力不好,
    http://buildsmartrobots.ning.com/
    想請老師有空去一探究竟,
    只知道它是使用MSP430G2553晶片去做控制,但我ㄧ直無法取得它的電路圖,
    好想用Arduinou也做一個來玩,它的控制用材料真的很簡單

  2. 哈~謝謝老師我有看沒有懂
    我在網路上搜到這個http://makezine.com/projects/make-36-boards/android-arduino-led-strip-lights/
    有完整的教學,我照著做了,但是我 Arduino板子上的LED就是沒反應
    不知道是不是我手機作業系統版本太舊不支援,
    自己英文能力不好T_T,無法找到問題所在

    1. 你可以把問題分開來解決。它的Arduino原始碼,使用115200序列通訊,每次至少傳入3個位元組(或者說3個字元),並用newline(新行)字元結尾。

      因此,你不妨先在PC端,透過Arduino的序列埠監控視窗,隨意輸入3個數字測試看看Arduino的燈光是否有變化,甚至自行加上Serial.println()訊息來偵查錯誤。

      thanks,
      jeffrey

  3. 謝謝老師的教學~我想我上一層留言搞錯了
    把音頻搞去USB了,我現在比較想知道手機APP如何輸出音頻訊號的,
    但是我想又得從手機APP學起,電腦世界真是深奧呀!
    話說記得老師曾說過,想像有一天電腦能放在口袋裡,
    想不到那麼快就實現了,現在的智慧手機就好比一台電腦.

  4. 老師請問我想學手機APP,在網上搜到學習的資料,flash好像也能做手機的APP
    flash能夠做出我po給你看那個影片,手機上的APP嗎?

    1. Adobe AIR有提供一個叫做”Native Extension(原生擴充,簡稱ANE)“的介面,讓AIR應用程式具備存取系統或硬體等,原本在Flash或HTML/JavaScript辦不到功能。

      但前提是,必須有人先寫好這些ANE,或者,以Android平台為例,你自己用Java語言撰寫ANE。

      因此,如果你需要存取Android的硬體功能,那就直接用Java語言吧~

      如果不一定要做成Apk安裝檔,可以嘗試BASIC!(在Android裝置上用Basic語言開發Android程式,而且還支援藍牙、GPS和其他感應器),或者Scripting Layer for Android (SL4A)

      thanks,
      jeffrey

    1. 資策會和其他教育單位,有推出Android嵌入式系統開發的課程,其他的教學資訊要麻煩你問google了。

      thanks,
      jeffrey

  5. 老師我指的教學是你介紹的BASIC!
    我也只有找到這本書[用 Visual Basic 您也能開發 Android App]
    這也是台灣唯一一本教學BASIC!的書,但是他並沒我要能控制Android系統的部份.
    google如果搜的到我也不用來這邊問你了0.0
    謝謝!

    1. 哦~用Visual Basic開發Android,指的應該是Basic4android這個IDE工具。它和RFO Basic!完全不同,前者是商業軟體,在Windows上採用VB的語法和工具開發,後者則是開放原始碼,直接在Android上用簡易的程式編輯器開發。

      thanks,
      jeffrey

  6. 您好,

    想跟您請教,在網路上搜尋 arduino uno 板有找到 arduino uno R3 2012年版 跟 2013年版,

    比較一下您書上的圖跟網路上的照片,您書上的版本似乎是2012年的版本,

    請問若我購入 2013年的版本,應該實驗您書上的範例也OK吧?謝謝您。

    1. hi terry:

      其實UNO板只有R2和R3版本,並沒有年份的分別,應該是經銷商為了凸顯差異性才加上的。R2和R3的主要差別是Reset按鍵的位置以及USB晶片,這兩者對Arduino實驗沒有影響。

      選擇Arduino控制板,主要的考量是微控器的型號和工作電壓,基本上所有的Arduino控制板都是相容的。

      thanks,
      jeffrey

    2. 您好,

      我瞭解了,謝謝您。 剛接觸 Arduino ,都搞不太懂,呵呵。

      謝謝您的說明,這樣我比較放心跟他們購買了。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *