マウステスターが完成!パソコンなしでマウスで遊べます

更新: 2006年11月5日
作成: 2003年11月16日


マウスとPICがつながります。

パソコンのマウスは、おもしろそうな入力装置ながら、どのような仕組みになっているかがあまり知られていないため、電子工作のデバイスとして登場することはまれでした。

でも、インターネットで調べればいろいろわかります。PICマイコン「PIC16F628」を使って、PS/2マウスをつないで遊べるおもちゃ「マウステスター」をつくってみました。4行表示の液晶画面に、ひたすらマウスからの情報を表示して楽しむという代物です。

装置の様子

マウスやキーボードが用いているPS/2インターフェースは、シリアル方式で、クロックとデータの信号線を制御する方式で、詳しいことは、次のページに書いてあります(英語)。

このページから得られた情報をまとめると、こんな感じです。

作成した装置でできること

  1. PS/2接続のマウスを接続すると、上下左右の動きやボタンの押され具合いを液晶画面に表示します。マウスのデバイスIDなども表示できます。
  2. 通常の2ボタンマウスや3ボタンマウス、ホイールつきマウス、ホイールつきでボタンが5つあるマウスに対応しています。USBマウスは、PS/2変換コネクタを介せば使えます。ホイールの動きは、Z軸上の動作として検出されます。
  3. 赤いLEDと青いLEDを搭載しています。ボタンが押された時だけ赤く光るようにしたり、エラーが発生すると赤く変化するようにできるので、接触不良の検出などの、マウスの故障診断に役立ちます。

このような装置を作った目的としては、一つはマウスをパソコン以外の機械につないで機能させてみたいという思いがあります。もう一つは、マウスがたくさんある場所で、故障の診断を簡単に行いたいというニーズにこたえることです。マウスがつながっているパソコンの電源を入れれば、機能を確かめるなどの、簡単なチェックはできるのですが、いざパソコンの調子が悪くなった時に、マウスが壊れているのか、それともパソコン本体が壊れているのかを判断するのは、簡単ではありません。マウスを別のパソコンのものと入れ替えて、再起動したりするのは面倒ですので、すぐにつないでチェックできる装置が望まれているところもあるかと思います。

ハードウエアの仕組み

このような回路図を考えてみました。

回路図

以前の回路図には間違いがありましたが、修正した結果、上記のようになりました。(c) 2003 Toshio Sugihara.

使い方

電源の投入

マウスを接続したのち、スイッチを入れると、マウスとの間で初期化処理が行われます。初期化が終わると表示がこのようになります。

初期化直後の画面

この状態を「ノーマルモード」と言います。

ちなみに、電源の切断はいつでもできます。スイッチを切るなり、アダプタを引き抜くなりしてだいじょうぶです。

ノーマルモードについて

マウスのX,Y,Z座標の動きや、ボタンの押され具合いをそのまま表示するモードです。

ボタンの操作方法

基板の下のほうにある「青」「黄」「赤」のボタンで、通常の操作を行います。

ほかにも、ボタンやスイッチやコネクタがあります。

いろいろなモード

この装置には、マウスの一般的な状況を表示するノーマルモード以外に、目的に合わせて以下のモードがあります。モードは、黄色いボタンで切り替えます。液晶画面の4行めに表示される「M:N」のような表示のうちの「N」が、現在のモードを意味しています。

Lボタンモード

記号モードの名前
Nノーマル
L左ボタン
R右ボタン
C中ボタン
44ボタン
55ボタン
XX軸
YY軸
ZZ軸

エラー表示について

マウスを引っこ抜いたりして、通信に異常が発生すると、エラーメッセージが表示され、LEDが赤に変わります。エラーの番号とその意味は、以下のようになっています。

エラー番号意味
81マウスへのデータ転送中にクロック信号を20msの間得られなかった。
82マウスへのデータ転送中に、クロックが停止した。
83マウスへのデータ転送中に、1ビット長のACKが得られなかった。
ff8ビット長のACKがマウスから得られなかった。または、マウスからのデータが本来送られてくるべき値ではなかった。
91マウスからのデータ読み取り中に、クロック信号を20msの間得られなかった。
92マウスからのデータ読み取り中に、クロックが停止した。
93マウスからのデータ読み取り中に、パリティーが合わなかった。
94マウスからのデータ読み取り中に、スタートビットかストップビットの値が正しくない。

ERRORの表示が出る場合は、ケーブルの接触不良などが考えられます。

ソフトウエアの仕組み

パソコンのマウスを扱うだけあって、かなり複雑なプログラムになっています。主な構成要素としては、次の部分からなります。

アセンブラだけで、このようなプログラムを作ることは、かなりやっかいな話です。PICマイコンそのものは、わりあいと扱いやすい品物なので、がんばってなんとか作りました。

作成したプログラムのソースファイルは、次のとおりです。ソースを読んでみたり、実際にこの品物を作ってみたりと、いろいろお楽しみください。

このプログラムは、マイクロチップテクノロジー社の統合開発環境「MPLAB」のバージョン6系で使えます。WDTなどの設定については、ソースの先頭に書いてありますので参考にしてください。

現在のプログラムでは、マウスとの通信を1ビットずつ、というか波形の上がり下がりごとにプログラミングしています。シリアル通信ユニットを内蔵したマイコンもあるようですので、それを使えば少しは楽に作れるかもしれません。

もういちど全体

やってみましょう

お知らせ

紹介した回路図やプログラムは、必ずしも正しいものとは限りません。間違いがあって、それがもとで火事になったりするかもしれません。このホームページは、お読みになる方の自己責任でご利用いただくことになっていますので、発生した不都合については、筆者は責任を負いかねます。ご自身の責任で、安全に気をつけて、電子工作を楽しみましょう。



杉原俊雄のホームページ -> PICマイコンを楽しむ -> マウステスターが完成!パソコンなしでマウスで遊べます
製作・著作:杉原俊雄(すぎはら としお)
(c)2003 Sugihara Toshio. All rights reserved.