SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|

2004-07-01(Thu) 変換ボックス内基板ハンダ付け

  やることは決まっているのだが、思うほどには作業が進まない今日この頃である。で、今日は昼休みに、コネクタ部品を内蔵する変更に伴う、変換ボックス内の配線図の修正を行い、晩に基板の切断加工と配線を行った。他人には何の参考にもならないが、一応配線図を載せておこう。

  画像の説明

  基板の加工に関してはミニルータさまさまである。あっという間にキレイに切断できる。以前にカッターとかでカリカリやっていた頃が無限地獄のように思い出される。やはり道具は大事である。

  コネクタの取り付け位置を慎重に確定したら、基板に固定して、次は配線。リード線を剥いたら、ハンダメッキして、コネクタにハンダ付け。必要十分な長さに切って、リード線を切断、リード線を剥いて、基板に配線、配線部分からスズメッキ線を引き出して基板上の必要な位置まで這わせる、のひたすら繰り返し。1本ごとにテスターで配線が正しいか確認するのも忘れてはいけない。

  というわけで、文章で説明するとたいした事ないが、2個の変換ボックスがあるので、計12x2=24回も繰り返すと出家したくなってくるほど面倒くさい。なんとか、出家前に作業は完了したが、明日も実際のケーブルを基板上にハンダ付けする作業が待っている。おっと、その前にコネクタが刺さるか実車で確認しなくては。ケーブルをハンダ付けすると、ほとんどの部品はつながってしまうので、その後の各種作業が非常に非効率的になるのだ。

  画像の説明


2004-07-02(Fri) 変換ボックス完成

  昨日は、13pinソケットと変換基板とのハンダ付け、および、変換基板上の配線を行った。今日は変換基板と各種コネクタとのハンダ付けを行う。

  画像の説明

  フロント側のDINスペース側の変換ボックスには、RCA-Videoオスコネクタ、RCA-Audioオスコネクタx2(左右)、USB-Aタイプメスコネクタ、PCパワースイッチ、PCリセットスイッチ、謎のオス6pinフレームとなっている。このうち、RCA-Audioは既存のMP3対応ヘッドユニットアンプに接続するため後ろ出しで、それ以外はDINスペースに収納するボックスの引き出し内に収納されている。

  画像の説明

  リアの変換ボックスは、PCに接続するためのケーブルである。RCA-Videoオスコネクタ、スレテオミニプラグ、USB-Aタイプオスコネクタ。それ以外の、PCパワー、PCリセット、謎の6pin用のPCへの結線方法はまだ未定でありオープンとなっている。

  というわけで、本日は上記のコネクタケーブルを全て変換基板にハンダ付けし終わった。週末に車載作業ができる調子である。ま、一度でうまくいくとは思えないが……。


2004-07-03(Sat) ディスプレイマウント、PC制御ケーブル作成

  まず、LCDディスプレイのマウント方法についての作業である。DINスペース用のボックスには、ドリンクホルダーと引き出しが装備されているが、昨日書いたように引き出しはケーブル類とスイッチパネルの収納ボックスとなっているので、ドリンクホルダー用の引き出し部分にディスプレイを固定する予定である。といっても、なんのことはない、タップでネジ切って金具でネジ止め固定である。

  今更であるが、今回のPC車載のコンセプトは「ダッシュボードの美観を一切損ねない」というものである。取り外せばまったく元通り、というのが私にとっては重要なのである。そのためには、簡単に取り外しができ、取り外した場合でも取付金具等も全て目に付かない場所に収納できる必要があるのだ。

  現状、LCDディスプレイの左側の固定はネジとの隙間へのステーの刺し込み、右側の固定はネジ留めとなっているが、手でヒネることのできるネジが入手できれば完璧というところである。

  それはともかく、昨日、結線方法はまだ未定でありオープンとなっていると述べた、PCパワー、PCリセット、謎の6pinであるが、なんとなくピンソケットをハンダ付けし、PC内部へ直接配線するつもりだった。しかし、そうするとSVXからPCを下ろす際にPCのケースを外してピンソケットを外す必要があり、大変に面倒である。そのため、PCケースに用意されていたCOM2用の穴を利用して、9pinDINソケットを装着することにした。9pinDINソケットは通常シリアルポートに用いられるコネクタであるが、今回は当然ピンアサインを無視し、PCパワー、PCリセット、謎の6pin用に2pin、POWERLEDに2pin、HDDLEDに2pin、GND(ちょうど合わせて9pin)として利用する。

  製作したのが以下のケーブルである。

  画像の説明

  9pinソケットは刺し違い防止のためCOM1のそれとはメスオス逆にしてあり、ケーブルを通じて2つのpinソケットにつながっている。10pinの方は謎の6pinからきている信号線である。カンのいい人はどこにつながるのかわかるかもしれないが、一応まだ秘密。18pinの方は通常、ケースのスイッチやLEDをマザーに刺す部分に代わりに装着することにより、外部から電源やリセットが行えるようにする。LEDに関してはまだ装着予定はないが、ゆくゆくはバックミラーでLEDが確認できるようにしたら面白いかもしれない(CDチェンジャー用のケーブルを流用する都合で13pinにはもう空きがなく、前方のDINスペースまでLEDを引っ張ることはできないので)。


2004-07-04(Sun) アクセサリ電源取得ケーブル作成、SVXへの搭載試行

  SVXのDINスペースは作業性が悪く、そう何度も取り付けたり取り外したりを繰り返したりすると、周囲にキズをつけたりしそうなので、極力作業を最小限にしたかった。そういう思いもあって、一度取り付けたら二度と外さなくて済むよう、できうる限りの準備をするとともに、変換ボックス作成の際も内側の状態を確認せず、一度MP3ヘッドユニットを取り付けた際の記憶を元に製作を進めてきた。

  で、取り付けに当たって「できうる限りの準備」として、アクセサリ電源も引出し内から取れるようにすることを思いついた。やることは簡単である。SVXから出ているオーディオ用の電源を分配し、引出しの中に引くだけ。例の謎のオス6pinフレームは3pinまでは謎の使用に供す予定で、1pinはキーピン(誤挿入防止用)なので、2pinが余っている。この2pinをアクセサリとアースに割り振るのである。

  ここで、ひとつ注意せねばならない点がある。アクセサリ電源というものは基本的に「剥き出しは危険」ということである。なにせ車全体がアースであるため、ウカツに触れるとショートすることになるのだ。そのような状況であるから端子の露出しているオス6pinフレームはよろしくないわけである。で、ここは安全性を考慮し、オスでなくメス6pinフレームに取り替えることにした。最初から、受け側はメスにすべきであった。反省。

  画像の説明

  さて、以上で「できうる限りの準備」は完了した。次はSVXへの搭載である。しかし、先ほど述べたように「内側の状態を確認せず」に作業を進めてきたため、それなりに誤算が生じることであろうと思いつつ、SVXの元に向かう。一度カーステは外しているのでサクサクと内張りをハガし、カーステを取り出した。と、ここまではよかった。

で、予期していたとはいえ、大誤算である。

  1. 既存のDINスペース用のボックスが止まっているネジが特殊
  2. CDチェンジャ用の13pinケーブルが物理的に刺し込めない
  3. MP3対応ヘッドユニットの入力がRCAプラグではない

早速作業は頓挫してしまった。

  まず、1.のネジは適当に合うものを見つかればそれで済むが、探さなければならない。で、2.のDINスペース側のコネクタがL字形という形状が誤算であった。DINコネクタは方向があるため、外側を向く方向にしか刺さらず、ケーブルがフレームに干渉するのである。変換ボックスも多少削る加工が必要であるが、13pinケーブルの向きを変えてハンダ付けしなおさねばならない。うぅ。痛恨が3.でMP3ヘッドユニットの後ろで見かけたRCA端子は「4本とも出力」であった。なんだよー。RCA端子が4本あることは記憶していたのだが、2本が出力、2本が入力と思い込んでいた。こうなると、変換ボックスで出したRCAケーブルが無駄というのはともかく、PCからのオーディオ出力を車のスピーカに出す方法がなくなってしまう。

  ここでは15分ほど悩んでヒトツの答えを出した。よく考えたら、MP3ヘッドユニットにはフロントパネル側からミニプラグによる入力が可能なものを選んでいたのだ。若干ダサいが引き出しにもう1本ミニプラグによる音声出力端子を出し、必要な場合はフロントから差し込むようにするのだ。というか、MP3ヘッドユニットの裏にある入力端子は特殊形状なので、もう、それしかないのである。

  というわけで、結局DINスペースのフレームごと、家に持ち帰って作業し直しに決定。来週は旅行のため、次の搭載トライは2週間後である。どっはー。とりあえず、帰って13pinコネクタの方向を90度向きを変える作業を終え、おやすみである。

  画像の説明 画像の説明


