Maison  >  Article  >  interface Web  >  nodejs implémentation simple du fonctionnement d'Arduino

nodejs implémentation simple du fonctionnement d'Arduino

高洛峰
高洛峰original
2017-01-04 16:47:201822parcourir

Il n'est pas rare d'utiliser Javascript pour faire fonctionner du matériel.

Donc, en tant que FE spécialisé en électronique, je prévois également d'essayer d'utiliser js pour piloter Arduino ;

Pour faire fonctionner ce matériel sous-jacent, vous avez certainement besoin de quelques outils, que je vais présenter ici. les principaux outils sont cylonjs et gort

cylonjs est en fait un framework js pour faire fonctionner des "machines". L'introduction sur le site officiel est la suivante :

Cylon.js est un framework JavaScript pour la robotique, l'informatique physique et l'Internet des objets. Cela rend incroyablement facile la commande de robots et d'appareils.

Pour faire simple, il s'agit d'utiliser JS pour faire fonctionner du matériel. Il prend en charge de nombreuses plates-formes matérielles, telles que Arduino (. quelque chose de similaire à un microcontrôleur)

nodejs implémentation simple du fonctionnement dArduino

Exemple de partie du code :

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();//配置好了之后就开始工作

Expliquons en détail

Installer cylonjs

D'accord La première étape est définitivement d'installer :

npm install cylon

Nouveau projet

Créer un nouveau répertoire (le mien est un robot), et puis dans le terminal (j'utilise C'est un mac, si c'est une fenêtre, fais-le dans git bash) Entrez

npm init

En gros, continuez d'appuyer sur Entrée, mais j'ai changé mon fichier d'entrée dans Main.js :

point d'entrée : (index.js) main.js

nodejs implémentation simple du fonctionnement dArduino

Après cela, entrez dans le terminal :

touchez main.js

Créez simplement un nouveau fichier main.js et Windows le construira manuellement.

Puis dans 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();//配置好了之后就开始工作

Lorsque j'ai exécuté pour la première fois node main.js, un message d'erreur indiquait que le module cylon-firmata était introuvable

nodejs implémentation simple du fonctionnement dArduino

En fait, j'ai installé ce module dans le répertoire courant. En fait, j'ai aussi besoin d'installer cylon. L'opération suivante ne pose aucun problème

npm install cylon cylon-firmata.

Ensuite, exécutez node main.js :

nodejs implémentation simple du fonctionnement dArduino

Signaler une erreur ? Parce que je n'ai pas encore connecté l'arduino.

Comment trouver le port d'arduino lorsqu'il est connecté à arduino ? Il y a ce code dans main.js :

nodejs implémentation simple du fonctionnement dArduino

D'où vient la valeur de prot ? ? À ce stade, gort sera utilisé

introduction de gort :

GORT est une boîte à outils de ligne de commande pour RobotOps

Je pense que c'est un outil de ligne de commande pour détecter le matériel,

Installation :

brew install hybridgroup/tools/gort

Bien sûr, si vous êtes Windows ou Linux, vous pouvez lire vous-même les instructions du site officiel : installez Gort

puis exécutez le code suivant pour détecter le port

gort scan série

nodejs implémentation simple du fonctionnement dArduino

puis exécutez :

gort arduino install

Le résultat est le suivant :

nodejs implémentation simple du fonctionnement dArduino

Cela signifie que l'installation a réussi, mais l'étape du lien de brassage n'a pas réussi. la raison est que /usr/local/lib n'est pas accessible en écriture, c'est-à-dire qu'il n'est pas écrit. Entrez les autorisations,

alors exécutez : (whoami est le nom d'utilisateur de votre ordinateur)

sudo chown -R whoami /usr/local/lib

Ensuite, exécutez :

nodejs implémentation simple du fonctionnement dArduino

Exécutez simplement le lien à nouveau s'il n'y a pas de lien de brassage réussi.

Ensuite :

gort arduino upload firmata / dev/tty.wchusbserial1420

nodejs implémentation simple du fonctionnement dArduino

a réussi. Exécutez à nouveau à ce moment : node main.js

nodejs implémentation simple du fonctionnement dArduino

arduino répond, la LED nommée tx clignote toutes les 3 secondes, saisissez https://127.0 dans le navigateur. 0.1:3000

nodejs implémentation simple du fonctionnement dArduino


Pour plus d'implémentations simples par nodejs d'articles liés à Arduino, veuillez faire attention au site Web chinois PHP !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn