LoginSignup
2
2

More than 1 year has passed since last update.

GR-ROSE と Node.js のプログラムの間でシリアル通信(一方向)

Last updated at Posted at 2021-10-16

表題の件を試した際のメモです。
GR-ROSE と Node.js のプログラムとの間で、一方向のシリアル通信を軽く試してみます。

GR-ROSE側

以下の公式のプログラムを動かしてみます。

●GR-ROSE チュートリアル:IDE for GRでスケッチ | Renesas
 https://www.renesas.com/jp/ja/products/gadget-renesas/boards/gr-rose/project-arduino-sketch-ide-gr

開発には IDE for GR を使う形で、手順は上記のページ内のとおりです。
書き込みをする際、GR-ROSE のリセットボタンを押して USBドライブとして認識させてから行う、というのがあったりします。

プログラムは以下で、サンプルほぼそのままです。
遅延の設定だけ、100ミリ秒から 1秒に変えています。

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(PIN_LED1, OUTPUT);
}
 
void loop() {
  // put your main code here, to run repeatedly: 
  digitalWrite(PIN_LED1, LOW);
  delay(1000);
  digitalWrite(PIN_LED1, HIGH);
  delay(1000);  
  Serial.println("hello");
}

こちらの動作確認を、IDE for GR のシリアルモニタで行っておきましょう。

以下のように、一定時間ごとに「hello」という文字列が出てくれば OK です。
シリアルモニタで動作確認

Node.js側

Node.js側は、以下を使ったりするとシリアル通信を扱えるようになります。

●serialport - npm
 https://www.npmjs.com/package/serialport

かなり前ですが、以下の記事に出てくるお試しの際に、利用したことがありました。

●#toio を Alexa や micro:bit から操作する 〜概要編〜(JavaScriptライブラリを使ってみた) - Qiita
 https://qiita.com/youtoy/items/0ee56f5395e3f4c72c51

今回は、読み取りだけできれば良いので、公式ドキュメントの Readline Parser のサンプルを利用します。
以下で「【自分の環境に合わせて変更】」と書いている部分は、ご自身の環境の設定に合わせて変更してください。

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort('/dev/【自分の環境に合わせて変更】')

const parser = port.pipe(new Readline({ delimiter: '\r\n' }))
parser.on('data', console.log)

GR-ROSE は PC につないだまま動作させ、その状態でプログラムを実行すると、以下の出力が得られました。
Node.jsのプログラムの実行結果.jpg

おわりに

とりあえず、公式サンプルを流用した GR-ROSE と Node.js のプログラムの間でシリアル通信を試しました。

さらに、両方のプログラムに処理を追加していって、何か面白そうなものを作っていければと思います。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2