跳至內容

Arduino

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Arduino
研發商arduino.cc
製造商許多
類型Single-board microcontroller
作業系統None
中央處理器Atmel AVR (8-bit),
ARM Cortex-M0+ (32-bit),
ARM Cortex-M3 (32-bit),
Intel Quark英語Intel Quark (x86) (32-bit)
記憶體SRAM
硬碟儲存空間Flash, EEPROM
網站www.arduino.cc 編輯維基數據鏈結

Arduino (/ɑːrˈdwn/)是一家義大利開源硬體和軟體公司、專案和使用者社群。 他們設計和製造用於建造數位裝置的單板微控制器和微控制器套件。 Arduino 的硬體產品根據 CC BY-SA 獲得許可,而軟體根據 GNU 寬通用公共授權 (LGPL) 或 GNU 通用公共授權 (GPL) 獲得許可[1],這意味著任何人都可以建立 Arduino 板並分賣軟體。 Arduino板可以從官方網站或授權經銷商購買。

Arduino 板是使用各種微處理器和控制器設計的。 這些板配備了一組數位和類比輸入/輸出 (I/O) 引腳,可連接到各種擴展板或麵包板和其他電路。 該板具有串行通訊介面,包括USB,也用於安裝程式。 微控制器可以使用 CC++ 程式語言以及標準 API(原文: Arduino Programming Language)進行編程,其靈感來自於處理語言,並與處理 IDE 的修改版本一起使用。 除了使用傳統的編譯工具鏈外,Arduino專案還提供了整合開發環境(IDE)和用Go語言開發的命令列工具。

Arduino 計畫始於 2005 年,[2]作為義大利伊夫雷亞互動設計學院學生的工具,旨在為新手和專業人士提供一種低成本且簡單的方法來建立使用感測器和執行器進行互動的裝置。 對於初學者和愛好者來說,此類裝置的常見範例包括簡單的機器人恆溫器和運動偵測器。

Arduino 的名字來自於義大利伊夫雷亞的一家酒吧,該計畫的一些創始人就是在那裡相遇的。 酒吧以伊夫雷亞侯爵、1002 年至 1014 年義大利國王阿杜因 (Arduin of Ivrea) 的名字命名[3]

關於[編輯]

Arduino 系列電路板的設計大多使用 Atmel AVR 單片機。這些電路板配有一組數字和類比I/O引腳,可以連接各種擴展板或麵包板(Shields 擴充版)和其他電路。這些電路板具有串列埠,包括某些型號上的通用串列匯流排(USB),也用於從個人電腦載入程式。

軟體編程方面,通常使用C/C++程式語言,官方提供了一個開發用的Arduino 整合開發環境(IDE)。除了使用傳統的編譯工具鏈之外,Arduino 項目還提供了一個基於 Processing 語言專案的整合開發環境。另外,一些少兒編程教育軟體提供了對 Arduino 的可視化編程

開發沿革[編輯]

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

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

贊布羅塔·馬提諾創立的 Arduino Srl 被2009年創立的 Arduino LLC 控告侵犯了他們的著作權,這第二家被控侵權的 Arduino(也就是 Arduino Srl),原先叫做 Smart Projects Srl,以前是在義大利負責生產製造 Arduino 控制板的公司。而第一家 Arduino(也就是我們較熟悉的 Arduino LLC)則負責開發控制板,並管理周邊的開源專題與社群。在之前,原本雙方是合作的關係;2014年馬提諾與另外四位共同創辦人,對於 Arduino 品牌的發展方向意見不合,導致馬提諾另外請費德里科·穆斯托擔任 Smart Projects 的新執行長,並把公司名稱改為 Arduino Srl[5]

特色[編輯]

  • 基於創用CC開源的電路圖設計。
  • 免費下載,也可依需求自己修改,但需遵照姓名標示,按照作者或授權人所指定的方式,表彰其姓名。
  • 依相同方式分享,若改變或轉變著作,當散布該衍生著作時,需採用與本著作相同或類似的授權條款。
  • Arduino 可使用 ICSP 線上燒入器,將 Bootloader 燒入新的IC晶片[6]
  • 可依據 Arduino 官方網站,取得硬體的設計檔,加以調整電路板及元件,以符合自己實際設計的需求[7]
  • 可簡單地與感測器及各式各樣的電子元件連接,如紅外線超音波熱敏電阻光敏電阻伺服馬達等。
  • 支援多樣的互動程式,如Adobe Flash、Max/MSP、VVVV、Pure Data、C及Processing等。
  • 使用低價格的微處理控制器(Atmel AVR)(ATmega8168328等)。
  • USB 介面,不需外接電源。另外有提供直流(DC)電源輸入。

硬體[編輯]

官方硬體[編輯]

原始的 Arduino 硬體是從一間義大利公司 Smart Projects 製造[8]有些 Arduino 硬體則是被官方授權由美國公司 SparkFun Electronics英語SparkFun ElectronicsAdafruit Industries英語Adafruit Industries 設計。[9]

Shields[編輯]

「Shields」擴充版能夠插入 Arduino 和 Arduino 相容硬體,用途是增加 Arduino 硬體本身沒有的功能,如馬達控制、GPS有線網路液晶顯示器或者是麵包板。使用者也可以自己動手做 Shields 擴充版[10][11][12]

軟體[編輯]

Arduino Software IDE
編寫於Arduino IDE的簡單入門程式「閃燈(Blink)」的螢幕截圖
編寫於Arduino IDE的簡單入門程式「閃燈(Blink)」的螢幕截圖
開發者Arduino Software
程式語言JavaCC++
作業系統Windows, macOS, Linux
類型整合開發環境
許可協定LGPLGPL授權
網站arduino.cc

