饼干控制系统

基于Node.JS的饼干系统

现在高性能的片上系统(SOC)层出不穷,轻而易举地可以设计出一个高性能的嵌入式硬件平台。但是选择灵活,性能强大的软件平台却不是容易的事情。现在流行的方案包括了Linux系统,Google的Andriod , Ardunio系统,以及最近Microsoft发布的windows10 IoT。

由于Linux,android和windows对于控制工程师来讲,开发过于复杂,所以我们选择了NodeJS作为嵌入式系统的用户编程平台。

我们一直有兴趣在这方面做点事,而我们最擅长的就是通信技术,我们研究了各种的通信协议和现有的控制计算机架构。于是想到了是否能够开发一种更为大众化的,适合物联网应用的计算机平台,硬件架构上类似于工业计算机的PLC,Beckhoff 公司工业计算机那样的模块化结构和总线结构。

第一步我们开发模块化的硬件模块,这些模块能够灵活地结连和扩展。

模块之间不像Ardunio,树莓PI那样CPU芯片级的连接,而是采用高速总线连接,这样集成的系统是一个完整的产品,可以在工业环境下使用,而不仅仅是样机(Prototype)。

标准化的硬件模块使用32位MCU实现,是一个72mmX72mm的模块,我们称它们为饼干(Biscuit)。为什么取这个名称呢,除了希望取一个耳熟能详的名称让人容易记得我们,还有一个原因是我们的系统将使用javascript 作为程序设计语言。java是印度尼西亚爪哇岛的一种咖啡,而我们想,喝咖啡必须来点饼干才是完美的下午茶。

第二步我们选择NodeJS作为软件平台,javascript作为编程语言。

使用一种非常普及的程序设计语言来开发嵌入式系统,可以大大降低学习的难度。并且尽可能地实现与硬件无关非常重要。我们尝试过JAVA,微软的Micro .NET framework等,甚至LUA语言,但是都不理想,最终我们欣喜地发现NodeJS 是一个不错的选择。

第三步我们实现了数据流程序设计环境。

我们不断地向人们介绍基于NodeJS的饼干系统,一些潜在的客户对我们的产品产生了浓厚的兴趣,但是他们都提出来“如果能使用图形化编程就更好了”。

(1)    传统的控制工程师大多数不是有经验的程序员,他们也不了解javascript;

(2)    他们大多都熟悉PLC的梯形图,或者Labview 等可视化编程工具。

对于一个硬件工程师,或者控制工程师来讲,编写一个javascript软件依然不是一个轻松的事情,特别是涉及到网络远程控制等物联网应用来讲,需要学习HTML5,前后端 javascript,CSS等内容。掌握这些技术需要花费的时间很长,为此,我们开发了基于数据流的图形设计工具。

这个项目仍然在继续中,2017年,我们将开发面向工业测试领域的饼干产品。