0

Arduino から Raspberry PI に送られてくるシリアルポート データを読み込もうとしていますが、何も表示されません。シリアルポートにデータが届いていることを確認しました。同じスクリプトが Windows 7 で正常に動作します。また、シリアル データを読み取る 2 つの異なる方法を試しましたが、いずれも機能しません。私が使用している node.js のバージョンは v0.9.9 です。

どんな助けでも大歓迎です。

var sys = require('sys');
var portName = '/dev/ttyACM0' ;

/////////////////////////////////////////////////
//Approach 1
/////////////////////////////////////////////////
var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort(portName, {
     baudrate: 9600
   });

serialPort.on("open", function () {
console.log('open');
serialPort.on('data', function(data) {
//console.log('data received: ' + data);
sys.puts("here: "+data);
});

serialPort.on('error', function(message) {
console.log('error: ' + message);
});
});

/////////////////////////////////////////////////
//Approach 2 
/////////////////////////////////////////////////
var serialport = require("serialport");
var SerialPort = serialport.SerialPort; // localize object constructor

var sp = new SerialPort(portName, { 
     parser: serialport.parsers.raw
     });

sp.on("data", function (data) {
sys.puts("here: "+data);
});
4

2 に答える 2

1

それが Linux のパーミッションであるかどうかを確認できます。

Linuxマシンにインストールしましたか?

nmp install serialport

質問に答えていただけますか。javascript を使用してシリアル ポートから読み取るのはなぜですか?

シリアルポートが機能していませんか?

Linux に node-serialport をインストールできません

于 2013-05-31T12:28:03.630 に答える
0

Arduino で送信するデータの種類は何ですか? 最良のアプローチは、すべてのデータをjson化し、ノードで一度解析することです。

これは私が使用している Arduino の例です。必要に応じて変更できます。

void sendJson(){
    String json;

    json = "{\"accel\":{\"x\":";
    json = json + getXYZ(0);
    json = json + ",\"y\":";
    json = json + getXYZ(1);
    json = json + ",\"z\":";
    json = json + getXYZ(2);
    json = json + "},\"gyro\":{\"yaw\":";
    json = json + getYPR(0);
    json = json + ",\"pitch\":";
    json = json + getYPR(1);
    json = json + ",\"roll\":";
    json = json + getYPR(2);
    json = json + "}}";

    Serial.println(json);
}

それからノードでは、それは非常に簡単です:

serialPort.on("data", function (data) {
    json = JSON.parse(data.replace(/ /g,""));
    AccelX = json.accel.x;
    // and so on.
});

それが役に立てば幸い!

于 2013-08-21T15:10:06.353 に答える