javascript - Serial port not working? -
i made program sends out data arduino detects sent , turns on correct pin according key pressed.
when using arduino software windows computer arduino sketch works fine, can make each pin turn on , off sending either w s or d.
when sending via node rx light on arduino flashes nothing else happens.
can help?
node.js program:
var httpserver = require('http').createserver(function(req, response){ /* serve static files */ }) httpserver.listen(8080); var nowjs = require("now"); var = nowjs.initialize(httpserver); everyone.now.logstuff = function(msg){ console.log(msg); } var serialport = require('serialport2').serialport; var assert = require('assert'); var portname; if (process.platform == 'win32') { portname = 'com4'; } else if (process.platform == 'darwin') { portname = '/dev/cu.usbserial-a800efn5'; } else { portname = '/dev/ttyusb0'; } var readdata = ''; var sp = new serialport(); sp.on('close', function (err) { console.log('port closed'); }); sp.on('error', function (err) { console.error("error", err); }); sp.on('open', function () { console.log('port opened... press reset on arduino.'); }); sp.open(portname, { baudrate: 9600, databits: 8, parity: 'none', stopbits: 1, flowcontrol: false }); everyone.now.forward = function() { sp.write("w"); } everyone.now.back = function() { sp.write("s"); } everyone.now.left = function() { sp.write("a"); } everyone.now.right = function() { sp.write("d"); } sp.on('data', function(data) { console.log(data.tostring()); }); arduino program:
void setup(){ serial.begin(9600); serial.write("ready"); //set pins need output pins pinmode(8, output); pinmode(9, output); pinmode(10, output); pinmode(11, output); } void loop (){ if (serial.available() > 0) { //read serial character char ser = serial.read(); serial.write(ser); //note because serial read "char" , not "int", read value must compared character numbers //hence quotes around numbers in case statement switch (ser) { case 'w': move(8); break; case 's': move(9); break; case 'a': move(10); break; case 'q': move(10); move(8); break; case 'd': move(11); break; case 'e': move(11); move(8); break; } } } void move(int pin){ serial.print(pin); digitalwrite(pin, high); delay(1); digitalwrite(pin, low); }
i dabbled this. arduino automatically resets when receives serial communication things other arduino ide. why can send ide not node.js.
i have uno , put capacitor between reset , ground.here's page info on subject.
luck. http://arduino.cc/playground/main/disablingautoresetonserialconnection
Comments
Post a Comment