设为首页 收藏本站
查看: 1323|回复: 0

[经验分享] nodejs操作arduino入门(javascript操作底层硬件)

[复制链接]

尚未签到

发表于 2017-2-24 11:25:58 | 显示全部楼层 |阅读模式
  用Javascript来操作硬件早就不是一件稀奇的事情了。
  所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino;
  要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主要是 cylonjs 和 gort
  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(一种类似于单片机的东西),贴图
DSC0000.png

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



npm install cylon

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



npm init

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



entry point: (index.js) main.js

DSC0001.png

  好了之后在终端输入:



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秒,闪一下)
my.led.toggle();//my应该是指向他自己
    });
}
}).start();//配置好了之后就开始工作
  一开始我运行node main.js的时候,报错显示找不到cylon-firmata模块
DSC0002.png

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



npm install cylon cylon-firmata
  然后执行node main.js:
DSC0003.png

  报错?因为我还没连arduino。
  连上arduino怎么找到arduino的端口,在main.js中有这段代码:
DSC0004.png

  prot的值咋来的?这个时候就要用到gort了
  gort介绍:
  GORT is a Command Line Toolkit for RobotOps
  我觉得就是一个检测硬件的命令行工具,
  安装:



brew install hybridgroup/tools/gort
  当然如果你是windows或linux,你自己看官网说明:安装gort
  然后执行下面代码检测端口



gort scan serial
DSC0005.png

  然后执行:
  gort arduino install
  结果出现下面情况:
DSC0006.png

  意思是我安装成功了但是,brew link 这步骤没成功,原因是/usr/local/lib is not writable,就是没写入权限,
  所以执行:(whoami就是你电脑的用户名)



sudo chown -R whoami /usr/local/lib
  然后再执行:
DSC0007.png

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



gort arduino upload firmata /dev/tty.wchusbserial1420
DSC0008.png

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

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

  哈哈,成功了,好了,就写到这里,以后继续研究还回再写相关文章。
  对了,连接mac和arduino还需要驱动,我的arduino是arduino uno.我安装了ch340这个驱动,下载地址

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346596-1-1.html 上篇帖子: Nodejs学习总结 下篇帖子: nodejs定义函数的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表