<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

『シリアルキー』デバイス

2008年08月14日 | PCクリニック
昨日までの累計アクセス数=7,510。 ご訪問頂きありがとうございます。         日記@BlogRanking

マイクロソフト社のHPによると、
「シリアルキーは、コンピュータの標準のキーボードまたはマウスを使用することが困難な方のための
ユーザー補助機能です。シリアルキーにより、単一スイッチや呼気吸気デバイスなどの代替デバイスを、
コンピュータのシリアル ポートに接続できるようにするサポートが提供されます。」とある。

但し、日本語版のWindows であっても、シリアルキーは英語版KBしかサポートしていない。
また、シリアルポートはUSB経由のものでも可能である。
シリアルキーデバイスを使う場合の、コントロールパネルによる設定方法はここに載っている。


仕事上のことで、あるアプリを自動で制御したいことが発生した。
そこで、このシリアルキーデバイスを使って実現することにした。

PCを2台用意し、下図のような構成とした。
制御対象はPCB上で動くアプリBであり、PCA上のアプリAを開発した。

最終的には、アプリAをPCB上で動かしPCAを不要とすることも出来る。
(USB -> serial はPCBだけで折り返しとする。)



アプリAは、78K0マイコン:ブートローダで作ったActive BASICのプログラムでも使った、
"RS232Cdecl.sbp"を使用している。

KBの入力では、通常の文字はそのまま送信する。
CtrlキーやEnterキーはエスケープコード(0x1B)とドット('.')の間にキー名を入れて送る。

例えば、Alt+R なら &H1B+",hold,alt.R"を、Ctrl+w なら &H1B+",hold,ctrl.w" を送る。
こんな調子でアプリBを自動化出来た。


また、PICによるコントロールも可能である。
テストとして、PS/2・KB をPICに繋ぎ、
PICからPCにはPC:PIC 接続[シリアル編]で書いたような方法で繋ぐ。
そこで、PICからPCへ、KBの入力を変換して送信するようにした。
(当時の記事はPCからPICへの送信である。)

補足:PICによる入力については、PICマイコン-シリアルキーズに連載記事がありました。


見ていただきありがとうございました。お帰りに投票して頂けるとうれしいです。 ⇒ 日記@BlogRanking
お陰様で『60代~日記@BlogRanking』で上位におります。感謝感謝。今後とも宜しく。


『ゼロポイント』って何?

2008年08月12日 | Weblog
昨日までの累計アクセス数=7,139。 ご訪問頂きありがとうございます。         日記@BlogRanking


以前、たまたま見たTV番組で、若い(20歳前後の)2人がハンディGPSを頼りに、『ゼロポイント』地点を探していた。
ここで云う『ゼロポイント』とは、経緯度がちょうどの地点であった。
例えば、東経140度0分0.0秒、北緯36度0分0.0秒は茨城県常総市の小貝川左岸にあたる。

こういう地点は、地図で調べれば国内全部をリストアップできるんだが、そこは面白くするために、
実地に探すというストーリであった。

それでは、と云うことで、地図ソフトで調べてみた。使ったのはMapFan.netである。
昔はCD版の MapFan を愛用していたが、無くなりMapFan.netに変わっている。

調査の結果、本州24地点、北海道9地点、九州4地点、四国3地点の全40地点だった。

最も東の地点は東経145度、北緯43度の北海道厚岸郡厚岸町内、厚岸郡浜中町鯨浜近く道道123号そば。
最も北の地点は東経142度、北緯45度の北海道天塩郡幌延町内、町役場東約10km地点。
最も西の地点は東経130度、北緯33度の長崎県東彼杵郡東彼杵町内、県道6号そば。
最も南の地点は東経131度、北緯32度の宮崎県小林市内、国道265号そば。

このように、北緯45度~32度、東経145度~130度の範囲であるが、北緯41度と42度の地点は無かった。

最初に例として挙げた茨城県内から西に行くと、埼玉県、長野県、岐阜県を通り、東経136度(北緯36度)の
福井県福井市内、ガラガラ山東側に辿り着く。