在 Arduino 上執行的程式可以使用任何能夠被編譯成 Arduino 機器碼的程式語言編寫,Arduino 官方推薦使用整合了 arduino 庫的 C++ 進行編程。

多數 Arduino 電路板上 MCU 的製造商 Atmel 公司也提供了數個可以開發 Atmel 微處理機程式的整合開發環境,AVR Studio[13]和更新的 Atmel Studio[14][15]

目前微軟在其 Microsoft Visual Studio 也有提供 Arduino 的 SDK,在編譯執行上更方便。


IDE[編輯]

Arduino 計劃也提供了 Arduino Software IDE,一套以 Java 編寫的跨平台應用軟體。Arduino Software IDE 源自於 Processing程式語言以及 Wiring英語Wiring 計劃的整合開發環境。它是被設計於介紹程式編寫給藝術家和不熟悉程式設計的人們,且包含了一個擁有語法突顯、括號匹配、自動縮排和一鍵編譯並將執行檔燒寫入 Arduino 硬體中的編輯器。

Arduino Software IDE 使用與C語言C++相仿的程式語言,並且提供了包含常見的輸入/輸出函式的 Wiring英語Wiring 軟體函式庫。在使用GNU toolchain編譯和連結後,Arduino Software IDE提供了一個程式「avrdude」用來轉換可執行檔成為能夠燒寫入 Arduino 硬體的韌體。2019 年後,版本分為簡潔、免安裝的IDE1 和功能齊全的IDE2

Sketch[編輯]

使用Arduino Software IDE編寫的程式被稱為「sketch」[1]。一個典型的 Arduino C/C++ sketch 程式會包含兩個函式,它們會在編譯後合成為 main() 函式:

  • setup():在程式執行開始時會執行一次,用於初始化設定。
  • loop():直到Arduino硬體關閉前會重複執行函式放的程式碼。

相關裝置名稱[編輯]

參見[編輯]

注釋[編輯]

參考資料[編輯]

  1. ^ 1.0 1.1 Programming Arduino Getting Started with Sketches. McGraw-Hill. Nov 8, 2011 [2013-03-28]. (原始內容存檔於2019-09-19). 
  2. ^ Severance; Charles. Massimo Banzi: Building Arduino. Computer. 2014, 47 (1): 11–12 [2022-04-12]. (原始內容存檔於2022-04-24). 
  3. ^ Justin Lahart. Taking an Open-Source Approach to Hardware. The Wall Street Journal. 27 November 2009 [2014-09-07]. (原始內容存檔於2014-12-20). 
  4. ^ ChiuHao Chen. OPEN的力量:ARDUINO開放硬體計畫. [2016-03-06]. (原始內容存檔於2016-03-10). 
  5. ^ Arduino的雙胞戰爭:創始團隊的分裂始末. [2016-03-06]. (原始內容存檔於2016-03-04). 
  6. ^ M-SHORT. Installing an Arduino Bootloader. [2016-03-06]. (原始內容存檔於2016-03-08). 
  7. ^ Arduino Single-Sided Serial Board (version 3). [2016-03-06]. (原始內容存檔於2016-03-10). 
  8. ^ Redirect.... smartprj.com. [2016-03-05]. (原始內容存檔於2016-03-05). 
  9. ^ Schmidt, M. Arduino: A Quick Start Guide. Pragmatic Bookshelf. January 22, 2011: 201 (英語). 
  10. ^ Arduino breadboard shield: $10 & 10 mins. todbot blog. [2016-03-05]. (原始內容存檔於2017-09-16). 
  11. ^ Arduino Shields for Prototyping. tigoe.net. [2016-03-05]. (原始內容存檔於2017-07-02). 
  12. ^ Jonathan Oxer. Arduino Shield list. [5 Nov 2013]. (原始內容存檔於2016-03-04). 
  13. ^ Using AVR Studio for Arduino development. Engblaze.com. [2013-01-18]. (原始內容存檔於2012-08-28). 
  14. ^ Arduino Software Release Notes. Arduino Project. [May 31, 2013]. (原始內容存檔於2020-02-02). 
  15. ^ Using Atmel Studio for Arduino development. Megunolink.com. [2013-01-18]. (原始內容存檔於2013-01-28). 

補充資料[編輯]

  • Exploring Arduino: Tools and Techniques for Engineering Wizardry; 2nd Ed; Jeremy Blum; Wiley; 512 pages; 2019; ISBN 978-1119405375.
  • Arduino For Dummies; 2nd Ed; John Nussey; John Wiley & Sons; 400 pages; 2018; ISBN 978-1119489542.
  • Programming Arduino Next Steps: Going Further with Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 320 pages; 2018; ISBN 978-1260143249.
  • Programming Arduino: Getting Started With Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 192 pages; 2016; ISBN 978-1259641633.
  • Beginning C for Arduino: Learn C Programming for the Arduino; 2nd Ed; Jack Purdum; Apress; 388 pages; 2015; ISBN 978-1484209417.
  • Arduino: A Quick Start Guide; 2nd Ed; Maik Schmidt; Pragmatic Bookshelf; Pragmatic Bookshelf; 323 pages; 2015; ISBN 978-1941222249.
  • Make: Getting Started with Arduino; 3rd Ed; Massimo Banzi, Michael Shiloh; Make Community; 262 pages; 2014; ISBN 978-1449363338.
  • Make: Sensors; 1st Ed; Tero Karvinen, Kimmo Karvinen, Ville Valtokari; Make Community; 400 pages; 2014; ISBN 978-1449368104.
  • Arduino Workshop: A Hands-On Introduction with 65 Projects; 1st Ed; John Boxall; No Starch Press; 392 pages; 2013; ISBN 978-1593274481.

外部連結[編輯]