最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs簡單實現(xiàn)操作arduino

 更新時間:2016年09月25日 11:25:32   投稿:hebedich  
本文給大家分享的是使用nodejs來驅(qū)動arduino,主要是基于cylonjs 和 gort,有需要的小伙伴可以參考下

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

所以作為一名電子專業(yè)出身的FE,我也打算嘗試一下用js來驅(qū)動arduino;

要想操作這些底層硬件,肯定是需要一些工具的,我這里介紹的工具主要是 cylonjsgort

cylonjs其實就是一個操作"機(jī)器"的js框架,官網(wǎng)的介紹是這樣的:

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(一種類似于單片機(jī)的東西)

舉例一部分代碼:

var Cylon = require("cylon");
// Initialize the robot
Cylon.api('http');//這個是用來連接本地瀏覽器的
Cylon.robot({//調(diào)用robot函數(shù),并傳入一個大對象來配置
 // 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通訊的一個常用協(xié)議。其遵旨是能與任何主機(jī)PC軟件包兼容,這樣可方便地將對協(xié)議的支持加入軟件系統(tǒng)中。Firmata起初是針對于PC與Arduino通訊的固件(Firmware),其目標(biāo)是讓開發(fā)者可以通過PC軟件完全地控件Arduino。
 },

 devices: {//設(shè)備,定義要操作的具體器件,這里是led,pin口是1
  led: { driver: 'led', pin: 1 }//
 },

 work: function(my) {//驅(qū)動函數(shù),
  every((3).second(), function() {//每3秒,閃一下((3).second()貌似是lodash,我猜的,沒用過,嘿嘿)
   my.led.toggle();//my應(yīng)該是指向他自己
  });
 }
}).start();//配置好了之后就開始工作

下面我們來詳細(xì)說明下

安裝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({//調(diào)用robot函數(shù),并傳入一個大對象來配置
 // 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通訊的一個常用協(xié)議。其遵旨是能與任何主機(jī)PC軟件包兼容,這樣可方便地將對協(xié)議的支持加入軟件系統(tǒng)中。Firmata起初是針對于PC與Arduino通訊的固件(Firmware),其目標(biāo)是讓開發(fā)者可以通過PC軟件完全地控件Arduino。
 },

 devices: {//設(shè)備,定義要操作的具體器件,這里是led,pin口是1
  led: { driver: 'led', pin: 1 }//
 },

 work: function(my) {//驅(qū)動函數(shù),
  every((3).second(), function() {//每3秒,閃一下((3).second()貌似是lodash,我猜的,沒用過,嘿嘿)
   my.led.toggle();//my應(yīng)該是指向他自己
  });
 }
}).start();//配置好了之后就開始工作

一開始我運行node main.js的時候,報錯顯示找不到cylon-firmata模塊

其實我在當(dāng)前目錄是裝了這個模塊的,其實還要裝cylon,如下操作沒問題

npm install cylon cylon-firmata

然后執(zhí)行node main.js:

報錯?因為我還沒連arduino。

連上arduino怎么找到arduino的端口,在main.js中有這段代碼:

prot的值咋來的?這個時候就要用到gort了

gort介紹:

GORTis a Command Line Toolkit for RobotOps

我覺得就是一個檢測硬件的命令行工具,

安裝:

brew install hybridgroup/tools/gort

當(dāng)然如果你是windows或linux,你自己看官網(wǎng)說明:安裝gort

然后執(zhí)行下面代碼檢測端口

gort scan serial

然后執(zhí)行:

gort arduino install

結(jié)果出現(xiàn)下面情況:

意思是我安裝成功了但是,brew link 這步驟沒成功,原因是/usr/local/lib is not writable,就是沒寫入權(quán)限,

所以執(zhí)行:(whoami就是你電腦的用戶名)

sudo chown -R whoami /usr/local/lib

然后再執(zhí)行:

就是把上面出現(xiàn)沒有brew link成功的都再執(zhí)行一次link.

然后:

gort arduino upload firmata /dev/tty.wchusbserial1420

成功了。這個時候再執(zhí)行:node main.js

arduino有反應(yīng),名字為tx的LED3秒一閃,在瀏覽器輸入https://127.0.0.1:3000

