起步走 —— 添加外设

让我们继续 Ruff 起步之旅:用按键控制板载 LED。

注意:本节应用是接前一节的内容,建议在继续本节之前阅读。

第六步:添加外设

  1. 首先,切换回平时常用的无线网络。
  2. 从套件中找出大按键模块(Push Button Module,型号 CK002),我们将尝试通过它来控制板载 LED 的点亮和熄灭。根据包装上的标签,可以在 rap 网站上查看到它的信息,包括支持这个外设的驱动。
  3. 在应用目录执行如下命令

    rap device add button

    其中,button 是在程序中操作这个外设的 ID。

  4. 填入外设型号 CK002 并确认,rap 将搜索 Ruff 软件包仓库并列出可用的驱动:

    ? model: CK002
    Searching supported drivers from Rap registry...
    ? select a driver for device "button"(CK002): (Use arrow keys)
    > button-gpio@2.0.3
    ...
  5. 选择 button-gpio 的最新版本并确认,rap 会根据选择自动下载驱动。

第七步:硬件布局

  1. 添加完外设后,我们需要重新对硬件进行布局(layout)和连接。在应用目录中执行如下命令:

    rap layout

    rap 会对外设需要的资源进行自动分配,计算出设备间的连接方式。

    除此之外,rap 还提供了图形化的布局编辑器,可以用于查看设备连线并进行简单的调整。在应用目录执行 rap layout --visual,rap 会下载设备的图片及针脚信息,以可视化的方式展示出来。

  2. 根据 rap 计算出(或者编辑后)的方式对硬件进行连接。(建议在连接硬件的过程中断开电源。)

第八步:绑定事件

修改 src/index.js,绑定 button 按键的 push(按下)和 release(释放)事件:

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

// 在 `#button` 按下时点亮 `#led-r`.
$('#button').on('push', function () {
console.log('Button pushed.');
$('#led-r').turnOn();
});

// 在 `#button` 释放时熄灭 `#led-r`.
$('#button').on('release', function () {
console.log('Button released.');
$('#led-r').turnOff();
});
});

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

对于其他驱动提供的 API,可以到在 Ruff 软件包仓库 搜索相应驱动及其使用说明。

第九步:再次部署应用

  1. 请再次连接到 Ruff-[SN] 的无线网络。请确认网络连接成功后,进行后续操作。
  2. 执行命令部署并启动应用:

    rap deploy -s

试试看,按下和释放按键是不是能够点亮和熄灭红色板载 LED 了?

第十步:查看应用日志

为了更好地了解应用的运行状态,我们可以在应用中打印日志并通过 rap log 命令查看。

  1. 打开一个新的命令行窗口,进入应用目录,执行如下命令

    rap log

    当控制台输出如下内容时,表示已经与开发板建立连接。

    Connection established.
  2. 按下大按键,红色板载 LED 会点亮,日志控制台会输出

    Button pushed.

    释放大按键,红色板载 LED 会熄灭,日志控制台会输出

    Button released.

下一步

物联网应用的重要一步是设备联网,到这里继续 Ruff 起步之旅。