PICNIC を作ろう

〜 プロジェクト ひとりでできるもん! 〜
Relese: 19th, Mar, 2001
Last Update: 19th, Mar, 2001

概要

 2000 年の秋口から秋月電子通商の発売予告として楽しみにしていた「ピックネットワークインターフェースカードキット」 (以下、PICNIC) を組み立てました。その時のメモです。
 ホントは、2001 年 1 月 27 日と 28 日の両日、新潟県鹿瀬町の麒麟山温泉古澤屋で開催された「第 3 回 NISOC インターネット合宿」の DIY タイムに組み立てる予定でしたが、時間不足で宿題となったのでした。


キットについて

 PICNIC は、PIC Network Interface Card の略で、おなじみの PIC マイコンを利用した Ethernet に接続する I/O ボードのキットです。これを使えば、任意の I/O をネットワーク経由で簡単に制御できるハズです。電波時計キットで一躍メジャーになったトライステートの製品で、秋月電子通商から発売されています。

 このキットの特徴は、次の通りです。
インターフェイス
 Ethernet 10BaseT arp, ip, udp, tcp, icmp, dhcp, http (ホストとの通信用他)
 アナログ入力 0〜5V 10bit 4ch (実際には、8〜9bit 相当, 1sampling/sec 未満程度です)
 デジタル入出力 4ch/4ch (ホストから入出力の構成を変更可能です)
 シリアル (RS-232C) 1ch (設定用にも使用できます)
 温度計用 1ch (いつもの LM35DZ がついてますが校正してないのでテキトーです)
Ethernet コントローラ
 Realtech RTL8019AS
 つまり、カニです。
 ネットワーク屋を本業にしている者にとっては心もとないです。ま、このお陰でキットが安くなってるのはありがたいですし、CPU が PIC マイコンなので、大量の処理ができるわけでもありません。大きな負荷がかかれば、PIC の方が間に合わなくなると思うので、大丈夫でしょう。たぶん・・・。
基板
 電波時計キットと同様のガラスエポキシの両面スルーホール基板です。一度ハンダ付けすると取り外すのが大変なので、部品の種類と方向は慎重に確認した方が良いです。
ソフトウェア
 PIC だけでなく、ホスト側のプログラムもソースが公開されています。一部は付属のフロッピーディスクに入っていますが、トライステートPICNIC のひろばで最新版が公開されているので、そちらから入手した方が良いと思います。
 問題は、ホスト側のソフトが Microsoft Windows 用のみってところでしょう。
説明書
 キットに付属の説明書は、少々不親切な印象です。組立手順については 1 ページにも満たない量でおしまい。動作確認と簡単な設定方法で 4 ページです。具体的な使い方なんかは全く記述がありません。参考になりそうなのは、FD に入っている Visual C++ で書かれたらしいサンプルだけですが、そんなもん手元にありません。
 説明書やトライステートのサイトを見ると、やたら「トランジスタ技術 2001 年 1 月号を参照」との表記があります。でも今更入手できません。そんな情報があるなら、とっとと説明書を改定するか Web で公開してください。
オマケ
 なぜか、ウィザースという商品名の「地球に優しい鉛フリーはんだ」なるもの 1.5m 巻が入っていました。あって困るものではないので、ありがたいのですが、データシートが付いていました。このデータシート、いろいろな特性が記載されていますが、どう読んだものかさっぱりでした。はんだマニアな人とかいて、伸びや硬さに興奮したりするんでしょうか。
その他
 購入前や組立前には、トライステートのサイトとそこにある FAQ を参照しておくと参考になります。


追加の部品等

 このキット単体では動作させられないので、用意すべきものを列挙します。
電源
 8〜24V 100mA〜 の DC 電源が必要です。
 以前、組み立てた容量計オマケについてきた DC アダプタを使用しました。手元になければ 9V の DC アダプタが,秋月電子通商で 850 円で売ってます。006P 9V の乾電池でも動きそうな気がしますが、現実的ではないと思います。電池駆動にするなら単一 8 本を覚悟した方が良さそうです。
 電源の極性は、ブリッジダイオードが入っているので、気にする必要はありません。
ケース
 組み立てて試すだけなら不要です。でも、スペーサで足くらいは付けてあげたいものです。
ホスト
 基本的にネットワークにつながってれば、何でもいいのですが、WWW のユーザエージェントが使えれば、動作確認が簡単です。
