前端開發者的智慧硬體之路

zarknight發表於2017-06-10

前一段時間,收到了一個面試邀請的郵件。面試找工作,我是沒這個打算的,但是,從這封郵件中,我一眼就看到了一個讓我非常感興趣的字眼,讓我對這家公司的產品有了想進一步瞭解的衝動。

啥字眼?

“JavaScript開發智慧硬體”

對我這個JavaScript狂熱者來說,我的感覺就是像小孩發現了一個非常喜歡的新玩具一樣的興奮。

我不是一個偏執的某語言支持者,我用過很多語言開發過各種專案和工具,也不排斥學習和使用最新的語言。但是JavaScript對我來說,是讓我感覺最有意思的語言,我喜歡用它寫東西,並希望儘可能的用它來完成我的工作,不管是在前端還是後端,桌面電腦還是移動裝置。JavaScript的其他愛好者也一定是這麼想的,要不然JavaScript也不會像現在這樣,在各種平臺,各種裝置上滿地開花了。

用JavaScript來開發硬體這回事,以前也想過,因為之前我也稍稍玩了一下VxWorks的嵌入式開發,使用的是C語言,真的是門檻比較高,很多硬體的概念都赤裸裸的擺在那兒,對初學者來說,真的是一種難以理解,望而生畏的體驗。那個時候就在想,要是能像做Web開發一樣用JS來進行硬體程式設計,該是多爽的事情啊。

估計也有人跟我一樣,就這麼幹乾的想了好多年。直到這個智慧硬體時代的來臨,終於有人路見不平一聲吼,該出手時就出手,憋出了這一個大招。

好了,鬼扯了這麼多,這個東西到底是個啥?

它的名字叫Ruff

開啟郵件中的連結,進入他們的網站ruff.io,就能看到一行大大的slogan:軟體定義硬體

Ruff

看了下首頁簡介,概括為:

  • JavaScript 程式設計
    採用開發者眾多的唯一全棧語言作為程式語言

  • 硬體抽象
    呼叫程式庫即可操作硬體,降低開發入門門檻

  • 跨平臺
    忽略板卡差異,同一份應用程式碼可以執行在不同板卡上

  • 高效便捷開發
    告別交叉編譯、燒寫板卡,PC 上完成測試,一鍵部署

看起來不錯!

但是我的風格就是二話不說,就想先看看你這程式碼是什麼樣子的。直接進文件,找到示例程式碼:

`use strict`;

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

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

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

好吧,我相信了,還是滿滿的jQuery風格呢。

文件還沒看幾頁,我就馬上找到購買連結,下單了,迫不及待啊。

沒過2天,東西就到啦。裝上透明的有機玻璃護套,顏值很高啊。

Ruff主機板

隨主機板附送的還有很多功能模組,主要有以下這些模組以及一些連線模組和主機板用的杜邦線:

  • 紅外線傳送模組
  • 紅外線接受模組
  • 溫溼度感測器
  • 光照感測器
  • 聲音感測器
  • 繼電器模組
  • 大按鈕模組
  • 蜂鳴器
  • LED模組
  • LCD模組
隨主機板贈送的模組

拿到板子後,從Ruff官網下載和安裝了它的開發用SDK,我都基本沒怎麼看文件,就建立起了第一個簡單的工程程式碼,對於熟悉使用nodejs和npm開發的JavaScript開發者來說,Ruff的開發環境入門簡直就是無門檻進家門了。

我寫的第一個測試程式碼,還沒用到額外的模組,只是利用了主機板上的三個紅綠藍LED燈做了一個交替點亮和熄滅的功能。程式碼不會超過10行。

演示

是不是很好玩?我也寫了一些稍微複雜的小程式,使用到了上面提到的一些硬體模組,整個開發體驗就是可以用簡潔,直觀,容易理解來形容。總之,你之前學到的JavaScript知識,都會在這裡繼續發揮到作用。

有興趣的朋友不妨也來一起玩一下吧。


相關文章