2004-07-05(Mon) ソフト系設定あれこれ

  今日は、作業開始が遅くなったので、騒音を出すドリル作業ができず、ハード系の作業は頓挫。代わりにソフト系の作業を行うことにした。

  まず、車内でPCを操作するために購入したKeiboardのセッティングを行うことにする。なぜKeiboardにセッティングが必要? と、聞かれれば、それは操作効率を上げるためである。車内で操作するときに、ウィンドウのドラッグやアイコンのクリックは極力したくないので、自分の好みのキーコンフィギュレーションにするのである。コンフィギュレーションに使うのは窓使いの憂鬱。ありとあらゆるキーを高度に設定可能で、キーの入れ替え、キーのマクロ化など、アクティブウィンドウごとに別の動作をさせることも可能なグレートツールである。

  画像の説明

  早速、おいらのメインマシンにKeiboardを接続、とりあえずナビに使用予定のProAtlasW2を立ち上げる。設定作業は、窓使いの憂鬱側では調査ダイアログを立ち上げ、ProAtlasW2のウィンドウID、Keiboardが発するキーのスキャンコードを調べ、操作したいキーに割り付けるわけである。ところがー!! うまく割り付けられない。この窓使い憂鬱というツール、使い方もかなり難しいので、以前に設定した時の作業を思い出しつつ、ボチボチと試すのだが全くダメ。というか、Keiboardってスキャンコードを出してねーじゃねーか!!

  窓使いの憂鬱というツールは、主にスキャンコードを仮想キーに置き換えることで動作している(たぶん)。なので、最初から仮想キーが入力されてしまうような場合、置き換えができないことになるのだ。そーか、Keiboardはキーボードのように見えて、実はキーをエミュレートしているのではなく、USBドライバから直接イベントを発生させているわけか……。むー、だめじゃん。

  いずれにせよKeiboardにはポインティングデバイスもあるし、フルスペックのキーボードとほぼ同じことができるので、使わないことにはならないだろうが、おいらの用途にはUSBの安いテンキーのがよかったかもしれん。残念。

  Keiboardが(ダメ側に)一段落したので、次は手持ちのProAtlasW2をナビに利用する方法を考える。とりあえず、このソフトをナビに使う場合に問題になるのが、スクロール中心の現在地ロック/アンロック、がわざわざダイアログを開かねばできない点だ。フツーのナビだと現在地ボタンでロック、方向ボタンで即座にアンロックが当然のごとく行われるのである。ここで、窓使いの憂鬱の出番である。キーマクロを利用し、ダイアログを開き、チェックボックスを反転、ダイアログを閉じるという作業をワンキーで行えるようにする設定を作った。ついでに、拡大/広域と、スクロールの設定。スクロール幅は1キーで3キー分動くようにする。あと、ナイトモードも必要だな。夜は黒バックでないと目にツラい。これもProAtlasW2に最初から備わっている機能を1キーで呼び出せるようにするだけだ。

  経路表示も試してみよう。といっても、自動経路検索まで高度なものはおいらには不要である。遠出するときは家で地図上に線を引いて保存しておき、それを車から簡単に呼び出せる程度で十分。試してみたらこれも簡単にできた。無線LANが駐車場まで届けば、出かける前にファイルを拾い上げれば、地図上に行程が表示されるという寸法である。無線LANが駐車場まで届かなければ、家の前に移動して拾うことになろうが、それも楽しい儀式をなりそうである。よしよし。

  画像の説明

  最後に、HDDジュークボックスの構築方法を考えることにした。まずは一番安直にwinampというメディアプレイヤーを利用する方法だ。とりあえず使ってみたけが、どーも生理的にダメ。ちっこいウィンドウをゴチャゴチャいじるのは性に合わん。大容量のHDDなのだから、ドーンとアルバムのジャケット写真が表示されるようなのがよいのじゃ。こりゃ自作に決定である。

  自作の言語は、以前にちょっとカジったRuby/tkが有望。cygwinから使えばお手軽だし。ただ、Ruby/tkから直接mp3を再生することはできないので、WinAPIを呼んで与えられたファイルをただ再生するだけの小さいコマンドが必要だ。Webを調べたら、なにやらmciSendStringとかそんなAPIを呼べばよいらしい。これはそのうち作ることにしよう。


2004-07-06(Tue) 車用ジュークボックスアプリ開発開始

  朝っぱらから職場に向かう途中の金物屋で足りなかったネジを購入し、帰ってからは、引き続きハード工作から離れ、ソフト系の作業を行った。

  昨日はwinampが気に食わないなどと書いたが、結構な著名ツールであるwinampをケナして、オマエにどんなものが作れるんじゃ!! などと怒られそうではあるが、目指す方向が違うのだから仕方がない。というわけで、ジャジャーン。

  画像の説明

  おいらの欲しいのは、こういう感じのヤツなのである。ガツーンとジャケットが出て、上にはアルバム名、アーティスト名。右にはアルバム内の曲名。下には再生中の曲と経過時間である。突貫で作ったので現在のところ外見だけだが、ちゃんとRuby/tkによって出力したウィンドウである。まだ最終形ではないが、ここまでの表示は、現状のカーステやカーナビでは逆立ちしたって無理だろう。PCを搭載するなら、これくらいはやらないとツマらないではないか。うはは。(ちなみに画面に出ているアルバムはサンプルで表示しているだけで深い意味はない。名盤なので聴いて損はないが)。

  ホントはスペアナも表示させたいところではあるが、現在の音レベルを得る方法がわからんのでパス。どうせ、運転中は動きなんか見やしないだろうから、それでいいのである(情報を頂ければやるかも知らんが)。で、その代わりといってはナンだが、ビデオプレーヤを兼用することも視界に入れつつ開発を進めることにした。どうもWindows的にはmp3を再生するのもaviを再生するのも、全く同じ手間っぽいことが判明したのだ。すでに、あちこちのページを見回って資料を探し、ファイル名を与えるとmp3を再生するCUIコマンドも半ば完成している。あとは、Ruby/tkから適宜呼び出すだけである。

  それからよく考えたら、コイツは毎日グダグダと細かい作業内容ばかり書いて、さっぱり全貌が見えない、一体何を作っているんだ、と思われないように、そろそろ完成形のイメージ写真も載せておくことにしよう。

  画像の説明 画像の説明

  見ればわかるが、左の状態がディスプレイを取り外した状態、右の状態がディスプレイを取り付けた状態である。いわゆるインダッシュディスプレイのようであるが、内部に格納できたりはしない。あくまで取り外し可なだけである。しかし、SVXは面の出っ張っているユニットを取り付けるとフタが閉まらなくなるという固有の問題があるし、そもそもインダッシュのディスプレイなど高くて買う気がせんので、これで十分なのである。なにせコレなら4,200円で済むのだ。見た目が悪かろうが映りが悪かろうが知ったこっちゃないのである(ちなみに下にある小説は固定するために置いただけで深い意味はない。名作なので読んで損はないが)。

  いい忘れたが、ジュークボックスアプリは完成したらGPLで公開する予定である。使う人は限られるとは思うが。


2004-07-07(Wed) CUIのメディアプレーヤ完成

  昨日は、ジュークボックスアプリのユーザインタフェイス側を作ったので(上っ面だけだけど)、今日は実際にメディアファイルを再生させるミニコマンドを作ることにした。ここでワザワザ「mp3ファイル」でなく「メディアファイル」と書いたのは、昨日述べたように、Windows的にはmp3を再生するのもaviを再生するのも同じような手間なので、両方に対応可能なミニコマンドを作る予定だからである。つまり、車載ビデオプレーヤも実現できるように作ってしまうのである。

  当初はC++BuilderのTMediaPlayerコンポーネントでも利用することになるんかなーと思っていたのだが「ファイル名を与えるとファイルを再生、終わったら終了」という単純動作を突き詰めていくと、なんのことはない、WindowsAPIのmciSendStringを呼ぶだけで済んでしまうようである。結果、Bolandのフリー版C++コンパイラだけで十分実現可能であった。

  余談だが、このmciSendStringというAPI、文字列を渡してまるで会話するかのようなインタフェイスのAPIである。

mciSendString("おぅっ、そこに'xxxx.mpeg'っつぅけったいなファイルがあんだけどよ、開けるかぃ?", NULL, 0, NULL);
mciSendString("よっしゃ、そのけったいなヤツをとっとと再生してくんな、景気よく画面いっぺぇにな", NULL, 0, NULL);
mciSendString("べらんめぇ、いまどこ再生してんだぃ、あぁん?", answer, 0, NULL);

という調子である(実際には英語だが)。これだと、引数の順番を考えなくていいし、デフォルトのままでいいパラメータなら指定しなければいいので、かなり楽である。通常のWindowsのAPIはウィンドウひとつ開くにも多数のパラメータが必要なので、それもこういう会話インタフェイスにしてもらえたら楽だろうな。

  と、脱線はコレくらいにして、一応ソースバイナリを置いておこう。ソースは100行弱と短く、しかもほとんどがC++Builderのヘルプからコピペしただけの定型文、キモは例のmciSendStringの3行程度だけである。使い方はコマンドラインにファイル名(1個だけ)を指定するだけ。

  というわけで、今日はビジュアルがなくてスマンが、ココまでである。


2004-07-08(Thu) ジュークボックスアプリ進行中

  例によって、とりあえず、写真だけ。絵的には大して変化がないように見えるが、内部構造は70%程度完成し、経過時間も動いているのである。結構よくない? マジよくない!?

  画像の説明

  なお、今週末は旅行のため、開発は来週から再開の予定である。来週末には一応車載して動かせれば予定どおりなのだが。


2004-07-11(Sun) 秋葉で買い物

  今日は秋田からの旅行の帰りに、秋葉原に寄って、足りなかったパーツ他を適当に購入する。久々の更新だが、今日はおいらのショッピングぶりをレポートして日記のネタにしてしまうのである。秋葉の駅からスタートである。さぁ、行こうか。

  まず向かうのは、秋月電子通商。自作野郎の聖地である。ここは品揃えに若干偏りがあるものの、使用頻度の高いパーツはほぼ揃っており、安価なので、ここで買えるものはここで買って間違いない。パーツのデータシート等のコピーもタダでくれるので非常に良心的な店である。

  今日は足りなかったオスの9pinDINコネクタを予備を含めて2個、見切り品のタクトスイッチが格安だったのでとりあえず5個、消耗しがちなピンフレーム、10kの抵抗、なにげにPICとLM35を適当に買い足しておいた。1年前は混んだ店内をドキドキしながら見て回り、長時間悩んだ挙句にトンチンカンな買い物をしていたが、ここのところ慣れたモンである。

  画像の説明

9pinDINコネクタ(オス)\50@2\100
ピンフレーム x 3\200
格安タクトスイッチ\10@5\50
抵抗10K x 100\100
PIC12F675\150@2\300
LM35(温度センサ)\200
\950

  つぎに向かうのが、千石電商。ここは秋月のすぐ隣で、秋月より広範囲で抜けのない品揃えを誇る。秋月より高い場合が多いものの、他の店よりは安いことが多く、秋月で買えなかったものが補完できる。自作派にとってこの2店は最強タッグといってよいだろう。

  今日は車載PCのDC-DC電源変換ボックスに使う予定のプラケース、PCケースのアダプタジャックに合うプラグ、かなり減ってきたハンダ吸取線を購入。アダプタジャックやケースは適当に大きさを変えて数種類買う。どうせ単価は安いので、合わなくて何度も来るよりは、とりあえず買い揃えておく作戦が有効なのである。

  画像の説明

ハンダ吸取線(2mmx1.5m)\180
ケースSW-100B\230
ケースSW-75B\130
ケースTB-1B\150@2\300
TB-1用基板\120@2\240
アダプタ用プラグ x 3\110
\1,190

  上記2店の近くの東映無線にふらっと寄る。ここはPCパーツショップに類するが、他店とちょっと異なる微妙な品揃えが長所である。他店では脇役がちなEDENのマザーボードを多種揃えてあるのもおいら好み。

  今日は格安のUSBテンキーを購入。先日のKeiboardの欠点をカバーするためのものである。車のDINスペースには1ポートしかUSBを引かない予定なので、ちょっと高いがハブ付きのものを狙って購入。今度こそ窓使いの憂鬱が対応するとよいが。

  そして最近、帰り際に必ず寄るようになったヒロセテクニカル。ここは工具一式にとても強い店。半田ゴテやニッパー、ラジオペンチなどの基本的な工具は、細かい用途別に100種類(ちょっとオーバーか!?)づつ置いてある。

  今日は地下で手でヒネることの可能なネジを物色。先日触れたがLCDディスプレイの取り付け用だ。ここの、巨大なネジ売り場はちゃんと期待に応えてくれた。ついでにテスターリード用のICクリップも購入。私はテスターリードの先をICクリップに付け替えて使っているが、最近先がボロくなってきたので取り替え用である。ここで買えるICクリップは、他の店のものより、先が細く、バネの強さやその形状が絶妙で取り付けやすいのでお気に入りなのだ。最後に、ケースメーカのタカチのCDROMカタログももらっておいた。家でサイズを熟慮してケースを選べれば、それに越したことはないしね。

  画像の説明

