自分自身のための ものづくり / 自分自身のためのものづくりメモ

突っ込みなどがありましたら掲示板にお願いします。

* Windows環境にて、USB接続COMポートを、個体識別する

#メモ #プログラミング #シリアルポート #Ruby
 Windows環境(少なくともWindows XP)では、USB接続のRS-232C(正確にはEIA-574)アダプタのCOMポート番号は、差すUSBポートを変えるとコロコロ変わる。COM19になったりCOM6になったり…。とても困る。
 一方、USB接続のその手の機器は、デバイスマネージャ上で個体識別できる。ならば当然、自作プログラムでも個体識別し、COMポート番号を自動設定できる。
 WMIを介して情報を得る。Win32_SerialPortではUSB接続の情報が得られない(場合が多い?)ので、Win32_PnPEntity からCOMポートを抜き出すのが確実。

require 'win32ole'

def ports
    locator = WIN32OLE.new("WbemScripting.SWbemLocator")
    services = locator.ConnectServer(".","root/cimv2")
    ports = services.ExecQuery "Select * From Win32_SerialPort"
    ports.each do |port|
        p port.Caption
        p port.Description
        print "\n"
    end
end

def ports_pnp
    ps = []
    locator = WIN32OLE.new("WbemScripting.SWbemLocator")
    services = locator.ConnectServer(".","root/cimv2")
    ports = services.ExecQuery "Select * From Win32_PnPEntity"
    ports.each do |port|
        if /\(COM\d+\)$/ =~ port.Caption
            p port.Caption
            p port.Description
            p port.Manufacturer
            print "\n"
        end
    end
end
   


print "Select * From Win32_SerialPort\n"
ports

print "Select * From Win32_PnPEntity\n"
ports_pnp

ruby -Ks comports.rb

Select * From Win32_SerialPort
"通信ポート (COM1)"
"通信ポート"

"通信ポート (COM2)"
"通信ポート"

Select * From Win32_PnPEntity
"Prolific USB-to-Serial Comm Port (COM19)"
"Prolific USB-to-Serial Comm Port"
"Prolific"

"USB-to-Serial Comm. Port (COM6)"
"USB-to-Serial Comm. Port"
"Aten"

"通信ポート (COM1)"
"通信ポート"
"(標準ポート)"

"通信ポート (COM2)"
"通信ポート"
"(標準ポート)"


参考文献:

Kick4 BBS
USBシリアルのポート名を知る方法?
http://www.kick4.net/bbs/c-board.cgi?cmd=ntr;tree=4;id=

Win32_SerialPort Class (Windows)
http://msdn.microsoft.com/en-us/library/aa394413(VS.85).aspx
Win32_PnPDevice Class (Windows)
http://msdn.microsoft.com/en-us/library/aa394352(VS.85).aspx

* SG-1000系のカートリッジに使えそうなコネクタ

#電子工作 #部品調達 #SEGA SC-3000 SG-1000
 ピッチ3.18mm(0.125インチ)、44接点

 Digi-keyにて
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=EDC346442-ND
単価438円(1〜9個)
#探した限り、Digi-key以外(RSとかchip1とかマルツとか千石とか若松とか…)には無かった。

Technical/Catalog Information EDC346442-ND
Standard Package 1
Category Connectors
Family Card Edge/Edgeboard Connectors
Vendor EDAC Inc.
Pitch 0.125" (3.18mm)
Number of Contacts 44
Contact Termination Solder Tail

* RandomNoteの検索用クローラ対策

#RandomNote #Web #掲示板spam対策
 googleやらyahooやらmsnやらが、入れ替わり立ち替わり、smode=sumやらsmode=countやらcmd=editやらのついたページを、別々のものと見なしてGETしていく。
 こっちにもあっちにも無駄な負荷がかかる、とても不幸なことだ。

とりあえずの対策として、それらへのリンクをformにしてみた。

 検索エンジンは、いくらなんでもsubmitしないだろうから、無駄にリンクを辿らなくなると期待。

 ただし、spam投稿用クローラが心配。textもtextareaもないのにPOSTする馬鹿がいるかもしれない、と危惧している。

ロボットの類相手では、cmd=editとかsmode=hogeとかあったら、404を返すようにした

 既にsmode=hogeとかのページのurlが記録されていて、リンクが無くなっても読みに来る。だから、ロボットの類相手にそれらのページは404を返すようにした。
 ロボットか?の判断は、user_agentにhttp:が入っているかどうか。

