#00 ダイレクトI/O

#00ダイレクトI/O

このTibbitは汎用ブロックのため、このノードに対して通信方式が指定可能となっています。
つまりこのノードを使い各スロットに対して、GPIO / I2C / SPI / Serial を直接使うことができます。

通信方式:

GPIO

I2C

SPI

Serial

Inputs/Outputsの詳細仕様はノードの情報タブを参照してください。

#00-1から3までありますが、どれもノードの使い方は同じです。
ただし、Tibbitブロックによって使用できるLINEが違いますので、各回路図をご確認ください。

 

GPIO

スロットに接続された機器に対して、GPIO(IN/OUT)を使用することができます。

 

OUT

ここでは一つの例として、LED(#39)をこのノードを使い制御を行います。
LED(#39)はラインAに、GPIO(OUT)のHigh/Lowで消灯/点灯を行います。

 

Tibbitの配置

Tibbit #00-3とTibbit #39を挿入します。

 

ノードの配置

通常であれば#39ノードを使用しますが、今回は#00ノードを使用します。

まずは以下のようにノードを配置します。

次に#00ノードの設定を開きます。
通信に「GPIO」、スロットに「S01」、ラインAに「OUT(オープンドレイン出力)」を選択します。

functionノードを使用し、GPIOの制御を行います。
#39はラインAをLowにすると点灯し、Highにすると消灯しますので、それぞれ以下のようにします。

これでNode-REDのデプロイを行います。
各injectノードをクリックし、点灯・消灯することを確認してください。

OUTはオープンドレイン出力と、TTL出力を選択できます。
OUT(TTL出力)は電流制限機能がないため、短絡などで大電流が流れると内部部品が破壊されます。接続時の回路構成にご注意願います。

 

IN

ここでは一つの例として、ボタン(#38)をこのノードを使い値を取得します。
ボタン(#38)はラインAが、押すとLow、離すとHighになります。

ボタンが押されているかどうかを取得してみます。

 

Tibbitの配置

Tibbit #00-3とTibbit #38を挿入します。

ノードの配置

まずは以下のようにノードを配置します。

次に#00ノードの設定を開きます。
通信に「GPIO」、スロットに「S01」、ラインAに「IN」を選択します。

functionノードを使用し、GPIOの制御を行います。
ラインAの値を取得します。

これでNode-REDのデプロイを行います。
各injectノードをクリックし、値を取得します。
ボタンを押した状態は[0]、離すと[1]になります。

 

IN_Analog

アナログ値(0 – 5V)を取得することができ、分解能は8bitです。(0 – 255)
ノードの使い方は「IN」と同じです。

 

IN_edge

今度はボタンのINのedgeを取得します。
ボタンを押したり離したりすると、自動で値を取得することができます。

ノードの配置

通常であれば#38ノードを使用しますが、今回は#00 inノードを使用します。

まずは以下のようにノードを配置します。

次に#00 inノードの設定を開きます。
通信に「GPIO」、スロットに「S01」、ラインAに「IN_Edge」を選択します。

これでNode-REDのデプロイを行います。
ボタン(#38)を押す・離すたびに、デバッグに値が表示されます。
(ラインごとにHigh/Lowが出力される)

 

・ラインを複数指定

OUTを指定する際に、複数指定することもできます。
#00ノードの設定です。例えばラインAからDにOUTを指定します。

以下のようにAからDにまとめて指定することができます。
(INも同じ要領でできます)

 

I2C

スロットに接続された機器に対して、I2Cを使用することができます。

ここでは一つの例として、温度センサ(#29)をこのノードを使い値を取得します。

 

Tibbitの配置

Tibbit #00-3 Tibbit #29を挿入します。

ノードの配置

以下のようにノードを配置します。

次に#00ノードの設定を開きます。
通信に「I2C」、スロットに「S01」を選択します。
I2Cの場合は、ラインABを使用します。

functionノードは以下のようにします。
読み込みをするように指定しています。
・act: r (読み込み)
・add: address
・cmd: command
・len: size

これでNode-REDのデプロイを行います。
injectノードをクリックするたびに、値が取得できます。
この値をもとに計算すると、最終的には温度が取得できます。

 

照度センサから値を取得

ここでは一つの例として、照度センサ(#28)をこのノードを使い値を取得します。
通常であれば#28ノードを使用しますが、今回は#00ノードを使用します。

Tibbit #00-3 Tibbit #28を挿入します。

以下のサンプルフローを読み込んで確認してください。
injectノードをクリックすると、1秒ごとに照度を取得します。

このように、#00ノードを使用して、センサーデバイスなどからI2Cで制御を行うことができます。

 

SPI

スロットに接続された機器に対して、SPIを使用することができます。
一つの例として、以下のようにフローを配置します。

次に#00ノードの設定を開きます。
通信に「SPI」、スロットに「S01」を選択します。

functionノードは以下のようにします。
・add: address
・v: value

これでNode-REDのデプロイを行います。
injectノードをクリックするたびに、値が取得できます。

 

Serial

スロットに接続された機器に対して、Serialを使用することができます。

シリアル通信を行う場合は、#01ブロックなどを使用することになりますので、
#01 RS232トランシーバのチュートリアルを参考にしてください。