用Javascript操作硬件并不罕见。
所以作为电子专业的我也打算尝试用js驱动arduino;
如果你想操作这些底层硬件,肯定需要一些工具。我在这里介绍的工具主要是赛昂js和gort
赛昂js实际上是一个操作“机器”的js框架。官网的介绍是这样的:
赛昂. js是一个用于机器人、物理计算和物联网的JavaScript框架。这使得指挥机器人和设备变得非常容易。
简单来说,就是用JS来操作硬件。他支持很多硬件平台,比如arduino(类似MCU的东西)
举一些代码的例子:
var赛昂=require('赛昂');//初始化robotcylon . API(' http ');//这是赛隆. robot({//用于连接本地浏览器({//调用robot函数并传入一个大对象进行配置//将端口更改为您的arduino.connections :的正确端口{//连接项定义了一个小对象。用于配置和连接arduino arduino : { adapter : ' firmata ',port 3360 '/dev/Cu . wchusbseria 1420 ' }//prot是我的arduino在mac上连接的端口//firmata是PC和MCU之间通信的常用协议。它的目标是与任何主机PC软件包兼容,以便可以轻松地将对协议的支持添加到软件系统中。Firmata最初是用于PC和Arduino之间通信的Firmware,其目标是让开发者通过PC软件完全控制Arduino。},device : {//设备,定义具体要操作的设备,这里是LED,PIN口是1LED : {Driver :' LED ',PIN : 1}//},Work3360功能(my){//驱动功能,隔((3)。第二(。Function() {//每3秒,闪一下((3)。second()好像是lodash,我猜,没用过,呵呵)my . led . toggle();//我的应指自己});}}).start();//配置完成后开始工作。下面我们来详细解释一下
安装赛昂人
好的,第一步必须安装:
Npm安装赛昂新项目
创建一个新目录(我的是robot),然后在终端输入(如果我用mac,用git bash操作,如果我用window)
基本上,npm init可以一直按回车键,但是我把我的入口文件改成了main.js:
入口点:
然后,在终端输入:
Touch main.js是一个新的main.js文件,由windows自己手动创建。
然后在main.js中:
var赛昂=require('赛昂');//初始化robotcylon . API(' http ');//这是赛隆. robot({//用于连接本地浏览器({//调用robot函数并传入一个大对象进行配置//将端口更改为您的arduino.connections :的正确端口{//连接项定义了一个小对象。用于配置和连接arduino arduino : { adapter : ' firmata ',port 3360 '/dev/Cu . wchusbseria 1420 ' }//prot是我的arduino在mac上连接的端口//firmata是PC和MCU之间通信的常用协议。它的目标是与任何主机PC软件包兼容,以便可以轻松地将对协议的支持添加到软件系统中。Firmata最初是用于PC和Arduino之间通信的Firmware,其目标是让开发者通过PC软件完全控制Arduino。},device : {//设备,定义具体要操作的设备,这里是LED,PIN口是1LED : {Driver :' LED ',PIN : 1}//},Work3360功能(my){//驱动功能,隔((3)。第二(。Function() {//每3秒,闪一下((3)。second()好像是lodash,我猜,没用过,呵呵)my . led . toggle();//我的应指自己});}}).start();//配置后开始工作。当我开始运行node main.js时,错误显示找不到赛昂-firmata模块
事实上,我在当前目录中安装了这个模块,但我也安装了赛昂。下面的操作没问题
Npm安装赛昂赛昂-firmata,然后执行nodemain.js:
错误报告?因为我还没有连接arduino。
连接arduino时如何找到arduino的端口,main.js中有这样的代码:
你是如何得到波特的价值的?此时将使用Gort
Gort介绍:
这是一个机器人操作的命令行工具包
我认为它是一个检测硬件的命令行工具。
安装:
brew Install Hybrid Group/Tools/Gort当然,如果你是windows或linux,可以阅读官网的说明:Install Gort。
然后执行以下代码来检测端口
gort扫描系列
然后执行:
gort arduino安装
结果如下:
说明我安装成功了。但是,brew链接的步骤失败,因为/usr/local/lib不可写,即没有写权限。
所以执行:(whoami是你电脑的用户名)
Sudochow-r whoami/usr/local/lib,然后执行:
也就是对brew链接没有成功的再次执行链接。
然后:
gort arduino上传firmata/dev/tty . wchusbseria 1420
成功了。此时执行:nodemain.js。
阿尔杜伊诺回应道。名为tx的LED3闪烁3秒钟。在浏览器中输入https://127.0.0。
哈哈,成功了。好的,我在这里写。我以后会继续学习和写相关的文章。
顺便说一下,你需要一个驱动程序来连接mac和arduino。我叫阿尔杜伊诺。我安装了驱动ch340,下载地址