手把手教你智慧硬體開發(二) 從HelloWorld開始
第2節 Hello World
萬事開頭難,這一節我們將寫一個最簡單的程式,讓它在Arduino MEGA開發板上執行起來。
為此,我們需要準備,
- Arduino MEGA開發板;
- 一臺開發用的電腦,Window、Linux、MacOS作業系統都可以;
- 一根連線Arduino MEGA開發板和電腦的USB資料線;
注意,這根USB連線線的一端是方頭的,它將和Arduino開發板提供的USB介面相連。這種方頭的USB資料線介面叫做USB type-B,常用在印表機的介面上;而我們最常使用的那種USB資料線介面叫做USB type-A。
2.1 搭建開發環境
在官網下載相應作業系統的
IDE下載完成後,就像任何普通程式一樣,直接安裝就行了。
雙擊Arduino
的圖示,IDE程式就執行起來了,
2.2 新建工程
啟動Arduino IDE,點選選單欄的檔案->新建
(或者使用快捷鍵Ctrl+N
),生成新的工程檔案,
點選選單欄的檔案->儲存
(或者使用快捷鍵Ctrl+S
),儲存生成的工程檔案。
檔名填寫HelloWorld
。儲存後,Arduino IDE會自動生成一個名稱叫HelloWorld
HelloWorld.ino
檔案。
.ino
檔案是Arduino工程的主檔案,Arduino IDE要求工程專案的主檔案必須置於同名資料夾之內。
2.3 Hello World
接下來,我們來實現一個簡單的功能:Arduino開發板通過串列埠,不斷的向電腦端輸出Hello World
;同時,我們通過串列埠工具,看到Arduino開發板的輸出資訊。
2.3.1 原理介紹
Arduino開發板都會提供一個串列埠(如果你不知道什麼是串列埠的話,可以把它想象成一條連線著開發板和其他外圍裝置的管道)供電腦除錯Arduino開發板上執行的程式使用。
Arduino程式通過Serial.print()
這樣的函式就能把資料從開發板寫入到串列埠中,如果電腦端有對應的接收程式,那麼就能看到寫入的資料。
Arduino IDE通過串列埠和PC(或其他裝置)通訊。
在Arduino IDE中Serial物件
就是串列埠的化身。
注意,Serial是系統的類物件例項,而不是類,所以直接使用Serial.print()
這種方法。
詳細內容可以參看官網的描述。
UNO的串列埠硬體位置
USB介面和0、1引腳都對應串列埠-Serial
MEGA的串列埠硬體位置
MEGA有多個串列埠,
USB介面和0、1引腳對應串列埠-Serial
18、19引腳對應串列埠1-Serial1
16、17引腳對應串列埠2-Serial2
14、15引腳對應串列埠3-Serial3
2.3.2 程式碼設計
新生成的HelloWorld.ino
檔案中,自動生成了setup()
和loop()
兩個函式。
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
開發板的程式啟動時,首先會呼叫setup()
,進行初始化工作;
然後會迴圈的呼叫loop()
函式,讓開發板不停的運轉起來。
程式的整個邏輯就像下面的c語言程式碼,
void setup(void);
void loop(void);
int main(void) {
setup();
while(1) {
loop();
}
return 0;
}
這裡面的main和while程式碼去哪了呢?它們被Arduino的開發環境隱藏了起來,只是將setup()
和loop()
開放給了開發者。
開發者只需要實現這兩個函式就行了。這樣設計的目的是讓程式的結構更清晰。從這裡可以看出,
setup()
只執行一次,用來完成初始化的功能;loop()
不斷的被迴圈執行,是實現開發板邏輯控制的地方;
在本例中,setup()
函式裡只需要設定串列埠波特率。
波特率指的是資料傳送的速度,只有接收方和傳送方都在同一個波特率上,才能正確的接收資料。這就好比調頻的電臺和收音機,兩者的頻率必須一致才能接收到聲音。
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
在loop()
中,用串列埠輸出”Hello world!”,每迴圈一次,就會輸出一次這個字串,
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello world!");
}
2.3.3 程式部署
程式寫好以後,需要將電腦上編譯好的程式,部署到開發板上,讓程式執行起來,
用USB資料線,將開發板和電腦連線起來;現在的新版作業系統(Window10, MacOS X等等),不需要安裝驅動,就能識別Arduino開發板;
選擇選單欄的
工具->開發板
,選擇正在使用的開發板Arduino MEGA or MEGA 2560
;選擇選單欄的
工具->埠
,選擇正在使用的裝置埠(如果裝置被作業系統成功識別,會在此處顯示出來);點選工具欄上的
部署
按鈕,程式就會被編譯,並部署到裝置上運行了;
2.3.4 資料觀察
點右上角的按鈕開啟串列埠監視器(或者使用快捷鍵Ctrl+Shift+m
)
右下角的波特率必須和setup()
中設定的數值相同,本例是9600.
可以看到不斷輸出“Hello world!”
至此,一個簡單的Arduino程式,就在裝置上執行起來了。
/*******************************************************************/
本系列課程使用到的Arduino開發板、擴充套件板以及其他相關的感測器,各位可以根據我們文章中介紹的硬體在淘寶網選購。
您也可以在我們的網店跟我學Arduino程式設計中購買,這些相關硬體都由我們為您把關購買,為大家節省選擇的精力與時間。同時也感謝大家對我們這些碼農的支援。
最後再次感謝各位讀者對安豆
的支援,謝謝:)
/*******************************************************************/