ロボットなどに対して、サイドバーを渡さないようにした

 検索の邪魔だよね。本文にないキーワードがあるのは。
 さらに、ロボットに送るデータ量が減るという恩恵もあった。無駄なデータが減るのは、互いにとって有益だ。

* SEGA MarkIII・マスターシステムRGB出力、他

* ナンバーディスプレイ対応モデム

#途中経過 #ナンバーディスプレイ
 ナンバーディスプレイ対応モデムにて、電話番号を表示させてみた。

参考ページ

X68K.NET: Admin Diary.
2004年04月13日(火)
#1 [NET][ISP][VoIP][NTT] アナログモデムdeナンバーディスプレイ(IP電話)
http://x68k.net/diary/?200404b&to=200404130#200404130

結果

  • 正式にナンバーディスプレイ対応を謳うMRV56PCにて、電話番号が表示された。
  • TO-BXF56Kは、"AT#CID?"等に反応したが、着信時に番号は表示されなかった。
  • USB-DM560は、"AT#CID?"等にERRORを返した。
  • VAIO PCG-XR1G内蔵モデムは、"AT#CID?"等にERRORを返した。

条件

  • OSはWindowsXP
  • ハイパーターミナルにて対応するCOMポートに接続
  • ナンバーディスプレイ対応疑似交換機(インターフェース社製 IF-101)を介して接続した電話機より発呼した。

ATコマンドへの応答など

(ReadMore...)

* deny from 64.124.85.0/24

#Web
 再び、BecomeBotに検索履歴をかき回されたので、.htaccessにて排除することにした。
robots.txt BecomeBot締め出し
http://baku.homeunix.net/WiKi/rnx/index.rb?1138996756.txt
にてのけ者にしたはずなのだが、BecomeJPBotは別物というわけか。え゛ー。
 ちなみに、robots.txtは最初にちゃんと読んでる。

 20秒に一度のアクセスだったり、UAの項に載っている http://www.become.co.jp/site_owners.htmlは「お客様が指定されたページは見つかりませんでした。」だったり、かなり感じ悪い。
(ちなみに、正しくは、http://www.become.co.jp/site_owner.html だそうだ。その辺の食い違いも感じ悪いぞ)
 また、他の多くのクローラの挙動と違ってリファラを送る点で、RandomeNoteの敵。

↓はた迷惑なアクセスの記録
(ReadMore...)

* deny from 66.232.96.0/19

#掲示板spam対策
 連投がウザイ(*)ので、丸ごと.htaccessでBBSから排除。

$ cat /var/log/apache/access.log | grep POST | grep 66.232 | grep '16/Feb' | cat -n | tail -1
139 66.232.113.98 - - [16/Feb/2007:22:49:40 +0900] "POST ttp://baku.homeuni
x.net/BBS/BBS.cgi HTTP/1.0" 403
 2月16日だけで139件かよ…。

 この範囲の人がこのサイトを見て更に掲示板に書き込みを行おうとする可能性は、無視してもいいだろう。個人向けプロバイダでもなさげな雰囲気だし(唯一逆引きできたアドレスのホスト名は"host.a1hosting4u.com")。

$ whois  66.232.118.177

Country:    US

NetRange:   66.232.96.0 - 66.232.127.255
CIDR:       66.232.96.0/19

*連投の例
(ReadMore...)

* deny from 72.232.0.0/16 他

#掲示板spam対策
#xxx.xxx.xxx.xxx.reverse.layeredtech.com
deny from 72.232.0.0/16
deny from 72.36.128.0/17
deny from 72.21.32.0/19

↓のような、ろくでもないアクセスしかないので、掲示板等では.htaccessにて排除。
2007/02/15,19:56:49,72.36.200.58,"underpt.org","-","-",GET,"/WiKi/rnx/index.rb","","1.1",403
2007/02/15,19:56:50,72.36.200.58,"underpt.org","-","-",GET,"/WiKi/rnx/","","1.1",403
2007/02/17,01:14:48,72.232.56.194,"194.56.232.72.reverse.layeredtech.com","-","-",GET,"/BBS/BBS.cgi","","1.1",403


$ whois 72.36.200.58

OrgName:    Layered Technologies, Inc.
Country:    US

NetRange:   72.36.128.0 - 72.36.255.255
CIDR:       72.36.128.0/17
NetName:    LAYERED-TECH-

* 色々な掲示板spam

#掲示板spam対策 #Web
 うちの掲示板へ書き込みを試みたspam投稿ロボットの形跡を挙げる。
(ReadMore...)

* スクロール専用USB接続「ホイール」

#電子工作 #途中経過
 故障した2.5インチHDDを部品として、USB接続マウスの回路を流用し、スクロール専用のUSB接続「ホイール」を作成した。
 ぐるぐると回してスクロールさせる操作感はとても気持ちいいのだが、使いどころは限られる。Picasaとの相性は抜群。特に、タイムライン表示をぐるぐる回すのはとても気持ちいい。


 スクロール専用なので、マウス(等)と併用する。

(ReadMore...)

* SG-1000系とMarkIII系の色合いの違い

 SEGA MarkIIIやマスターシステムで「全機種対応ソフト」を動かすことはできるが、色合いがだいぶ違う。

 手持ちのソフトでそれが顕著に表れるのは「どきどきペンギンランド」

SC-3000H MarkIII
(背面端子にメガドライブ用AVケーブルを接続し、MTV2000にてキャプチャした。)
 左がSC-3000Hで、右がSEGA MarkIII
 ゲーム制作者が意図した発色は、左のSC-3000Hでの映像のであることは明らかだろう。


 後期型のSG-1000IIのRGB信号は、MarkIIIよりは、SC-3000Hのコンポジットビデオ信号のと近い色である。
SG-1000IIのRGB
以前に改造したのをX-RGB2plus経由で表示したのをデジカメで撮影)

 改めて見ると、RGBでの映像はTMS9918Aの色とはけっこうずれているな。MarkIIIほどは違わないけど、どちらかというとMarkIIIに近いかなぁ?


 MarkIII用ソフトはちゃんとした色が出るので、手持ちのMarkIIIの調子が悪いわけではないはず。
