FantasyLand
首发于FantasyLand
体验 Ruff 1.0

体验 Ruff 1.0

前几天围观了 Ruff 1.0 在微信群里线上发布会,感觉是个很有意思的东西。

Ruff 给出的口号是「现代 JavaScript 开发硬件」,作为一名每天使用 JavaScript 编码的程序员自然对其很感兴趣了。

值得注意的是 Ruff 是一个 JavaScript runtime,而非一块开发板的名称。

开箱

Ruff 的包装

开发板

附赠的套件

开始使用!

使用 Ruff 可以完全参照官方的文档:Ruff

- 配置环境

Ruff 1.0 的环境搭建是以下载 SDK 然后配置环境变量的方式进行的,可以将以下代码 Copy 添加到你的 Shell 配置中:

export RUFF_HOME=/path/to/ruff-sdk
export PATH="$PATH:$RUFF_HOME/bin"

- 创建项目

整个过程很类似创建 Node.js 项目:

- 连接设备

插入数据线的时候总觉得要把板子给摁破

- 连接 WiFi

需要自己输入 SSID 和 password

在连接的时候不知道什么原因,一直在打点:

但是再打开一个 Tab 使用 rap scan 命令证实实际上已经连接上了。

- 代码

默认创建的项目是启动开发板右侧的红色 LED,代码如下:

'use strict';

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

    $('#led-r').turnOn();
});

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

这很像是我们所熟悉的 jQuery 写成的代码。

- 部署

rap deploy -s

在几秒钟之后,应用就已经部署到 Ruff 的开发板上了,可以看到右侧的红灯已经被点亮了:

- 添加模块

官方教程中是添加一个大按键的模块,但是我在收到的包装中并没有发现该模块 -- 原来是 Ruff 将按键模块放到了光照传感器的包装之中。

rap device add button

然后输入设备的型号就会自动下载该设备的驱动。

- 添加 LCD 模块

连线开始复杂起来了,好在 Ruff 提供了可视化布局。

rap layout --visual

会在浏览器中弹出一个页面教你如何接线,这还是十分方便的:

Rap Registry 中可以照着型号找到对应的 LCD API: Rap Registry

编写代码:

$('#button').on('push', function () {
  $('#lcd').print('Hello');
  $('#lcd').setCursor(0, 1);
  $('#lcd').print('Ruff');
});

$('#button').on('release', function () {
  $('#lcd').clear();
});

Deploy 后运行成功!

总的来说,Ruff 的使用体验还是非常不错的:

- 简洁的语法和快速的部署方式让 Ruff 能很快的上手;

- Rap Registry 和 Visual layout 让我这样普通定的程序员也能很快的用它来开发一些东西;

不好的地方稍微复杂一点的应用,在布线连接方面可能就比较麻烦了。

不过 Ruff 毕竟是一个刚面世不久的产物,而「用软件定义硬件」这样的概念让人有很大的想象空间。

---

Happy Hacking !

利益相关:非 Ruff 员工,JavaScript 开发者

文章被以下专栏收录