また北に行くと、栃木県内1地点、山形県内2地点を通り、北緯40度(東経140度)の
秋田県南秋田郡大潟村内、秋田県立大学東方に辿り着く。

この栃木県内には、『那須野ゼロポイント』標識が建っているようです。
コメント:このページには、「茨城県つくばみらい市(旧谷和原村)の田んぼの中」とあるが、
MapFan.netでは常総市の小貝川左岸で、水海道川又町になっている。(どっちが正しい?)

また、「国内の陸地上のゼロポイントは39ヶ所あり」とあるが、
MapFan.netで調べたところでは、40地点だった。(埋め立てで増えたか?)

あるいは、「日本測地系と世界測地系の違い」によるものか???

因みに、緯度1度分は約111kmで、経度1度分は(北緯35度上で)約90kmとか。
つまり、常総市と福井市間は約360km、常総市と大潟村間は約444kmになる。
ということで、暇つぶしの話しでした。

見ていただきありがとうございました。お帰りに投票して頂けるとうれしいです。 ⇒ 日記@BlogRanking
お陰様で『60代~日記@BlogRanking』で上位におります。感謝感謝。今後とも宜しく。

Windows 立ち上がらず

2008年08月11日 | PCクリニック
昨日までの累計アクセス数=6,944。 ご訪問頂きありがとうございます。         日記@BlogRanking


PCクリニック(4):過去のカルテから。

患者:メーカ製ノートPC、発売時に購入、2年くらい使用したところ。
症状:電源を入れて、Windows XP のロゴがでたところでリセットが掛かりリブートする。 これの繰り返し。

こういう状態になるのは、だいたいにおいて、ファイルやフォルダが壊れている場合である。
念のため、CDから、Windowsもどき(BartPE)を立ち上げ、Cドライブを見ようとしたが何かがおかしい。

そこで、chkdskでCドライブをチェックすると、案の定、多数のファイル/フォルダが壊れていた。
chkdskで修復はできた。結果、Windows は何とか立ち上がったが、ファイル破壊が多すぎる。

で、「何故、ファイル/フォルダが壊れたのか?」を考えたとき、

1.Windows 動作中に電源を切った? ・・・これほどまでには破壊されない?
2.何かのインストールが悪さをした?・・・インストールはされていない?
3.ウイルスに感染した? ・・・・・・・・分からない?
4.BIOSにバグがある?・・・・・・・・姉妹機種には問題があった。

そこで、BIOSのアップデートを行い、システムをPC購入時点に戻すことにした。

BIOSのアップデートは、最新版をネットからDLし、英語版DOSを立ち上げて行う。
システムの戻しは、電源投入直後にPF11キーを押して行う。

この結果は、2年間使用した分の痕跡は一切消されるが、残念ながら致し方ない。
また、2年分の膨大な数の Windows Update を行わなければならない悔しさが残る。
お大事に。


見ていただきありがとうございました。お帰りに投票して頂けるとうれしいです。 ⇒ 日記@BlogRanking
お陰様で、『60代~日記@BlogRanking』で上位におります。感謝です。

体験版ソフト

2008年08月09日 | PCクリニック
昨日までの累計アクセス数=6,608。 ご訪問頂きありがとうございます。         日記@BlogRanking


ここで云うソフトとは、音楽や映画のようなものではなく、PC用アプリのことです。
また、Windows 用のアプリです。残念ながら Linux 版は良く分かりません。あしからず。

さて、体験版には大きく分けて2種類あると思います。
機能を制限して無期限に使えるものと、機能面では製品版と大差無いが試用期限があるもの。

例えば、PIC用のコンパイラmikro BASICだと、オブジェクトサイズが2kB迄で無期限。
画像ビューワのACDSee V4(古い)だと、機能制限なしで30日間。
ほかに、起動まで数秒待たされるが、フル機能・無期限のようなものもあります。

期限付きのものでは、期限日以降は、ファイル保存が出来なくなるとか全く使えなくなるとかですね。
で、この仕掛けについていろいろ遊んで(調べて)みたことの一端を書きます。

