Easy Arduino: 開始你的Arduino之旅
我們每天使用的計算機是強大的,但它們根本不了解身邊發生了什麼事。比如說你的筆記本電腦也不能感到光或水。另外,Arduino對外專門設計成鍵控的。它有一個用於簡化感測器通信的輸入、輸出板子。
Arduino是由Massimo Banzi和他的義大利搭檔Ivrea開發的,並用Ivrea——他最喜歡的酒吧命名。Banzi希望他的設計課程的學生們有一個原型的硬體的廉價,容易的解決方案。自2005年Arduino的發布,它已經從一個教學工具發展成為世界各地製造商的DIY項目。現在有了多模型——更先進的Arduino Due,大功率,微納米。
無論你購買哪個Arduino模型,當你用它來做「互聯網」項目時,單片機的實用性便體現出來了——Arduino可以很容易讓你連接到真實世界,雲端,或兩者。本書中,我們將重點介紹兩個超基礎項目以便展示Arduino可以多簡單。
開始使用Arduino
在我們能夠完全了解Arduino是什麼之前,知道它不是什麼是很重要的。Arduino不是電腦(跟卡片電腦Raspberry Pi不一樣)。它不能被獨立編程,需要被插入到計算機中去。它不是特彆強大,Arduino Uno只有32 KB的內存 ,而蘋果筆記本卻平均有8G內存。
所以為了使用Arduino,你不能只買這個單片機。對於以下的項目,你需要的是:
硬體
- Arduino Uno. 「Uno」在義大利語中是一的意思,但這並不是有史以來第一個Arduino,只是最基本的Arduino單片機的最新版本。這些項目可以工作在任何一個型號上,但這裡我用的是這個型號。
- B型USB線。我已經很多年沒見過這些舊式的USB埠了,但你可能會在舊的電子設備上用過他們。他們的成本約5-10美元 (譯註:就是能連接題圖的板子上的那個大大的USB口的線)。
- LED燈。可以直接粘在Arduino上的一個引腳上的小燈;這些往往是相當便宜的。
軟體
- Arduino IDE,即「集成開發環境」,是一個免費開源軟體,用於開發「sketches」,也就是Arduino用戶所說的程序。
當你第一次打開Arduino IDE,你需要建立軟體所使用的埠,它用於控制Arduino如何工作,點擊「工具」——>「串口」來建立。
- 在OS X上,Uno串口的設備名叫做「/dev/tty.usbmodem」,但其他類型的Arduino板可能不同。我的是「/dev/tty.usbmodem1421」。
- 在Windows,串口是COM3或更高埠,因為COM1和COM2通常保留給其他硬體。為確定埠號,你可以拔掉Arduino並重新打開IDE菜單。哪個口子不再出現哪個就是你的Arduino。
一般來說,你不用擔心直接拔出你的Arduino電路板會有什麼問題。我們知道功能齊全的電腦不應該這樣做,包括Raspberry Pi,因為他們可以在後台運行一個重要的操作系統任務。但是Arduino只是一個單片機,除非你主動讓它寫內存,否則它肯定是不會的。
Arduino 硬體初步: 閃爍一個LED
在這第一個項目中,我們將概述Arduino產生物理輸出的最基本方式,在這個實例中,閃爍一個LED燈。
我們要去寫一個非常簡單的程序使得LED頻閃——或者是當我自豪地向他展現了我的作品時,我的朋友明智的告訴我,「一點小成果」。本程序是基於開源項目Blink sketch,它可以在Arduino的官網找到。
首先,設置硬體,將LED的兩個腳分別插到到Arduino的公共地GND和引腳13上。
注意:如果你準備將一個LED插到一個打開電源的Arduino板子上較長時間(比如超過了這個項目的時間),安全的做法是也接一個220歐姆的電阻。這裡有一個你也許需要的接線圖,來自Arduino官網。
一個叉略短於另外一個叉——短的這個是負極頭,因此,這個接「地」,即GND輸入/輸出。
注意短的接GND.
現在讓我們開始寫程序。首先,讓我們給個程序的名字。Arduino會忽略行內雙斜杠後邊的內容,所以這是為自己寫注釋的好方法:
// 程序 1: 使一個LED閃爍開和關
當硬體工作時,我們需要告訴Arduino在它的14根不同的輸入/輸出引腳中哪兒會有信號。在這種情況下,我們固定13引腳的LED。這是我們的如何命名固定在引腳13的LED,其中「LED」只是我給的變數名:
int LED = 13;
每一個Arduino程序由兩部分組成:void setup() 和 void loop()。這是能夠運行的最小的Arduino程序。
在 void setup()中, 我們告訴Arduino初始化引腳為輸出:
void setup() {
pinMode(LED, OUTPUT);
}
在void loop()中,我們告訴Arduino「寫」一個值到引腳13中。因為我想讓它閃爍,在每個循環中我們要使它寫一個序列的四個不同命令。如「loop」一詞的意思,直到把Arduino關掉前,我們希望它不斷執行。
在下面的代碼中,LED代表了我們之前分配的那個變數。」HIGH」告訴Arduino給LED提供五伏的電源,而「LOW」提供零伏。在閃爍時,使得它延遲「1000」毫秒每一整秒:
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
當把它們放在一起時,整個程序如下(再次聲明,Arduino忽略行內雙斜杠後邊的內容,所以那只是你自己的注釋):
// 程序 1: 使一個LED閃爍開和關
int led = 13; // name the LED in pin 13
void setup() {
pinMode(LED, OUTPUT); // tell Arduino the pin in question is an output
}
void loop() {
digitalWrite(LED, HIGH); // deliver 5V to LED
delay(1000); // wait a second
digitalWrite(LED, LOW); // deliver 0V to LED
delay(1000); // wait a second
}
點擊checkmark來驗證你的代碼是沒有錯誤的,然後按play鍵。如果你的Arduino已經連接,它應該開始運行你的閃爍程序了。
Arduino 軟體程序: 列印到電腦上
現在讓我們來做一個控制開關並試著演示Arduino是如何產生數字輸出的最基本項目。
我們將要設置Arduino 「列印」,或是在您的計算機屏幕上顯示信息。這個程序基於Paul Bianchi的Arduino printing tutorial。
在這個實例中沒有硬體,這樣我們就可以直接跳到程序部分。再說一次,程序分為兩個部分: void setup() 和 void loop()。
在void setup()中,我們要打開一個Arduino和計算機之間通信的線路,指定速率是9600b/s。如果你使用另一個速率,你可能會在計算機上得到亂碼而不是文字。
void setup() {
Serial.begin(9600);
}
在void loop() 中,這部分很像我們的一個LED程序。我們要給它兩條獨立的指令,告訴它在他們之間每一整秒中斷。Println是Arduino輸出到你的電腦顯示的命令。注意"Println"中的"l"的是小寫的"L",而不是大寫的"i"!
void loop() {
Serial.println(「hello」);
delay(1000);
Serial.println(「world.」);
delay(1000);
}
將標題和注釋等放到一起,如下:
// 程序 2: 使Arduino列印 「Hello World」到電腦上
void setup() {
Serial.begin(9600); // open a 9600 baud communication line to computer
}
void loop() {
Serial.println(「Hello」); // write the word 「Hello」
delay(1000); // wait a second
Serial.println(「World」); // write the word 「World」
delay(1000); // wait a second
}
驗證你的代碼並運行。什麼都不會顯示,直到你點擊Arduino IDE窗口右上角的「Serial Monitor」。你應該看到一個不停輸出的「Hello World」,一遍又一遍,直到你拔掉Arduino。你會看到它並不完美:我總是得到一些亂碼,但很快它自己就好了。
這兩個Arduino項目都非常基本,但是通過執行他們你已經開始看到,可以與感測器通信並寫結果到您的計算機的Arduino的潛力所在。如果你把這兩個項目整合——例如,你可以連接一個溫度計到你的Arduino,並告訴它將溫度寫到你的筆記本電腦,你會很快實現Arduino的可能性幾乎是無止境的。
via: http://readwrite.com/2014/04/21/easy-arduino-projects-basics-tutorials-diy-hardware#feed=/hack
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive