はじめに
大規模なメディアアート作品を製作するにあたって、複数のArduinoを広い空間に散らばらせて配置することになりました。
空間的に広がって配置された1台の制御PCと複数のArduinoを有線で接続する方法についてまとめます。
紹介するイーサネットシールドは2015年5月の発売ということもあってまだ情報が少ないので、旧版の情報も合わせながらまとめていきます。
どうしてUSBケーブルじゃいけないの??
はじめは単純にUSB延長ケーブルを利用しようと考えたのですが、比較的高価な上にUSBは規格上5mまでしか通信ができないと決まっているようです。
通信ができたとしても電圧降下がおきてシリアル通信が読み落とされる可能性を考慮して、USBは利用できないと考えました。
それに比べるとLANケーブルは元から数十mでの取り回しができる上に比較的安価なので今回の用途には向いています。
また、現地での電波環境が読めないことと、デバッグのやりやすさを考慮して無線での接続ではなく有線での接続を決めました。
用意したもの
- 無線ルーター (IOデータの。家に余ってたやつ。)
- LANケーブル(種類はなんでもいい)
某社面白系エンジニアの方からオススメされたこのイーサネットシールド(スイッチサイエンス社ページから購入可能。3k円)を利用しました。
イーサネットシールドはArduinoの上にかぶせて使います。
裏面にはMACアドレスの描かれたシールが貼られているので、うっかり剥がさないように注意!!
手順
基本的には参考ページ準拠。
- 物理的な接続①Arduino-PCと②イーサネットシールド-ケーブル-ルーター-PCを確認
- サンプルスケッチEthernet2のWebServerのMACとIPを環境に合わせて書き換える。(文末参照)
- Arduinoにアップロード
- ブラウザからArduinoに与えたIPアドレスにアクセス
- 成功していれば下のように、Arduinoのanalogピン出力が見えるはず。
#参考にしたページ
やっと解決!Arduino Ethernet Shield2(シールド2)通信!は比較的最近の記事で、使うべきライブラリがEthernet2という新しいバージョンであることを教えてくれた命の恩人である。
第6回 Arduinoを使ってWebサーバーをつくろう!
この製品の一つ前の方を使っているけれども、手順は大まかに同じなので参考になる。
Arduinoを1.77に変更。
java Version 8 Update 65をダウンロード。
・《4のプログラムを書き換える》において、引っかかった点
MACアドレスとIPアドレスは手で与える必要がある。
MACはシールドに記載されたものを直接書き込めば良い。
IPアドレスは自由に決めて良いが、ルーターの割り当てIPの範囲を超えないように注意する必要がある。
たとえば、私たちの環境では192.168.0.2から192.168.0.32まで利用可能IPだった。