ネットワーク
 HUB と ケーブルがあれば使えます。HUB が無ければ、クロスケーブルでも動かせます。
液晶モジュール
 オプション品です。「16 文字× 2 行 超ハイコントラスト大文字 LCD モジュール」という汎用液晶表示モジュールが、秋月電子通商で購入できます。800 円で、ホントにハイコントラストで見やすいです。
 表示内容を制御できたりするようですが、組み立て直後の状態では、IP アドレスを表示する程度にしか機能しないので、なくっても問題ありません。また、液晶モジュールを使用する場合、デジタル I/O の利用に制限があります。詳細は後述しますが、使用目的によっては全く不要になります。


組み立て

 部品点数はそれほど多くないので、直付けする半導体部品を加熱し過ぎないことくらいが注意点です。ただ、先に述べた通り、スルーホール基板なので、一度、ハンダ付けすると取り外しが大変です。ハンダ付け前に、慎重に部品の種類と方向を確認してください。基板裏のパターンはすっきりとしていて、ブリッジの心配も少ないと感じました。
 また、説明書のわかりにくい点についてもトライステートのサイトに写真入りの情報があるので、予め参照しておくと良いと思います。

  1.  部品の確認をします。
     まずは、Web サイトに最新の正誤表があるので参照してください。47KΩ (R8) のカラーコードの誤りやパスコン (C11,12) の説明などがあります。また、付属の説明書ではわかりにくい回路図や実態図、組立上の注意事項などが紹介されています。その他、気づいた点は、次の通りです。


    C16
     説明書に書いてあるので間違えないと思いますが、基板上の C16 のコンデンサは使用しません。
    C11, 12
     わざわざ、C13, C14, C15 と「間違えないように!」と書かれていますが、露骨に大きさが違うのでひと目でわかります。異様に大きいのが C11, C12 です。
     Web サイトの正誤表にもありますが、説明書と異なり 470pF (471) のコンデンサが入っていました。

    LED4〜7
     「赤色など」と書かれていますが、見た目に透明な小さい LED が付属していました。動作させたら、赤く光りました。
    CN2, JP1, CN3
     ピンヘッダが「少々」と書かれています。実際には 10cm 程の長いピンヘッダが入っていました。かなり余裕があるので、切断に失敗しても安心です。
    ジャンパピン (JP2)
     「少々」と書かれていますが、ひとつしか使いませんし、ひとつしか入っていませんでした。
  2.  部品を取り付けます
     説明書通りの順と違って、抵抗の次に小さいコンデンサ、次いで、ダイオード、ソケットの順に取り付けた方が、簡単だと思います。その後、LED や 電源まわりの半導体を取り付けます。

     Web サイトの写真にある通り、コンデンサの足がまっすぐになるように加工する必要があります。

     半固定抵抗の向きがわかりにくいのですが、間違った方向では穴にはまりません。回路図と基板のパターンを見比べてもわからなければ、素直にはまる方向を選べば間違えません。ズッポリいってください。
  3.  コネクタ類
     取り扱い説明書にもありますが、10BaseT 用のコネクタは、基板に空いている固定用の穴と少しズレています。どうすりゃいいんだと思いましたが、努力すると入ります。コツとしては、8 本の端子を基板の穴にひっかけながら、作業するとハマりやすいように思います。難しければ、固定用の足 (こういうのって何と呼べば良いのでしょうか?) を少し曲げてしまうと簡単かも知れません。一気に力を込めて、端子を折ると悲しいので注意が必要です。また、足や端子を固定するハンダは、流し過ぎると表にはみ出してしまうので、適当に加減してください。
     ブートストラップモード設定用の JP2 は、基板上の 1 と 2 をショートさせるためのものです。3 の穴も空いていますが無視します。
     オプションとなってる CN2 と未使用となってる JP1 も、ピンヘッダが余っていたので取り付けました。
  4.  その他の部品を取り付けます。
     集積回路をソケットにはめ込みます。

  5.  LCD の取り付け
     まず、メインの基板に 14 ピンのヘッダ (オス) を取り付けます。そこにメス側を差し込んだ状態で、その上に LCD 基板を載せます。まっすぐの向きにセロファンテープなどで固定してから、ハンダ付けするときれいに仕上がります。完成写真を見ても LCD 基板の向きを間違えるような人は、人生をやりなおしてください。

 調整の必要な部分は LCD 用の半固定抵抗 VR1 だけです。時計回りいっぱいに回しておきます。JP2 用のジャンパピンは、 2 の方に引っ掛けておくだけで、回路を閉じないようにしておきます。
 言うまでも無く、最後に、部品の方向間違いとブリッジが無いかを確認しておきます。




