Beaglebone Black教程專案1閃爍板載LED
Beaglebone Black教程專案1閃爍板載LED
專案1閃爍板載LED
當設定完你的Beaglebone Black的時候,可能早就非常期待你的第一個專案了。下面就來滿足大家的願望,當然,這個專案可不是驚天動地的大專案,但萬事總是有個開始的。這個專案不需要額外的電子器件,這可以讓你的精力集中在程式設計這方面來。這也可以確保你的Beaglebone Black板子所有的設定都是正確的。
閒話少敘,我們的這個專案是編寫程式碼控制Beaglebone Black的板載LED。如果你之前有過程式設計經驗,那麼可以把這個專案當做Beaglebone Black的“Hello World”程式。我們將會從零開始完成整個程式,這樣可以使你在Cloud9 IDE中編寫BoneScript程式碼有一個初步的感覺。
下面的就是閃爍板載LED的程式碼:
- var b = require('bonescript');
- var led = "USR3";
- b.pinMode(led, b.OUTPUT);
- var state = b.LOW;
- b.digitalWrite(led, state);
- setInterval(toggle, 1000);
- function toggle() {
- 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人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2072426/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Beaglebone Black教程Beaglebone Black的引腳分配
- BeagleBone Black教程之BeagleBone Black裝置的連線
- Beaglebone Black教程BeagleBone Black安裝最新系統映像
- BeagleBone Black教程之BeagleBone Black使用到的Linux基礎Linux
- Beaglebone Black開發板安裝驅動
- Beaglebone Black教程使用SSH通過USB和因特網連線Beaglebone Black
- 51微控制器程式框架之LED閃爍_方法1框架
- Arduino 初級使用 單LED等閃爍UI
- STC89C52以1HZ頻率閃爍LED
- BeagleBone Black專案實訓手冊(大學霸內部資料)
- (4)8個led每0.5s閃爍(跑馬燈)
- BeagleBone Black快速入門教程第1章嵌入式Linux之於Maker們Linux
- 微控制器小白學習之路(四)---led燈的閃爍
- STM32從零開始 - 第二章:LED閃爍程式
- 通過因特網連線Beaglebone Black
- js閃爍效果JS
- 【Windows 10 IoT - 2】LED閃爍及動畫繪製(樹莓派 Pi2)Windows動畫樹莓派
- WinForm 載入自定義控制元件閃爍問題ORM控制元件
- Linux下紅色閃爍檔案問題Linux
- Flutter——實現閃爍效果Flutter
- vuejs在解析時出現閃爍的原因及防止閃爍的方法VueJS
- 其他主流開源硬體簡介BeagleBone Black快速入門
- 簡單CSS實現閃爍動畫(+1白話講解)CSS動畫
- 使用CCS10新建TMS320F28335工程並閃爍LED(流水燈)程式S3
- 國內的 Stduino IDE 基於 STM32 的串列埠通訊與 LED 燈閃爍UIIDE串列埠
- vue頁面渲染是閃爍{{}}Vue
- 實現閃爍燈星星動畫動畫
- QT 讓工作列圖示閃爍QT
- HTML5-canvas動畫閃爍分析HTMLCanvas動畫
- 討論TableLayoutPanel載入緩慢和閃爍問題解決方案
- windows10桌面閃爍怎麼辦_windows10桌面閃爍無法使用修復方法Windows
- css3實現動畫閃爍效果CSSS3動畫
- Canvas繪製星光閃爍的生日祝福Canvas
- fcpx影片去閃爍外掛:Remove FlickeREM
- CSS3文字閃爍效果CSSS3
- 一款專業的Ae影片去閃爍外掛:REVisionFX DEFlicker
- FCPX外掛:視訊去閃爍消除頻閃工具Remove FlickeREM
- 協程實現canvas影像隨機閃爍Canvas隨機