前端开发者的智能硬件之路
前一段时间,收到了一个面试邀请的邮件。面试找工作,我是没这个打算的,但是,从这封邮件中,我一眼就看到了一个让我非常感兴趣的字眼,让我对这家公司的产品有了想进一步了解的冲动。
啥字眼?
“JavaScript开发智能硬件”
对我这个JavaScript*者来说,我的感觉就是像小孩发现了一个非常喜欢的新玩具一样的兴奋。
我不是一个偏执的某语言支持者,我用过很多语言开发过各种项目和工具,也不排斥学习和使用最新的语言。但是JavaScript对我来说,是让我感觉最有意思的语言,我喜欢用它写东西,并希望尽可能的用它来完成我的工作,不管是在前端还是后端,桌面电脑还是移动设备。JavaScript的其他爱好者也一定是这么想的,要不然JavaScript也不会像现在这样,在各种平台,各种设备上满地开花了。
用JavaScript来开发硬件这回事,以前也想过,因为之前我也稍稍玩了一下VxWorks的嵌入式开发,使用的是C语言,真的是门槛比较高,很多硬件的概念都赤裸裸的摆在那儿,对初学者来说,真的是一种难以理解,望而生畏的体验。那个时候就在想,要是能像做Web开发一样用JS来进行硬件编程,该是多爽的事情啊。
估计也有人跟我一样,就这么干干的想了好多年。直到这个智能硬件时代的来临,终于有人路见不平一声吼,该出手时就出手,憋出了这一个大招。
好了,鬼扯了这么多,这个东西到底是个啥?
它的名字叫Ruff
打开邮件中的链接,进入他们的网站ruff.io,就能看到一行大大的slogan:软件定义硬件
看了下首页简介,概括为:
JavaScript 编程
采用开发者众多的唯一全栈语言作为编程语言硬件抽象
调用程序库即可操作硬件,降低开发入门门槛跨平台
忽略板卡差异,同一份应用代码可以运行在不同板卡上高效便捷开发
告别交叉编译、烧写板卡,PC 上完成测试,一键部署
看起来不错!
但是我的风格就是二话不说,就想先看看你这代码是什么样子的。直接进文档,找到示例代码:
'use strict';
$.ready(function (error) {
if (error) {
console.log(error);
return;
}
$('#led-r').turnOn();
});
$.end(function () {
$('#led-r').turnOff();
});
好吧,我相信了,还是满满的jQuery风格呢。
文档还没看几页,我就马上找到购买链接,下单了,迫不及待啊。
没过2天,东西就到啦。装上透明的有机玻璃护套,颜值很高啊。
随主板附送的还有很多功能模块,主要有以下这些模块以及一些连接模块和主板用的杜邦线:
- 红外线发送模块
- 红外线接受模块
- 温湿度传感器
- 光照传感器
- 声音传感器
- 继电器模块
- 大按钮模块
- 蜂鸣器
- LED模块
- LCD模块
拿到板子后,从Ruff官网下载和安装了它的开发用SDK,我都基本没怎么看文档,就建立起了第一个简单的工程代码,对于熟悉使用nodejs和npm开发的JavaScript开发者来说,Ruff的开发环境入门简直就是无门槛进家门了。
我写的第一个测试代码,还没用到额外的模块,只是利用了主板上的三个红绿蓝LED灯做了一个交替点亮和熄灭的功能。代码不会超过10行。
是不是很好玩?我也写了一些稍微复杂的小程序,使用到了上面提到的一些硬件模块,整个开发体验就是可以用简洁,直观,容易理解来形容。总之,你之前学到的JavaScript知识,都会在这里继续发挥到作用。
有兴趣的朋友不妨也来一起玩一下吧。