ラズパイは当然! Node−RED×Windows PCで ArduinoのI2Cを制御する

特集 電脳ガジェット Pi でラピッド・プログラミング
第6章
ラピッド
センサ,D−Aコンバータ,カラー液晶… 電子工作
あれもこれも動かしてみたい!
Part5
ラズパイは当然!
Node−RED×Windows PC で
Arduino の I2C を制御する
桑野 雅彦
USBとI2Cをブリッジ
RTC
Masahiko Kuwano
I2Cバス
USB
5V/3.3V変換IC
Firmata
加速度センサ
I2Cバス
温度センサ
の利用が可能になります.本章では,Windows パ
ソコン+ Arduino で I2C インターフェースのカレン
ダ IC を接続し,秒カウンタのリセットや読み出し
を行ってみます.
センサ値の取得,制御出力設定などの基本操作な
ら,ノードの接続だけで十分可能です.
Arduino を
I2C バス・ブリッジとして利用
● 多くの IC やモジュールが備える I2C インターフェ
ース
第 5 章では,Arduino の I/O 端子を利用して,ディ
ジタル信号やアナログ信号の入出力をしました.これ
だけでもかなりのことができますが,Arduino の I/O
機能では不足するときや,各種のセンサ類をつなぎた
いときに Arduino の A−D 変換回路では不足するとき
もあるでしょう.
Arduino の持つ機能にとらわれず,さまざまなデバ
イスを拡張していくのに便利なのが I2C バスです.
サポートしているので,簡単にI2Cバスで拡張できます.
I2C バスは古くからボード内の IC 接続用のシリア
インターフェース機能をサポートしています.また,
Arduino の Firmata スケッチも I2C バス・アクセスを
2016 年 6 月号
4
5
6
8
ル・バスとして使われています.I2C バス対応のデバ
イスは,D−A コンバータや A−D コンバータ,I/O エ
キスパンダ,加速度センサ,磁気センサなどさまざま
な種類を多くの半導体メーカがリリースしています.
I2C スレーブ機能を持ったマイコンも珍しくないので,
I2C バスの下にさらに独自のマイコン・ボードを拡張
することもできます.
I2C デバイスはそれぞれ I2C バス・アドレスを持っ
ています.I2C バス・アドレスがぶつからなければ 1
本のバス上に複数のデバイスを接続できます.
図 1 のように Arduino を I2C バス・ブリッジとする
ことで,世の中にたくさんある I2C デバイスを Node−
RED から利用できます.もちろん,I2C 以外の GPIO
も通常どおりアクセスできるので,Arduino の I/O も
無駄になりません.
図のように Arduino の GPIO に LED やスイッチをつ
なぐこともできます.GPIO につないだスイッチに応
じて,センサの値を I2C バス経由で取得し,GPIO に
つないだ LED に表示するといった使い方もできます.
実験の準備
● Node−RED は Arduino の I2C を動かすライブラリ
を標準装備
Node−RED の GPIO ライブラリは,Arduino の I2C
3
7
図 1 Arduino を I2C バス・ブリッジとして利
用して Node−RED で I2C デバイスを動かす
Arduino を I2C バ ス・ ブ リ ッ ジ と す る こ と で,
Windows パソコンの Node−RED から I2C デバイス
2
D-Aコンバータ
Arduino
Node-RED
+Firmata
1
● I2C インターフェースを備えるカレンダ IC RX−
8564LC を動かす
I2C バス・アクセスのサンプルとして,Arduino の
先に I2C バス・インターフェースを持った RTC
(Real
97
9