1

私はarduinoで実行しているこの単純なコードを持っています

char inp;
void setup(){
  Serial.begin(9600);
}

void loop(){
  while(Serial.available()>0){
    inp = Serial.read();
    Serial.print(inp);
  }
  Serial.print("--");
  delay(200);
}

そのため、「--」と継続的に書き込み、arduinoに何かを送ると、それが返信されます

次に、jsファイルに

var strinInfo = "";
tempSerial.on("data", function(data) {
  console.log("data -> " + data);
  if (stringInfo.length < 37){
    stringInfo += data;
  }else{
    io.sockets.emit("message", stringInfo);
    stringInfo = ""
  }
});

それは、arduinoから得たものをソケット経由で送信します。私の問題は、たとえば、

"thisisanunusuallongandterriblestringofsymbolsblablablablablablabla"

不足している文字があります:

---------thisisanunusuallongandterribles, 
gofsymbolsblablablablabla--blabla ----, 
-------------------------------------,

この例では、「trin」がありません。そのキャラクターを失わない方法はありますか?

私はノードから始めているので、それがメッセージを発行するまでの間に...その瞬間のコンテンツがなくなっていると思います。おそらく私は間違っています。

4

2 に答える 2

0

の問題かもしれないと思いますbaud-rate

serialportArduino とのシリアル通信にモジュールを使用している場合はserialport baud-rate、9600 に設定する必要があります (受信側、つまり Arduino と同じ)。

デフォルトでは、シリアルポートのボーレートは 115200 です。

于 2016-04-10T10:17:53.003 に答える
0

コードを見ると、いくつかのことが考えられます。

  1. リスナーの準備が整う前にデータを送信している可能性があります。以下の上記のライブラリで解決されています。
  2. 次の行が気になりますif (stringInfo.length < 37){。データの小さなパケットが連続して取得された場合、37 を超えるパケットは のみを印刷し、stringInfoその部分は印刷しませんdata

Arduino に接続するライブラリ:

  • [Johnny Five][1]
  • [Firmata][2]

どちらのプログラムも Arduino とやり取りします。Firmata は、Johnny-Five が上位にある低レベルのものです。

于 2013-04-24T17:20:46.200 に答える