ツマミ付きネジ φ3mm x 6mm\42@2\84
ICクリップ(小)\63@2\126
タカチCDROMカタログ\0
\210

  しかし、この電子工作という趣味、意外と金がかからないものである。道具も少しずつ揃えていけば負担は軽いし。次はハンドニブラが欲しいな。ちょっと高いが金属板を切り進められるツールは便利そうだ。

  と、家に帰ってテンキーを使ってみると……ダメじゃん。これもKeiboardと同じく、スキャンコードを出力しない。むー。もしかして、窓使いの憂鬱をUSBドライバを使う設定にしていないからか? 明日はUSBを使う設定にしてみようかな。

  ついでに、ジュークボックスアプリも少し進める。初めて、Ruby/tkのインタフェイス部分と、C++で作ったメディアプレーヤ部分を合体させてみた。むぅ。早速動かん。Ruby/tk側のThreadクラスからsystemで外部コマンドを呼び出すと見たことのないようなエラー発生である。即座にググる。なに? cygwin特有の問題でrebaseallってのが有効? よくわからんがやってみると、おぉ。ちゃんと動いて音が出るようになった。ただ、Thread内部からラベルコントロールを変更するとウィンドウ内の表示が崩れてしまう問題が出た。しかも完全な再現性がないとくる。Ruby/tkのバグか? よくわからんが、うまく回避できるとよいなぁ、と思いつつお休みである。

  画像の説明


2004-07-12(Mon) 一気に準完成形へ

  今日は窓使いの憂鬱でUSBドライバを使う設定にして、昨日購入したUSBテンキーを試してみた。なんだ、ちゃんとスキャンコードを出すようになるじゃないの。USBドライバを使うということは、若干違うレイヤーでキー入力をフックするということだったのね。一応、これで設定を煮詰めれば解決である。Keiboardも使用できるようになったので、キーアサインはこんな感じにしてみた。

keymap Global
 key F6		= A-Tab						# プロセス切り替え
 key F8		= A-Tab						# プロセス切り替え
window	ProAtlas	/proatlasw2\.exe:ProAtlasW2MainFrame*/ : Emacsen
 key Space	= LMenu G S C Tab Tab Tab Tab Enter		# GPSロック(現在地)
 key _6		= Right
 key _4		= Left
 key _2		= Up
 key _8		= Down
 key _5		= Return					# 決定
 key _1		= PageUp					# 広域
 key _3		= PageDown					# 詳細
 key _0		= Home						# 自宅
 key _7		= LMenu V R S					# 昼色
 key _9		= LMenu V R N					# 夜色
 key BackSpace	= F11						# 全画面表示
 key Delete	= LMenu M Down Down Down Down			# Myフォルダ(経路呼出)

  次は、昨日のジュークボックスアプリの開発の続き。Thread内部からラベルコントロールを変更するとウィンドウ内の表示が崩れてしまう件だが、どうやら根が深そうである。この問題はおそらく、systemで外部コマンドを呼ぶと、内部的にforkが呼ばれるため、一瞬双方のプロセスが勝手にウィンドウの更新を行おうとして干渉し、表示が崩れているっぽい。systemを使っている以上どうしようもないと思って、自前でforkして、子プロセスの方でウィンドウの更新を避けようとか、いろいろやってみたのだが、どうにもお手上げである。

  というか、そもそもThreadとforkを同時に使うというのもかなり不自然なわけであるからして、ここはスッパリあきらめて、別の方法を採ることにした。別の方法とは、別途サウンドを司るDaemon(デーモン)を作成し、Ruby/tk側からはソケット通信にてDaemonに要求を送信、Daemonがmediaplayを立ち上げるというものである。ここで、Daemonというとなんかデカいプログラムのように思えるが、なんのことはない、これも100行チョイのRubyスクリプトである。しかも、別途必要があって開発途中だったものなので、ちょいとイジって、Ruby/tk側のsystem文をソケット通信文に変更するだけである。

  と、いうわけで、あっけなくウィンドウ表示の崩れる件は解消したので、次は曲ごとに右下の経過時刻がリセットされる処理を追加する。これには、Daemonとの通信Threadから、経過時刻表示Threadへ「次の曲にかわったよ」ということを知らせるThread間通信が必要となる。ところがThread間通信という言葉が先行してしまったため難しく考えてしまってどうにもうまくいかない。そこで、細かいこと考えずに、あらかじめ空Hashインスタンスを両Threadに渡しておいて、それを書き換えるようにしたらサクッとうまくいった。なんだ、アホくさ。解決。その勢いで、Keiboardからの操作を可能にするイベント処理も中途半端ながら実装する。

  画像の説明

  これで、完成度90%である。既に指定のディレクトリ内のメディアファイルをエンドレスで次々に曲を演奏するところまできた。うほほい。


2004-07-13(Tue) ジュークボックスアプリ公開

  快進撃を続けてきたジュークボックスアプリの開発だが、本日をもってバージョン1.00の完成としてしまうのであった。で、先日の約束どおりGPLとしてここに公開する。以下、超適当であるがマニュアルである。

  必要環境

Windows + Cygwin(Ruby/tk)

  各ファイル説明

carjuke.rbRuby/tkで書かれたジュークボックスアプリ本体。GUI関係のコード。
jukedir.rbcarjuke.rbが利用するRubyライブラリ。メディアファイルを管理する関係のコード。
juked.rbRubyで書かれたジュークボックスデーモン。TCPで要求を受け、mediaplay.exe等を呼び出す。
juked.conf.rbjuked.rbの設定ファイル。
mediaplay.cpp先日公開したCUIのメディアファイル再生ツールのソース。
使い方はコマンドラインにwav, mp3, avi, mpegファイル等を与えるだけ。
mediaplay.exe上記の実行形式バイナリ。
makemediaplay.cppからmediaplay.exeを作るバッチファイル
noimage.gifジャケット画像がない場合に表示する画像。以下で説明する親ディレクトリに置いておくとよい。
licence.txtGPLのお約束

  導入時設定

carjuke.rbの冒頭にhomeDirという変数があるので、メディアファイルの存在する親ディレクトリをcygwin形式で指定する。D:\My_Soundsにあるなら'/cygdrive/d/My_Sounds'と(必ずcygdrive経由で)指定する。

  メディアファイルの配置

親ディレクトリの下にディレクトリを作り、その中にメディアファイルを置く。ちなみに一階層限定である。メディアファイルのほかにjacket.gifというファイルを置くとジャケットとして画像が表示され、songs.lstというファイルを置くと曲名が表示される。songs.lstのフォーマットは以下の例にならうこと。

OutRun2 SOUND TRACKS/SEGA
track01.cdda.wav.mp3,SPLASH WAVE
track02.cdda.wav.mp3,MAGICAL SOUND SHOWER
track03.cdda.wav.mp3,PASSING BREEZE
track04.cdda.wav.mp3,RISKY RIDE
track05.cdda.wav.mp3,SHINY WORLD
track06.cdda.wav.mp3,NIGHT FLIGHT
track07.cdda.wav.mp3,LIFE WAS A BORE
track08.cdda.wav.mp3,ENDING-A
track09.cdda.wav.mp3,ENDING-B
track10.cdda.wav.mp3,ENDING-C
track11.cdda.wav.mp3,ENDING-D
track12.cdda.wav.mp3,ENDING-E
track13.cdda.wav.mp3,LAST WAVE
track14.cdda.wav.mp3,OPENING
track15.cdda.wav.mp3,SPLASH WAVE (1986)
track16.cdda.wav.mp3,MAGICAL SOUND SHOWER (1986)
track17.cdda.wav.mp3,PASSING BREEZE (1986) 
track18.cdda.wav.mp3,LAST WAVE (1986)

  起動方法

cygwinのbashから./juked.rb &とし、ジュークボックスデーモンを起動。

続けて./carjuke.rbとしてGUIフロントエンドを起動。

  操作方法

起動すると、ものがカーステだけに勝手に再生が始まる。'6'キーで次の曲、'4'で前の曲、'8'で次のアルバム、'2'で前のアルバム、'0'で現在の曲を最初から演奏しなおす。

  ……などと、まとめていたら、あっという間に深夜になってしまった。今日はこのほかにも、車のリア側の変換ボックスの回路の修正を行い、外部からのPC起動を可能にしたりしていた。しかし、一応できたことはできたのだが、配線を間違ってしまい、再修正が必要となってしまった。あー、めんどくさ。それから以前より、CDチェンジャーに使われていたケーブル内の13本の線のうち1本だけ線が余っていたのだが、本日、突然それに割り付ける信号を思いついた。で、追加した。ふふふ。これもとりあえず、秘密にしておこう。以前の写真と以下の写真を見比べればカンのいい人はわかるかもしれない。

  画像の説明

  関係ないが、夕方にツタヤでなにげに上戸彩のCDレンタルしてきた。よって今日はサービスカット(?)をつけてしまう。残念なことにこのCDはCCCDなのだが、おいらはアナログコピーでPCに取り込み、自作の怪しいスクリプトでサクサク切ってmp3化してしまうのでウハウハである。CCCDはムカつくので決して買ったりはしないが、だからといって負けてもいないのである。レンタルしたCDをコピーするのは合法なのだ。余談だが、以下の画面を作るのに、jacket.gifとsongs.lstはamazonを利用してゴニョゴニョしているので、スキャンしたり手打ちしてはいない(よく見たらミスタイプあるじゃねーか)。せっかくなので、そのうちこれらのスクリプトも公開しようと思っている。では、おやすみである。

  画像の説明


2004-07-14(Wed) 作業お休み

  突然だが、今日は作業はお休みである。代わりにといってはナンだが、先日紹介するといっていた「Namco TV Classic 5 in 1 Games」のレビューをしよう。SVXと関係ないような気もするが、電池駆動のこのアイテム。渋滞中に助手席の人が遊ぶのにちょうどいいので、SVXに十分に関係あるのである。この機種は有名な5つのナムコのゲームができるが、今日はそのハードウェアと2つのゲームについてのレビューである。

  ハードウェア