ブートストラップモード

 唯一、ハードウェア的に設定する JP2 は、ブートストラップモードを設定します。端子の 1 と 2 をショートさせてから電源を入れるとこのモードになります。
 このモードを利用すると RS-232C のポートから、各種の設定ができるようになります。ネットワーク環境が使えなかったり、Web のユーザエージェントが無い場合、設定内容がわかんなくなって Web 経由の設定ができなくなった場合等、何かと都合が悪い状況になったら使用します。
 普段は、使うこともないので、JP2 は、オープンにしておきます。片側に引っ掛けておけば良いでしょう。


動作テスト

 まず、この時点で液晶モジュールは、正しく動作しません。四角く塗り潰れた文字が上段に並ぶだけです。後述します。

 ホストや HUB があること、HUB からは PICNIC に接続するためのケーブルを接続済みであることを前提に、電源を接続します。この状態では、液晶モジュールに黒い四角が現れるだけです。液晶モジュールの無い場合、何も変化がありません。
 ネットワークケーブルを PICNIC に接続すると、基板右上にある緑のリンク LED が点灯します。ダメなら、組み立てに問題があります。

 次に、PICNIC に向けて ping します。PICNIC のデフォルトは、
192.168.0.200/24
です。
 そして、適当なホストで Web のユーザエージェントを立ち上げて、PICNIC に接続します。http://192.168.0.200/ でつながり、設定画面が表示されるハズです。RA5 の入力に基板上の温度計の温度が表示されます。この温度表示は、数度の誤差が出るようです。およそもっともらしい温度が表示されていれば問題ありません。
 最後に、RB4〜RB7 の各出力を変化させて見ます。H や L のボタンをクリックするだけです。画面上 High と表示されているポートのインジケータ LED が点灯します。ここまで来れば完璧です。



設定

 基本的に全ての設定変更を有効にするためには、電源を入れなおす必要があります。やはり、リセットスイッチが欲しいところです。
液晶モジュール
 液晶モジュールを使用するには、Web 設定画面の中ほどにある Configuration の LCD Port UDP:# の設定を変更します。デフォルトで設定されている 0 は、液晶モジュールを使用しない場合の設定です。

 設定するポート番号は、Welknown (1〜1024) を避ければ何でも構いません。他のポートと重ならないよう、10000 とかにしておけば良いでしょう。
 ポートを変更したら、PICNIC の電源を入れなおします。すると、現在設定されている PICNIC の IP アドレスが表示されます。その後、半固定抵抗 VR1 を調整して見やすいように設定します。

注意: 液晶モジュールを有効にすると、RB2〜RB7 がモジュールの制御用の出力ポートとして使用されます。従って、ユーザが使用できるデジタル I/O ポートは、RB0 と RB1 だけになります。アナログ入力を中心に使用する場合には問題になりませんが、使えねぇ〜って印象があります。液晶モジュールがオプションになってるのは、このためだと思われます。
IP アドレス
 任意の IP アドレスを設定できます。
 ここで、0.0.0.0 を指定すると DHCP モードになります。要するに DHCP クライアントになるんですが、PICNIC の IP アドレスが固定できないのでは使いにくいだけです。何のために実装された機能なんだかディープな謎です。DHCP クライアントのルーチンを削除して、そこに実装して欲しい機能があれこれあります。
HTTP ポート
 PICNIC の設定を変更するのに使用するポートですが、パスワードによる保護ができるわけでもなく、Web 機能を禁止できるわけでもないので、少々不安です。もちろん、任意のホストに syslog を吐いてくれることもありません。一般に使用されている 80 を避けて、適当なポートに変更しておくとちょっぴりですが安心できます。できるだけ、ルータなどできちんとフィルタリングしておいた方が良いと思います。


Web での I/O 制御

 Web 画面のソースを見ると、W3C が卒倒しそうなデタラメな HTML です。使用するユーザエージェントによっては、うまく表現されない場合もあろうかと思います。
 ま、それはおいといて、デジタル I/O を制御している部分は、
