<電子工作その1〜Linuxを使用したパラレルポート制御>Ver1.02

なんだこれ?とか思っても素人だから許してね(^−^;)

ネット経由でのPCによる家電製品の制御に以前から興味は持っていたのですが、最近ここに影響されなんとなくつくってみました。

これです。(´ー`)

コントローラの全体図。素人丸出しです。PCのパラレルポートと装置手前中央にあるコネクタで接続します。 基板に電線を適当ハンダしてる…(゚Д゚ )抵抗高くて危なそうだ。(´Д`;)丸くて黒いのは安全の為のヒューズです。

裏面。手持ちの余り部品を使用した為、放熱板のサイズがバラバラでしかも1つ足りない…(かなり発熱するため接続する家電製品の消費電力に応じた放熱板は必ず必要です。)

うーん。なんど見ても素人配線。基板3枚は秋月さんSSRキットです。配線や設計が美しくないのは素人だからです。お許しください。m(_ _)m

PC(インターネットサーバー)のパラレルポート出力から100V家電製品のスイッチ制御をする装置です。

要するにネット上のWEBページから100V家電製品のスイッチを入れたり切ったり、時間を設定してその時刻になったらスイッチをONにしたりOFFにしたり出来るのですよ。(´∀`)

100V家電制御の構成図です。

PC(インターネットサーバ)とコントローラをパラレルパート経由で接続しています。

100V電源は屋内100Vコンセントから得ます

こちらからインターネット経由でPaperStreetサーバのパラレルポートのデータ出力実験ができるよ(・∀・)

各種データはここに置いてあります。(LZH形式9KB)

テキトーな部品表(HTMLファイル)、回路図(ではなくて落書きw)、ネット上から制御する為のwebページ(HTMLファイル)、Perlプログラム、Cプログラム等が入ってます。(この他にフォームデータ処理の定番のcgi-lib.plファイルとjcode.plファイルを入手して、Perlプログラムと同じフォルダに置いておく必要があります。また、Cプログラムはコンパイルして実行形式ファイルに、Perlプログラムはプログラムの一行目のパスを環境に合わせて書き換える必要があります。デフォルトは#!/usr/bin/perlになっている。)

トライアック回路は秋月電子通商SSRキットを3つ使用しています。

パラレルポートのアドレスは0x3bcを使用しています。それ以外のアドレスが指定されているPCをご使用の場合は、Cプログラムのdefine部分を1箇所だけですが変更する必要があります。パラレルポートのIOアドレスはPCのBIOS設定画面で確認と変更が出来ます。

パラレルポート出力までの流れですが…

@ioperm命令で0x3bcから3バイト分のアドレスのIOアクセスを許可する

Aパラレルポートのコントロール方法(出力)を設定する

Bデータ出力

とおおざっぱにこんな感じのプロセスになっています。詳しくはCプログラムをご覧下さい。(実は私もよく分かってません(´Д`;))

※ ioperm命令を使用するにはスーパーユーザー権限が必要なのでCプログラムをコンパイルして出来た実行形式ファイルの権限を設定する必要があります。

よってファイルの所有者をrootにして、

chmod +s <filename> ※<filename>はファイル名に置き換えて入力

を実行する必要があります。

その他、Cプログラムのコンパイルの方法やCGIファイルの設置方法や権限の設定等の基本的な事はネットや書籍などでお調べ下さい。

<PC/AT互換機のパラレルポートI/Oマップ>

レジスタ I/Oアドレス ビット 内容 説明
データ 0x3bc (0x278,0x378) 0 〜 7 パラレルデータ入出力  
ステータス 0x3bd (0x279,0x379) 0 システム予約  
1 システム予約  
2 割り込みフラグ 0:割り込みあり / 1:割り込み処理
3 ERROR 0:エラー / 1:正常
4 SLCT 0:オフライン / 1:オンライン
5 PE 0:通常時 / 1:ペーパ・エンド
6 ACK 0:通常時 / 1:割り込み
7 BUSY 0:ビジー / 1:レディー
コントロール 0x3be (0x27a,0x37a) 0 STROBE 0:通常 / 1:アクティブ
1 AUTO FD 0:通常 / 1:自動改行
2 INIT 0:初期化 / 1:通常
3 SLCT IN 0:通常 / 1:アクティブ
4 割り込み許可 0:割り込み禁止 / 1:割り込み許可
5 データ入出力方向 0:出力 / 1:入力
6 システム予約  
7 システム予約   

※ アドレスはPCのBIOS設定で違ってきます。

この記事が参考になるか分かりませんが、電気の知識も少ない素人の作ったものなので回路図(らくがきw)などに間違い等があるかもしれません。充分な電子回路や電気についての知識をお持ちの方(私は持ってませんが(´Д`;))が充分な配慮の元に参考程度にご覧下さい。

また、今回制作したハードウェアでは高い電力を消費する電熱器系の家電製品(トースターやコーヒーメイカーや炊飯器等)の制御は仕様上出来ません。そういった製品を接続する場合は使用する部品等の見直し(ヒューズやケーブルやSSRリレー回路の定格等)が必要になります。定格を越えた機器の接続は非常に危険です。

また、今回は低価格で試験的に制作した為、部品を配置するパネルに不燃材料を使用しませんでしたが、同様の物を制作する場合は必ず不燃材料で制作するべきです。


詳細はこちらの記事をお読み下さい。

http://www.linux.or.jp/JF/JFdocs/Coffee.html(パラレルポートのピン配列等)

http://www.linux.or.jp/JF/JFdocs/IO-Port-Programming/index.html(I/Oポートの制御方法など)

HOMEへ