このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

PIC Network Interface Card kit

発言者:今井真人
( Date Friday, December 01, 2000 10:17:59 )


知っている人はもう知っていると思いますが、秋月電子通商より
PIC Network Interface Card kitが11月25日より発売されました。

イーサネット経由+ブラウザで、いろいろ制御できます。今日手に
入れたばかりです。

値段も安く7300円とお手ごろなので、いろいろ実験できます。

→  PIC Network Interface Card kit

今井真人 さんからのコメント
( Friday, December 01, 2000 10:21:00 )

開発元のページです。

→  トライステート

今井真人 さんからのコメント
( Friday, December 01, 2000 17:27:27 )

完成しました。完動です。罠がいっぱい仕掛けられてました。同じ穴には
まらないように書いときましょう。

・ジャンパー2は1番2番ピンにピンを付けるんだけど、ジャンパは2番だけに
 かけておく。1番はフリーの状態。マニュアル表記はおかしい。
・0.1μFのコンデンサが14個必要なのにマニュアルには13個と記載。そしてキ
 ットにはやはり13個しか入っていない。
・液晶は最初は■■■■■■■■■■■■■■■■表示のまま動かない。ブラウ
 ザで設定項目LCD Port#をゼロ以外にしないとIPアドレスを表示しない。
・添付されている回路図はかすれて見えない。
 http://www.tristate.ne.jp/picnic/picnic_sche.pdf
 を印刷する必要がある。
・IPアドレスを間違えて、自分のネットの設定外にすると最悪シリアルポートで
 パソコンをシリアル接続しないと修正できない。またシリアルポートを使うに
 はジャンパ1の接続を変更(1と3接続、2と4接続)する必要がある。しか
 し、ジャンパ用のピンは添付されていない。
・ブラウザからの設定変更にはパスワードは設定されていない。誰でもいじられ
 る。ポート番号を80から別なものに変更して、http://192.168.0.200:10000
 のようにアクセスしたほうが無難。
・液晶の取り付け方向の指示はマニュアルに無いが、間違えることはなかろう。
・半固定抵抗は、時計回りに回しきっておく。液晶が表示されない。
・DCアダプタのハンダ付けのときに、ハンダを流し込みすぎてショートさせない
 こと。
・C11、C12は耐圧1[KV]のコンデンサが付く。
・ブリッジダイオードの極性を間違うと、まず壊れる。
・基板の四隅にはスペーサなどで、ゲタをあげておくと試験運用に便利。
・液晶も一緒に注文しておくのが無難。IPアドレス表示があるなしで、運用時の
 安心感が違う。
・http://www.tristate.ne.jp/picnic.htmを見てから製作されることが肝心。

今井真人 さんからのコメント
( Saturday, December 02, 2000 08:52:53 )

 ファームウェアがソース公開されているので、httpdに相当する部分を
いじるのも手ではあるのですが、私はLynx+Perl+CGIで、Unixサーバか
ら経由してブラウザ動作で、しばらく運用テストしてます。

 見かけをよくするためには、やはりPICNIC本体だけでは無理があります。

 REALBasicで専用のクライアントソフトを書くという方法もありますね。

今井真人 さんからのコメント
( Saturday, December 02, 2000 08:58:32 )

 本体のhttpdには、セキュリティ対策としてポート番号の変更ぐらい
しかありません。あとは自分で勝手にファームウェアをいじりなさい
という仕様です。

今井真人 さんからのコメント
( Sunday, December 03, 2000 06:59:46 )

ファームウェアをいじるには、以下のキットが最適でしょう。

PICプログラマーVer.3キット
http://www.akizuki.ne.jp/picdev.html

また、書き込むチップ 16F877は現在1つ千円。問題はライターが
Windowsしか対応していないこと。これが少し悔しい。

今井真人 さんからのコメント
( Sunday, December 03, 2000 07:01:18 )

ついで、

16F877はフラッシュメモリなので、そのままで何度も書き換え可能です。

だいとう さんからのコメント
( Monday, December 04, 2000 00:32:34 )

私はハードのことはからっきしわからないのですが、
何か応用例はありますでしょうか?
HPによるとトラ技の1月号に記事が載るらしいので、
それを見てからにしようと思っています。
秋月っていつも人だかりがしてて、面白いお店ですね。

今井真人 さんからのコメント
( Monday, December 04, 2000 07:47:39 )

 そうですね。リレーを接続すると地球の裏側からブラウザ経由で
電灯のスイッチをオンオフできます。この位は簡単。

 温度計がついてますので、インターネット上に気温を公開する
こともすぐできます。ログの取り方で、統計など取れるでしょう。

 A/Dコンバーターが4つ付いてますので、電圧に変化したセンサ