RTYPEタイトル RTYPEゲーム中

参考:
TMS9918Aに針路をとれ
http://www.proc.org.tohoku.ac.jp/befis/halloffame/msx_col/

#RGB #SEGA

* PC-98用光学マウスを作るために


 光学マウスに搭載されているセンサは、XYのAB相を出力しているのがある。
 手持ちの部品取りにとっておいたマウスの、PixArtのセンサPAN101 (PAN101BOI-204)
http://www.pixart.com.tw/productsditel.asp?ToPage=1&productclassify_id=1&productclassify2_id=16
にはそういう信号が出ているようだ。

…ってことは、PS/2とかUSBのチップを取り払って、9ピンのコネクタをつけて配線すれば、PC-9801用光学マウスの出来上がり?

#電子工作 #PC-98

* EPSONのPOSレジ用蛍光表示モジュールの制御方法

 ハードオフのジャンクコーナーにて100円で入手した。
 とりあえず、検索した情報をメモ

カスタマディスプレイ 仕様概要
http://www.epson.jp/products/sasport/dm_disp/disp3.htm


DM-D110カスタマディスプレィ
http://www.technoveins.co.jp/products/custmerdisp/dmd110.htm
EPSON Advanced Printer DriverからDM-D110STに表示を行う
http://www.technoveins.co.jp/technical/dmd110advdrv/index.htm

〜 POSレジ用カスタマーディスプレイ応用法 〜
http://www.hct.zaq.ne.jp/kyotani/customerdisp/customerdisp1.htm

ジャンクの蛍光パネル ? Portal
http://www.mkusunoki.net/z-gypsy/kousaku/dm-d203-012.html

#電子工作 #ジャンク

* 掲示板spammerの削除パスワード

 掲示板spam投稿ロボットによっては、POST時に削除パスワードを入れるのがある。削除パスワードがないと書き込み拒否される場合の対策だろうか?

 どうやら、削除パスワード欄であるかどうかの判別は、"pass"とかの文字列かどうかで判断しているようだ。ダミーの<input type="text" name="pass">をclass="dummy"とでもして、cssで不可視にしておけば、排除の判断に使えそう。

 不思議なことに、ランダム文字列じゃなくて固定文字列だったりある程度の規則性があったりする。何かあったときに消去を試みるためだろうか?
(ReadMore...)

* Baiduspider締め出し


 こんな迷惑なアクセスをするロボットは、問答無用で閉め出されてもしかたないと思うぞ。
 robots.txt一応読むようだが、27日に一度読んで
2006/07/27,19:22:27,60.28.17.51,"","-",GET,"","1.1",200,
117,"-","","Baiduspider+(+http://www.baidu.com/search/spider.htm)"
それっきりというのはどうかと思う。
 ま、動的ページへの非効率極まりないアクセスの前には、robots.txtを読む頻度が低いことなんて些細なことだが。

#Web