Arduino

開源電子原型平台

Arduino是一款便捷靈活、方便上手的開源電子原型平台。包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。其成員包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。

它構建於開放原始碼simpleI/O介面版,並且具有使用類似Java、C語言的Processing/Wiring開發環境。主要包含兩個的部分:硬體部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發環境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什麼了。

Arduino能通過各種各樣的感測器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進位文件,燒錄進微控制器。對Arduino的編程是通過Arduino編程語言(基於 Wiring)和Arduino開發環境(基於 Processing)來實現的。基於Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟體,他們之間進行通信(比如 Flash, Processing, MaxMSP)來實現。

發展沿革


Massimo Banzi之前是義大利Ivrea一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles討論了這個問題。 David Cuartielles是一個西班牙籍晶片工程師,當時在這所學校做訪問學者。兩人決定設計自己的電路板,並引入了Banzi的學生David Mellis為電路板設計編程語言。兩天以後,David Mellis就寫出了程式碼。又過了三天,電路板就完工了。Massimo Banzi喜歡去一家名叫di Re Arduino的酒吧,該酒吧是以1000年前義大利國王Arduin的名字命名的。為了紀念這個地方,他將這塊電路板命名為Arduino。
隨後Banzi、Cuartielles和Mellis把設計圖放到了網上。版權法可以監管開源軟體,卻很難用在硬體上,為了保持設計的開放源碼理念,他們決定採用Creative Commons(CC)的授權方式公開硬體設計圖。在這樣的授權下.任何人都可以生產電路板的複製品,甚至還能重新設計和銷售原設計的複製品。人們不需要支付任何費用,甚至不用取得Arduino團隊的許可。然而,如果重新發布了引用設計,就必須聲明原始Arduino團隊的貢獻。如果修改了電路板,則最新設計必須使用相同或類似的Creative Commons(CC)的授權方式,以保證新版本的Arduino電路板也會一樣是自由和開放的。唯一被保留的只有Arduino這個名字,它被註冊成了商標,在沒有官方授權的情況下不能使用它。
Arduino發展至今,已經有了多種型號及眾多衍生控制器推出。

功能特點


•跨平台
Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系統上運行,而其他的大多數控制器只能在Windows上開發。
•簡單清晰
Arduino IDE基於processing IDE開發。對於初學者來說,極易掌握,同時有著足夠的靈活性。Arduino語言基於wiring語言開發,是對 avr-gcc庫的二次封裝,不需要太多的單片機基礎、編程基礎,簡單學習后,你也可以快速的進行開發。
•開放性
Arduino的硬體原理圖、電路圖、IDE軟體及核心庫文件都是開源的,在開源協議範圍內里可以任意修改原始設計及相應代碼。
•發展迅速
Arduino不僅僅是全球最流行的開源硬體,也是一個優秀的硬體開發平台,更是硬體開發的趨勢。Arduino簡單的開發方式使得開發者更關注創意與實現,更快的完成自己的項目開發,大大節約了學習的成本,縮短了開發的周期。
因為Arduino的種種優勢,越來越多的專業硬體開發者已經或開始使用Arduino來開發他們的項目、產品;越來越多的軟體開發者使用Arduino進入硬體、物聯網等開發領域;大學里,自動化、軟體,甚至藝術專業,也紛紛開展了Arduino相關課程。
可以快速使用Arduino與Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider等軟體結合,作出互動作品。Arduino可以使用現有的電子元件例如開關或者感測器或者其他控制器件、LED、步進馬達或其他輸出裝置。 Arduino也可以獨立運行,並與軟體進行交互,例如: Macromedia Flash, Processing, Max/MSP, Pure Data, VVVV或其他互動軟體。Arduino的IDE界面基於開放源代碼,可以免費下載使用,開發出更多令人驚艷的互動作品。

整機配件


主板

Arduino
Arduino
Arduino的型號有很多,如
Arduino Uno
Arduino Nano
Arduino Nano
Arduino Nano
Arduino LilyPad
Arduino Mega 2560
Arduino Ethernet
A徠rduino Due
Arduino Leonardo
ArduinoYún

擴展板

Arduino的擴展板很多,如
Arduino GSM Shield Front
Arduino GSM Shield Front
Arduino GSM Shield
Arduino Ethernet Shield
Arduino Ethernet Shield
Arduino Ethernet Shield
Arduino WiFi Shield
Arduino Wireless SD Shield
Arduino USB Host Shield
Arduino Motor Shield
Arduino Wireless Proto Shield
Arduino Proto Shield

銷售信息


為了保持設計的開放源碼理念,因為版權法可以監管開源軟體,卻很難用在硬體上,Arduino決定採用Creative Commons許可。Creative Commons(CC)是為保護開放版權行為而出現的類似GPL的一種許可(license)。在Creative Commons許可下,任何人都被允許生產電路板的複製品,還能重新設計,甚至銷售原設計的複製品。你不需要付版稅,甚至不用取得Arduino團隊的許可。然而,如果你重新發布了引用設計,你必須說明原始Arduino團隊的貢獻。如果你調整或改動了電路板,你的最新設計必須使用相同或類似的 Creative Commons許可,以保證新版本的Arduino電路板也會一樣的自由和開放。唯一被保留的只有Arduino這個名字。它被註冊成了商標。如果有人想用這個名字賣電路板,那他們必須付一點商標費用給Arduino的核心開發團隊成員。

代碼示例


對於Arduino版的控制,Arduino官方推出了一款軟體,用於編輯Arduino板所用程序。

LED閃爍試驗

實驗準備:
1.將1個LED燈長引腳連接220Ω電阻后連接Arduino板上的數字腳2。
2.將此LED燈短引腳連接Arduino板上的GND。
3.複製此代碼,上傳,觀察效果。
1
2
3
4
5
6
7
8
9
10
const int ledPin = 2;//led接數字腳2。
void setup(){
pinMode(ledPin, OUTPUT);//將led腳設為輸出。
}
void loop(){
digitalWrite(ledPin, HIGH);//led腳設為高電平。
delay(1000);//延遲1秒。
digitalWrite(ledPin, LOW);//led腳設為低電平。
delay(1000);//延遲1秒。
}