出力なども読めます。あまり変化が速いものはだめです。

今井真人 さんからのコメント
( Monday, December 04, 2000 07:55:40 )

 温度に関しては、マシン自体の温度異常などを検出するのに有効
です。熱がよく発生するようなところにセンサを近づけておくと
いいでしょう。

今井真人 さんからのコメント
( Monday, December 04, 2000 10:54:32 )

製作時の注意を追加です。C16はつけてはダメです。それで0.1μFの
コンデンサは13個だったのだ。マニュアルの隅っこに1行書いてあるだけ
でした。

開発元のトライステートによるとマニュアル第2版より改善されるそうで
す。

今井真人 さんからのコメント
( Monday, December 04, 2000 10:55:42 )

 マックのサーバでは、異常時の再起動などに使えますよね。

だいとう さんからのコメント
( Tuesday, December 05, 2000 05:51:45 )

昔(今も現役?)PagesenturyとPowerkeyを使って、
1台のマックでサーバーを監視して、フリーズすると電源を切って
サーバーをリスタートさせるソリューションがありました。
AC100Vが制御できるとなると、自宅から隠しサーバーにアクセスして、
調子の悪い機器をリスタートさせることができるかもしれませんね。
これはいいなあ。
なにやら、VBを使ってプログラムする雰囲気ですが、
AppleScriptもろくに使いこなせないし、、、涙。

今井真人 さんからのコメント
( Tuesday, December 05, 2000 12:12:33 )

 たとえば、

 ポートの1つをHiにするには、http://192.168.0.200/modify.cgi?RBx=H
 ポートの1つをLowにするには、http://192.168.0.200/modify.cgi?RBx=L

 この程度なので、プログラムと呼べるのか?というレベルです。

モリヤ さんからのコメント
( Tuesday, December 05, 2000 16:29:53 )

>  A/Dコンバーターが4つ付いてますので、電圧に変化したセンサ
> 出力なども読めます。あまり変化が速いものはだめです。

→サンプリングレートはどれぐらいまでいけそうですか? Web から参照
できる資料では明らかにされていないようなのですが‥‥。

今井真人 さんからのコメント
( Tuesday, December 05, 2000 17:41:37 )

http://www.tristate.ne.jp/picnic/faq.html
を見るとサンプリングレートは出ています。

専用クライアントソフトを書かないと追従はできないと思います。

モリヤ さんからのコメント
( Tuesday, December 05, 2000 19:23:08 )

 なるほど。ありがとうございます。
 紹介していただいたページを見た感じでは,リアルタイムサンプラー
みたいな使い方をする専用クライアントは UDP を扱えるモノとして書
く必要がありそうですね。ちっと敷居が高いなぁ。

タイムサーバー さんからのコメント
( Tuesday, May 22, 2001 17:52:15 )

お初におめにかかります!
私はPICNICと電波時計キットを使ってタイムサーバーをつくろうと思ってます。作りましたという例はHPでありますが、実際の構築の仕方がないので困ってます。どなたかこの2つのキットを使ってタイムサーバーを作られたかたはもしくは、HPしりませんでしょうか?FreeBSDでやってます。
よろしくお願いします!こうた

タイムサーバー さんからのコメント
( Tuesday, May 22, 2001 17:53:44 )

すいません途中で文章が途切れてしまいました。
こういったものは、何日ぐらいでできますか?

今井真人 さんからのコメント
( Tuesday, May 22, 2001 19:39:29 )

まずは、PICNICのファームウェアに手を入れないと難しいように
思います。PICのCPUのアセンブラは大丈夫ですか?

タイムサーバ自体は、インターネット上にあるのでわざわざ自分で
作るという面倒なことは私はやりたくないな。

今井真人 さんからのコメント
( Tuesday, May 22, 2001 19:41:24 )

ちょっと判りにくかったな。アセンブラを使えますか?

重松修 さんからのコメント
( Wednesday, May 23, 2001 01:24:11 )

電波は電波でも GPS ですが、アジャタイムなるソフトがあります。
Mac 版ですけど。:-)
シリアルで通信するプログラムですし、ソースも公開されているので、
その FreeBSD でシリアル通信ができれば、こっちの方が簡単かもしれません。


→  http://www.zone0.ne.jp

初心者 さんからのコメント
( Friday, June 15, 2001 14:04:54 )

根本的なことの質問で恐縮なのですが、
PICNICについている、9ピンシリアルをLANから制御するってことはできるのでしょうか?? 
卒論の研究で使おうかなと考えているのですが

今井真人 さんからのコメント
( Friday, June 15, 2001 14:12:37 )

PIC16F877のチップの仕様を調べてみてください。ただし、アセンブラと
ハードウェアの知識が必須です。

