當設置完你的Beaglebone Black的時候,可能早就很是期待你的第一個項目了。下面就來知足你們的願望,固然,這個項目可不是驚天動地的大項目,但萬事老是有個開始的。這個項目不須要額外的電子器件,這可讓你的精力集中在編程這方面來。這也能夠確保你的Beaglebone Black板子全部的設置都是正確的。git
閒話少敘,咱們的這個項目是編寫代碼控制Beaglebone Black的板載LED。若是你以前有過編程經驗,那麼能夠把這個項目當作Beaglebone Black的「Hello World」程序。咱們將會從零開始完成整個程序,這樣可使你在Cloud9 IDE中編寫BoneScript代碼有一個初步的感受。編程
下面的就是閃爍板載LED的代碼:函數
var b = require('bonescript');ui
var led = "USR3";spa
b.pinMode(led, b.OUTPUT);orm
var state = b.LOW;教程
b.digitalWrite(led, state);ip
setInterval(toggle, 1000);it
function toggle() {io
if(state == b.LOW) state = b.HIGH;
else state = b.LOW;
b.digitalWrite(led, state)
}
當使用BoneScript編寫代碼的時候,咱們須要將代碼指向BoneScript庫以訪問GPIO端口和Beaglebone Black的其餘功能。因此,咱們的第一行代碼就建立一個變量(b)來將兩個括號之間的庫引入咱們的代碼:
var b = require('bonescript');
代碼的下一個邏輯上的代碼段是建立引用板載LED USR3的一個變量:
var led = "USR3";
在上面的例子中咱們將這個變量稱爲led,它對應於板載LED的USR3。
Beaglebone Black上面的GPIO數字端口能夠被設置爲輸入或者輸出端口。因此,在咱們的代碼中須要告訴Beaglebone Black咱們想要板載LED做爲輸出。爲了完成這個任務,咱們須要使用名爲pinMode的函數並將咱們指望的端口做爲他的參數;在這個示例中,咱們使用變量led並使用變量b.OUTPUT將它設置爲輸出:
b.pinMode(led, b.OUTPUT);
在這個代碼中,咱們建立了一個集合了LED狀態的循環。在這個循環中,將LED的狀態在開和關之間切換。要完成它,咱們還須要設置一個額外的變量state,它用來保存LED此時的狀態;在最開始咱們應該給它一個初始值,這裏是b.LOW,即對應於「關」:
var state = b.LOW;
如今咱們就能夠設置LED的狀態了,將他設置爲state。作這個須要使用digitalWrite()函數並將指望操做的GPIO端口和狀態(開和關)做爲參數:
b.digitalWrite(led, state);
LED的初始狀態設置完畢後,咱們須要觸發LED點亮和熄滅,即改變state變量的狀態。咱們使用setInterval()函數將這個改變的時間間隔設置爲1000毫秒即1秒。在間隔時間到達的時候,咱們調用toggle()函數:
setInterval(toggle, 1000);
如今咱們須要建立一個名爲toggle的函數供setInterval()函數調用,這個函數會每1000毫秒調用一次。這個函數實現的功能就是切換LED的狀態,即在HIGH和LOW之間切換。因爲只有這兩個狀態,因此最簡單的方式就是if…else判斷,它接受一個條件語句,根據條件語句是TRUE或者FALSE執行不一樣的語句:
if (條件語句){
當條件語句爲TRUE的時候執行
}else{
當條件語句不爲TRUE時候執行
}
在咱們的函數中,咱們應該檢查state變量的值是否等於LOW。若是是,咱們將state設置爲HIGH;若是不是,則執行else後的語句,將state設置爲LOW。在設置完成後,使用digitalWrite()函數將這個狀態應用於LED:
function toggle() {
if(state == b.LOW) state = b.HIGH;
else state = b.LOW;
b.digitalWrite(led, state)
}
執行上面的代碼,咱們就能夠看到LED USR3以1000豪秒的間隔閃爍。若是你想要改變閃爍的頻率,能夠修改這條語句:
setInterval(toggle, 1000);
實際嘗試一下是最好的。
如今你已經將你的Beaglebone Black設置好並完成了了第一個項目。雖然這個項目很是簡單,而且看起來不怎麼霸氣,可是這麼簡單的程序可讓你知道你的Beaglebone Black已經準備好投入更霸氣的項目了。同時,也讓你瞭解到了Beaglebone Black的一些基本操做。在本書接下來的內容中,會有逐步複雜的項目等你來完成。隨着經手的項目逐漸增多你應該會了解到完成一個項目可能有多種不一樣的方式,你的思惟將被徹底打開。最終你將能夠完成本身心目中蘊藏已久的宏偉目標。
本文選出自:BeagleBone Black項目實訓手冊轉載請註明出處,尊重技術尊重IT人!