哈哈,成功了,好了,就寫到這里,以后繼續(xù)研究還回再寫相關(guān)文章。

對了,連接mac和arduino還需要驅(qū)動,我的arduino是arduino uno.我安裝了ch340這個驅(qū)動,下載地址

相關(guān)文章

  • Node.js使用express寫接口的具體代碼

    Node.js使用express寫接口的具體代碼

    這篇文章主要介紹了Node.js使用express寫接口,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 使用Nodejs開發(fā)微信公眾號后臺服務(wù)實例

    使用Nodejs開發(fā)微信公眾號后臺服務(wù)實例

    這篇文章主要介紹了使用Nodejs開發(fā)微信公眾號后臺服務(wù)實例,在這個實例中,主要使用到了express, wechat, mongodb, monk等模塊,需要的朋友可以參考下
    2014-09-09
  • 使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    這篇文章主要介紹了使用DNode實現(xiàn)php和nodejs之間通信的簡單實例,本文講解了DNode的安裝,以及使用的它的步驟和方法,需要的朋友可以參考下
    2015-07-07
  • Nodejs 和 Electron ubuntu下快速安裝過程

    Nodejs 和 Electron ubuntu下快速安裝過程

    本文較為詳細(xì)的給大家介紹了Nodejs 和 Electron ubuntu下快速安裝過程,非常不錯,具有一定的參考借鑒價值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 詳解50行代碼,Node爬蟲練手項目

    詳解50行代碼,Node爬蟲練手項目

    這篇文章主要介紹了50行代碼,Node爬蟲練手項目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • node.js實現(xiàn)復(fù)制文本到剪切板的功能

    node.js實現(xiàn)復(fù)制文本到剪切板的功能

    這篇文章主要給大家介紹了node.js實現(xiàn)復(fù)制文本到剪切板的功能,文中介紹的非常詳細(xì),并給出示例代碼,相信對大家具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • Node.js中如何合并兩個復(fù)雜對象詳解

    Node.js中如何合并兩個復(fù)雜對象詳解

    下面這篇文章主要給大家介紹了在Node.js中如何合并兩個復(fù)雜對象的方法,文中給出了詳細(xì)的示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友可以參考,下面來一起看看吧。
    2016-12-12
  • Windows系統(tǒng)下使用Sublime搭建nodejs環(huán)境

    Windows系統(tǒng)下使用Sublime搭建nodejs環(huán)境

    最近在研究Nodejs開發(fā),俗話說,工欲善其事,必先利其器,當(dāng)然要找到一款用著順手的編輯器作為開始。這里我們選擇的是Sublime Text 3,除了漂亮的用戶界面,最吸引我的就是它的插件擴(kuò)展功能以及跨平臺特性。
    2015-04-04
  • NodeJs環(huán)境中NODE_ENV介紹和設(shè)置方法

    NodeJs環(huán)境中NODE_ENV介紹和設(shè)置方法

    這篇文章主要給大家介紹了關(guān)于NodeJs環(huán)境中NODE_ENV介紹和設(shè)置的相關(guān)資料,NODE_ENV其實就是環(huán)境變量之一,用于設(shè)置nodejs當(dāng)前的運行環(huán)境,需要的朋友可以參考下
    2024-07-07
  • Nodejs搭建多進(jìn)程Web服務(wù)器實現(xiàn)過程

    Nodejs搭建多進(jìn)程Web服務(wù)器實現(xiàn)過程

    這篇文章主要為大家介紹了Nodejs搭建多進(jìn)程Web服務(wù)器實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評論

垣曲县| 北流市| 兴安盟| 鄂伦春自治旗| 延津县| 衡水市| 扎赉特旗| 德钦县| 竹北市| 随州市| 南溪县| 随州市| 博白县| 长武县| 体育| 大冶市| 昆山市| 蒙山县| 忻城县| 定远县| 新田县| 吴川市| 沿河| 黑河市| 通海县| 宜川县| 大城县| 神农架林区| 监利县| 柳林县| 碌曲县| 龙门县| 塔城市| 砚山县| 元氏县| 西城区| 上蔡县| 颍上县| 宜宾县| 中卫市| 太康县|