新闻动态

News
融合物理空间与网络,Ruff 给软件开发者带来新世
发布日期:2016-11-13 14:46:36
  网友“伊娃爸爸”既是个程序员,还是个新晋奶爸。除了陪女儿用铃鼓玩耍以外,最近他还做了一件事,给女儿和自己都打开了新世界的大门。
 
  那就是用他前段时间购买的 Ruff 开发套件,基于 iPad 上的太鼓达人游戏,写出了可以把女儿的铃鼓转化为“打鼓机”的软件。就这样,他成功地将女儿的玩具和风靡日本的《太鼓达人》游戏实现了联动,让女儿可以用自己喜欢的铃鼓,来操纵《太鼓达人》的游戏界面。
 
  这个打鼓机看起来和在市面上买到的游戏外设从效果上相比差别不大,原理也比较简单——使用声音和振动两个传感器,区分鼓面和鼓边的两种敲击,再用 Ruff 操作系统把敲击类型发给服务器,后者通过 websocket 发到网页端。
 
  一个开发套件带来的多重创新
 
  对于硬件开发者来说,这个产品其实只是一个外置设备,但是对于一个之前没有足够多硬件知识的软件开发者来说,能够靠一个人的力量,实现这种程度的硬件开发,可以说是完成了一次跨越。关键环节,就是 Ruff 这款物联网操作系统。
 
  当创意爆发的条件被满足,我们就能看到各种各样的创新。“伊娃爸爸”的打鼓机只是 Ruff 开发者社区里众多的精彩开发案例之一。
 
 
  夜里起床,黑暗的环境往往需要人摸索一段时间才能找到开关,打开灯之后又会因为突然的强光刺激到眼睛。有开发者就用 Ruff 设计了一套解决方案,根据不一样的需求,通过声控、红外、夜视摄像头和重力感应,来自定义不同的人体活动检测,再让设备做出不同的行动。
 
  这样一种人性化体验的方案,只有开发者亲身经历并且设身处地思考之后,才能想得到。而从前需要软件工程师和硬件工程师协同合作才能做到的事情,有了物联网操作系统 Ruff,如今只要软件开发者一个人就可以独立完成,大大减少了研发的周期和成本。
 
 
  Ruff 平衡车是另外一个让人拍手叫绝的例子,它能够直立、前行,并且推而不倒。在过去的市场中,平衡车大多是由 C/C++ 开发,代码较为冗长。了解这两种编程语言的程序员都知道,虽然这两种语言有许多优点,在如今敏捷开发、快速迭代的开发风格更能紧跟市场的情况下,它们的缺点也很明显。
 
  Ruff 平衡车则是使用易学易用且有大量程序员群体的JavaScript语言,基于 MCU 工业级开发板完成,代码十分简单。未来,它的操作逻辑很有可能应用在自动化、机械臂等工业领域的不同方向。
 
  物联网操作系统的想象力
 
  在移动互联网大潮的爆发性增长之后,以“中国制造2025”和“工业 4.0”等以物联网为基础的新概念已经成为全球制造业的下一个增长点。这背后是移动互联正在向万物互联加速演进。
 
  这种演进,不仅在消费者市场发生,也在企业级市场发生。正如上文中提到的有可能应用在工业领域的 Ruff 平衡车,企业市场有着发挥物联网优势的先天条件:庞大的设备数量、统一的管理需求和充沛的资金支持,这些特点使得物联网操作系统能够很好发挥自己的规模效应。
 
  举个例子,某食品饮料行业巨头在国内为二、三线城市的分销商配送了制冷冰箱,但是却发现这些设备面临严重的资产流失。传统的管理思路已经无法有效地解决这个问题,于是该公司转而求助技术手段。
 
  通过与这家公司在国内的软件服务商合作, Ruff 将自己的物联网操作系统技术应用到这个案例中:系统能够主动做出判断,如果配送的冰箱没有在规定的位置启动,那么将自动关闭制冷功能。Ruff 通过物联网这种统一管控的模式,有针对性地解决了企业的技术需求。目前,该平台已经在为多家世界 500 强公司服务。
 
  物联网时代,操作系统之所以重要,还有一个很重要的原因:工业、农业、智慧城市等领域,都有着对物联网的需求。而传统的纯硬件公司和纯软件公司,都很难单独满足这些需求。
 
  比如说,一家软件公司可能是某些大型传统公司的供应商,对于这些客户的物联网方面的需求,他们需要另外找硬件公司合作。不仅降低利润,而且由于硬件开发的标准与软件开发的标准无法打通,接入硬件的部分也会让开发变得艰难。而Ruff这个产品,在此时就可以“武装”这个曾经的软件公司,让它在物联网时代,也能轻松地满足客户对“软硬结合”的需求。
 
  另外,与上游供应商合作编程智能硬件套件,也可能是 Ruff 在企业级市场的另一个极具前景的发展方向。而与标准化的硬件集成商或其他企业合作,也同样是普通开发者未来获得巨大收益的可行之路。
 
  根据国际电信联盟 (ITU)、思科和 Intel 等多个机构的预测,到 2020 年全球联网设备可达 200 至 500 亿。万物互联将进一步实现物理空间和网络世界的融合,连接设备数量的剧增将使网络价值呈现指数级爆炸式增长,用户、设备和数据在新网络环境下的流程将会被重构,并将重塑整个社会的生产工具、生产方式和生活场景。
 
  灯点亮了,之后是什么?
 
  面对如此具有前景的领域,笔者作为一名对硬件开发有浓厚兴趣的程序小白,也对 Ruff 的开发流程做了一次浅尝辄止的体验。
 
  首先在 Ruff 的网站 (ruff.io) 上购买开发套件,下载 Ruff 的 SDK 包,解压缩。类 Unix 环境和 Windows 环境的开发者,接着要分别进行简单的路径 (PATH) 环境参数配置,只要在命令行里输入 rap --version 显示的信息正确,这一步就成功了。配置完成之后,马上就可以进入项目开发的实际操作。开发板完成配置安装引导之后,就可以开始部署程序了。
 
  拿最简单的控制灯泡的操作来说,只需要一段特别简单的代码:
 
  $('#led-r').turnOn();
 
  非常简单便捷。
 
  对于硬件开发者来说,打开一盏灯这个操作可能是在某一个硬件接口里把 0 设置成 1,再简单不过了。
 
  但是硬件开发和软件开发毕竟对程序员的知识储备有不同的要求,内存、总线、程序调度,这些操作系统底层的概念,许多程序员都不是很了解。实际上,没有五年或六年的积累,很难掌握这样一个知识面。所以,对于一位软件开发者来说,利用 Ruff,不需要浪费太多时间深入了解硬件知识,用一行代码就可以点亮一盏灯,这其中的含义大为不同。
 
  “这就像点亮了一个新世界。”一位 Ruff 的开发者这样说道。
 
  的确,有了 Ruff,物联网就是一个软件开发者的新世界。自动搜集天气和土壤数据的农业灌溉系统、家庭警报装置…… 这些都是 Ruff 开发者社区里出现的精彩解决方案。物联网开发领域带给人的想象力,远不只这些。
 
  “绝大多数软件开发者在初涉硬件开发的时候,都有一个问题,那就是‘灯点亮了之后,该干什么?’” Ruff 的一位技术高管这样说道,“这是留给我们所有物联网开发者的一个问题。”
 
  “但是我们并不担心。有想法的开发者,自然会带来令人耳目一新的解决方案,我们都在期待这些发明的出现。