Ruff物聯網開發套件輕鬆入門

原文連接:www.shuaihuajun.com/article/ruf…javascript

記得2016年大學剛畢業那個夏天,入手的Arduino開發板,因爲對一些電路概念不熟悉在加上對Arduino開發使用的編程語言比較陌生,因此對Arduino的學習暫時擱置了。2016年10月上旬,開始在中科院信工所工做,閒暇時間比較多,有大量時間研究學習,因而入手Ruff開發板。前端

Ruff基於JavaScript語言,因此對於一個前端工程師來講學習Ruff更容易上手。Arduino的開發編程語言在C/C++的基礎上實現,Arduino的開發環境和Processing的開發環境很相似,Processing編程是基於Java這款搶類型語言。java

從我這個門外漢對Ruff和Arduino的使用體驗來說,Ruff不論從生態仍是硬件方面都不如Arduino優秀。編程

最近對硬件編程又燃起了興趣,把Ruff板子從新拿出來,So Easy! Ruff的官網和社區已經好久沒有更新了,估計是歇菜了。記錄一次Ruff的使用經驗,凡是走過必得留下痕跡的嘛。json

首先到ruff官網ruff.io下載Ruff SDK,我使用的蘋果系統,由於本人不喜歡採用.dmg安裝包的一鍵安裝方式,總以爲安裝的不明不白的,因此下載.zip格式的壓縮安裝包。將壓縮包解壓縮,放到家目錄,和個人NodeJS的壓縮包在一塊兒,修改環境變量配置文件.bash_profile的配置,將解壓後的bin目錄加入環境變量中,執行source .bash_profile命令使配置環境變量生效。瀏覽器

此時使用echo $PATH命令就能看到ruffbin目錄已經在環境變量中了。ruffbin目錄只有兩個可執行文件,一個是ruff另外一個就是rap,更經常使用的是rap命令,至今也不知道ruff命令是作什麼用的。bash

下面就是我以爲使用Ruff完成一次硬件編程應該有的幾個步驟。前端工程師

創意構思

創意構思這一步很是重要。若是沒有想法和切實可行的方案和預期想要達到的目的,就不可能一步步的解決問題,由於不知道本身在幹什麼。app

因爲如今是入門,目的很是簡單,就是經過按鈕的按下與釋放,在終端輸出一些字符。編程語言

建立項目

建立項目目錄 -> 進入項目中 -> 初始化項目。終端一波輸出以後,項目原型構建完畢:

rap --version
ruff -v

mkdir hello-ruff
cd hello-ruff
rap init
複製代碼

初始化的項目目錄

添加驅動

外設就是外部設備,能夠是傳感器或者電子元件。我須要一個按鈕,從Ruff的盒子裏找到一個大按鈕,按鈕元件上有三個針,因此準備三根導線通通插上。這是通常思路,電子元件上有幾根針就插幾根線,可是有的元器件好像不是這樣。

型號爲ck002的大按鈕


從大按鈕的包裝上找到設備的名稱,我準備的這個按鈕名稱是CK002,大寫一概按小寫處理。此時記得cd到項目所在目錄內,而後rap device add ck002命令查詢可用的驅動,使用⬆️⬇️按鍵選擇最近驅動(通常箭頭默認會停留在最新驅動處),通常狀況下只需一路肯定✅便可。

可視化佈局

Ruff比較人性化的一點是,它提供可視化佈局界面,執行rap layout --visual命令,ruff會自動打開瀏覽器,出現相似下圖中的可視化佈局界面,你只要照着圖中的樣子,將導線鏈接起來便可。

把鼠標放到某一根導線上,就能選中的這根導線,更清楚的顯示鏈接方式,我有時候會由於用到的電子元器件較多而看到眼花繚亂。

ruff開發版與大按鈕佈線方式

ruff開發版與大按鈕佈線方式

佈線完畢

佈線完畢

編寫人機交互邏輯程序

對於前端工程師,下面的代碼應該不陌生。在代碼中,表明按鈕的元素是用相似jQuery的方式表示的,好比$('#ck002')即表示添加的按鈕,這個#ck002做爲按鈕的id在項目根目錄下的app.json文件中能夠找到。

編寫邏輯,按下按鈕紅色LED燈亮起,鬆開按鈕紅色LED燈熄滅,這裏提到的LED燈是Ruff開發板子上自帶的LED燈,固然Ruff開發套件中也有LED燈,不過這裏只用到了一個按鈕元件。

'use strict'

$.ready(function (error) {
  if (error) {
    console.log(error)
    return
  }

  $('#ck002').on('push', function(){
    console.log('Button pushed.');
    $('#led-r').turnOn()
  })

  $('#ck002').on('release', function(){
    console.log('Button released.');
    $('#led-r').turnOff()
  })
})

$.end(function () {
  $('#led-r').turnOff()
})

複製代碼

部署

硬件鏈接完畢,軟件書寫完畢,下面將程序部署到開發板上上。執行rap deploy -s命令,終端輸出正在部署的信息,若是沒有出現error,那就說明程序部署成功了。

我還須要打開一個新的終端界面,用於輸出按鈕按下和鬆開時的輸出信息,就像是開發板與電腦之間的通訊功能。在新的終端界面執行rap log,提示開發板鏈接成功。此時連續按下、鬆開按鈕,終端上會連續輸出,和程序想要實現的一致。

終端輸出

終端輸出
相關文章
相關標籤/搜索