GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた
昔、XPORTを使っていてサーバへの再接続がうまく動作し(私が動作させられ)なくて、どうしようもなかったことがあったので、それならばと思い「GR-KURUMI+WIZ550ioシールドを使って接続・切断をIOで操作でき、より使いやすいXPORTみたいなもの」を作ってみた話です。
無線LANが主流の今時に、有線LANとは時代遅れの感もありますが、長い間パソコンのフォルダに眠っていたものを話のネタに引っ張り出してきました。
WIZ550ioシールド用に提供されているライブラリは結構メモリを消費するため、メモリサイズが大きいということでGR-KURUMIを使いました。
使用したWIZ550ioシールド用ライブラリはこちら
なお、このライブラリにTCPサーバへの接続処理のタイムアウト処理を追加するために若干の変更を加えました。
GR-KURUMI と WIZ550ioシールドの接続及びマイコンとのの接続はこんな感じ。
AスイッチをHi/LowすることによりTCPサーバへの接続・切断を行います。接続先のTCPサーバのIPアドレスは事前に設定コマンドで行うことになります。AスイッチをLowにしているときはSerialまたはSerial1にTeraTerm等のターミナルソフトを繋げて次のような項目の設定を行えます。
- 自身のIPアドレスの設定(dhcp使用有無)
- 接続先TCPサーバのIPアドレスの設定
- 接続先TCPサーバのポート番号の設定
- 接続際TCPサーバへの接続処理の応答待ち時間(ms)の設定(この時間を過ぎたら接続失敗としてリターンする)
- 接続先TCPサーバ接続失敗時のリトライ間隔(ms)の設定
- TCPサーバからのデータ受信が一定時間途絶えた場合の再接続するまでの時間(ms)の設定
- 設定値のデータROMへの書込&読込&クリア
- 等々
設定コマンドラインの画面(TeraTerm使用時)はこちら
上の接続図のマイコンとの接続のところを TTLシリアル-USBシリアル変換器を使ってPCに接続した場合はこんな感じとなります。
GR-KURUMIとWIZ550ioシールドを連結する基板を作れればWIZ550ioシールドぐらいの大きさに収まる(WIZ550ioシールドの下にGR-KURUMIを重ねる)ような気もする。
ルネサス社のRL78-g13 CPUチップとWiznet社製のw5500チップを使って基板1枚に収めてしまえればもっとすっきりした基板になりそう。
しかし、私には回路設計&基板設計、そして必要部品を購入して基板に実装なんて出来ない。
ブレッドボードに既成基板(CPUや周辺基板)を載せてジャンパー線で繋げてプログラムを作成するまでかなぁ。
WindowsPC上にViaual Studioで作成したTCPサーバプログラムを接続してLANケーブルを抜いたり、ハブの電源を切ったりしてちゃんと再接続するか試してみました。Arduino+WIZ550ioシールドで作成したTCPサーバにも接続してみたりもしました。この範囲ではちゃんと動いてました。もっと厳しいLANの切断テストが必要なのかもしれない。
データ受信が一定時間無いので接続しては切断して再接続を繰り返しています。