ナムコらしい配色の筐体にレバーとボタン、リセットスイッチと電源スイッチが付いている。ケーブルはRCAピンの黄色と白。つまりステレオではない。電池ボックスは裏面でネジ付きのフタの内部に単三電池が4本入る構造だ。レバーに関しては、最初上スイッチがシブかったが操作感はかなりよいといえよう(しばらくしたら直ったし)。ちなみに4方向レバーでありナナメ方向には機械的に入らないタイプである。ボタンに関してはナムコのアーケードにありがちな軽いスイッチではなく、カチカチと音を立てるクリック感のあるタイプとなっている。大きさもやや小さく、連射は若干やりにくいが、搭載しているゲームをプレイするならさほど問題はない。なお、右レバー左ボタンと配置が一般のアーケードのものと逆になっているので、人によってはやりにくく感じるかもしれない。

  画像の説明

  パックマン

本物のパックマンには、壁に引っかかることなく、その通りに動けば必ずクリアできる、という完全な解法パターンがある。私はその解法パターンを知らないので、それとの合致は評価できないが、モンスタの動きは多少オリジナルとは違うような気がする。ただし、特徴的な「縄張り→追跡」時の反転動作は行うし、イジケ時間は各面でちゃんと異るし、少なくともグズタ(アメリカ版ではクライド)はボケッとしているなど、各々への性格付けはなされている。迷路に関しては、TV画面が横長であるため左に寄っているが同じ形状であり、ワープホールではちゃんとモンスタは遅くなる。画面右側はスコアと残機、クリア面数をあらわすフルーツが表示される。2面クリアした際のデモムービーもちゃんとある。今のところ8面までしか行ってないので3番目のデモムービーは確認していないが、2番目の「引っかかり」デモムービーの存在は確認した。総じて移植度は非常に高いといえよう。効果音に関してもヘンなところはない。

  画像の説明

  ギャラクシアン

パックマンと同じくTV画面が横長であるため左に寄っている。画面右側はスコアと残機、クリア面数をあらわす旗が表示される。旗艦であるギャルボスはちゃんと親衛隊2匹を連れて攻撃してくる。親衛隊2匹をツブしてからギャルボスを倒せば800点というのもオリジナルと同じである。パープルが左右に大きく動きながら攻撃したり、エイリアンの数が減ると、画面中盤で宙返りしたりしたりする動きも健在である。なお、条件はいまだ不明だが、時々ギャルボスが4機になるという、デッドコピーにありがちなオリジナルとの違いがあるが、まぁ些細な違いといえよう。効果音に関しては、ショット音が「キューン」でなく「ザスッ」という音なのが残念だが、それ以外は概ね同じである。これも移植度は非常に高いといえよう。

  画像の説明

  さて、残りのラリーX、ディグダグ、ボスコニアンのレビューはまた後日である。


2004-07-15(Thu) 接続ケーブルほか完成

  さて、本日の作業は、リア側の配線の修正とフロント側へのケーブルの増設である。

  実はケース加工(穴の増設)だけは昨日行っていたので、今日は配線を通してハンダ付けするだけ。必要なケーブルを揃え、一気に変換ボックスを完成させるのである。ステレオミニプラグの延長ケーブルをチョン切って利用したところ、内部の線がヨリ線かつ、表面メッキかつ、繊維混合のものだったため、かなり無理矢理ハンダ付けするという苦労があったが、とりあえず、完成である。

  完成したフロント側は目論見どおり、1)引き出しが閉まった状態から、2)引出しを開けて、3)必要なケーブルが引き出せる、という機能を実現できた。

  画像の説明 画像の説明 画像の説明

  引出しから引き出せるケーブルは、1)ビデオ信号(RCAオス)、2)オーディオ信号(ステレオミニオス)、3)USB(Aタイプメス)、4)マイク(モノラルミニメス)の4種。そう、実は最後に1本余ったケーブルの秘密の用途とは、音声入力だったのである。音声入力があれば、音声入力によるPC操作に利用できる可能性があるし、とりあえずカラオケするのも悪くない(^^;)。

  ちなみに、引出しに内にはPCの電源スイッチ&リセットスイッチとピンヘッダも存在する。ピンヘッダは6pin中5pinを使用しており、アクセサリ電源(+12V)&アースとシリアルポートのTx&Rxである。これも長らく秘密にしていたが、実はシリアルポート(RS-232C)だったのである。シリアルポートが前に出てきていれば、キャラクタ表示のLCDパネルを取り付けることもできるのだ。ナビが必要ない時は、デカイLCDディスプレイでなく、小さなLCDパネルで済ますことができる。そのために、5pinの中にはパネル駆動用の電源も含まれているのである。

  で、話を戻して、既存のMP3対応ヘッドユニットに、PCからのオーディオ信号を入力する状態が、以下である。フロントから入れるのはちょっぴりダサいが、許せる範囲ではないだろうか。SVXユーザなら誰もが気にするフタであるが、このままフタを閉めることもできるのだからまぁ文句ないであろう。

  画像の説明

  さて、週末は2度目の車載トライである。こんどこそ、問題なく載ることを祈ろう。


2004-07-17(Sat) フロント側工事

  連日の猛暑。まともに昼に車載作業すると死ぬな、と思いつつ、なんだかんだで昼から車載作業開始。

  まずは取り付け前の状態。前回、DINスペースをそっくり取り外したので、その状態からの作業開始である。まずは、DINスペースの飾り枠を止めるフレーム下側のタッピングネジのネジ穴をネジ切ってしまっていたので、タッピングツールで4mmのネジ穴を切りなおした。

  画像の説明

  フロント側の取り付け作業を行う前に、変換ボックスの配線が正しいかどうか最終確認が必要なため、リア側の変換ボックスにテスト信号を発生するアイテムを設置(トランク内が若干散らかっているが無視していただきたい)。テスト信号を発生するアイテムといっても、例のナムコのゲーム機と骨董品のカセットプレイヤである。ゲーム機はビデオ信号を、カセットプレイヤはステレオオーディオ信号を出力する。曲はなぜか手元にカセットテープとして残っていた「ハイドライド3」。リア側でテスト信号を出したところで、フロント側で導通テスト。画面も映るし、音も出た!! 導通テストは大成功である(USB他は未確認だが、まぁ大丈夫であろう)。

  画像の説明 画像の説明

  次はディスプレイの仮設置である。とりあえず、ディスプレイの電源は12V-100Vコンバータからアダプタを通じて給電するものの、設置状態は良好であった。しかしここでは、ふたつの小さな問題が発生。ひとつは、ディスプレイの裏はナベネジの頭が出ているので、このまま走行して振動を与えると、エアコンパネルに当たって傷がつく可能性があるということ。もうひとつは、引き出し内のピンヘッダからディスプレイの電源を取ろうとすると、ピンヘッダの高さのせいで物理的に引き出しが閉まらなくなるということ。これらは誤算だったが、まぁ、なんとかなりそうな範囲の問題であろう。一応、仮設置はOKということで、配線を引き出しに仕舞って、SVXに特有のカーステのフタを閉じてみる。ちゃんと閉じることが確認できた。よしよし。

  画像の説明 画像の説明 画像の説明

  先の「ピンヘッダの高さのせいで物理的に引き出しが閉まらなくなる」というのはこういうこと。もうひとつの「エアコンパネルに当たって傷がつく可能性がある」という問題とあわせて対策したのが右の写真。パネルの裏に両面テープで張ったのはクッション性も期待できるスベらないシートである。ピンヘッダのほうは、横出しのピンヘッダを加工して極限まで高さを抑える工夫をしてみた。

  画像の説明 画像の説明

  と、いうわけで、フロント側の取り付け作業は完了である。と、こう書くと非常にスムーズに作業ができたかのようであるが、実際にはユニットが定位置に納まるまでが大変な作業であった。なにしろSVXのDINスペースはコード等が入るスペースが極端に少なく、前から押し込むとユニットと枠の間に配線が入り込んで、ちっとも定位置に納まってくれない。気候の暑さも手伝って発狂しそうな作業状態であった。

  そして15時頃から、カミさんとスーパーに買い物に出動である。せっかくなので早速ディスプレイを設置して試運転である。PCはまだ搭載していないので単なるモニタとしてであるが、例のナムコのゲーム機を接続し、走行中にカミさんに遊ばせてみた。結果、先に施した2つの対策も効を奏し、走行中にディスプレイがガタ付くこともなく、引出し内のピンヘッダから直接12V+2Vを取り出してディスプレイを稼動することもでき、まったく問題なしであった。

  画像の説明

  さて、明日はリア側へPCの仮搭載、というところで、今晩は呑み会である。カミさんとカミさんの兄さんと、ギネスビールを呑みにHUBというイングリッシュパブへ、そしてカラオケへ。カラオケではなにげにキャプテンハーロックを歌ってみたりしたのだが、我ながらこれがかなり気に入ってしまった。あんまり気に入ったので気がついたらHUBに重大な忘れ物をして自宅に戻っていた。うげー。


2004-07-18(Sun) リア側仮設置

  さて、今日は昨日に引き続き、リア側へのPCの仮搭載作業である。ソフト側の設定はまだ完全ではないので、とりあえずの仮に搭載してみるという程度である。

  トランクを開けた上で、トランクスルーにする。今回はまだ車電源12V+2V→12V電源コンバータも完成していないので、昨日も利用した12V-100VコンバータにPCケース付属の巨大12Vアダプタを利用しての給電である。とりあえず、リア側の変換ボックスからPCにザクザクとケーブルを刺していく。ステレオミニプラグ、RCAビデオ、USB、マイク、9pinDINコネクタ(電源スイッチとリセットスイッチ)の5本。そしてUSBのGPSアンテナとUSB接続の無線LANアンテナである。配線が終わったら、CDチェンジャが収まっていたステーの中に置く。とりあえず、置くだけだが。

  画像の説明 画像の説明

  そして、フロント側にディスプレイをセットしたら、引出し内のタクトスイッチを「ポチッな」。すると……Windows2000の起動であるッ!! やほー!! 間髪いれず、USB端子にKeiboardを接続、トラックポイントをウニウニすると、マウスカーソルも動く!! 完璧!! ……ただ、このときは映像の調整がイマイチで画面の視認性が著しく悪かったが、ま、その辺は持ち帰って調整である。とりあえず変換ボックスに関して、完璧なデキであるということが確認できた。特に胡散臭いケーブルを間に挟んでいるUSBがちゃんと動いたのはうれしかった。USB2.0を動かそうというのではないんで大丈夫だとは思っていたが、とりあえず線の品質無視でツナゲタダケというレベルだったからね。

  画像の説明

  さて、あとは自宅に持ち帰ってソフトのセッティングを煮詰めていくのである。もちろん、アプリ自体は出来ているのだが、起動するだけでスムーズに使えるようになり、簡単に操作できるようにしなくては運転に支障が出兼ねないので、重要な作業なのである。

  画像の説明

  というわけで、ソフトのセッティングは続く、というところで、夕方は近くの大型ショッピングセンターで買い物。帰ってすぐ昨日のHUBへ忘れ物を取りに。ついでにギネスをまた一杯。ちなみに、忘れ物というのはカラーコーディネータ資格の教材である。わざわざお兄さんに借りたのに、イキナリ無くしましたじゃ顔向けできないところであった。あー回収できてよかった。


