Ruff 是什么?
Ruff 是一个支持 JavaScript 开发应用的物联网操作系统。在这个平台上,你可以用 Javascript 语言做物联网应用开发,从而降低硬件开发的门槛和难度,可以快速开发出硬件产品原型。Ruff 好比物理网界的 Android,让所有开发者都可以方便快捷的开发物联网应用
Ruff 为什么选择 Javascrit 语言?
- Javascript 是脚本语言,不需要编译,所以修改部署起来比较方便
- Ruff 之所以选择 Javascript 脚本语言,因为 Javascript 的用户数量多
Ruff 有哪些适用场景
物联网开发、工业控制、自动化系统等等。
Ruff 和树莓派有什么区别?
Ruff 是操作系统软件,树莓派是开发板硬件,Ruff 同样可以运行在树莓派上,具体可以参考 树莓派移植指南。
Ruff 就是把 Node.js 跑在硬件上么?
不是,Node.js的 JS 引擎(JS解释器,解释执行JS代码)是 V8,比较大,对内存资源要求高,必须达到64M才可以,而我们 Ruff 对硬件内存的要求比较低,达到256K就可以。
Ruff 现在支持哪些外设驱动?
- 常见的传感器,比如温湿度/光照/声音/陀螺仪/编码器等等;
- 红外接收发射模块;
- USB设备,如USB声卡,USB存储卡,USB摄像头等等。
Ruff 是用的什么 JS 引擎?
MPU 版是 duktape,MCU 版是 jerryscript。
Ruff 现在支持哪些硬件接口?
目前支持的接口有 GPIO,I2C,ADC,PWM,UART,QEI。
Ruff 现在支持哪些协议?
如物联网协议 MQTT,工业控制协议 Modbus 等。
Ruff MPU 板和 Ruff MCU 版有什么区别?
- 底层基于的系统不同,MPU 版底层系统基于 Linux,MCU 版底层系统基于 Nuttx RTOS
- 适用场景不同。MPU 适用于对内存要求比较高的应用,比如高强度的网络使用等等,MCU 版适用于对硬件控制的实时性要求比较高的场景,比如工业自动控制
- 所用的 JS 引擎不同。MPU 版使用 duktape,MCU版使用 jerryscript
Ruff 用 JS,和树莓派用 Python,同是脚本语言开发,有什么优势?
- 树莓派上固然有Python提供的库,但没有统一的管理环境和生态系统,比较分散,不便于搜索和查找。
- 开发树莓派有硬件门槛,硬件抽象做的没有Ruff好,比如Ruff开关灯,turnOn和turnOff,API简单易懂,对不懂硬件的软件开发者比较友好,树莓派还停留在硬件层次,如GPIO.write(HIGH_LEVEL)。
- Python开发硬件只停留在树莓派等极少数特定的硬件上,而Ruff天生跨硬件平台,可以运行在更多硬件板卡上,对移植条件很低。
Ruff 和 Arduino 有什么区别?
- Arduino 只提供开发机上的开发环境和平台,程序最终还是裸跑在硬件上,没有使用到操作系统,没有OS的话会有太多不便(裸跑还是在 OS 上跑已经是个老问题了,网上搜一大堆)。
- Arduino 使用 C 语言开发,需要对你的开发环境有很多限制,比如下载IDE/交叉编译器等,而且对操作系统有限制(只能 Windows ),而 Ruff 支持 Windows,Mac,Linux 所有主流的操作系统。
Ruff 向开发者提供哪些层次开发?
应用层和驱动层。可以直接利用Ruff的API和目前支持外设的API进行应用层开发,也可以利用Ruff提供的硬件接口API进行外设驱动模块的驱动开发。
如何理解 Ruff 软件定义硬件?
Ruff 为软件开发者提供非常便捷、人性化的 API 去控制硬件,获取硬件的状态,而屏蔽了底层的硬件细节,这样软件开发者利用 Ruff 的 API 和外设模块的 API,达到完全控制硬件的目的,所以这就叫 Ruff 可以用软件定义硬件。