超初心者 さんからのコメント
( Thursday, September 27, 2001 11:52:39 )

ただいま、手探り状態でPICNICを解析しています。
本当に基本的なことで申し訳ないのですが、
PICから温度データだけをひっぱってくることはできないのでしょうか。
タグを変更すればいいのですか?
ソースを見たんですが、modify.cgi をいじるんでしょうか。

見当違いのことを聞いているのかもしれませんが、
よろしくお願いします。

今井真人 さんからのコメント
( Thursday, September 27, 2001 15:31:58 )

>PICから温度データだけをひっぱってくることはできないのでしょうか。

最近、触ってないのですが、アセンブラのソースをいじる必要はありません。

温度のページを表示させるURLをパソコンから叩き、返答されたHTMLソース
を解析して、パソコンに取り込むということになります。

UNIXサーバの場合は、lynxという文字ベースのブラウザを使うと簡単に
処理できます。

超初心者2 さんからのコメント
( Thursday, September 27, 2001 16:38:32 )

さっそくのレス、ありがとうございます。

>温度のページを表示させるURLをパソコンから叩き、返答されたHTMLソース
>を解析して、パソコンに取り込むということになります。

これを今必死にやってるのですが、
どうしてもソースコードの中にある、
『modify.cgi』『submit.cgi』の働きがわかりません。
働き、というか、仕組みがわかりません。

どこか勉強できるページがあれば教えてください。

重松修 さんからのコメント
( Thursday, September 27, 2001 16:52:30 )

lynx は入ってないですが、wget ならば、OSX, VineLinux のどちらも
標準でインストールされています。
とても便利なソフトで、かなり重宝しています。

→  とある wget の説明ページ

今井真人 さんからのコメント
( Thursday, September 27, 2001 19:58:04 )

>『modify.cgi』『submit.cgi』の働きがわかりません。

クライアントとなるパソコンやらサーバやらの環境を教えてもらわないと、答えられないですよ。

学生 さんからのコメント
( Wednesday, October 03, 2001 15:22:36 )

PICを使用した回路をつかって赤外線の距離センサから取り込んだデータを
PICNICに送ってさらにそれをPCにおいて確認したいのですが、
それは可能でしょうか?

今泉克美 さんからのコメント
( Wednesday, October 03, 2001 21:59:10 )

今井真人さんのご投稿をお読みになった上で、
もういちどご質問をなさったほうが
良い結果になると思います。
このままだと誰からも回答は得られません。

多忙中でありますが、いいかげんな回答をさけるため
時間をかけて確認作業をしながら回答しなければ
なりません。その労力はタダではありません。
報酬は、誰かが助かって、その結果
少しでも良い世の中になる喜びだと思うのです。
(おおげさかなぁ)

質問者もそこをわきまえて
具体的に、何をどうしてどうなったか。
今までどのような調査をして
どこまでチャレンジして
どのようなところでゆきづまっているのか
レポートしたほうがいいと思います。
回答者の手間を考えたら
本当に困っているハズの質問者は
もっと手間をかけるべきです。

その結果、たまたま回答が得られない
としても、それはそれで、仕方が
ありません。

気になっていたので
調べてみましたが
参考となるWWW上の
リソースは
私の実力では、なんともなりませんでした。
Googleで見えるリソースからでは
ヒントになりませんか?>質問者殿

#ところで副産物として
サーバではなくて
自分のパソコンの正確な時計あわせが
ワンタッチでできるようになりました。
(ありがとうございます>みなさま&先人達)
時刻あわせしとかないとヤバイクライアント
だったもので。

今泉克美 さんからのコメント
( Wednesday, October 03, 2001 22:04:07 )

あ、、Winのクライントです<時刻あわせらくらく

学生 さんからのコメント
( Thursday, October 04, 2001 14:36:18 )

 今泉さんご指摘ありがとうございます。確かにあまりに唐突な質問でした。早速、現状を報告します。
 実は今、PICとPICNICを使ってPICの先にあるロボットだったりセンサの状態をPCや携帯から見ることができないかということをやっています。
そして、進度によってはホームセキュリティに応用できないかと考えています。
そこで、とりあえずPICからPICNICにデータ(センサの値など)を転送したいのですがそのためのプログラムと入出力の関係が分かりません。例えば、今使っているPICは16F873でPICNICにのっているのは16F877なのですが、F877の33個あるI/Oポートのうち適当に入力、出力を割り当ててそれをプログラムで指定すればいいのでしょうか?また、参考になるプログラムの情報など教えて下さい。すごく初歩的な質問でバカかと思われるかもしれませんがおねがいします(-_-) 本とかネット上でもプログラムは結構載っているのですがほとんど説明がなくその意味がよくわからなかったもので。。。  
 あと、センサの値を距離に変換して出力したいのでExcelを使っておおざっぱな式を導いたのですが、PICで逆数やかけ算の計算はどうやってやればいいのか教えて下さい。それとも1つずつデータとして入力して値が1のときは**2のときは**のようにするしかないのでしょうか?それだとメモリを多くつかうのでできれば関数でやりたいのですが。。。 もっと勉強してから質問しろとおこられるかもしれませんがみなさんおねがいします。