2004-07-19(Mon) ソフトの再セッティング

  今日はソフトのセッティングの続きである。

  と、いいたいところだが、まったくWindowsというのは不安定の塊である。結論からいうと「セッティングの続き」でなく「セッティングのやり直し」になってしまったのである。Windowsを使うようになってから、なんとなく「HDDがガリガリいっている時は操作を控える」「アプリのインストール、アンインストールは繰り返さない」「使う周辺機器は最低限にする」という認識が育った。これらは、どういう理屈なのかわからないのだが、実際にはこれらを守らないと十分に不安定要因になる可能性が高いという経験則なのである。他にも「USB機器は同じポートに刺すようにする」「キーボード類はPS/2が無難である」というのもあるのだが、結局は大ハマリである。

  なにしろ、セッティングを煮詰めているときに、Keiboardが反応しなくなるわ、USBGPSを認識しなくなるわ、挙句の果てには起動時間が20倍かかるようになるわ……。作業効率を上げようと、USBのHappyHackingKeyboard2をつなげたのが失敗だったのか、USB機器の取り付けポートを実車に合わせて変更したのが失敗だったのか……。だいたい、接続するポートを変えたらドライバ入れなおしを要求されるのってなんなんだ。Windowsって、中身の挙動がわからなすぎるから、結局対策は「OSの入れなおし」以外なくなっちまうんだよな……。

  で、結局OSの入れなおしである。今回はクリティカルパスを通って作業を行う。取り付けるべき周辺機器は最初から取り付け、アプリの設定も一度でビシッと決め、試行錯誤な作業は極力避ける。しかし、パッチのインストールやらなにやらで10回以上再起動を繰り返させられ、結局は6時間作業である。たのんますよ、ホント……。

  ちなみに、おいらは車にPCを搭載する場合、HDDは消耗品だと思っている。だが、今回のようにOSのインストールを毎回行うとなると、かなり鬱である。USBGPSと地図ソフトさえLinuxで利用可能なら、こんなウンコなOSなんか使いたくないんだが……。とほほ。


2004-07-20(Tue) DC-DC電源回路製作開始

  6月20日、秋葉でEdenマザーなど、車載PCのパーツを購入してしまい、抜き差しならない状態になってから、今日でちょうど1ヶ月である。最初はあまり本気ではなかったのだが、製作は快調に続き、現在は完成間近である。こういう工作って、自分の能力を十分に引き出して、いろいろ工夫して、そこそこ苦労して、やっと完成するというのがもっとも楽しいんだよな。

  以前、セガマーク3用のスポーツトラックボールというコントローラをジャンクで購入し、そこそこ苦労してX68000につないだことがあった。当時は電子工作の知識なんかロクになかったので、トラックボールの中の光学ロータリーエンコーダと、X68000のマウスの中の接点ロータリーエンコーダを見比べて、トライアンドエラーした覚えがある。あれはホントに楽しかった。完成後サイバリオンが存分にプレイできたのも楽しかったが、やっぱり作っている作業の方が何倍も楽しかった。故祝一平氏の「改造は改造する楽しみのために行うべきである」という言葉が思い出される。もうすぐその作業も終わるかと思うと、ちょっと寂しい気もする。んが、寂しがるにはまず完成させなくてはならない。今日からDC-DCコンバータ回路の製作に取りかかるのである。

  車の電源というものは12Vとされている。が、これはタテマエで、実際には12Vで安定していることはありえない。エンジン停止時で13V、エンジンがかかると14V、セルが回っている最中は8Vに落ちたり、なにしろ非常に不安定な電源なのである。

  であるから、12VのACアダプタ仕様のPCケース(=PC電源)だからといって、車の12Vを直接供給するのは非常によろしくない。ACアダプタ仕様のPCケースには、大抵内部にDC-DCコンバータがあり、12Vから5Vや3.3Vを作り出しているのだが、電気というのは電圧を下げるのは比較的簡単だが、上げるのは大変なので、大抵のACアダプタ仕様のPCケースは、ACアダプタからの入力の12Vを直接用いているのである。最近のACアダプタはスイッチング式で、以前のトランス式と異なり、非常に安定した電圧供給を行うので、PC側もそれを期待した作りになっているというのもある。よって、車の12Vをキレイな12Vに変換する必要があり、それが今日から製作を開始するDC-DCコンバータである。

  DC-DCコンバータの定番は3端子レギュレータというもの。今回は1.25Vから15Vまで出力電圧を可変できる、LT1084CTを利用する。この石は13V程度の入力があればキレイな12Vを出力してくれる便利な石だ。そのため小さい割に1,410円とお値段も張るので、扱いには注意である。まずは部品集め。不安定な電圧の安定にはデカいコンデンサということで、入力側に2200uF、出力側に1000uFの電解コンデンサを配置である。

  画像の説明

  ちなみにこの3端子レギュレータというヤツ、入力側から出力側へ電圧を切り落として供給してくれるのだが、切り落とした電気は全て熱として放出される。切り落とす電気の量は電圧差×電流ということで、電流が多く流れるとそれだけ高熱が出るという運命がある。世のCPUと同じく熱が多すぎれば自爆するので、ヒートシンクをつけてやらねばならない。で、ヒートシンクの近くに風の流れがあればより効率的なので、ファンを近くに設置するとよく、ファンといえばPCケースのファンを流用すると便利なわけで、ケース内のファンの近くに電源基板を配置することにする。ここに配置してくれといわんばかりの空きスペースもある。

  画像の説明

  ただ、このLT1084CTという石、ヒートシンク取り付け用のタブの部分が金属となっており、しかもそれが出力端子を兼ねている点に注意である。ヒートシンクがPCケースに接触するとショートすることになるからだ。3端子レギュレータもいろいろあり、タブの部分が樹脂で絶縁されたものや、金属だがグランドと兼ねているものもあるが、なんでこれはよりによって出力端子なのだろうか? 絶縁すると熱の流れも悪くなるので今回は「厳重注意」という対策とする。

  と、それはともかく、ケースの内部に電源を配置したら、どうやってケースの外側にある電源ジャックに給電するのか。内部の電源ラインに割り込ます? すると元のACアダプタが利用できなくなってしまい、たまにPC本体を家に持って帰ってメンテすることが難しくなる。それ以前に、車側の給電コネクタをACプラグに付け替えるのはあまりしたくはない。しばし悩んだが、ケースに2つの穴を開け、入力用と出力用のケーブルを用意することにした。出力用のケーブルはケースの穴から出て、自身の電源ジャックに刺さることになる。まぁ、最終的にはまだ流動的だが、とりあえずその方向ということで。

  概ね作戦が決まったところで、回路図を書く。といっても私の場合、回路図は紙の上にラフに書くだけで済ませ、回路図CADで実体配線図を書き始めてしまう。当然、回路図CADの本来の使い方ではないが、私にはこのやり方が合っているようだ。しかし、この実体配線図の部品配置と配線をあーでもないこーでもないと煮詰めていくのは、これまた楽しい。一応、ポリシーとして部品面にはジャンパがないように、配線面には交差がないようにと、勝手に決めているのでそれに従う。完成したのが以下の図である。

  画像の説明

  ヒートシンクの配置場所を考えつつ、巨大な電解コンデンサを配置した結果である。一応、熱に弱い電解コンデンサということで、熱を持つヒートシンクからは極力離してある。まぁ、パンクしても安いのでサッサと交換すれば済むのだが。

  さて、明日は実際に部品のハンダ付けを始める予定である。


2004-07-21(Wed) 続・DC-DC電源回路

  実は、昨日の日記を書いてから、いくつか変更を余儀なくされてしまった。ま、日記はライブなのが当然なので修正があればそのまま次の日に記述してしまうのである。

  今日の作業は、正式に3端子レギュレータをヒートシンクにネジ止めする作業からの開始である。縁起物なので、余っているCPU用のシリコングリスをヒートシンクと3端子レギュレータの裏面に塗る。で、位置を合わせてネジを締め、キュッと固定した時にあることに気がついた。「このまま基板に取り付けると、足のピン配置が逆になってしまう」ではないか。いきなり作業中断、PCを立ち上げなおして、基板レイアウトの修正である。あほー。

  今回は幸運にして、基板のスペースに余裕があったので、一部のパターンを裏返しにすることで、簡単に修正できた。あーよかったー。いつもは配線に凝りすぎて基板サイズを最小にしてしまうので、間違えると地獄に落ちることが多いのだ。

  ついでに電圧調整を行う抵抗値の計算もしておこう。このLT1084CTという石、電圧調整端子をグランドに落とすと1.25Vという出力電圧となるが、出力端子からの出力を分圧して電圧調整端子に与えることで、出力電圧を15V程度まで引き上げることができる。出力電圧は式(1+R1/R2)x1.25で与えられるので、手持ちの抵抗器を使って12Vを出力できるよう頭をヒネる。

  LT1084CTのデータシートによればR2に90Ω程度、R1に1kΩの可変抵抗を与えて調整するようになっている。しかし、両者とも手持ちのストックにはなく、90Ω近辺の抵抗は10,75,470Ωしかない。とりあえず、大き目のほうがよいだろうということで470ΩをR2(図で上部の抵抗器)に与えてみる。で、R1(下部の抵抗器)に必要な抵抗値を逆算すると4042Ωである。再び部品箱をひっくり返すと3.3kΩの抵抗器がある。ということは、1kΩの可変抵抗を直列につなげばちょうどよく調整できそうである。理論では、ここで10kΩの可変抵抗のみをつないでもよいのだが、おそらく12Vに調整するのがかなりセンシティブになってしまうと思われる。やはり1kΩの可変抵抗がよい。が、手持ちにない。ということで、ジャンクから取り外すことを考えた。すると、以前使っていた自作のノートPC用電源回路に載っていることを発見。今は別途ACアダプタを利用してノートPCを駆動しているので、そこから失敬することにした。で、完成したのが以下の回路である。

  画像の説明

  さて、そんなこんなで今日は遅くなってしまったので残念ながら作業終了であるが、思いつきでもうひとつだけ作業を行っておく。以下の作業である。

  画像の説明

  白いのはフィルムケースである。ノギスで内径を測っている。例によって今日はココまで。ヒントは「電子工作用のケースは高い」である。ばっははーい。


