2012年12月27日木曜日

Arduino イーサネットシールド R3を試してみる

前回に引き続き、今回はArduino イーサネットシールド R3を実際に試してみます。
ArduinoをWebサーバにしてみようと思います。

LANの配線図は、前回と同様です。

ArduinoをWEBサーバにするスケッチは、サンプルが用意されているので、それを使います。2箇所変更する必要があります。

まず、WEBサーバにするサンプルのスケッチは、ArduinoのIDEを起動し、[ファイル]-[スケッチ例]-[Ethernet]-[WebServer]を選択すると、まるっと、コピーされます。

【 Webサーバ用スケッチ】
#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x0D, 0x99, 0x79 };
IPAddress ip(192,168,20,100);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


以下続く・・・

長いので省きましたが、上のスケッチの青字の部分を、自分の環境にあわせて書き換える必要があります。

1.macアドレスの変更
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x0D, 0x99, 0x79 };

この値は実は、イーサネットシールドの裏側にシールが貼ってあり、その値を入れる必要があります。グサッと刺すときにメモするのを忘れたので、私は、一度、外してメモしました。

macアドレスって、何?
LANのボード(ネットワークボード)を区別するための、IDです。原則、世の中に出回っているネットワークボードのIDは全部異なるIDが付与されています。

もし、お使いのパソコンがWindowsだったら、コマンドラインから、ipconfig /all と入力してみて下さい。Physical Address という表記で、パソコン に搭載されているネットワークボードのmacアドレスが表示されているはずです。

2.IPアドレスの変更
 IPAddress ip(192,168,20,100);

今回は、パソコンのIPアドレスが192.168.20.2なので、Arduinoには、192.168.20.100を設定しました。

IPアドレスって何?
macアドレスは物理的な識別をする為のIDに対して、パソコンを識別するためのIDがIPアドレスです。パソコンが使っているIPアドレスを知りたい時には、Windowsだったら、コマンドラインからipconfig で表示されます。

同じLANの中で、同じ IPアドレスは使えません。なぜって、どっちがどっちか、区別できなくなってしまうから。だから、最後(一番右端の数字)が異なるようにして下さい。(←激しく、ざっくりした説明 )

ネットワークの知識なので、わからなかったら飛ばしても良いと思いますが、
キチンと書くと、同じLANと言う為には、ネットワークアドレスが同じであるということになります。
ネットワークアドレスは、サブネットマスクによって区別される、ネットワーク部分が同じであることでする。
192.168.20.2 というIPアドレスで、サブネットマスクは255.255.255.0 とすると、
ネットワーク   部分は、192.168.20.0
ホスト部分は、2 です。

なので、Arduinoに指定するIPアドレスは、同じネットワーク・アドレスを持ち、異なるホスト部分である必要から、192.168.20.100にしました。ちなみに、ホスト部分に 0 と255は使えません。1から254までにしてください。
外にパソコンやルータを使っているならば、それらのIPアドレス と重複してもダメです。



結局のところ、macアドレスとIPアドレスを変更したスケッチをArduinoへ転送します。

転送が完了したら、いよいよテストです。

まずは、疎通確認から行います。
コマンドラインからpingコマンドで疎通確認をします。
  
ReplyはパソコンからArduinoへping(ICMP)というパケットを投げた時にArduinoから返答し、それが届いたことを示しています。4回投げて、4回帰ってきたという結果です。
良好です。

次に、ブラウザから、Arduinoへアクセスしてみます。
ブラウザのURL欄へ、http://192.168.20.100 と入力します。
このURLは、もちろん、さきほどArduinoへ指定したIPアドレスと同じです。


結果良好です。
Arduinoに流したWebサーバのサンプルスケッチ では、analogピンの入力電圧を検出するスケッチだったので、上記のような表示がされています。でも、Arduinoのanalogピンに何も接続していないですね。なので、でたらめな数値が表示されています。
試しに、analogピンとGNDを結線すると、0になります。

Arduino ネットワークデビュー成功です。




・Processingをはじめよう
・Processing アニメーション
・楽しく学ぶコンピュテーショナルデザイン






0 件のコメント:

コメントを投稿