Ruff物聯(lián)網(wǎng)開發(fā)套件輕松入門

原文鏈接:http://www.shuaihuajun.com/article/ruff-beginner/

記得2016年大學(xué)剛畢業(yè)那個夏天吏夯,入手的Arduino開發(fā)板即横,由于對一些電路概念不熟悉在加上對Arduino開發(fā)使用的編程語言比較陌生,所以對Arduino的學(xué)習(xí)暫時擱置了跺嗽。2016年10月上旬页藻,開始在中科院信工所工作,閑暇時間比較多璃吧,有大量時間研究學(xué)習(xí)废境,于是入手Ruff開發(fā)板。

Ruff基于JavaScript語言噩凹,所以對于一個前端工程師來說學(xué)習(xí)Ruff更容易上手驮宴。Arduino的開發(fā)編程語言在C/C++的基礎(chǔ)上實(shí)現(xiàn),Arduino的開發(fā)環(huán)境和Processing的開發(fā)環(huán)境很類似堵泽,Processing編程是基于Java這款搶類型語言。

從我這個門外漢對Ruff和Arduino的使用體驗來講箩退,Ruff不論從生態(tài)還是硬件方面都不如Arduino優(yōu)秀佳谦。

最近對硬件編程又燃起了興趣,把Ruff板子重新拿出來啥刻,So Easy! Ruff的官網(wǎng)和社區(qū)已經(jīng)很久沒有更新了,估計是歇菜了娄涩。記錄一次Ruff的使用經(jīng)驗映跟,凡是走過必得留下痕跡的嘛。

首先到ruff官網(wǎng)ruff.io下載Ruff SDK努隙,我使用的蘋果系統(tǒng),因為本人不喜歡采用.dmg安裝包的一鍵安裝方式咽斧,總覺得安裝的不明不白的躬存,所以下載.zip格式的壓縮安裝包。將壓縮包解壓縮宛逗,放到家目錄盾剩,和我的NodeJS的壓縮包在一起,修改環(huán)境變量配置文件.bash_profile的配置侥锦,將解壓后的bin目錄加入環(huán)境變量中德挣,執(zhí)行source .bash_profile命令使配置環(huán)境變量生效快毛。

此時使用echo $PATH命令就能看到ruff的bin目錄已經(jīng)在環(huán)境變量中了。ruff的bin目錄只有兩個可執(zhí)行文件屯掖,一個是ruff另一個就是rap襟衰,更常用的是rap命令,至今也不知道ruff命令是做什么用的绍坝。

下面就是我覺得使用Ruff完成一次硬件編程應(yīng)該有的幾個步驟。

創(chuàng)意構(gòu)思

創(chuàng)意構(gòu)思這一步非常重要轩褐。如果沒有想法和切實(shí)可行的方案和預(yù)期想要達(dá)到的目的把介,就不可能一步步的解決問題,因為不知道自己在干什么拗踢。

由于現(xiàn)在是入門,目的非常簡單莫矗,就是通過按鈕的按下與釋放砂缩,在終端輸出一些字符。

創(chuàng)建項目

創(chuàng)建項目目錄 -> 進(jìn)入項目中 -> 初始化項目妹懒。終端一波輸出之后双吆,項目原型構(gòu)建完畢:

rap --versionruff -vmkdir hello-ruffcdhello-ruffrap init

初始化的項目目錄

添加驅(qū)動

外設(shè)就是外部設(shè)備好乐,可以是傳感器或者電子元件。我需要一個按鈕蔚万,從Ruff的盒子里找到一個大按鈕反璃,按鈕元件上有三個針,所以準(zhǔn)備三根導(dǎo)線統(tǒng)統(tǒng)插上淮蜈。這是一般思路梧田,電子元件上有幾根針就插幾根線侧蘸,但是有的元器件好像不是這樣鹉梨。

型號為ck002的大按鈕

從大按鈕的包裝上找到設(shè)備的名稱,我準(zhǔn)備的這個按鈕名稱是CK002析桥,大寫一律按小寫處理艰垂。此時記得cd到項目所在目錄內(nèi),然后rap device add ck002命令查詢可用的驅(qū)動娩怎,使用????按鍵選擇最近驅(qū)動(一般箭頭默認(rèn)會停留在最新驅(qū)動處)胰柑,一般情況下只需一路確定?即可。

可視化布局

Ruff比較人性化的一點(diǎn)是崩瓤,它提供可視化布局界面踩官,執(zhí)行rap layout --visual命令,ruff會自動打開瀏覽器颖系,出現(xiàn)類似下圖中的可視化布局界面辩越,你只要照著圖中的樣子,將導(dǎo)線連接起來即可黔攒。

把鼠標(biāo)放到某一根導(dǎo)線上亏钩,就能選中的這根導(dǎo)線欺旧,更清楚的顯示連接方式,我有時候會因為用到的電子元器件較多而看到眼花繚亂辞友。

ruff開發(fā)版與大按鈕布線方式

布線完畢

編寫人機(jī)交互邏輯程序

對于前端工程師,下面的代碼應(yīng)該不陌生戳晌。在代碼中痴柔,代表按鈕的元素是用類似jQuery的方式表示的,比如$('#ck002')即表示添加的按鈕豪嚎,這個#ck002作為按鈕的id在項目根目錄下的app.json文件中可以找到谈火。

編寫邏輯,按下按鈕紅色LED燈亮起扔字,松開按鈕紅色LED燈熄滅温技,這里提到的LED燈是Ruff開發(fā)板子上自帶的LED燈,當(dāng)然Ruff開發(fā)套件中也有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()})

部署

硬件連接完畢,軟件書寫完畢嘉蕾,下面將程序部署到開發(fā)板上上霜旧。執(zhí)行rap deploy -s命令,終端輸出正在部署的信息以清,如果沒有出現(xiàn)error崎逃,那就說明程序部署成功了。

我還需要打開一個新的終端界面个绍,用于輸出按鈕按下和松開時的輸出信息浪汪,就像是開發(fā)板與電腦之間的通信功能凛虽。在新的終端界面執(zhí)行rap log,提示開發(fā)板連接成功呀潭。此時連續(xù)按下至非、松開按鈕,終端上會連續(xù)輸出睡蟋,和程序想要實(shí)現(xiàn)的一致戳杀。

終端輸出

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末信卡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子傍菇,更是在濱河造成了極大的恐慌丢习,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揽思,死亡現(xiàn)場離奇詭異见擦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)损痰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門酒来,熙熙樓的掌柜王于貴愁眉苦臉地迎上來役首,“玉大人,你說我怎么就攤上這事衡奥。” “怎么了失息?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵盹兢,是天一觀的道長守伸。 經(jīng)常有香客問我,道長尼摹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮和二,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惕它。我一直安慰自己废登,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布揭北。 她就那樣靜靜地躺著吏颖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疚俱。 梳的紋絲不亂的頭發(fā)上缩多,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音绳泉,去河邊找鬼姆泻。 笑死,一個胖子當(dāng)著我的面吹牛拇勃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播月腋,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼罗售,長吁一口氣:“原來是場噩夢啊……” “哼钩述!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牙勘,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤方面,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后操禀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體横腿,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耿焊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了器腋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡诊县,死狀恐怖措左,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抗悍,我是刑警寧澤钳枕,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布鱼炒,位于F島的核電站蝌借,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏菩佑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞧哟。 院中可真熱鬧,春花似錦咧党、人聲如沸陨亡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虐急。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間燎悍,已是汗流浹背盼理。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工宏怔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人臊诊。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓抓艳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親玷或。 傳聞我的和親對象是個殘疾皇子儡首,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容