2004-07-22(Thu) DC-DC電源回路完成

  昨日、設計作業を詰めたので、今日はイッキに製作するのである。ハンダ付け放題なのである。イキナリ完成させてしまうのである。

  画像の説明 画像の説明

  回路を製作する途中、特に大きな問題は生じなかった。気がついたら470Ωの場所に3.3kΩを取り付けていてあわてて外したこと、ヒートシンクの大きさの兼ね合いで3端子レギュレータ関連回路の搭載位置をヒトコマずらしたことと、電流の逆流防止ダイオードをジャンク袋から選ぶときに「えぇい!」と適当に選んでしまったことくらいか。ダイオードって印刷してある型番をネットで検索しても素性がわからないことが多いんだよね。結局、そこそこ足が太めで、容量が大きそうなのを適当に選んだけど、いいんだろうか? 秋月で7SEGのLED目当てに買った500円のジャンク袋、ほとんどがダイオードだったんで、もったいなくて使うんだけど、選ぶのに困るんだよなぁ。

  画像の説明

  相変わらずハンダ付けはうまくならないなぁ、とハンダ面を見てナゲキつつもテストである。テストには14V以上の適当な電源が必要なので、手持ちの可変ACアダプタを利用するのである。この可変ACアダプタ、おいらが電子工作を始める前に買ったもので、かなり放ってあったアイテムなのだが、今考えるとこれって素人が使うとアブないよねぇ。ちなみにスイッチングタイプでなくトランスタイプなので15Vに合わせても軽く17Vを搾り出すアバウトな野郎である。今回は電流出力せず電圧を測るだけなので、ザックリ17Vを入れ、12Vが出るか確認してみるのである。

  画像の説明 画像の説明

  デカいコンデンサのせいか、端子を接続するときに「バチバチッ」とやってアセったり、入力端子との電圧を測りながら可変抵抗をイジって「17V出力回路完成!!……じゃねーだろ!!」などとひとり乗りツッコミしたりしたが、最後にはちゃんと12Vを得ることができた。ついでに12Vのファンを回して電流でも測ってみようかと思ったのだが、テスターのヒューズが飛んでて電流計測不可。ぐむむ。こんどポリスイッチ買ってきて交換してやる。そういえば、今回の回路にも追加したほうがよさそうだな、ブツブツ……と。

  で、次は昨日のフィルムケース大作戦の続きである。今回、車側のCDチェンジャー用の電源供給端子を利用するので、CDチェンジャーからジャックを失敬した。しかし、ジャックの形状が形状なので、ムキ出しで使うと非常に危険である。で、当初は小さなケースに入れて利用しようかと思ったのだが、これだけのことにキレイなケースを利用するのももったいないので、考えついたのがフィルムケース大作戦である。まずはルータで基板をガリガリとフィルムケースの内部に入るように削るのである。ちなみに今回、先日新たに購入した回転ノコギリアタッチメントを利用しての切断を試したのだが……ダイヤモンドカッターで削るより、非常に難しかった。キリシロは非常に狭くてよいのだが、ノコ歯があさっての方向に行くわ、勝手に暴れて基板をキズだらけにするわ、オマエは妖刀村正か。あきらめてサッサと得物をダイヤモンドカッターに替えて作業を継続。結局こっちで十分であった。うー、失敗。

  画像の説明

  次は車で接続した場合の状況を確認。トランクに頭を突っ込んでの怪しげな作業。コードの色からして、下がアースで上が12V。上側にツメがあるので、ちょっと広めに削る……などとメモして、そそくさと家に戻って作業継続である。

  画像の説明 画像の説明

  で、加工した結果がこれ。基板は2個のネジ穴と、ちょっと太目の足を通すための加工を施した。なかなかうまく行った感じ。しかし、フィルムケースが柔らかくて加工しやすいのは発見だった。大きさも適当だし、ちょっとした電子工作のケースには持ってこいかも。富士フィルム万歳(?)である。

  ちなみに、DC-DC電源回路の基板への入出力にはピンヘッダを利用することにした。車なので振動で外れないかが気になるが、ピンヘッダにしとくとメンテが楽なんだよね。前回、DINスペースに取り付けた引き出しの中のピンヘッダの時、オスメスを適当に選んで失敗したので、今回はちゃんと考えた末、基板側を入出力ともオスにした。これだと、走行中に振動で外れて暴れても、ショートしにくいであろうとの考えである。あ、それから取り付け寸前、こんな加工もしてみたのだった。

  画像の説明

  ベロベロしているのは絶縁用のゴムシートである。基板のPCケースへの固定は上部のネジ2本による不安定な片持ち状態なので、念仏代わりである。また、ヒートシンク上部から伸びているスズメッキ線は、配線材と同じ物だが、若干テンションを与えてヒートシンクを基板に固定している。当初、ヒートシンク脇部の線でハンダ付けして固定しようと思ったのだが、ハンダが付かなかったため、苦肉の策である。んが、意外といい感じ。今回の3端子レギュレータの場合、ヒートシンク自体にも12Vが来ていることも忘れてはならない。車載を考えると振動対策として多少は考慮すべきかと思っての対処である。

  さて、大詰めのケースへの搭載である。おお、ちゃんといい感じにヒートシンクが空気流量の多そうなところにフィットし、かつファンから絶妙な間隔を維持している。配置は完璧どゎ。

  画像の説明 画像の説明

  一方、結線についてはいろいろ考えたのだが、基板からの12Vの出力は、ACジャックに直接ハンダ付けする内部結線とすることにした。これならば基板の出力側からピンヘッダを引っこ抜けば、回路的に完全に元通りになるので、家にPCを持ち帰り本来のACアダプタをつないでPCのメンテする場合も問題が発生しない。また、電源の引き込みについてはいろいろ考えた末、ファン用のネジ穴をひとつ拝借することにした。ケースの穴がちょうど電源コードが通るサイズだったのである。ファン自体のネジ穴はちょっと通らなかったのでドリルで若干拡張したが、ケースは加工せずに済んでホント助かった。これなら見た目も悪くない。

  と、いうわけで、DC-DC電源回路の完成である。あとはホントに載せるだけ!! 明日、少しだけソフトを詰めたら、タップリ音楽を充填して、土曜日は搭載作業だーッ!!


2004-07-23(Fri) 作業お休み(その2)

  あづーい。あまりに暑くてやってられん。つーことで、今日はストックネタを出すのである。そう、先日レビューした「Namco TV Classic 5 in 1 Games」の続きである。では、どうぞ(やりなげ)。

  ラリーX

これはオリジナルと同じ横画面なのだが、なんとレーダー画面がない。厳密に言うとレーダー画面はあるのだが、メインのコース画面の上にドットがオーバーラップ表示されているのである。そのため、若干レーダー画面が判読しづらいのが残念である。ニューラリーXではないので、車はエラがない形状であり、ラッキーフラッグも存在しないが、なぜかレーダー上でスペシャルフラッグが点滅している。コースに関しては詳しく覚えていないのでオリジナルとの比較はできないが、特に違和感を感じるほどのヘンなコースではない。ニューラリーXではないため、袋小路的が多いのもオリジナルに準じている。レッドカーの動きに関しては若干追いかけがキツい感じだが、代わりといってはなんだが相互にブツかってマゴつくことが多く感じる。このヘンは私の感覚なのでなんともいえないが。チャレンジングステージもちゃんとあり、燃料切れになるとレッドカーが動き出す。スタート直後に下に移動すると、レッドカーをスリ抜けるワザも再現されている軽快なBGM、効果音に関しても十分にオリジナルを再現している。レーダーの件はあるが、移植度は高いといえよう。

  画像の説明

  ディグダグ

先の2機種と同じくTV画面が横長であるため左に寄っている。画面右側はスコアと残機、クリア面数をあらわす数字が表示される。オリジナルでは地表に花が咲くことでクリア面数表示がなされていたが、地表部分が非常に狭くレイアウトされているため、省略されている。オリジナルでは地層が微妙に波打っていたが、本機ではまったくの水平。面が進むと地層の色が変化するのはオリジナル通りだが、変化の仕方は異なるようである。ベジタブルはちゃんと出現する。敵はちゃんとプーカとファイガーの2種類。しばらくすると目変化して地中を追ってくるし、面が進むと一部屋に2匹入っているし、残り1匹になると逃げ出すのもオリジナルどおりである。BGM、効果音に関しても十分にオリジナルを再現している。歩きを止めるとBGMが止まるのもオリジナルどおりである。ハイスコアBGMも存在する。しかしながら、ファイガーの炎は薄い土の壁を通り抜けるのに、ポンプのヤリは届かないという点がオリジナルと異なる。また、自機の当たり判定が微妙にデカい、(連射しにくいボタンではあるが)ポンプ連射により敵を倒すスピードが速い、敵の速度が速いなど、オリジナルとの量的な違いが目立つ。これらの要素が合わさった結果、かなり難易度は高くなってしまっている。表面的な再現度は高いのだが、残念なことに移植度は低いといえよう。

  画像の説明

  ボスコニアン

ラリーXと同じような画面構成を持つ本作だが、レーダー形状も踏襲している。つまり、メイン画面の上にドットがオーバーラップ表示されているのである。バックが明るいラリーXと異なり、レーダーは見やすいが敵弾と混同することがある、レーダーに縁がないためどこでループするのかがわからないのが残念である。そして、あまりに大きなオリジナルとの違いが、本作は8方向スクロールが可能なのにもかかわらず、本機のレバーは4方向レバーということである。恐らく、単なるハードウェア的な問題であって、機器内部で動きを制限しているプレートを外せば、ソフトウェア的には8方向に移動が可能と思われるが、これのせいでかなり遊びにくくなっている。とはいえ、他の4作は4方向レバーのおかげで遊びやすいのも確かなので、微妙な問題なのだが。基地の配置に関してはオリジナルと異なるようであるが、これはさほど問題ではないだろう。基地は中心が開いたときに弾を打ち込む方法と、周囲の6個のモジュール全てを破壊する方法の2種類の破壊方法がとれるのもオリジナルどおり。ステージ開始時にじわっとスクロールが開始したり、面が進むと基地の中心が開くと同時に円錐状の敵ミサイルが発射されたり、リーダー機を伴うフォーメーションアタック、スパイシップを逃すことによるコンディションレッド、敵ミサイルが周囲のアステロイドや機雷に勝手にブツかって破壊するのも再現されている。ただ若干、機雷爆発時の当たり判定持続時間が短いようである。BGMはコンディション変化に伴ってめまぐるしく変化し、効果音に関しても十分にオリジナルを再現している。4方向レバーの件はあるが、移植度は非常に高いといえよう。

  画像の説明

  まとめ