一番シンプルなのは、インストール日以前の日付で動くもの。最近は少なくなった。
でも、一方ではチョットでも日付を操作すると以後一切使えなくなるものも増えてきた。

これに近いが、インストール日とその一定後の日までの間の日付なら使えるもの。
カウント開始時点につては、インストール時点からのものと、最初の起動時点からのものがある。

使えなくなったとき、一旦アンインストールして再度インストールすればリセットされるものと、
それだけではだめなものがある。

この辺の仕掛けにはいろいろあって、HDDの(Windows から見えない)ある部分に
インストール情報を保存しているもの。(でも次の版では仕掛けが変わっていた。)

一番多いのは、レジストリのどこかに情報を保存しているものだと思う。
中には、INI ファイルや、データファイル、プログラムファイルといったファイルの中に隠すものも。

レジストリの場合でも1箇所だけだったり、複数箇所だったり、ファイルとの連携だったり。
(蛇足:レジストリとファイルの連携は、ウイルスに多いですね。)

また、単純なものでは、レジストリを書き換えればリセットされるものがある一方、
それを消して始めてリセットされ、再インストールが可能になるものまでいろいろ。
と云うところで、ここまでにしておきます。
お大事に。

お手数をおかけしますが、2クリック(投票を)して頂けるとうれしいです。 ⇒ 日記@BlogRanking
お引き立て頂き「60代~日記@BlogRanking」で上位になれています。ありがとう御座います。

ロータリーエンコーダの入力

2008年08月08日 | PIC・マイコン
昨日までの累計アクセス数=6,316。 ご訪問頂き、ありがとうございます。         日記@BlogRanking


ロータリーエンコーダには「インクリメンタル方式」と、「アブソリュート方式」の2種類があります。
インクリメンタル方式は、軸が一定量回転するごとにパルスを出力します。

1回転でいくつのパルスを出力するかを分解能と呼びますが、20パルスあたりから5000パルスあたりまであります。
軸が回転するたびにパルスが出るので、軸が何度動いたか、何回転したかといった情報は、
パルスの数を数えることによって得ることができます。

ただ単にパルスが出るだけでは、回転方向の判断が付きませんので、
以下に示すような2相のパルスを出力するように作られています。



右回転では、A相が先にハイからローに変化する。左回転では、B相が先にハイからローに変化する。
つまり、A相がハイからローに変化した時点でのB相の値を見れば回転方向がわかります。

秋月電子通商で売っているのは、インクリメンタル方式のものでした。

端子はA相、B相、GND の3ヶからなっており、見た目はボリュームのようなものです。
これは、1回転(360度)で24パルスです。また、クリック付きです。

そこで、PICとは、10kohm プルアップで、
A相 ---> RB0/INT ( H -> L で割込発生 )
B相 ---> RB7   と繋ぎ、



割込方式でプログラムを作りました。(mikroBASICで)
INT 割込発生時に、先ずB相をチェックしておき、
チャッタリングが収まるまで(1mS)待って、RB0(A相)がローだったら正しい変化時点と判定する。


割込処理ルーチン部分だけ載せます。
(段付けの為、先頭に2B空白がある)
' --------------------- mikroBASIC ソースの一部
sub procedure interrupt ' --- RB0/INT interrupt H->L
 If PORTB.7 = 1 Then
  rl_dir = "R" ' H : Right
 Else
  rl_dir = "L" ' L : Left
 End If
 Delay_ms(1) ' debounce
 If PORTB.0 = 0 Then ' true H->L
  get_data = 1
 Else ' not ( L->H ) Pass
  get_data = 0
 End If
 ClearBit(INTCON,INTF) ' clear INTF
end sub
' ---------------------
以上、お役に立ちましたら幸いです。

お手数をおかけしますが、2クリック(投票を)して頂けるとうれしいです。 ⇒ 日記@BlogRanking
お引き立て頂き、「60代~日記@BlogRanking」で上位になれています。ありがとう御座います。