博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端开发者的智能硬件之路
阅读量:6340 次
发布时间:2019-06-22

本文共 1513 字,大约阅读时间需要 5 分钟。

前一段时间,收到了一个面试邀请的邮件。面试找工作,我是没这个打算的,但是,从这封邮件中,我一眼就看到了一个让我非常感兴趣的字眼,让我对这家公司的产品有了想进一步了解的冲动。

啥字眼?

“JavaScript开发智能硬件”

对我这个JavaScript狂热者来说,我的感觉就是像小孩发现了一个非常喜欢的新玩具一样的兴奋。

我不是一个偏执的某语言支持者,我用过很多语言开发过各种项目和工具,也不排斥学习和使用最新的语言。但是JavaScript对我来说,是让我感觉最有意思的语言,我喜欢用它写东西,并希望尽可能的用它来完成我的工作,不管是在前端还是后端,桌面电脑还是移动设备。JavaScript的其他爱好者也一定是这么想的,要不然JavaScript也不会像现在这样,在各种平台,各种设备上满地开花了。

用JavaScript来开发硬件这回事,以前也想过,因为之前我也稍稍玩了一下VxWorks的嵌入式开发,使用的是C语言,真的是门槛比较高,很多硬件的概念都赤裸裸的摆在那儿,对初学者来说,真的是一种难以理解,望而生畏的体验。那个时候就在想,要是能像做Web开发一样用JS来进行硬件编程,该是多爽的事情啊。

估计也有人跟我一样,就这么干干的想了好多年。直到这个智能硬件时代的来临,终于有人路见不平一声吼,该出手时就出手,憋出了这一个大招。

好了,鬼扯了这么多,这个东西到底是个啥?

它的名字叫Ruff

打开邮件中的链接,进入他们的网站,就能看到一行大大的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知识,都会在这里继续发挥到作用。

有兴趣的朋友不妨也来一起玩一下吧。

转载地址:http://qmeoa.baihongyu.com/

你可能感兴趣的文章
makefile
查看>>
考上一级建造师很牛吗?让我从一个屌丝技术员到项目经理
查看>>
重庆北大青鸟ACCP软件工程师课程内容有哪些?
查看>>
又双叒叕高考结束了,你的志愿又该是谁来“拯救”。【砺鹰职业测评】
查看>>
Oracle技术之缺少log_archive_config导致归档路径被禁用
查看>>
Oracle 临时表之临时表的应用问题
查看>>
Linux之进程查看与管理
查看>>
碟中谍:完成任务机房是核心
查看>>
戴尔联合微软开发私有云入门级系统
查看>>
图片轮播滚动
查看>>
selinux 引起的 Instantiating disk: failed
查看>>
关于客户端与服务端时区不同导致客户端上的时间不准问题的解决方案
查看>>
我的日常Git使用
查看>>
基于Windows AD的单点登录系统(二)
查看>>
第17章 重新登录
查看>>
[\s\S]*?懒惰模式特殊情形
查看>>
java 表现层:jsp、freemarker、velocity
查看>>
内置函数, 递归, 二分法
查看>>
SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
查看>>
docker run配置参数
查看>>