Ruff 是一個支持 JavaScript 開發應用的物聯網操做系統,讓物聯網應用開發更簡單高效。javascript
Ruff 開發套件 是一個旨在幫助開發者快速學習使用 Ruff 的工具,而且經過 Ruff 開發套件能夠快速創建產品原型。html
本教程是針對 Ruff 開發套件 的使用教程,從10個外設配件起的應用開發再到驅動開發以及板卡開發,咱們將從頭開始一步步教你們如何使用 Ruff 開發套件。java
如今就拿起手邊的 Ruff 開發套件 開始學習如何開發物聯網應用吧!網絡
在學習以前,你須要:函數
Tips: 咱們會對產品的硬件和軟件作些改動和升級,這樣可能會產生軟硬件使用和本教程在某些細節上不符,請以最新軟件和您購買的開發套件實際配置爲準。spa
咱們的 Ruff 之旅從這節課正式開啓!操作系統
誰將登場:code
板載 LED 燈
大按鍵模塊
你將學會:
按鍵輸入控制 Ruff 的輸出
Ruff 中的延時函數
板載 LED 燈的使用
SOS 求救燈應用中:
按下按鈕
板載 LED 燈發出 三短光三長光三短光 的 SOS 摩斯電碼求救信號。
想了解摩斯電碼,能夠到這裏。
Ruff 開發板 ×1
大按鍵模塊 ×1
向項目中添加名爲「button」的大按鍵模塊,model 選擇 CK002,驅動版本選擇最新版。
首先咱們解決:如何使板載 LED 燈閃爍。
檢測板載 LED 燈當前是否點亮,
若是點亮,關閉 LED 燈;
若是關閉,點亮 LED 燈;
能夠在這裏進一步學習板載 LED 知識。
具體的閃爍實例代碼以下:
//Led燈閃爍函數 function Blink() { if (!$('#led-r').isOn()) { $('#led-r').turnOn(); } else { $('#led-r').turnOff(); } }
在 LED 可以閃爍以後,咱們再來嘗試控制 LED 燈長短閃爍。
長短閃爍的區別在於,每次由亮變暗和由暗變亮的延時時間長度,即調用 Blink 函數的延時時間長度。
這裏咱們使用 setTimeout
函數實現延時,setTimeout
函數語法以下:
setTimeout (回調函數, 延時時間)
setTimeout() 方法用於在指定的毫秒數後調用函數或計算表達式,setTimeout() 只執行表達式一次;
想了解更多有關 setTimeout
函數的內容,能夠到這裏。
再來,咱們解決如何發出摩斯電碼 「S」 和 「O」 信號。
在摩斯電碼表中,每個英文字母由點和線的不一樣組合表示,咱們能夠經過 LED 的閃爍「拼寫」出每一個字母,通短閃爍和長閃爍表示點和線,好比:
字母 「S」 在摩斯碼中用三個點表示,這裏咱們用三次短閃爍代替;
字母 「O」 在摩斯碼中用三條線表示,這裏咱們用三次長閃爍代替;
LED 燈的閃爍經過控制燈交替亮滅實現。
長短閃爍表示 「S」 和 「O」 字母實例代碼以下:
//三個快閃爍來表示字母「S」 function performS() { $('#led-r').turnOn();//設置led模塊亮 setTimeout(Blink, 1000);//1000ms後led滅 setTimeout(Blink, 2000);//2000ms後led亮 setTimeout(Blink, 3000);//3000ms後led滅 setTimeout(Blink, 4000);//4000ms後led亮 } //三個慢閃爍來表示字母「O」 function performO() { $('#led-r').turnOn(); setTimeout(Blink, 2000); setTimeout(Blink, 4000); setTimeout(Blink, 6000); setTimeout(Blink, 8000); }
有了發出摩斯電碼的函數,接下來,咱們可使用 大按鍵 做爲「開關」,控制 Ruff 發出摩斯電碼。
大按鍵模塊有兩種事件,分別是 push
按下事件和 release
放開事件。
Ruff一直檢測按鍵模塊的 push
和 release
事件,一旦檢測到信號,執行相對應的「行爲」函數。
在這個應用中,須要向 push
行爲函數中添加發出摩斯電碼「S」和「O」的函數,並設置正確長度的延時函數:
0s時,先執行發摩斯電碼 」S「 函數;
5s時,滅燈;
6s時,執行發摩斯電碼 」O「 函數;
16s時,滅燈;
17s時,執行送摩斯電碼 」S「 函數;
22s時,滅燈;
前往Ruff-大按鍵模塊,能夠進一步學習大按鍵模塊的知識。
利用大按鍵控制發出 S.O.S 信號的具體實現以下:
//在‘button’按下時運行函數 $('#button').on('push', function () { performS(); setTimeout(function () { $('#led-r').turnOff(); }, 5000); setTimeout(performO, 6000); setTimeout(function () { $('#led-r').turnOff(); }, 16000); setTimeout(performS, 17000); setTimeout(function () { $('#led-r').turnOff(); }, 22000); });
最後,
將大按鍵控制函數放到 $.ready
事件下;
摩斯電碼發出函數和閃爍函數放在後面。
大功告成!
快去本身動手實現吧!
'use strict'; //Led燈閃爍函數 function Blink() { if (!$('#led-r').isOn()) { $('#led-r').turnOn(); } else { $('#led-r').turnOff(); } } //三個快閃爍來表示字母「S」 function performS() { $('#led-r').turnOn();//設置led模塊亮 setTimeout(Blink, 1000);//1000ms後led滅 setTimeout(Blink, 2000);//2000ms後led亮 setTimeout(Blink, 3000);//3000ms後led滅 setTimeout(Blink, 4000);//4000ms後led亮 } //三個快閃爍來表示字母「O」 function performO() { $('#led-r').turnOn();//設置led模塊亮 setTimeout(Blink, 2000); setTimeout(Blink, 4000); setTimeout(Blink, 6000); setTimeout(Blink, 8000); } $.ready(function (error) { if (error) { console.log(error); return; } //在‘button’按下時運行函數 $('#button').on('push', function () { performS(); setTimeout(function(){$('#led-r').turnOff();}, 5000); setTimeout(performO, 6000); setTimeout(function(){$('#led-r').turnOff();}, 16000); setTimeout(performS, 17000); setTimeout(function(){$('#led-r').turnOff();}, 22000); }); });
使用三個按鍵模塊和兩個板載LED燈。
若是按鍵 A 按下,板載藍燈(led-b)亮;
按鍵 B 按下,板載紅燈(led-r)亮;
按鍵 C 用於重置搶答器,C 鍵按下,兩燈都滅;
按鍵 A 或 B 按下後,直到按下按鍵 C 重置搶答器,即便另外一按鍵按下,兩LED 燈也不會有變化。
Let's Ruff On !