総じて多少の難はあるが、ナムコ公認だけあって非常にレベルの高い製品だと感じた。次は「パックランド」「ギャラガ」「ドラゴンバスター」「マッピー」「ゼビウス」の5本で作って欲しいものである。


2004-07-24(Sat) 車載&使用感

  今日はとうとう車載の日である。ほぼ一ヶ月の間、毎日のように何らかの作業を行ってきた。思えば遠くへ来たもんだ、てなもんである。自宅で念入りに最終チェック。起動後、ジュークボックスアプリやプロアトラスの自動起動を確認、ディスプレイの画質の最終調整、Keiboardのみで快適に操作ができることを再確認。よし!! SVXにイザ搭載である。

  トランクを開け、DC-DC電源回路の実車搭載テストである。フィルムケースを利用したコネクタボックスへ、SVX側のCDチェンジャ用の電源ジャックを接続、確認、バッチリ。DC-DC電源回路からピンヘッダを外し、テスターを装着。キーをアクセサリへ。これで12Vが出れば……て、あれ? 出ない……。……あ。……れ?

  画像の説明

  どひゃー、確かに確認しなかったけど、電気きてませんか……そうですか。なんで、この状態で電気がきてないなどというオチがあるかなぁ……はぁ、突然、日差しの強さが倍になったような気がするけど、気のせいなんかなぁ……。あづいぃ……。いーよ、この際。今日はカミさんとカミさんの友達と3人で映画を観に行く予定だし、とりあえず、でいいから動かそう。というわけで、12V-100VコンバータとACアダプタを利用して、暫定運用だ。

  ところが、暫定運用だが、いままでとはチャウのである。画質も合格レベル。ナビも動作。ジュークボックスも絶好調。がははは、初めてのナビなのであるが、こりゃ便利。ナビの地図は回転しないし、自動ルート検索もないのだが、美しい地図の上に自車のポイントが出力されて、近くに何があるのかわかれば、私にとってはコレで十分なのである。それより、市販のナビより、動作は機敏でスクロールが滑らか。詳細と広域の切り替えのタイムラグがないのは気持ちいいことこの上ない。ジュークボックスも最高である。画面にジャケット写真と演奏中の曲名が表示されるのは思いのほか便利。フツーにアルバム聴いていると、意外と曲と曲名は一致しないものなのだが、これがあればすぐ確認できるのである。心配していたノイズもさほど乗ってない。

  Keiboardの使い勝手もなかなかのものである。映画館までの移動中、伊豆諸島の話題が出たのだが、ササッと地図を移動させ、島の配置や島の概要を得ることができた。Keiboardのトラックポイントはさほどデキがよくないが、一般的なカーナビの方向レバーに比べれば月とすっぽんである。さっとルーラーを出して島の大きさの概要を知ることもできるのは、地図ソフトならではである。

  と、いうわけで、概ね想像以上に大満足であった。ただし、完全に改善点がないわけでもない。まずは、シャットダウン時にすんなり終了しないことがあること。これはわかっていたのだが、症状が出ないこともある。原因は自作ジュークボックスアプリっぽいのだが、シャットダウンスクリプトを作ることで対応できそう。cygwinにもshutdownというのがあったような気がするので、それを利用できればなおよし。それから、原因は不明だが、ディスプレイがほんの少しチラチラすることがあった。原因は不明だが、渋滞に巻き込まれているときに症状が出がちであった……ような気もするが、ディスプレイを見ているときは渋滞の時が多かったからなぁ。電圧低下とも思えなくもないが、まぁ実害があるほどでもないので、これは無視でいいかな。ほかに小さなことだと、GPSを開始するのにメニュー操作が必要なこと。これは窓使いの憂鬱で一発キーを設ければ解決。ナビの自作ルートが見づらい。これは色を調整するればよいだろう。それ以外には……もう、ないなぁ。それほどに支障がない。うむうむ。

  あとはDC-DCさえ動けば完璧だ。これはまだ原因を調査していない。なにせ、自分で引いた線ではないので、現在どこにつながっているのかわからない。しかし、CDチェンジャが設置されている以上、つながっていないとも考えにくいなぁ……もしかして、ヒューズか!? ヒューズだと楽なんだがなぁ。

  と、いうわけで、明日はオフ会の会場で原因調査……かなぁ。


2004-07-25(Sun) SVX-ML「第4回AW美女木オフ」参加

  前回の5月23日のオフから2ヶ月。私にとって2回目のオフ参加である。しかし、あづい!! お互いに車を見て、あーだこーだ、これをこうするとよいとか、ここは壊れやすいとか、そんな話をするのが主なので、やっぱり外にいないといかんのだ。しかし、あづい……。

  今回のオフはあまりに暑かったせいか、よく内容が思い出せないのである。しかし、

  • クランプタイプの電流計は配線カット不要で便利そう
  • SVXにはタンカラーの内装も似合う、木目にもよく合う
  • トランクの中にフックをつけると買い物袋を固定するのによい

など、有意義な発見はあった。というところで、午後から用事が合ったので早々に撤収。

  ちなみに、行き帰りは常磐自動車道と外環の下を通ったのだが、当然、昨日搭載したばかりの車載PCは活躍しまくりである。まず、オフ会に向かう前。無線LANによるデータ転送を試してみる。直線距離で100mほど離れている駐車場でSVXに乗り込み、車載PCを起動。電波は……届かない。アパートの裏を通ると、お、届く。では、アパートの前では……バッチリだ。サクッと家のLinuxサーバにsambaアクセス。昨日準備しておいた、村下孝蔵のアルバムデータを車載PCに数分でダウンロード。むふーん、甘露である。すぐさま、そのアルバムを再生しながら移動できるのだ。しかもジャケット写真つき。これはヤメられんぞ。ナビに関しては、トンネルの多い常磐自動車道や、高架下の外環の下道であるから、予想通り画面が動かなくなった。しかし、ナビにそこまでの期待はしていないのでこれでいいのだ。トンネルは一本道だし、高架下はたまに左車線に行けば概ね位置が拾えたし。なお、下のイメージ写真はハメ込み合成です。……って、一度やってみたかったんだよね、ハメ込み合成。

  画像の説明 画像の説明

  一度、家に戻ってカミさん乗せて買い物へ。ユニクロで浴衣を買ってみた。ラストサムライ観てからというもの、部屋着に着物を着たくて仕方なかったのだ(ミーハーかオレは)。ついでにギターを持って、最近ハヤリのギター侍の真似をしてみたじゃなぁ〜い。……って、実はほとんど弾けないんですけどッ!! 残念ッ!!

  画像の説明


2004-07-26(Mon) 次のマイルストーン

  はぁ〜、あづい。CPUと同じで、暑いと脳ミソのクロックも下がりまくりなのである。だらだらとテレビを観てすごしてしまい、ちっとも作業に取りかかれない。なにかしら作ってないと手もちぶさたになってしまう性分なんで、どうにも落ち着かないのだが、とはいえ暑いとどーにもダメなのである。

  しかも、車載PCプロジェクトがヘンに一段落してしまった。トランク内の電気の来てない電源ラインの調査は、当分できそうにないし。ここは、一発、日記に今後の構想を一部ブチ上げて、自らを追い込まないといかん。

  というわけで、次の目標は「LCDキャラクタディスプレイ」の製作に決定なのである。ナビが不要な場合、デカいディスプレイを装着することなく、簡便にジュークボックスを利用するための表示装置である。

  画像の説明

  とりあえず、機能として、

  • PCからのシリアル出力により、20x4のキャラクタディスプレイに情報を表示
  • 表示する情報は、演奏中の曲名など(ナビ関連は……どうしようもないか?)
  • デジタル電圧計の機能、デジタル温度計機能、赤外線入力機能も持たせる

などを考えている。

  現在のところ、

  • PICマイコン制御による、キャラクタディスプレイへの文字列出力
  • PICマイコン制御による、シリアル入出力
  • PICマイコン制御による、赤外線入出力

は個々に実現しているので、基本的には組み合わせになるのだが。

  ちなみに今日は「漢字かな交じり文のキャラクタディスプレイへの変換ライブラリ」をちょっと書いてみた。ChaSenという漢字カナ混じり文をカタカナ化してくれるツールをベースに、その出力を半角カナに変換するライブラリをRubyで書いたのである。キャラクタディスプレイには漢字表示ができないので、必要なライブラリなのである。

  あと、思いつくままに決まっている事項を並べると、デジタル電圧計機能はPICマイコンのA/Dコンバータを利用する。よって、PICは16F819あたりを利用。12Vの3端子レギュレータを利用してシリアル入出力の電圧、5Vの3端子レギュレータを利用してその他のロジックの電圧を得る。電圧計は車の電圧を1/4に分圧して、5Vの基準電圧との間でA/D変換する。電圧計、温度計の情報はPCからの要求に応じてPCに一度返し、必要に応じてPCからキャラクタディスプレイに表示するようにする。

  しかし……昨日のオフで「日記読んでます」っていわれるまでは、読みたきゃ勝手に読め、というイキオイだったのだが、改めてSVX乗りの人に「日記読んでます」っていわれると妙に意識してしまうなぁ。ちまたの車ブログと違って、車の写真もほとんどないまま、ほぼ工作日記と化しているのに、SVX日記の名前を名乗るのもサギのような気もしてきた。いつのまにやら今日の走行距離や給油記録コーナーとかも、さりげなく消えているし……(実は面倒になってきたんす(^o^;))。


