nodejs简单实现操作arduino

 更新时间:2016年09月25日 11:25:32   投稿:hebedich  
本文给大家分享的是使用nodejs来驱动arduino,主要是基于cylonjs 和 gort,有需要的小伙伴可以参考下

用Javascript来操作硬件早就不是一件稀奇的事情了。

所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino;

要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主要是 cylonjsgort

cylonjs其实就是一个操作"机器"的js框架,官网的介绍是这样的:

Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things. It makes it incredibly easy to command robots and devices.

简单点说就是用JS操作硬件,他支持很多硬件平台,譬如arduino(一种类似于单片机的东西)

举例一部分代码:

var Cylon = require("cylon");
// Initialize the robot
Cylon.api('http');//这个是用来连接本地浏览器的
Cylon.robot({//调用robot函数,并传入一个大对象来配置
 // Change the port to the correct port for your Arduino.
 connections: {//连接项定义小对象,用来配置连接arduino
  arduino: { adaptor: 'firmata', port: '/dev/cu.wchusbserial1420' }//prot是我arduino的在mac上连接的端口
  //firmata是一个PC与MCU通讯的一个常用协议。其遵旨是能与任何主机PC软件包兼容,这样可方便地将对协议的支持加入软件系统中。Firmata起初是针对于PC与Arduino通讯的固件(Firmware),其目标是让开发者可以通过PC软件完全地控件Arduino。
 },

 devices: {//设备,定义要操作的具体器件,这里是led,pin口是1
  led: { driver: 'led', pin: 1 }//
 },

 work: function(my) {//驱动函数,
  every((3).second(), function() {//每3秒,闪一下((3).second()貌似是lodash,我猜的,没用过,嘿嘿)
   my.led.toggle();//my应该是指向他自己
  });
 }
}).start();//配置好了之后就开始工作

下面我们来详细说明下

安装cylonjs

好了第一步肯定是要安装:

npm install cylon

新建项目

新建一个目录(我的是robot),然后在终端(我用的是mac,window的话在git bash里操作吧)输入

npm init

基本上一直按回车就可以了,不过我把我的入口文件改成了main.js:

entry point: (index.js) main.js

 

好了之后在终端输入:

touch main.js

  就是新建main.js文件,windows自己手动建。

然后再main.js中:

var Cylon = require("cylon");
// Initialize the robot
Cylon.api('http');//这个是用来连接本地浏览器的
Cylon.robot({//调用robot函数,并传入一个大对象来配置
 // Change the port to the correct port for your Arduino.
 connections: {//连接项定义小对象,用来配置连接arduino
  arduino: { adaptor: 'firmata', port: '/dev/cu.wchusbserial1420' }//prot是我arduino的在mac上连接的端口
  //firmata是一个PC与MCU通讯的一个常用协议。其遵旨是能与任何主机PC软件包兼容,这样可方便地将对协议的支持加入软件系统中。Firmata起初是针对于PC与Arduino通讯的固件(Firmware),其目标是让开发者可以通过PC软件完全地控件Arduino。
 },

 devices: {//设备,定义要操作的具体器件,这里是led,pin口是1
  led: { driver: 'led', pin: 1 }//
 },

 work: function(my) {//驱动函数,
  every((3).second(), function() {//每3秒,闪一下((3).second()貌似是lodash,我猜的,没用过,嘿嘿)
   my.led.toggle();//my应该是指向他自己
  });
 }
}).start();//配置好了之后就开始工作

一开始我运行node main.js的时候,报错显示找不到cylon-firmata模块

其实我在当前目录是装了这个模块的,其实还要装cylon,如下操作没问题

npm install cylon cylon-firmata

然后执行node main.js:

报错?因为我还没连arduino。

连上arduino怎么找到arduino的端口,在main.js中有这段代码:

prot的值咋来的?这个时候就要用到gort了

gort介绍:

GORTis a Command Line Toolkit for RobotOps

我觉得就是一个检测硬件的命令行工具,

安装:

brew install hybridgroup/tools/gort

当然如果你是windows或linux,你自己看官网说明:安装gort

然后执行下面代码检测端口

gort scan serial

然后执行:

gort arduino install

结果出现下面情况:

意思是我安装成功了但是,brew link 这步骤没成功,原因是/usr/local/lib is not writable,就是没写入权限,

所以执行:(whoami就是你电脑的用户名)

sudo chown -R whoami /usr/local/lib

然后再执行:

就是把上面出现没有brew link成功的都再执行一次link.

然后:

gort arduino upload firmata /dev/tty.wchusbserial1420

成功了。这个时候再执行:node main.js

arduino有反应,名字为tx的LED3秒一闪,在浏览器输入https://127.0.0.1:3000

哈哈,成功了,好了,就写到这里,以后继续研究还回再写相关文章。

对了,连接mac和arduino还需要驱动,我的arduino是arduino uno.我安装了ch340这个驱动,下载地址

相关文章

  • Node.js使用express写接口的具体代码

    Node.js使用express写接口的具体代码

    这篇文章主要介绍了Node.js使用express写接口,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 使用Nodejs开发微信公众号后台服务实例

    使用Nodejs开发微信公众号后台服务实例

    这篇文章主要介绍了使用Nodejs开发微信公众号后台服务实例,在这个实例中,主要使用到了express, wechat, mongodb, monk等模块,需要的朋友可以参考下
    2014-09-09
  • 使用DNode实现php和nodejs之间通信的简单实例

    使用DNode实现php和nodejs之间通信的简单实例

    这篇文章主要介绍了使用DNode实现php和nodejs之间通信的简单实例,本文讲解了DNode的安装,以及使用的它的步骤和方法,需要的朋友可以参考下
    2015-07-07
  • Nodejs 和 Electron ubuntu下快速安装过程

    Nodejs 和 Electron ubuntu下快速安装过程

    本文较为详细的给大家介绍了Nodejs 和 Electron ubuntu下快速安装过程,非常不错,具有一定的参考借鉴价值,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • 详解50行代码,Node爬虫练手项目

    详解50行代码,Node爬虫练手项目

    这篇文章主要介绍了50行代码,Node爬虫练手项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • node.js实现复制文本到剪切板的功能

    node.js实现复制文本到剪切板的功能

    这篇文章主要给大家介绍了node.js实现复制文本到剪切板的功能,文中介绍的非常详细,并给出示例代码,相信对大家具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2017-01-01
  • Node.js中如何合并两个复杂对象详解

    Node.js中如何合并两个复杂对象详解

    下面这篇文章主要给大家介绍了在Node.js中如何合并两个复杂对象的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友可以参考,下面来一起看看吧。
    2016-12-12
  • Windows系统下使用Sublime搭建nodejs环境

    Windows系统下使用Sublime搭建nodejs环境

    最近在研究Nodejs开发,俗话说,工欲善其事,必先利其器,当然要找到一款用着顺手的编辑器作为开始。这里我们选择的是Sublime Text 3,除了漂亮的用户界面,最吸引我的就是它的插件扩展功能以及跨平台特性。
    2015-04-04
  • NodeJs环境中NODE_ENV介绍和设置方法

    NodeJs环境中NODE_ENV介绍和设置方法

    这篇文章主要给大家介绍了关于NodeJs环境中NODE_ENV介绍和设置的相关资料,NODE_ENV其实就是环境变量之一,用于设置nodejs当前的运行环境,需要的朋友可以参考下
    2024-07-07
  • Nodejs搭建多进程Web服务器实现过程

    Nodejs搭建多进程Web服务器实现过程

    这篇文章主要为大家介绍了Nodejs搭建多进程Web服务器实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论