学生 さんからのコメント
( Thursday, October 04, 2001 14:38:26 )

たびたびすいません。改行忘れてました。。。

今井真人 さんからのコメント
( Saturday, October 06, 2001 21:25:53 )

冷たいようですが、私が提供した情報で足りないというなら、開発が
元々無理と判断します。

うっかリ者 さんからのコメント
( Saturday, October 06, 2001 22:45:20 )

私はPICを、以前ハードで構成した回路を置き換える、というのに多用しています。
その点で、トリガ信号やクロック信号をソフトで生成したりするのに、すごく調子
良い、という面があるのに対して、かけ算など不得意と思います。
#最近はハードの乗算器を積んだタイプもあるようですが。
トラ技に出ていたPICNICの紹介記事を見ましたが、ずいぶん工夫してプログラム
サイズを節約したおられるようです。ネットワーク制御を行っているだけでも、
良くやったなあ、と感じます。さらにかけ算のルーチンなど書き足せるのかな、
という雰囲気です。PICには生データだけ収集させ、変換などは後処理が良いのでは。

PICNIC学生 さんからのコメント
( Friday, October 26, 2001 17:52:08 )

はじめまして。私は電波時計からPICNICで時刻情報を入手して、PCで桜時計を使っ
てPICNICへアクセスして時間補正をしたいと思い勉強中です。それで電波時計とPICNICをつなげないとどうしようもないと思いまして、現在RS-232Cでのシリアル通信の仕方を勉強中なのですが、構成はHPや参考書などに乗っているのですが、ど
のようなプログラムを組めばいいのかがわかりません。自分なりにPICNIC(PIC16F877)のファームの中に通信プログラムを組込んでみたのですが、Error: Cannot solve bit field expressionやError: Program address was duplicated.などが大量にでまだまだ自分の知識不足を痛感させられる結果しかな
りませんでした。
もし、通信について詳しく掲載されているHPやプログラムがありましたら、ぜひ紹介していただけないでしょうか?それとこのエラーについても知っておられるので
したら、教えていただけるとたすかります。
初心者ながらの失礼な質問だとおもいますが、よろしくおねがいします。

学生 さんからのコメント
( Tuesday, October 30, 2001 14:02:27 )

久しぶりに投稿します。以前の問題は自分達なりにどうにか解決(完全では
ない)しつつあるのですが、新たな問題が発生して困っています。
今、PICにプログラムを書くのに秋月のAKI-PICプログラマ−キットVer3を
使っているのですが、この間突然、書き込みをしようとすると”コードプロ
テクトがかかっています”というエラーメッセージが表示され書き込みできなくってしまいました。それまでは、何の問題もなく普通に書き込みができ
たのになぜなのでしょうか?もちろんプロテクトはかけていません。新品の
PICに書き込もうとしても同様のメッセージが表示されるし、読み込むとDATA
はすべて0000Hになっているので、明らかにおかしいのは分かるのですが原因
は何なのでしょうか?また、対処法など分かる方教えて下さい。新しく作り
なおすしかないのでしょうか?お願いします。

rlipen さんからのコメント
( Thursday, February 28, 2002 15:55:21 )

picnicのポートrb(0-7)全部出力ポートに設定したいですか、どうすればいいの?

rlipen さんからのコメント
( Thursday, February 28, 2002 15:55:27 )

picnicのポートrb(0-7)全部出力ポートに設定したいですか、どうすればいいの?

rlipen さんからのコメント
( Thursday, February 28, 2002 15:57:16 )

10bitのA/D変換は8ビットのA/D変換したいですが、どうすればいいの?

koichi さんからのコメント
( Friday, March 01, 2002 21:14:35 )

うろ覚えですが ,REALbasicでプログラムを作れば,可能だった思います。
ただ,REALbasicはUDPをサポートしていませんので,自分でプラグインを作るか,
SuperSocketというプラグイン(多分50$位)を購入して下さい。

もう一つの質問ですが,10ビットの精度をわざわざ8ビットにする理由がわかりません。
私の使用した経験からよると,ノイズの影響をかなり受けるので,
10ビットとはいっても実質は8ビット程度じゃないかと思います。
5V÷2^10=4.8mVの精度は期待しない方がいいですよ。