體驗 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-sdkexport 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 開發者

推薦閱讀:

L1,L2,L3 Cache究竟在哪裡?
求救為什麼夏普50V3電視搜不到我家WIFI?
如何看待輻射4的官方配置?
PS/2介面還有什麼可存在的意義?
機械硬碟磁頭在磁碟旋轉時在磁碟上方懸浮,靠的是什麼?

TAG:JavaScript | 硬件 | 开发板 |