2013年4月19日金曜日

WIZ820ioをarduinoで使おうとしたらコンパイルエラー、解決


同じ症状の情報がない、あっても随分前で解決済みぽく、自分だけかもしれないけど書いておきます。

WIZnet社のTCP/IPチップのw5200を搭載したLANモジュールWIZ820io
arduino+イーサネットシールドでは大きく高くなるので、最小構成ユニバーサル基板のarduino互換機 + WIZ820ioで小型化低コスト化にいいかもしれないので購入してみた。
1,890円、MACアドレスはなかった。
MACアドレスは購入店によって付いたり付かなかったりのもよう。


デフォルトのEthernetライブラリは、w5100チップ使用のイーサネットシールド用のためのもの。
w5200チップを使っているWIZ820ioで使うためには準備がいる。
http://www.wiznet.co.kr/Sub_Modules/kr/product/Product_Detail.asp?cate1=5&cate2=42&cate3=0&pid=1160
ここから落としたファイルを解凍し、
\libraries\Ethernet\utility\ に、w5100.h w5100.cpp を上書き。

\libraries\Ethernet\Ethernet.h
5行目 //#include "w5100.h" → #include "utility/w5100.h"
11行目 #define MAX_SOCK_NUM 4 → //#define MAX_SOCK_NUM 4
と編集。
webには動作報告があるが、サンプルのWebServerをコンパイルしようとすると次のエラーで出来なかった。

C:\Temp\arduino-1.0.4\libraries\Ethernet\utility\socket.cpp: In function 'uint16_t bufferData(SOCKET, uint16_t, const uint8_t*, uint16_t)':
C:\Temp\arduino-1.0.4\libraries\Ethernet\utility\socket.cpp:357: error: 'class W5100Class' has no member named 'send_data_processing_offset'

IDE1.0、1.0.2、1.0.3でも同じエラー。(←記憶違いがなければ)
エラーメッセージで検索しても解決できず。

環境はwin7(32bit)、IDE1.0.4。
エラーメッセージで検索

http://arduino.cc/en/Main/Software
上からダウンロードしたベータ版IDE1.5.3をためしてみる。
Ethernetライブラリがないので、1.0.4のEthernetライブラリフォルダーをコピー。
コンパイルは通ったが、arduinoに書き込み、動作させるとシリアルモニターでは、
server is at 0.0.0.0
となりダメ。

手元のノートPCにIDE1.0.2が入っていたので、そちらで試すとコンパイルも通り、動作もOKだった。
win7がダメなのかと思ったが情報がなく一時お手上げ状態。
なので、WIZ820ioを使うスケッチの時はXPノートを使うことも考えたが、めんどくさすぎる。

さらにwebをさまよっていると、ここにたどり着く。
http://blog.wiznet.co.kr/w5200-arduino-ethernet-library/#.UXDTF0qE1hN
ここにあったリンク先
https://github.com/jbkim/W5200-Arduino-Ethernet-library
からダウンロードしたライブラリをwin7機、IDE1.0.4に入れてみる。
コンパイルも通り、書き込み、動作も正常になった。

ちなみにイーサネットシールドなどw5100チップを使うときには一時的に、
\libraries\Ethernet\utility\w5100.h
24行目 #define W5200 → //#define W5200
とするだけでいい。

※2015/2/24 16行目に変更されていた。
さらに変更があった場合は #define W5200 の行をコメントアウト

環境 arduinoUNO R3、1.0.4、win7






0 件のコメント:

コメントを投稿