遠隔制御 - I2C出力
MONOSTICK-モノスティックをパソコンやスマートフォン、タブレット端末のUSBポートに接続することで複数のTWELITE-トワイライト端末を遠隔制御することができます。
TWELITE-トワイライトに様々なデバイスを接続してパソコンやスマートフォン、タブレット端末で、 制御できます。
ここではTWELITE-トワイライトにI2Cで接続されたデバイスを制御する方法を説明します。I2Cとは2線式のシリアル通信バスの規格でアイ・スクエアード・シーまたはアイ・ツー・シーと読みます。I2C規格に対応した数々のデバイスを使用することができます。
LCD(I2C接続)を制御する
相手側の端末にI2Cで接続されたLCDに任意の文字を表示します。LCDにより制御コマンドが異なりますので、詳細は使用するLCDの仕様書を確認して下さい。ここではいくつかのデバイスの使用例を紹介します。
入力データフォーマット
1: 1バイト: 無線デバイスのアドレス (0xDB: 自分自身, 0x00 ~ 0x7F, 0x00:親機, 0x78: 全子機)
2: 1バイト: 0x88
3: 1バイト: 要求番号(応答メッセージにそのまま出力される識別子)
4: 1バイト: コマンド
5: 1バイト: I2Cアドレス
6: 1バイト: I2Cコマンド
7: 1バイト: データサイズ
8: Nバイト: データ
9: 1バイト: チェックサム
チェックサムを省略し替わりに X を入力できます。
例 :780100112233X
コマンドデータフォーマットの詳細はI2Cのアクセス方法:コマンド0x88をご参照下さい。
※ 以下 LCD に出力する場合は、App_Twelite バージョン 1.3.10 以降を書き込んでください。
AQM0802A 8文字x2行
小型のLCDモジュール(AQM0802A)に無線で文字メッセージを送り表示させる例です。
4: 0x22 (AQM0802A)
5: 0x00
6: 0x00
8: 液晶に表示するデータ
AQM0802A: 0-7バイト -> 1行目 8-16バイト -> 2行目
"012345 ABCDEFGH" 0x30(0) 0x31(1) 0x32(2) 0x33(3) 0x34(4) 0x35(5) 0x20( ) 0x20( )
0x41(A) ... 0x48(H)
のように指定すると、液晶には以下のように表示されます。
1行目: 012345
2行目: ABCDEFGH
表示例:
"Wireless"を表示させてみましょう。
W 0x57
i 0x69
r 0x72
e 0x65
l 0x6C
e 0x65
s 0x73
s 0x73
以下の文字列を送信すると、LCDに表示されます。
:78880122000008576972656C657373X
ACM1602 16文字x2行
小型のLCDモジュール(ACM1602)に無線で文字メッセージを送り表示させる例です。
4: 0x21 (ACM1602)
5: 0x00
6: 0x00
8: 液晶に表示するデータ
ACM1602: 0-15バイト -> 1行目 16-31バイト -> 2行目
"012345 ABCDEFGH" 0x30(0) 0x31(1) 0x32(2) 0x33(3) 0x34(4) 0x35(5) 0x20( ) 0x20( )
0x41(A) ... 0x48(H)
のように指定すると、液晶には以下のように表示されます。
1行目: 012345
2行目: ABCDEFGH
表示例:
"Wireless Engine"を表示させてみましょう。
W 0x57
i 0x69
r 0x72
e 0x65
l 0x6C
e 0x65
s 0x73
s 0x73
0x20
E 0x45
n 0x6E
g 0x67
i 0x69
n 0x6E
e 0x65
0x20
以下の文字列を送信すると、LCDに表示されます。
:78880121000010576972656C65737320456E67696E6520X
チェックサムの計算
チェックサムとは受け取ったデータが正しいかどうかを確認するための付加データです。
データ部の各バイトの和を8ビット幅で計算し2の補数をとります。つまりデータ部の各バイトの総和+チェックサムバイトを8ビット幅で計算すると0になります。
チェックサムバイトをアスキー文字列2文字で表現します。
例えば 00A01301FF123456 では 0x00 + 0xA0 + ... + 0x56 = 0x4F となり、この二の補数は0xB1 です。(つまり 0x4F + 0xB1 = 0)
チェックサムの省略
チェックサムを省略し替わりに X を入力できます。
例 :780100112233X