<FORM ACTION="modify.cgi" METHOD="GET">
<INPUT TYPE="submit" NAME="RB4" VALUE="H">
などとなっています。GET でパラメタを受け渡しているので、URL を指定するだけで制御可能です。Proxy 経由でも制御できるので便利なんだか危ないんだか悩ましいです。従って、例えば、RB5 ポートをオンにする場合は、
http://192.168.0.200/modify.cgi?RB5="H"
のようにするだけです。
 この他、次の値を制御できます。

NameValue動作
RB0H / L出力ポート RB0 の ON/OFF
RB1H / L出力ポート RB1 の ON/OFF
RB2H / L出力ポート RB2 の ON/OFF
RB3H / L出力ポート RB3 の ON/OFF
RB4H / L出力ポート RB4 の ON/OFF
RB5H / L出力ポート RB5 の ON/OFF
RB6H / L出力ポート RB6 の ON/OFF
RB7H / L出力ポート RB7 の ON/OFF
00bIP AddressPICNIC の IP アドレスの設定
04bNet maskPICNIC のネットマスクの設定
08bGatewayデフォルトゲートウェイの設定
10whttp PortHTTP の TCP ポート番号の設定
12wLCD PortLCD 制御用の UDP ポート番号の設定
14wParallel PortRA0〜RA5 と RB0〜RB7 制御用の UDP ポート番号の設定
16wSerial PortRS-232C 制御用の UDP ポート番号の設定

 例えば、液晶モジュールを制御するポートを 12345 に設定するなら、
http://192.168.0.200/modify.cgi?12w="12345"
と、なります。
 因みに TCP で通信できるのは HTTP のみで、その他の方法では UDP のみとなります。


UDP での I/O 制御

 現時点で、この方法は明らかでありません。
 付属の FD に含まれるサンプル以外に情報がないので、これから調査したいと思います。


今後の予定

 早めにやんないといけないことがいくつかあります。
  1.  何よりも、PICNIC で何を制御するかってぇのが問題です。寒い日は、仕事場から帰宅する直前に、自宅のエアコンを動かしたい気持ちになります。以前は、電波時計をつなごうかとも考えてたんですが、壊れちゃいました。えへへぇ〜;-P
  2.  I/O するものが決まっても、UDP で制御する方法がわかりません。困ったもんです。サンプルを読むしかないんですが、Windows のプログラムなんて知りません。とても困ったもんです。
  3.  で、最後は制御する方法を実装しなきゃいけません。あ〜大変だぁ。
  4.  ケースに入れてあげようと思います。電源コネクタまで基板上にハンダ付けしてしまったので、ちょっと考える必要がありそうです。ケースに入れることを前提にするなら、電源コネクタのハンダ付けをやめときゃよかった。
  5.  ヒマができたら、リセットスイッチをつけたいところです。Push OFF のスイッチで電源を OFF/ON させるだけでも良さそうなので、簡単にできそうです。
  6.  この夏いよいよ、BEBOP です。個人的に・・・。じつわ、HTML 書きながら、ビデオ見てたりします。;-)

PICNIC Ver.2

 今回、PICNIC を組み立てるに当り、トライステートのサイトを見ていたら、Ver.2 が発売されるという予告が出ていました。
 多くの部品が実装済みの状態なので組み立てる楽しみは減りますが、リセットスイッチがついていたり、アナログ系の安定度が良くなっているとのことで、手っ取り早く使いたい方には良いかも知れません。
 トライステートの方がこのページをご覧になるかどうかわかりません。でも、万が一に備えて、DHCP クライアントの機能を削除しても期待する機能について書きます。
 PIC ファンの方々には、「自分でやれよ」と言われそうですが、できるくらいなら書きません。
 また、できればお願いしたいことがあります。


参考

 発売前から話題になってて、発売から 2 ヶ月以上経過した執筆時点でも、PICNIC の組み立てについて説明したサイトはほとんどありませんでした。トライステートのサイトで多くの情報が提供されているのも原因かも知れません。関連情報のサイトをご存知の方がおられればご連絡下さい。


リンク



ひとりでできるもん! トップページ
NISOC トップページ

Copyright(C) NISOC
Copyright(C) NISOC-DIY (Project HITORIdeDEKIRUmon)