「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

シリアル通信でデーターを送受信する
12-11

Node-REDとmicro:bitを接続する(1)

2020-07-042020-07-04

Raspberry Pi OSにインストールしたNode-REDと、micro:bit間でシリアル通信を行い、データーを送受信する手順を紹介します。

12-11-1.動作の概要

Raspberry Pi OSにインストールしたNode-REDと、micro:bit間でシリアル通信を行い、データーを送受信する手順を紹介します。本記事で紹介する送受信の動作は次のようなものです。

  • micro:bitのボタンAを押すと「温度」がmicro:bitからNode-REDへ送信される
  • Node-REDのフローを実行すると「タイムスタンプ」がNode-REDからmicro:bitへ送信される

Raspberry Pi本体とmicro:bitをUSBケーブルで接続した後、micro:bitのプログラミングとNode-REDのフロー作成を行い、動作を確認します。

12-11-2.Raspberry Pi本体とmicro:bitを接続する

Raspberry Pi本体とmicro:bitをUSBケーブルで接続します。接続後、ターミナル(端末)を起動して、次のコマンドを入力します。

このコマンドは、接続されているシリアルポートを調べるものです。コマンドの出力結果(右端)に表示されているシリアルポートの名前をメモしておきます。この例の場合「ttyACM0」となります。

12-11-3.micro:bitのプログラミング

MakeCode for micro:bitへアクセスしてプログラミングします。プログラムの内容は次のようなものです。

  • シリアル通信に関する初期設定を行う
  • ボタンAが押されたとき、温度を文字列に変換して、シリアル通信で1行書き出す
  • シリアル通信で受信したとき、受信した文字列をLED画面に表示する

プログラミング

図12-11-3-1のプログラムを作成します。プログラムが完成したら、micro:bitへダウンロードしてください。

図12-11-3-1.micro:bitのプログラミング
図12-11-3-1.micro:bitのプログラミング

以上で、micro:bitのプログラミングは完了です。

12-11-4.Node-REDのフロー作成

Node-REDのエディターへアクセスしてフローを作成します。フローの内容は次のようなものです。

  • シリアル通信で受信した文字列を、デバッグメッセージとして出力する
  • injectノードのボタンを押したとき、タイムスタンプをシリアル通信で送信する

ノードを配置する

使用するノードは「inject」ノード・「debug」ノード・「serial in」ノード・「serial out」ノードの4つです。これらのノードを、図12-11-4-1のように配置して、ワイヤーでつなぎます。「serial in」ノード・「serial out」ノードはパレットのネットワークカテゴリーにあります。

図12-11-4-1.ノードを配置する
図12-11-4-1.ノードを配置する

シリアル通信を設定する

シリアル通信を設定します。「serial in」ノードをダブルクリックしてプロパティを表示します。次に、鉛筆マークをクリックします。

図12-11-4-2.「serial in」ノードのプロパティ
図12-11-4-2.「serial in」ノードのプロパティ

メモしたシリアルポートの名前を選択します。ボーレート「115200」を選択します。「出力メッセージに分割文字を追加する」で「\n」を入力します。「追加」ボタンをクリックします。

図12-11-4-3.シリアル通信を設定する
図12-11-4-3.シリアル通信を設定する

「完了」ボタンをクリックします。

図12-11-4-4.プロパティを閉じる
図12-11-4-4.プロパティを閉じる

「serial out」ノードをダブルクリックしてプロパティを表示します。シリアル通信の設定は「serial in」ノードと共通なので、ここでの設定は不要です。シリアルポートの名前を確認して「完了」ボタンをクリックします。

図12-11-4-5.「serial out」ノードのプロパティ
図12-11-4-5.「serial out」ノードのプロパティ

フローをデプロイする

「serial in」ノード・「serial out」ノードの表示がシリアルポートの名前になっていることを確認して、デプロイします。

図12-11-4-6.デプロイする
図12-11-4-6.デプロイする

デプロイが成功すると「serial in」ノード・「serial out」ノードの下に「接続済」と表示されます。

図12-11-4-7.デプロイ済みのフロー
図12-11-4-7.デプロイ済みのフロー

以上で、Node-REDのフロー作成は完了です。

12-11-5.動作を確認する

Raspberry Pi OSにインストールしたNode-REDと、micro:bit間でシリアル通信を使って、データーを送受信する準備が整いました。動作を確認しましょう。

  • micro:bitのボタンAを押すと「温度」がmicro:bitからNode-REDへ送信される
  • Node-REDのフローを実行すると「タイムスタンプ」がNode-REDからmicro:bitへ送信される

micro:bitからNode-REDへの送信

micro:bitのボタンAを押してみましょう。正しく動作すれば、サイドバーの表示ウィンドウにmicro:bitから送信された温度が表示されます。

図12-11-5-1.micro:bitからNode-REDへの送信
図12-11-5-1.micro:bitからNode-REDへの送信

Node-REDからmicro:bitへの送信

Node-REDからmicro:bitへタイムスタンプを送信するには「inject」ノードの左側にあるボタンをクリックします。

図12-11-5-2.タイムスタンプの送信
図12-11-5-2.タイムスタンプの送信

タイムスタンプは「serial out」ノードと同時に「debug」ノードへ送られるので、サイドバーの表示ウィンドウにタイムスタンプの値が表示されます。正しく動作すれば、この値と同じものがmicro:bitのLED画面に表示されます。

図12-11-5-3.Node-REDからmicro:bitへの送信
図12-11-5-3.Node-REDからmicro:bitへの送信

いかがでしょうか。簡単なmicro:bitのプログラムとNode-REDのフローだけで、シリアル通信を使ったデーターの送受信を行うことができました。micro:bitに搭載されたセンサー(明るさ・温度・加速度・地磁気)の値を取得できるので、いろいろ応用できそうですね。

おすすめ品

はじめてのNode‐RED 改訂版

「Node‐RED」は、IBMが2013年に開発した、オープンソースの「IoTアプリ/Webアプリ」向けの開発環境。「PC上」のデータも、「センサ」で取得したデータも、「Web上」のデータも、「クラウド上」のデータも、データーを加工してやり取りするのに必要なのは、「ノード」と呼ばれる「ブロック」をつなぐだけ。本書では、この「Node‐RED」の基本的な操作からはじめ、実例による活用方法まで、具体的に学べるように解説しています。

実践Node-RED活用マニュアル

ビジュアルプログラミング用開発ツール「Node‐RED」6年間の開発と88回の更新を経て、ついに正式版「ver.1.0」リリース(2019年9月30日)。「Node‐REDユーザーグループ」有志が多彩で具体的な活用事例を解説!

この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動