亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nodejs簡(jiǎn)單實(shí)現(xiàn)操作arduino

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

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

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

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

cylonjs其實(shí)就是一個(gè)操作"機(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.

簡(jiǎn)單點(diǎn)說就是用JS操作硬件,他支持很多硬件平臺(tái),譬如arduino(一種類似于單片機(jī)的東西)

舉例一部分代碼:

var Cylon = require("cylon");
// Initialize the robot
Cylon.api('http');//這個(gè)是用來連接本地瀏覽器的
Cylon.robot({//調(diào)用robot函數(shù),并傳入一個(gè)大對(duì)象來配置
 // Change the port to the correct port for your Arduino.
 connections: {//連接項(xiàng)定義小對(duì)象,用來配置連接arduino
  arduino: { adaptor: 'firmata', port: '/dev/cu.wchusbserial1420' }//prot是我arduino的在mac上連接的端口
  //firmata是一個(gè)PC與MCU通訊的一個(gè)常用協(xié)議。其遵旨是能與任何主機(jī)PC軟件包兼容,這樣可方便地將對(duì)協(xié)議的支持加入軟件系統(tǒng)中。Firmata起初是針對(duì)于PC與Arduino通訊的固件(Firmware),其目標(biāo)是讓開發(fā)者可以通過PC軟件完全地控件Arduino。
 },

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

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

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

安裝cylonjs

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

npm install cylon

新建項(xiàng)目

新建一個(gè)目錄(我的是robot),然后在終端(我用的是mac,window的話在git bash里操作吧)輸入

npm init

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

entry point: (index.js) main.js

 

好了之后在終端輸入:

touch main.js

  就是新建main.js文件,windows自己手動(dòng)建。

然后再main.js中:

var Cylon = require("cylon");
// Initialize the robot
Cylon.api('http');//這個(gè)是用來連接本地瀏覽器的
Cylon.robot({//調(diào)用robot函數(shù),并傳入一個(gè)大對(duì)象來配置
 // Change the port to the correct port for your Arduino.
 connections: {//連接項(xiàng)定義小對(duì)象,用來配置連接arduino
  arduino: { adaptor: 'firmata', port: '/dev/cu.wchusbserial1420' }//prot是我arduino的在mac上連接的端口
  //firmata是一個(gè)PC與MCU通訊的一個(gè)常用協(xié)議。其遵旨是能與任何主機(jī)PC軟件包兼容,這樣可方便地將對(duì)協(xié)議的支持加入軟件系統(tǒng)中。Firmata起初是針對(duì)于PC與Arduino通訊的固件(Firmware),其目標(biāo)是讓開發(fā)者可以通過PC軟件完全地控件Arduino。
 },

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

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

一開始我運(yùn)行node main.js的時(shí)候,報(bào)錯(cuò)顯示找不到cylon-firmata模塊

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

npm install cylon cylon-firmata

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

報(bào)錯(cuò)?因?yàn)槲疫€沒連arduino。

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

prot的值咋來的?這個(gè)時(shí)候就要用到gort了

gort介紹:

GORTis a Command Line Toolkit for RobotOps

我覺得就是一個(gè)檢測(cè)硬件的命令行工具,

安裝:

brew install hybridgroup/tools/gort

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

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

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

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

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

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

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

相關(guān)文章

  • 詳解nodejs微信公眾號(hào)開發(fā)——5.素材管理接口

    詳解nodejs微信公眾號(hào)開發(fā)——5.素材管理接口

    這篇文章主要介紹了詳解nodejs微信公眾號(hào)開發(fā)——5.素材管理接口,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • nodejs教程之異步I/O

    nodejs教程之異步I/O

    nodejs的核心之一就是非阻塞的異步IO,于是想知道它是怎么實(shí)現(xiàn)的,經(jīng)過一份研究,找到些答案,在此跟大家分享下。
    2014-11-11
  • node-sass一直安裝不上、安裝失敗的原因分析

    node-sass一直安裝不上、安裝失敗的原因分析

    一個(gè)項(xiàng)目一直以來運(yùn)行都是正常的,今天運(yùn)行就突然報(bào)錯(cuò)了,錯(cuò)誤如下:?錯(cuò)誤大致意思就是node-sass安裝失敗,下面這篇文章主要給大家介紹了關(guān)于node-sass一直安裝不上、安裝失敗的原因分析,需要的朋友可以參考下
    2023-02-02
  • npm 語義版本控制詳解

    npm 語義版本控制詳解

    這篇文章主要介紹了npm 語義版本控制詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run?on?Node.js

    nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run

    本文主要介紹了nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run?on?Node.js,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法

    nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法

    這篇文章主要介紹了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法,結(jié)合實(shí)例形式分析了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • nodejs實(shí)現(xiàn)大文件(在線視頻)的讀取

    nodejs實(shí)現(xiàn)大文件(在線視頻)的讀取

    這篇文章主要為大家詳細(xì)介紹了nodejs實(shí)現(xiàn)大文件的讀取,比如在線視頻,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Nodejs之Express中間件的分類介紹

    Nodejs之Express中間件的分類介紹

    這篇文章主要介紹了Nodejs之Express中間件的分類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Nodejs高并發(fā)原理示例詳解

    Nodejs高并發(fā)原理示例詳解

    這篇文章主要為大家介紹了Nodejs高并發(fā)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐

    詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐

    這篇文章主要介紹了詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論