什么是Arduino?
Arduino是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。 由一個(gè)歐洲開(kāi)發(fā)團(tuán)隊(duì)于2005年冬季開(kāi)發(fā)。 它構(gòu)建于開(kāi)放原始碼simple I/O介面版,并且具有使用類似JAVA、C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境。主要包含兩個(gè)主要的部分:硬件部分是可以用來(lái)做電路連接的Arduino電路板;另外一個(gè)則是Arduino IDE,你的計(jì)算機(jī)中的程序開(kāi)發(fā)環(huán)境。你只要在IDE中編寫(xiě)程序代碼,將程序上傳到Arduino電路板后,程序便會(huì)告訴Arduino電路板要做些什么了。
Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫(xiě)程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。對(duì)Arduino的編程是利用 Arduino編程語(yǔ)言 (基于 Wiring)和Arduino開(kāi)發(fā)環(huán)境(基于 Processing)來(lái)實(shí)現(xiàn)的。基于Arduino的項(xiàng)目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運(yùn)行的軟件,他們之間進(jìn)行通信 (比如 Flash, Processing, MaxMSP)來(lái)實(shí)現(xiàn)。
Arduino如何選型?
現(xiàn)在已經(jīng)有很多專門為軟件開(kāi)發(fā)者設(shè)計(jì)的智能硬件開(kāi)發(fā)平臺(tái)。例如現(xiàn)在火爆的 樹(shù)莓派-raspberry pi、英特爾推出的愛(ài)迪生-Edison以及Arduino。
這些硬件都有個(gè)共同的特點(diǎn),采用主控制板+擴(kuò)展板+外接硬件的方式工作。
由于Arduino便宜、開(kāi)源有龐大的社區(qū)支持,可以找到很多志同道合的人交流、快速進(jìn)步;http://www.arduino.cn/portal.php 我們選擇這個(gè)平臺(tái)來(lái)開(kāi)始智能硬件開(kāi)發(fā)。
其中最常見(jiàn)、用來(lái)做入門學(xué)習(xí)的有兩種,UNO和MEGA。

這兩個(gè)開(kāi)發(fā)板的功能幾乎一樣,MEGA使用的主控制芯片性能要高一些,針腳多一些,可以同時(shí)連接的外接硬件就要多一些。 MEFGA配置高一些,可能會(huì)同時(shí)要加裝各種外接設(shè)備,MEGA開(kāi)發(fā)板對(duì)此更有優(yōu)勢(shì)。我們的建議是選Arduino的MEGA開(kāi)發(fā)板。
Hello World程序編寫(xiě)
(1)將Arduino開(kāi)發(fā)板通過(guò)USB線連接到電腦,系統(tǒng)會(huì)自動(dòng)安裝驅(qū)動(dòng)
右鍵單擊我的電腦,在彈出菜單中選擇:管理,在打開(kāi)的計(jì)算機(jī)管理窗口左側(cè)列表中選擇設(shè)備管理器在右側(cè)展開(kāi)端口(COM和LPT),會(huì)看到我們的設(shè)備。

(2)Arduino的IDE下載和安裝
IDE下載地址:https://www.arduino.cc/en/Main/Software
IDE下載完成后,就像任何普通程序一樣,直接安裝就行了。
(3)新建工程
雙擊Arduino的圖標(biāo),IDE程序就運(yùn)行起來(lái)了。新建工程啟動(dòng)Arduino IDE,點(diǎn)擊菜單欄的文件->新建(或者使用快捷鍵Ctrl+N),生成新的工程文件, 點(diǎn)擊菜單欄的文件->保存(或者使用快捷鍵Ctrl+S),保存生成的工程文件。 文件名填寫(xiě)HelloWorld。保存后,Arduino IDE會(huì)自動(dòng)生成一個(gè)名稱叫HelloWorld的文件夾,并在這個(gè)文件夾下生成一個(gè)同名的HelloWorld.ino文件。.ino文件是Arduino工程的主文件,Arduino IDE要求工程項(xiàng)目的主文件必須置于同名文件夾之內(nèi)。
(4)代碼編寫(xiě)
Arduino開(kāi)發(fā)板都會(huì)提供一個(gè)串口(如果你不知道什么是串口的話,可以把它想象成一條連接著開(kāi)發(fā)板和其他外圍設(shè)備的管道)供電腦調(diào)試Arduino開(kāi)發(fā)板上運(yùn)行的程序使用。 Arduino程序通過(guò)Serial.print()這樣的函數(shù)就能把數(shù)據(jù)從開(kāi)發(fā)板寫(xiě)入到串口中,如果電腦端有對(duì)應(yīng)的接收程序,那么就能看到寫(xiě)入的數(shù)據(jù)。 Arduino IDE通過(guò)串口和PC(或其他設(shè)備)通訊。在Arduino IDE中Serial對(duì)象就是串口的化身。
新生成的HelloWorld.ino文件中,自動(dòng)生成了setup()和loop()兩個(gè)函數(shù)。
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
開(kāi)發(fā)板的程序啟動(dòng)時(shí),首先會(huì)調(diào)用setup(),進(jìn)行初始化工作;
然后會(huì)循環(huán)的調(diào)用loop()函數(shù),讓開(kāi)發(fā)板不停的運(yùn)轉(zhuǎn)起來(lái)。
在本例中,setup()函數(shù)里只需要設(shè)置串口波特率。
波特率指的是數(shù)據(jù)發(fā)送的速度,只有接收方和發(fā)送方都在同一個(gè)波特率上,才能正確的接收數(shù)據(jù)。這就好比調(diào)頻的電臺(tái)和收音機(jī),兩者的頻率必須一致才能接收到聲音。
void setup() { // put your setup code here, to run once: Serial.begin(9600); }在loop()中,用串口輸出”Hello world!”,每循環(huán)一次,就會(huì)輸出一次這個(gè)字符串,
void loop() { // put your main code here, to run repeatedly: Serial.println("Hello world!"); }
(5)程序部署
程序?qū)懞靡院螅枰獙㈦娔X上編譯好的程序,部署到開(kāi)發(fā)板上,讓程序運(yùn)行起來(lái),
1 用USB數(shù)據(jù)線,將開(kāi)發(fā)板和電腦連接起來(lái);現(xiàn)在的新版操作系統(tǒng)(Window10, MacOS X等等),不需要安裝驅(qū)動(dòng),就能識(shí)別Arduino開(kāi)發(fā)板;
2 選擇菜單欄的工具->開(kāi)發(fā)板,選擇正在使用的開(kāi)發(fā)板Arduino MEGA or MEGA 2560;

3 選擇菜單欄的工具->端口,選擇正在使用的設(shè)備端口(如果設(shè)備被操作系統(tǒng)成功識(shí)別,會(huì)在此處顯示出來(lái));

4 點(diǎn)擊工具欄上的部署按鈕,程序就會(huì)被編譯,并部署到設(shè)備上運(yùn)行了;
效果展示:
點(diǎn)右上角的按鈕打開(kāi)串口監(jiān)視器(或者使用快捷鍵Ctrl+Shift+m)
右下角的波特率必須和setup()中設(shè)置的數(shù)值相同,本例是9600.