Arduino

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

Arduino 板是使用各種微處理器和控制器設計的。該板配備一組數位和類比輸入/輸出 (I/O) 引腳，可連接到各種擴展板或麵包板和其他電路。該板也具有能用於安裝程式的USB和其它類型的串行通訊接口。

微控制器可以使用 C 和 C++ 程式語言以及標準 API（原文： Arduino Programming Language）進行編程。API靈感來自於處理語言，並與處理 IDE 的修改版本一起使用。除了使用傳統的編譯工具鏈外，Arduino專案還提供了整合開發環境（IDE）和使用Go語言開發的命令列工具。

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

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

## 關於

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 的設計使幾乎任何人都能輕鬆創作，即使不懂編程的人也能利用它來響應感測器、閃爍燈光或控制馬達。隨後，班齊、奎提耶斯和梅利斯將設計圖上傳至網路，並秉持開放源碼的理念，決定採用共享創意許可（Creative Commons License）。這種許可旨在保護開放版權行為，類似於 GPL，但更適用於硬體。根據共享創意許可，任何人都可以生產印刷電路板的複製品，重新設計，甚至銷售原設計的複製品，而無需支付版稅或獲得 Arduino 團隊的許可。

不過，如果有人重新發佈引用了 Arduino 的設計，必須給予原始團隊條款。此外，若對電路板進行調整或改動，新的設計也必須使用相同或類似的共享創意許可，以確保新版本的 Arduino 電路板保持自由和開放。唯一保留的就是「Arduino」這個名字，因為它已被註冊為商標。如果有人希望使用這個名字銷售電路板，可能需要向 Arduino 核心開發團隊成員支付商標費用

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

2025年10月9日，高通宣布併購Arduino。

## 特色

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

## 硬體

### 官方硬體

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

- Arduino Diecimila in Stoicheia
- Arduino Duemilanove (rev 2009b)
- Arduino UNO
- Arduino Leonardo
- Arduino Mega
- Arduino Nano
- Arduino Due （ARM Cortex-M3核心）
- LilyPad Arduino (rev 2007)
- Arduino Yun
- Arduino Pro Micro
- Arduino MEGA 2560

### Shields

「Shields」擴充版能夠插入 Arduino 和 Arduino 相容硬體，用途是增加 Arduino 硬體本身沒有的功能，如馬達控制、全球定位系統（GPS）、有線網路、液晶顯示器或者是麵包板。使用者也可以自己動手做 Shields 擴充版。

- 多重的Shield可以被堆疊起來。在這張圖裡，最上層的Shield擴充版上含有麵包板。
- 翅膀形狀的螺絲端子Shield擴充版。
- Adafruit馬達Shield擴充版和用於連接馬達的螺絲端子Shield擴充版。
- 內建一個SD卡插槽，以及實時時鐘晶片的Adafruit數據記錄Shield。
- HackARobot結構Shield，專為了Arduino Nano硬體設計以推動馬達和感測器如：陀螺儀和GPS，以及其他的擴充版如：Wifi、藍芽、無線射頻等。

## 軟體

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

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

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

基於Scratch程序的在線編程平台Codelab提供了對Arduino UNO的Scratch程序擴展，可以使用Scratch進行Arduino UNO的程序開發。

### IDE

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

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

### Sketch

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

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

## 相關設備名稱

- BASIC Stamp
- OOPic
- PICAXE
- Parallax Propeller
- Fritzing
- Gumstix
- ioBridge
- Make Controller Kit
- Minibloq
- 樹莓派 - 單板機電腦
- ESP32
- Simplecortex

## 參見

- 知識共享（Creative Commons）

## 參考資料

### 補充資料

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

## 外部連結

- Arduino官方網站
- Make Magazine article on the Arduino
- "Wiring" software project: http://wiring.org.co/
- Flickr上有關Arduino的圖片
- Arduino tutorial – broken into several lessons with photographs and suggestions for appropriate tools for beginners.
- Introduction to the Arduino - Weekend Project Podcast
- Sheepdog Software's Introduction to Arduino："Getting Started" pages and sequenced programming tutorials, with help on hardware.
- Wired article about open source hardware, focusing on Arduino
- 新竹交通大學毛先生的資料
- Freeduino索引
- 自製USB AVR燒錄器

### 教程

- Arduino: Robotics for beginners (Spanish with English subtitles)
- Arduino tutorial – in portuguese, but with source codes and videos.
- Cooper Maa的Arduino筆記
- Arduino中文教程-Arduino中文社區
- Arduino中文教程
- 柯博文老師的arduino教學

## 基本資料

- 開發者：arduino.cc
- 製造商：許多
- 類型：單片機
- 中央處理器：Atmel AVR (8-bit)、ARM Cortex-M0+ (32-bit)、ARM Cortex-M3 (32-bit)、Intel Quark (x86) (32-bit)
- 存儲：Flash, EEPROM
- 存儲器：SRAM
- 日語原文：Arduino Software IDE
- 開發者：Arduino Software
- 作業系統：Windows, macOS, Linux
- 類型：整合開發環境
- 程式語言：Java、C 和 C++
- 許可協議：LGPL或GPL授權