iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >nodejs简单实现操作arduino
  • 147
分享到

nodejs简单实现操作arduino

操作简单nodejs 2022-06-04 17:06:39 147人浏览 八月长安
摘要

用javascript来操作硬件早就不是一件稀奇的事情了。 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino; 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主要是

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(一种类似于单片机的东西)

查看图片

举例一部分代码:


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这个驱动,下载地址

--结束END--

本文标题: nodejs简单实现操作arduino

本文链接: https://www.lsjlt.com/news/12962.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Swing实现画板的简单操作
    Java Swing 画板的操作(修改颜色,更改图形,清除,任务栏按钮),供大家参考,具体内容如下 话不多说,直接看代码 package Swing; import javax.sw...
    99+
    2024-04-02
  • C语言实现简单登录操作
    本文实例为大家分享了C语言实现简单登录的具体代码,供大家参考,具体内容如下 编写代码实现,模拟用户登录情景,并且只能登录三次。 要实现这种操作,我们需要设置一个字符串arr1用来存放...
    99+
    2024-04-02
  • Python中怎么实现简单文件操作
    Python中怎么实现简单文件操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。现在以txt为例简单的讲一下Python文件操作.首先是建立关联...假设在存在以下文件 e...
    99+
    2023-06-17
  • golang DNS服务器的简单实现操作
    简单的DNS服务器 提供一个简单的可以查询域名和反向查询的DNS服务器。 dig命令主要用来从 DNS 域名服务器查询主机地址信息。 查找www.baidu.com的ip (A记录)...
    99+
    2024-04-02
  • Python实现简单的文件操作合集
    目录一、文件操作1.打开2.关闭 3.写入4.读取 二:python中自动开启关闭资源一、文件操作 1.打开 r+ 打开存在文件 文件不存在 报错 file = ...
    99+
    2024-04-02
  • Nodejs怎么实现简单的GET请求
    这篇文章主要介绍了Nodejs怎么实现简单的GET请求,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。GET请求的识别非常的简单,就是URL的识别,使用的是url.parse(...
    99+
    2023-06-15
  • Python实现简单登陆验证(文件操作)
    代码主要功能:   利用Python实现简单的登陆验证,代码主要有两个部分组成:     第一部分:登陆页面,作用是实现用户名和密码的输入        利用两个输入函数input()来实现对用户名和密码的输入     第二部分:文件验...
    99+
    2023-01-30
    操作 简单 文件
  • Qt之简单的异步操作实现方法
    目录Qt简单的异步操作Qt异步变同步问题解决的问题如何实现代码块解析Qt简单的异步操作 在实际应用中,经常会遇到一些耗时操作,导致了主线程的阻塞,这时候可以使用异步操作来避免阻塞。 ...
    99+
    2022-11-13
    Qt异步操作 Qt异步 Qt实现异步操作
  • python3简单操作opencv3
    环境: Python版本:3.6.2 opencv版本:opencv-python==3.4.3.18 安装opencv pip install opencv-python 对图片操作 import cv2 # 识别图片 img = ...
    99+
    2023-01-31
    操作 简单
  • Python的简单socket操作
    import sockethost = ''port = 12345s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.setsockopt(socket.SOL_SOCKET, s...
    99+
    2023-01-31
    操作 简单 Python
  • Python的字符串操作简单实例
    目录实例1:获取星期字符串实例2:获取月份字符串实例3:恺撒密码实例1:获取星期字符串 程序读入一个表示星期几的数字(1~7),输出对应的星期字符串名称。例如,输入 3,返回&ldq...
    99+
    2023-05-15
    Python字符串 Python字符串操作
  • 操作MySQL实现简单的创建库和创建表
      目录              操作数据库                    创建数据库                    查看数据库                    选择数据库                  ...
    99+
    2023-09-09
    mysql
  • JS实现简单的操作杆旋转示例详解
    目录一、实现效果二、组成部分目标三、代码实现1、操作控制2、dom对象操作类3、用法总结与思考一、实现效果 JS 简单的操作杆旋转实现 首先说明一下,请直接忽略背景图,这里主要实...
    99+
    2023-01-15
    JS操作杆旋转 JS 旋转
  • c语言简单实现文件 r/w 操作方法
    数据的输入和输出几乎伴随着每个 C 语言程序,所谓输入就是从“源端”获取数据,所谓输出可以理解为向“终端”写入数据。这里的源端可以是键盘、鼠标、硬盘、光盘、扫描仪等输入设备,终端可以...
    99+
    2024-04-02
  • 基于C#实现一个简单的FTP操作工具
    目录实现功能开发环境实现代码实现效果实现功能 实现使用FTP上传、下载、重命名、刷新、删除功能 开发环境 开发工具: Visual Studio 2013 .NET Framewor...
    99+
    2024-04-02
  • nodejs如何实现简单的文件上传功能
    这篇文章主要为大家展示了“nodejs如何实现简单的文件上传功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“nodejs如何实现简单的文件上传功能”这篇文章吧。首先需要大家看一下目录结构,然后...
    99+
    2023-06-29
  • hibernate入门的简单操作
    单表基本操作首先映射要操作的数据库表:以Student为例:public class Student{ private Integer SId; private String Sname; private String SAge; publ...
    99+
    2023-06-03
  • python3对emqtt的简单操作
    需要先下载外部包 pip install paho-mqtt 发布者 import paho.mqtt.client as mqtt HOST = "192.168.44.31" PORT = 1883 def Publish_Mess...
    99+
    2023-01-31
    操作 简单 emqtt
  • Android studio实现菜单操作
    本文实例为大家分享了Android studio实现菜单操作的具体代码,供大家参考,具体内容如下 要求: 1.设置“打开”、“关闭”和“退出”三个菜单项的菜单。 2.当单击“打开“菜...
    99+
    2024-04-02
  • nodejs如何操作mysql实现增删改查
    这篇文章将为大家详细讲解有关nodejs如何操作mysql实现增删改查,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先需要安装mysql模块:npm install m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作