[ Ruff 開發套件 ] Lesson 1 - SOS 求救燈

圖片描述

前言

Ruff 是一個支持 JavaScript 開發應用的物聯網操做系統,讓物聯網應用開發更簡單高效。javascript

Ruff 開發套件 是一個旨在幫助開發者快速學習使用 Ruff 的工具,而且經過 Ruff 開發套件能夠快速創建產品原型。html

本教程是針對 Ruff 開發套件 的使用教程,從10個外設配件起的應用開發再到驅動開發以及板卡開發,咱們將從頭開始一步步教你們如何使用 Ruff 開發套件java

如今就拿起手邊的 Ruff 開發套件 開始學習如何開發物聯網應用吧!網絡

Ruff 開發準備

在學習以前,你須要:函數

  • 完成 Ruff 開發板的網絡設置、硬件連線,能夠在起步走瞭解。工具

  • Ruff 應用開發步驟和模型,能夠到這裏學習

Tips: 咱們會對產品的硬件和軟件作些改動和升級,這樣可能會產生軟硬件使用和本教程在某些細節上不符,請以最新軟件和您購買的開發套件實際配置爲準。spa

第一課 SOS 求救燈

咱們的 Ruff 之旅從這節課正式開啓!操作系統

  • 誰將登場:code

    • 板載 LED 燈

    • 大按鍵模塊

  • 你將學會:

    • 按鍵輸入控制 Ruff 的輸出

    • Ruff 中的延時函數

    • 板載 LED 燈的使用

介紹

SOS 求救燈應用中:

  • 按下按鈕

  • 板載 LED 燈發出 三短光三長光三短光 的 SOS 摩斯電碼求救信號。

想了解摩斯電碼,能夠到這裏

元件

  • Ruff 開發板 ×1

  • 大按鍵模塊 ×1

外設添加

  • 向項目中添加名爲「button」的大按鍵模塊,model 選擇 CK002,驅動版本選擇最新版。
    圖片描述

代碼

  • 在編寫代碼以前須要完成 Ruff 開發板的設置鏈接、硬件連線。若是有疑問你們能夠在這裏瞭解。

  • 想了解 Ruff 應用開發步驟和模型,能夠到這裏

閃爍

首先咱們解決:如何使板載 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 !

相關文章
相關標籤/搜索