Arduino
"Arduino Uno"
|
|
| 型式 | 單板機 |
|---|---|
| 網站 | www |
Arduino,是一個開放原始碼的單晶片微控制器,它使用了Atmel AVR单片机,採用了開放原始碼的軟硬體平台,建構於簡易輸出/輸入(simple I/O)介面板,並且具有使用類似Java、C語言的Processing/Wiring開發環境。
目录
關於[编辑]
Arduino可以使用Arduino語言與Macromedia Flash、Processing、Max/MSP、Pure Data和SuperCollider跟Java和make block.cc等軟體,結合電子元件,例如開關或感測器或其他控制器件、發光二極管(LED)、步進馬達或其他輸出裝置,作出互動作品。Arduino也可以獨立運作成為一個可以跟軟體溝通的介面。
開發沿革[编辑]
Arduino的核心開發團隊成員包括:馬西莫·班齊(Massimo Banzi)、大衛·奎提耶斯(David Cuartielles)、湯姆·伊果(Tom Igor)、贊布羅塔·馬提諾(Gianluca Martino)、大衛·梅利斯(David Mellis)和尼可拉斯·蘭比提(Nicholas Zambetti)。
據說馬西莫·班齊之前是義大利Ivrea一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。2005年冬天,馬西莫·班齊跟大衛·奎提耶斯討論了這個問題。大衛·奎提耶斯是一個西班牙籍晶片工程師,當時在這所學校做訪問學者。兩人決定設計自己的電路板,並引入了馬西莫·班齊的學生大衛·梅利斯為電路板設計編程語言。兩天以後,大衛·梅利斯就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。幾乎任何人,即使不懂電腦編程,也能用Arduino做出很酷的東西,比如對感測器作出回應,閃爍燈光,還能控制馬達。隨後馬西莫·班齊、大衛·奎提耶斯和大衛·梅利斯把設計圖放到了網上。保持設計的開放源碼理念,因為版權法可以監管開源軟體,卻很難用在硬體上,他們決定採用共享創意許可。[1]共享創意是為保護開放版權行為而出現的類似GPL的一種許可(license)。在共享創意許可下,任何人都被允許生產印刷電路板的複製品,還能重新設計,甚至銷售原設計的複製品。你不需要付版稅,甚至不用取得Arduino團隊的許可。然而,如果你重新發佈了引用設計,你必須說明原始Arduino團隊的貢獻。如果你調整或改動了電路板,你的最新設計必須使用相同或類似的共享創意許可,以保證新版本的Arduino電路板也會一樣的自由和開放。唯一被保留的只有Arduino這個名字。它被註冊成了商標。如果有人想用這個名字賣電路板,那他們可能必須付一點商標費用給Arduino的核心開發團隊成員。
贊布羅塔·馬提諾創立的Arduino Srl被2009年創立的Arduino LLC控告侵犯了他們的著作權,這第二家被控侵權的Arduino(也就是Arduino Srl),原先叫做Smart Projects Srl,以前是在義大利負責生產製造Arduino控制板的公司。而第一家Arduino(也就是我們較熟悉的Arduino LLC)則負責開發控制板,並管理周邊的開放原始碼專題與社群。在之前,原本雙方是合作的關係;2014年Martino與另外四位共同創辦人,對於Arduino品牌的發展方向意見不合,導致Martino另外請費德里科·穆斯托擔任Smart Projects的新執行長,並把公司名稱改為Arduino Srl。[2]
特色[编辑]
- 基於創用CC開放原始碼的電路圖設計。
- 免費下載,也可依需求自己修改,但需遵照姓名標示。您必須按照作者或授權人所指定的方式,表彰其姓名。
- 依相同方式分享,若您改變或轉變著作,當散布該衍生著作時,您需採用與本著作相同或類似的授權條款。
- Arduino可使用ICSP線上燒入器,將Bootloader燒入新的IC晶片。[3]
- 可依據Arduino官方網站,取得硬體的設計檔,加以調整電路板及元件,以符合自己實際設計的需求。[4]
- 可簡單地與感測器,各式各樣的電子元件連接,如紅外線、超音波、熱敏電阻、光敏電阻、伺服馬達…等。
- 支援多樣的互動程式,如Adobe Flash, Max/MSP, VVVV, Pure Data, C, Processing…等。
- 使用低價格的微處理控制器(Atmel AVR)(ATMEGA 8,168,328等)。
- USB介面,不需外接電源。另外有提供直流(DC)電源輸入。
硬體[编辑]
官方硬體[编辑]
原始的Arduino硬體是從一間義大利公司Smart Projects製造。[5]有些Arduino硬體則是被官方授權由美國公司SparkFun Electronics和Adafruit Industries設計。[6]
- Arduino硬體範例
-
Arduino MEGA 2560 R3(正面)[a]
-
Arduino MEGA 2560 R3(背面)[a]
-
Arduino Due
(ARM Cortex-M3核心)
Shields[编辑]
"Shields"擴充版能夠被插入Arduino和Arduino相容硬體。用途是增加Arduino硬體上沒有的功能,如馬達控制, GPS, 有線網路,液晶顯示器,或者是麵包板。使用者也可以自己動手做Shields擴充版。[8][9][10]
- Arduino shields擴充版範例
軟體[编辑]
編寫於Arduino IDE上簡單的入門程式「Blink」的螢幕截圖
|
|
| 開發者 | Arduino Software |
|---|---|
| 穩定版本 | 1.6.7(2015年12月17日[11]) |
| 编程语言 | Java, C and C++ |
| 操作系统 | 跨平台 |
| 类型 | 整合開發環境 |
| 许可协议 | LGPL或GPL授權 |
| 網站 | arduino |
在Arduino上執行的程式可以使用任何能夠被編譯成Arduino機器碼的程式語言編寫。而Atmel也提供了數個可以開發Atmel微處理機程式的整合開發環境,AVR Studio和更新的Atmel Studio。[12][13]
而Arduino計劃也提供了Arduino Software IDE,一套以Java編寫的跨平台應用軟體。Arduino Software IDE源自於Processing程式語言以及Wiring計劃的整合開發環境。它是被設計於介紹程式編寫給藝術家和不熟悉程式設計的人們,且包含了一個擁有語法突顯、括號匹配、自動縮排和一鍵編譯並將執行檔燒寫入Arduino硬體中的編輯器。使用Arduino Software IDE編寫的程式被稱為「sketch」。[14]
Arduino Software IDE使用與C語言和C++相仿的程式語言,並且提供了包含常見的輸入/輸出函式的Wiring軟體函式庫。一個典型的Arduino C/C++ sketch程式會包含兩個函式,它們會在編譯後合成為main()函式:
- setup():在程式執行開始時會執行一次,用於初始化設定。
- loop():直到Arduino硬體關閉前會重複執行函式放的程式碼。
在使用GNU toolchain編譯和連結後,Arduino Software IDE提供了一個程式「avrdude」用來轉換可執行檔成為能夠燒寫入Arduino硬體的韌體。
Arduino语言[编辑]
int LED_PIN=13;
void setup () { // 初始化副程式,程式起始時僅執行一次
pinMode (LED_PIN, OUTPUT); // 以數位輸出方式啟用Pin13
}
void loop () { // loop副程式,重複不斷執行
digitalWrite (LED_PIN, HIGH); // 打開LED(發光二極管)
delay (1000); // 等待一秒,delay內含數值1000,代表延遲1000毫秒,即一秒。
digitalWrite (LED_PIN, LOW); // 關閉LED
delay (1000); // 等待一秒
} // loop副程式結束
這是Arduino的Blink範例程式。
每一個Arduino程序都必須擁有兩個過程:void setup(){}和void loop(){}。在void setup(){}裡面的代碼在導通電源時會執行一次,然後void loop(){}裡面的代碼會不斷執行。
參考資料[编辑]
- O'REILLY歐萊禮原文 - Getting Started with Arduino
- O'REILLY歐萊禮原文繁體中文翻譯書 - 踏進互動科技世界使用Arduino
相關設備名稱[编辑]
- BASIC Stamp
- OOPic
- PICAXE
- Parallax Propeller
- ARM express
- Fritzing
- Gumstix
- ioBridge
- Make Controller Kit
- Minibloq
- 樹莓派 - 单板機電腦
- Simplecortex
參見[编辑]
注釋[编辑]
参考文献[编辑]
- ^ ChiuHao Chen. OPEN的力量:ARDUINO開放硬體計畫. [2016-03-06].
- ^ Arduino的雙胞戰爭:創始團隊的分裂始末. [2016-03-06].
- ^ M-SHORT. Installing an Arduino Bootloader. [2016-03-06].
- ^ Arduino Single-Sided Serial Board (version 3). [2016-03-06].
- ^ Redirect.... smartprj.com.
- ^ Schmidt, M. ["Arduino: A Quick Start Guide"], Pragmatic Bookshelf, January 22, 2011, Pg. 201
- ^ Arduino - ArduinoBoardMega2560. arduino.cc.
- ^ Arduino breadboard shield: $10 & 10 mins. todbot blog.
- ^ Arduino Shields for Prototyping. tigoe.net.
- ^ Jonathan Oxer. Arduino Shield list. [5 Nov 2013].
- ^ Arduino Software Release Notes. Arduino Project. [May 31, 2013].
- ^ Using Atmel Studio for Arduino development. Megunolink.com. [2013-01-18].
- ^ Using AVR Studio for Arduino development. Engblaze.com. [2013-01-18].
- ^ Programming Arduino Getting Started with Sketches. McGraw-Hill. Nov 8, 2011 [2013-03-28].
外部链接[编辑]
- http://www.arduino.cc/
- http://arduino.org/
- 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教學