コードの中身をのぞいてみよう
最後にPythonコードの中身を解説します。まず日本側でRGBカラーセンサーのデータを取得する部分です。
RGBの照度を取得
実装を簡単にするため、GitHubで公開されている「Adafruit-Raspberry-Pi-Python-Code/Adafruit_TCS34725/」を活用しました。図17のような簡単なスクリプトを記述するだけで、各RGBの照度の値を容易に取得できます。
TCS34725メソッドの第1引数で光の蓄積する時間を指定しますが「ATIME」という値を使います。「蓄積時間=2.4ms×(256-ATIME)」となっています。0xFF(2.4ms)~0x00(700ms)の範囲で設定します。
第2引数のゲインはTCS34725が内蔵するADコンバーターの倍率で、1倍(0x00)、2倍(0x01)、16倍(0x02)、60倍(0x03)のいずれかを指定します。
TCPソケットでデータ送受信
計測した照度データをRPi-JからRPi-Fへ送信するために、TCPソケット通信を活用します。
まずは送信側です。TCPソケットをオープンして、メッセージのパケットを作成し、送信する流れになります(図18)。
次に受信側です(図19)。送信側と同様にソケットを用意し、RPi-Jから来たデータが受信されるまで待機します。受信できたら、split関数を用いて「,」で分割し、時間や各RGBの照度情報を取得します。