2004-07-27(Tue) CCCDに負けない

  既に語り尽くされた感はあるが、スーパー腹立つコピーコントロールCD(=CCCD)の件である。まぁ、当初予想だにしなかった、PCの性能向上、CD-Rの普及、インターネットの浸透、mp3形式の登場により、著作権管理というものがグダグダになってしまったのは事実であるからして、音楽業界の気持ちもわからなくもない。

  わからなくはないが、とてもじゃないが理解は示せない。邪魔なことこの上ない割には、売上に貢献すると思えないからである。コピーが完全にできなくなったからといって、最初からコピーで済まそうと思っていた客は買わないハズである。逆にコピーをできなくしてしまうことにより、買う気のあるお客まで買わなくなってしまう可能性のが高いと思う。

  私個人のことを言えば、学生時代は月1枚以上CDを購入していた。が、結婚した今となっては、そう次々に買うこともできない。よって今は、

  • 村下孝蔵のCDなら購入
  • どうしても聴きたいCDがレンタルできなければ、購入
  • そこそこ聴きたいCDがレンタルできれば、レンタルを利用
  • そこそこ聴きたいCDがレンタルできなければ、あきらめる

と、いう感じである。なんにもおかしなところはない。極めて自然であろう

  しかし、購入にしろ、レンタルにしろ、mp3プレイヤで聴きたいわけだから、PCに落とさねばならない。ここで邪魔になるのがCCCDのプロテクトである。何の権利があって手元にあるのに聴かせてもらえないのだ? 特に購入したのに聴けないなんて、話にならん。んじゃ、買わない、ってことになりかねない。

  んじゃ、どうするか。聴かない? 私は曲がりなりにもエンジニアであるからして、その筋の解決方法でどうにかしてしまう。つまり「ミニプラグケーブル、ナウ、リターン」である。そう、ラジカセ間のコピーよろしく、安いCDラジカセの出力をサウンドカードに突っ込んでしまえばよいのだ。ただ、この方法には

  • 入力レベルの調整がうっとおしい
  • アルバム1枚が1個のファイルになってしまう

というふたつの問題がある。

  前者は、基本的にマメに調整するしかない。だが、小さめに調整しておいて、Linux上のsoxというツールを使うことで、録音後にかなりフォローすることができる。後者は、サウンド編集ツールを利用してなんとか切る。ただ、このサウンド編集ツール、なかなか良いデキのものがない。相手がwavの波形であるからか、GUIのものばかり。しかも60分という長いwavを読ませると、身動き取れないくらい重くなり、快適に切り出すことができないツールばかり(少なくとも私が試したものは)。

  で、長らくイライラしていたので、仕方ないから作った。特長は、

  • wavのサイズに関わらず、なにしろサクサク動く
  • リモートコンソールでも作業できる、擬似GUI表示
  • 効率的に切り出すことに必要な情報を適切に表示

である。例によってRubyスクリプトである。例によってGPLとする。

  画像の説明

  起動は「cccdct wavfile」。すぐさま、擬似ウィンドウが開く。画面左寄りの'['がカーソル位置。HとLで左右に大きく移動、shift+Hとshift+Lで左右に1カラム移動、JとKで拡大縮小である。切りたいポイントをカーソル位置に合わせて、スペースでマーク。Pでカーソル位置から3秒間を即席演奏することもできる。Mで各ファイルの長さを確認しつつ、チョキチョキと切り終わったら、shift+Wで一気に出力、shift+Qで終了である。いい忘れたが?でオンラインヘルプも出る。実は無音判定による自動マーキング機能(shift+A)もあるが、あまりデキは良くない。下手に使うより、フツーに切ったほうが正確で早いと思うが、ヤル気のある人は、ソースを読んでcccdct.conf.rbの内容を調整したりしてみてほしい。

  と、いうわけで、LinuxでCCCDに負けずにサクサクとmp3を作る方法をまとめると。

nohup wavr -c 2 -d 16 -l 3600 -r 44100 -s l -f /tmp/sound.wav &

  で、録音スタート。すぐラジカセの再生ボタンを押す(3600は3600秒=1時間録音)。

sox /tmp/sound.wav -e stat -v

  で、録音レベルを最適化するための数値を調べ、

sox -v x.xxx /tmp/sound.wav /tmp/sound_opt.wav

  で、実際に録音レベルを最適化。

./cccdct /tmp/sound_opt.wav

  で、切り出し編集。

for i in /tmp/sound_opt.wav.d/*.wav; do echo $i; lame -h $i; done

  で、一気にmp3化。あとはオマケだが、

./getcdinfo

  で、CD情報+ジャケット写真もゲットできる。ディレクトリにamazonの該当CDのurlのショートカットを置いておくこと。細かいことはRubyスクリプトであることだし、ソースを読んで対処して欲しい。

  以上が、私の「CCCDに負けない方法」である。


2004-07-28(Wed) 休みである

  昨日のCCCDの一件で異様に時間を取られてしまい、今日は休みである。ちょっぴりだけ昨日の補足をしておく。

  さりげなく昨日のコマンドライン等に出てきた、lameはmp3エンコーダ、wavpはwavプレイヤ、wavrはwavレコーダである。他にも、wgetとかconvertとかcurseライブラリとか、何も言及してないが、Linux系のツールをガシガシと使っている。昨日のツール類をマジで使う人は、適宜ググってなんとかすること。

  また、昨日のcccdctを利用してwavを切り出すには、あらかじめCDの各曲の長さをメモって作業すると楽である。

  以上、ちょっぴりだけの補足でした。


2004-07-29(Thu) 雑作業

  今日は特記すべき作業はなく、雑作業ばかりである。

  実は、ウチの職場は7/31から、世間一般と思い切りズレた盆休みなのである。フツー、これだけズレるとなにかしら支障があると思うのだが、ウチの場合、昔から法事に参加しないし、カミさんは外資系だから盆休みないし、地元の友人達はなんとか都合つけてくれる(つけられる?)しで、むしろ帰省ラッシュを避けて、SVXでカッとんで帰れるのでウレシイのであった。

  と、いうわけで、今日の作業は「帰省の際の片道400kmのロングドライブ」に向け、先日載せた車載PCへたっぷりと音楽を充填して、前回気になった若干の不具合の修正を行ったのである。

  まずは、ジュークボックスが素直にシャットダウンしない場合がある、という件だが、どーもこれRuby/tkのバグっぽい。Cygwin上からkillするとCPU全部喰ってしまう現象が頻発するのだ。結局、ジュークボックスアプリだけはウィンドウをクローズして、あとはシャットダウンスクリプトに任せることにした。といっても、ウィンドウのクローズはKeiboardで一発でできるので、さして面倒はない。よくよく考えられているガジェットであることよ。

  次は、プロアトラスのGPS開始だけメニュー操作が必要なことだが、これは全画面表示操作時に同時に行うようにしてアッサリ解決。起動時に一度だけBSキーを押す。楽チンである。

  あとは、非演奏中の曲目の色が暗すぎたりしたのをちょっと明るくしたり、ジュークボックスアプリをアップデートできるようなスクリプト(といってもcvs updateとmake installするだけだが)を組んだりである。ホント雑作業。

  そのうちやらなければならん大物物件としては、Webカメラを用いたオンボードカメラが残っているのだが、これはLCDキャラクタディスプレイが終わってからかな。どうも、DirectShowとかを使うらしいのだが、ソフトだけとはいえ結構面倒そう。

  とゆーわけで、今日も写真ナシ。すまん。


2004-07-30(Fri) いつの間にやら第2弾

  おわッ!! なにげにリンク元をたどってみたら、先日レビューした「Namco TV Classic 5 in 1 Games」の第2弾が出ているのを発見してしまった!!

 画像の説明 画像の説明

  先日のレビューの最後では「パックランド」「ギャラガ」「ドラゴンバスター」「マッピー」「ゼビウス」あたりで第2弾を、などと勝手なことを書いた。ところが、実際の製品は「ミスパックマン」「ポールポジション」「ギャラガ」「マッピー」「ゼビウス」の5本パックであった。いやいや、なかなかのラインナップである、実に60%の達成率であるし。

  正直「ドラゴンバスター」は残念だったが、「ポールポジション」は歓迎かもしれない。この類のゲームの場合、毎回パターンにハマらないゲームのが楽しいし、飽きがこない。プレイ時間が妙に長くなってしまうよりは、短めのがいい。まさに、うってつけではないか。ナイスチョイスといいたい。

  実は、既に持っている第1弾の方もまだ飽きずに遊んでいるのだが、パックマンとラリーXを7:3の比率で遊んでいる。早い話、他の3本は飽きてしまった。というのも、ボスコニアンは簡単すぎるし、ディグダグはポンプ攻撃が強すぎるし、ギャラクシアンは単調なのだ。パックマンはいまだに8面止まりで3回目のブレイクタイムが見えないし、ラリーXはかなり難しいのにプレイ感が爽快なのがいい。そういう意味から言うと、今回はむしろ自分がラインナップに挙げなかった「ミスパックマン」「ポールポジション」あたりが飽きずに遊べそうな予感がする。なんだかんだいって「ギャラガ」「マッピー」「ゼビウス」あたりは、ちょっと遊ぶにはプレイ時間が長すぎてしまう可能性が高い。

  ただ、不安なのは例によってボタンの配置である。今回はさすがに4方向レバーというボケはかましてこないと思うが、ボタン配置が若干妙である。リセットスイッチが手前に来たのも微妙な感じ。前回は「パックマン」のプレイ時にいいところで手がスベってリセットしてしまったことが何度かあるので、気になるところなのだ。

  ま、そんな不安はゲームのデキがよければ、たいしたことではない。第1弾は悪くないデキだったから、当然期待できる。早速ThinkGeekで注文して楽しみに待っていよう。

  さらに、ここで気が早いが第3弾を予想してしまうのである(←出るのかよ!!)。やはりココは「パックマン」「ミスパックマン」の流れを重視して「パックランド」でしょう。そうなると「ギャラクシアン」「ギャラガ」の流れもあるのだが「ギャプラス」はちょっと一般向けでない。そこで代わりに、比較的近い時期の剣士モノとして「ドルアーガの塔」と「ドラゴンバスター」を候補とし、やはりあまりプレイ時間の長すぎるものはパスということでやっぱり「ドラゴンバスター」を入れる。そしてスピード感あふれる「ラリーX」「マッピー」という流れから「メトロクロス」が入ってくる。じっくり遊ぶ系の「ゼビウス」を継承する良ゲームといえば「バラデューク」ですかね。最後は意外系の「ボスコニアン」「ポールポジション」という流れから「フォゾン」というところか。意外性でいうと「グロブダ」だが、個人的には「フォゾン」を強くお願いしたい。

  まとめると「パックランド」「ドラゴンバスター」「メトロクロス」「バラデューク」「フォゾン」である。ということで、ひとつ、よろしくお願いする次第である。


2004-07-31(Sat) 愛知へ帰省

  今日は昼から愛知へ帰省。特に渋滞もなく、実家に到着。走行は400km強。

  画像の説明