Raspberry Pi, Arduino, Node.js et le port série
Im essayant de parler à mon arduino à partir d'un node.js script serveur.
Voici mon code:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)
, SerialPort = require('serialport').SerialPort;
//SERIAL
var portName = '/dev/ttyACM0';
var sp = new SerialPort(); //instantiate the serial port.
sp.open(portName, { //portName is instatiated to be COM3, replace as necessary
baudRate: 115200, //this is synced to what was set for the Arduino Code
dataBits: 8, //this is the default for Arduino serial communication
parity: 'none', //this is the default for Arduino serial communication
stopBits: 1, //this is the default for Arduino serial communication
flowControl: false //this is the default for Arduino serial communication
});
//SERVER
server.listen(80, '127.0.0.5');
app.get('/', function (req, res){
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket){
socket.emit('test', { test: 'Its Working' });
socket.on('value', function (data){
console.log(data);
});
});
Im assez sûr que mon appareil est sur /dev/ttyACM0 parce que:
pi@raspberrypi ~/Programming/node $ dmesg|tail
[91569.773042] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
[91569.776338] usbcore: registered new interface driver cdc_acm
[91569.776369] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[92601.131298] usb 1-1.2: USB disconnect, device number 7
[92609.044999] usb 1-1.2: new full-speed USB device number 8 using dwc_otg
[92609.149759] usb 1-1.2: New USB device found, idVendor=2341, idProduct=0043
[92609.149789] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[92609.149806] usb 1-1.2: Manufacturer: Arduino (www.arduino.cc)
[92609.149820] usb 1-1.2: SerialNumber: 74132343430351705051
[92609.156743] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
pi@raspberrypi ~/Programming/node $
Quand j'essaie de l'exécuter mon script serveur j'obtiens l'erreur:
pi@raspberrypi ~/Programming/node $ node server.js
info - socket.io started
/home/pi/node_modules/serialport/serialport.js:72
throw new Error('Invalid port specified: ' + path);
^
Error: Invalid port specified: undefined
at new SerialPort (/home/pi/node_modules/serialport/serialport.js:72:11)
at Object.<anonymous> (/home/pi/Programming/node/server.js:8:10)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Im sûr que im manque juste quelque chose de simple mais je ne sais pas assez sur Linux ou Nœud de savoir ce que c'est. Dois-je installer l'IDE arduino pour les conducteurs?
Est-ce parce que je suis sshing dans mon raspberry pi, je sais qu'il utilise le port série, mais j'ai envie de communiquer via le port USB. Est-ce possible ou dois-je seulement 1 port série, indépendamment de savoir si son USB ou série?
MODIFIER
J'ai installé l'IDE et je peux parler à l'arduino par le biais de l'IDE. Il n'est donc pas de pilotes ou de manque de ports.
Merci pour toute aide.
Joe
source d'informationauteur Joseph Roberts
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est parce que le vide des arguments à
SerialPort
qui, plus tard, vous spécifiez dans ouvrirDe SerialPort projet mnp page
Donc vous devez spécifier tous les arguments en SerialPort, au lieu d'ouvrir
J'ai un travail nodeJS /arduino /Serialport robot.
J'ai utilisé (vous avez besoin de changer votre port série de votre propre)
Rappelez-vous Lorsque vous écrivez à votre Arduino à la "vidange" de la sortie. Mon code de travail où je dis au robot d'aller dans une direction spécifique.