■シリアルインタフェースを使った通信について

音楽に連動してハイパワーLEDを光らせ、空間を演出する光音共演コンピュータは、PCとArduino Unoの間でシリアルインタフェース(RS232C)を使った通信を行っています。

光音共演コンピュータ

コンピュータの通信では、TCP/IPのソケットインタフェースを使った通信が多いですが、シリアル通信もパトランプやガソリンスタンドの計量機等各種機器の管理等重要な役割を果たしています。

■TCP/IPとシリアル通信の比較

TCP/IPではIPアドレスが付られたコンピュータであれば、LANケーブルやワイヤレスを通してどのコンピュータとも通信することができます。送受信情報はパケットにまとめられ、再送のメカニズムもあります。複数のコンピュータが通信を行う状況では、トラフィックの量によって送受信処理が遅延したりということが発生します。

一方、シリアル通信(RS232C等)では、シリアルケーブルでつながれた機器とのみ通信することができ、情報はシリアルに(連続的に)送信されます。再送のメカニズムありません。通信する相手がシリアルケーブルで接続された機器に限定される反面、TCP/IP通信のようなトラフィックの混雑による影響などはありません。筆者の経験では、RS232Cシリアル通信速度(20Kbps)は実に快適なものです。ほぼリアルタイムに音の波長に応じて光の色を変えるという技術がシリアル通信により支えられています。

■シリアルインタフェースのプログラミング

シリアルインタフェースをプログラムから使う場合、CreateFile,ReadFile,WriteFile等のシステム関数を使います。これらのシステム関数を使うことでシリアルインタフェースで接続されたコンピュータとの通信を簡単にプログラミングすることができます。光音共演コンピュータの場合、64バイトの通信バッファを使って、送受信を行っています。

■シリアル通信機器とPCの接続

シリアル通信機器とPCの接続は、USBやDSUB9ピンなどを使って行います。光音共演コンピュータの場合にはUSBを使って通信を行っています。

(PC側の接続)

シリアル通信の接続

(Arduino側の接続)

USBインタフェース接続

Follow me!