2010年2月27日土曜日

久々にオイル交換

今日,久々に DIY でオイル交換をしました.
おわり.





と「ここはお前の日記帳じゃないんだ、チラシの裏にでも書いてろ、な?」って叩かれるレベルの作業だったはずなのですが.

 いつものようにジャッキアップ→ボルト 13本外す→アンダーカバーを外す,だけでやる気の 65% を消費した後,ドレンボルトを外したら だばぁー ときったないオイルが出てくる出てくる.前回交換時から 3,000km しか乗ってないにもかかわらず 1年も放置すると色がヤヴァイw

 で,オイルが抜け切った後ドレンボルトを締めようとして問題発生!
 再利用する気満々 (よい子はまねしちゃダメ!) だったドレンボルトのパッキンが行方不明… 抜いたオイルの中とか探してみたけど,やっぱりない.当然スペアなど持ってないので,(足車が出払ってたので原チャで) 買いに行くことに.

 一軒目,普通にオイル交換もやってるホームセンター.ボルトを一目見て,店員「外車のですか? 合うのがありませんねー」orz
 ならばとお次は,スーパーオートバックスに GO! 現地に到着後,駐輪場を探して原チャでうろうろしてみるも,よく考えたらオートバックスに駐輪場なんてあるわけないじゃんwww 仕方なく人目につかないところにコソッと停めたら,その様子を明らかに奇異なものを見る目つきで見つめる店員が一人.

 ああ,なんか聞こえるはずのない声が聞こえるよ…
店員(・∀・).。oO(お前は車もないのにスーパーオートバックスに何しに来とるんだwww)
 ボ,ボクだってちゃんと車持ってるんだからねっ(;´д⊂)
 帰りは買ったパッキンをわざわざ袋から出して,車パーツを買ったことを店員に見えるように原チャのとこに帰っていきましたとも(;´д⊂)

# 結局スーパーオートバックスにもパッキンはなかったのですが,スズキ車
# 用のドレンボルトの付属パッキンがぴったりだったので,それで代用.

 その後は,床にぶちまけた廃油処理とか自らいらん仕事を増やしつつ,昼からはじめた作業がなんだかんだで 16時までかかりました.

 しかし,さすがは新しいオイル,エンジンの吹けが全然違うぜ!



なんてことが少しでも感じ取れれば少しは苦労のしがいもあるんですがねw
ああ,なんかもう疲れた…

2010年2月24日水曜日

Photomate 887 10Hz 化

追記: MtkDLut Ver.1.27 から,下記のようなことをしなくても 10Hz 設定できるようになった模様.

----------------
Photomate 887 が定格外ながら 10Hz 化できるのは有名な話だが,肝心の 10Hz 化できるツールは存在しないようなので,MtkDLut にパッチ当ててみたらあっさりとできてしまったw というわけで,パッチファイル置いときますのでほしい人はどうぞ.
MtkDLutUpdate10Hz.lzh
※ただし,この 10Hz 化パッチを使用したことによるいかなる不具合も私は責任を持ちませんので,自己責任で使用してください.
公開は終了しました.

手順:
1. MtkDLut Ver 1.24 2010 2/6 を落としてきて解凍
2. MtkDLutUpdate10Hz.lzh を解凍して MtkDLut.exe と同じディレクトリに MtkDLutUpdate10Hz.exe を置く
3. MtkDLutUpdate10Hz.exe を W クリックすれば 10Hz 対応化パッチ当てが完了
4. MtkDLutUpdate10Hz.exe はゴミ箱にポイ
5. MtkDLut.exe を起動すると,Period (mS) の欄に 100 が入力できるようになるので,この状態で SET ボタンを押せば PhotoMate 887 が 10Hz で動くようになるはず.

乗用車と比べてカートは短い距離を遅い速度で走るから,相対的に GPS の分解能というか解像度というか,が落ちてしまう.世間一般の評価では「5Hz で十分,10Hz は不要」という意見が多いようだが,カートのようにチマチマと曲がる場合はどうなんだろう? あとタイム計測においては,ログ Hz が多いに越したことはないんじゃないかと思っていたり.

今度のカートで実験してみるか.

2010年2月12日金曜日

セグウェイでよみがえるあの頃の記憶

 グリーンピア三木にあるオフロードセグウェイに乗ってきました.

 タイヤが普通のよりごっついのが付いてて,芝生の上を勝手に走り回るだけなんですか,おもろい(笑) 体重移動で前に進むのは,今まで乗ったどんな乗り物とも違っていて不思議な感じなんですが,それでいて直感的な操作なので,乗ってすぐに普通に乗り回せました.と思う.

 曲がるときは体重移動ではなくハンドルを左右に倒すんですが,体ごと左右に傾けて結果的に体重移動みたいな感じで曲がった方が自然に曲がれるみたい.ていうことに気づいてから,何かに似てるんだよなーこの感じ,と妙に心の奥底に引っかかっていたんですが…


これかwww↓↓↓
「ローラースルーGOGO」
子供の頃よく遊びましたね~懐かしいですね~

同意されたあなた,オサーン認定!! m9(・∀・)

2010年2月10日水曜日

VARDIA RD-S1004K iEPG 録画予約(2)

2010/4/3 追記:
VARDIA 予約メール送信プログラムを正式(?) にフリーソフトとして公開した.
RD-iEPG

下に書いたスクリプトにいくつか機能追加されている.
SMTP 認証・FireFox 設定は,トラックバックをいただいた「ぷじょ~る君」様の記事を参考にさせていただきました.ありがとうございます!

以下は過去に書いた記事.
-----

あけおめ.

PC から VARDIA RD-S1004K の録画予約を,ONTV を使ってやる環境は完成したけど,ONTV のサイトがイマイチ使いにくいのと,この方法はメールフォワードスクリプトが置ける環境の人しか使えないなぁ,というわけで,普通の iEPG 番組をクリックしたら予約メールを生成して VARDIA に送信するスクリプトを書いてみた.
//*** メール送信設定 *********************************************************
var Msg = new ActiveXObject( "CDO.Message" );
var CDO = "http://schemas.microsoft.com/cdo/configuration/";
// ★VARDIA のメール予約パスワードを記述します
VardiaPasswd = "password";
// ★VARDIA の録画オプションをお好みで記述します
VardiaOpt = "RT1 YX KY CPY";
// ★送信元メールアドレスを記述します
var From = "from@hoge.com";
// ★VARDIA のメールアドレスを記述します
Msg.To = "vardia@hoge.com";
// ★SMTP サーバ名・ポート番号を指定します
Msg.From = From;
Msg.Configuration.Fields.Item( CDO + "smtpserver" ) = "smtp.gmail.com";
Msg.Configuration.Fields.Item( CDO + "smtpserverport" ) = 465;
Msg.Configuration.Fields.Item( CDO + "smtpauthenticate" ) = 1;
Msg.Configuration.Fields.Item( CDO + "sendusername" ) = From;
Msg.Configuration.Fields.Item( CDO + "sendpassword" ) = "smtp_passwd";
Msg.Configuration.Fields.Item( CDO + "smtpusessl" ) = 1;
//*** ★放送局→CH番号テーブル ***********************************************
// 以下の書式で,iEPG放送局名 と VARDIAチャンネル番号 の対応を記述します.
// iEPG放送局名は,全角・半角・スペース等を正確に記述する必要があります.
//
// 書式: "iEPG放送局名" : "VARDIAチャンネル番号",
// station: BSDT??? になってるやつは自動的に変換するので,ここで指定する必要はない
var Channel = {
//-- INSERT NEW CHANNEL --
"DFS0B400" : "D011-1", // NHK総合(関西)
"DFS00808" : "D021", // NHK教育(関西)
"DFS00810" : "D041", // 毎日放送
"DFS00818" : "D061", // ABCテレビ
"DFS00820" : "D081", // 関西テレビ
"DFS00828" : "D101", // 読売テレビ
"DFS0A430" : "D051-1", // 京都テレビ
"DFS0B430" : "D031", // びわ湖放送
"NHK総合" : "D011-1", // NHK総合(関西)
"NHK教育" : "D021", // NHK教育(関西)
"毎日テレビ" : "D041", // 毎日放送
"ABCテレビ" : "D061", // ABCテレビ
"関西テレビ" : "D081", // 関西テレビ
"読売テレビ" : "D101", // 読売テレビ
"KBS京都" : "D051-1", // 京都テレビ
"びわ湖放送" : "D031" // びわ湖放送
};
//*** 以下は変更の必要はありません *******************************************
main();
function main(){
var EOL = "\r\n";
if( WScript.arguments.length < 1 ){
WScript.echo( "iEPG ファイルが指定されていません" );
return;
}
// オブジェクト初期化
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
// iEPG ファイルパース
var fp = fso.OpenTextFile( WScript.arguments( 0 ), 1/*ro*/ );
var Prog = new Object();
Prog[ "program-subtitle" ] = "";
while( fp.AtEndOfStream == false ){
str = fp.ReadLine().replace( /[\x0D\x0A]/, "" );
if( str.match( /^([^:]+):\s*(.*)/ )){
Prog[ RegExp.$1 ] = RegExp.$2;
}
}
fp.Close();
fso.DeleteFile( WScript.arguments( 0 ));
// ChCode 取得
var ChCode;
if( !( ChCode = GetChCode( Prog ))) return;
// program-id キャッシュ取得
var TitleCacheFile = WScript.ScriptFullName.replace( /[^\.]+$/, "dat" );
var TitleHit = 0;
var TitleList = [];
var Title = Prog[ "program-title" ]
.replace( /\[.*?\]/g, '' )
.replace( /[  ]+/g, '' );
try{
fp = fso.OpenTextFile( TitleCacheFile, 1, 0 );
while( fp.AtEndOfStream == false ){
var title_tmp = fp.ReadLine().replace( /[\x0D\x0A]/, "" ).split( "\t" );
if( title_tmp[ 0 ] == Prog[ "program-id" ]){
TitleHit = 2;
}else if( title_tmp[ 1 ] == Title ){
TitleHit = 1;
}else{
TitleList.push( title_tmp );
}
}
fp.Close();
}catch( e ){}
// open hoge prog add 20091214 2045 2046 D012
str = "open " + VardiaPasswd + " prog add " +
Prog.year + Prog.month + Prog.date + " " +
Prog.start.replace( /:/, "" ) + " " + Prog.end.replace( /:/, "" ) +
" " + ChCode +
" " + VardiaOpt + EOL +
Prog[ "program-title" ] + EOL +
Prog[ "program-subtitle" ] + EOL;
// 確認
shell = WScript.CreateObject( "WScript.Shell" );
// -1=自動で閉じない、4=はい&いいえ
ret = shell.Popup((
TitleHit == 2 ? "★★★予約済み★★★\n" :
TitleHit == 1 ? "☆☆☆予約済みかも?☆☆☆\n" : ''
) + str, -1, "RD-iEPG - 予約しますか?", 4 );
if( ret != 6 ) return;
// program-id キャッシュ書き込み
fp = fso.OpenTextFile( TitleCacheFile, 2/*w*/, 1/*create*/ );
fp.WriteLine( Prog[ "program-id" ] + "\t" + Title );
for( var i = 0; i < 99 && i < TitleList.length; ++i ) fp.WriteLine( TitleList[ i ][ 0 ] + "\t" + TitleList[ i ][ 1 ]);
fp.Close();
// メール送信
Msg.Subject = "RD-iEPG";
Msg.Configuration.Fields.Item( CDO + "smtpconnectiontimeout" ) = 60;
Msg.Configuration.Fields.Item( CDO + "sendusing" ) = 2;
Msg.Configuration.Fields.Update();
Msg.TextBody = str;
Msg.Send();
}
function GetChCode( Prog ){
if( Channel[ Prog.station ] ){
return Channel[ Prog.station ];
}
if( Prog.station.match( /^[BC]SDT/ )){
return Prog.station.replace( /DT/, "" );
}
// 放送局→ch 番号 が未登録
var ChCode = InputBox( "「" + Prog.station + "」の VARDIA でのチャンネル番号を入力してください\n例: D011 D021-1 BS101 等", "RD-iEPG", "" );
if( typeof( ChCode ) == "undefined" || ChCode == "" ) return undefined;
//WScript.echo( '"' + ChCode + '"' + WScript.ScriptFullName );
// 旧スクリプトリネーム
fso.MoveFile( WScript.ScriptFullName, WScript.ScriptFullName + ".old" );
// スクリプトに ch 定義を追加する
var fpIn = fso.OpenTextFile( WScript.ScriptFullName + ".old", 1 );
var fpOut = fso.CreateTextFile( WScript.ScriptFullName, 1 );
while( fpIn.AtEndOfStream == false ){
str = fpIn.ReadLine();
fpOut.WriteLine( str );
if( str.match( /INSERT\sNEW\sCHANNEL/ )){
fpOut.WriteLine( '\t"' + Prog.station + '"\t: "' + ChCode + '",' );
}
}
fpIn.Close();
fpOut.Close();
fso.DeleteFile( WScript.ScriptFullName + ".old" );
return ChCode;
}
function InputBox( msg, title, init ){
//JScriptからVBSのInputBox関数を実行
var oSC = new ActiveXObject( "ScriptControl" );
oSC.Language = "VBScript";
oSC.AddCode(
'Function InBox( prompt, title, default )\n' +
' InBox = InputBox( prompt, title, default )\n' +
'End Function\n'
);
return oSC.Run( "InBox", msg, title, init );
}
view raw rd-iepg.js hosted with ❤ by GitHub
このスクリプトを *.js で保存して,★でコメント書いてる内容を適宜修正して,*.tvpi にこの *.js を関連付ければ OK.

関連付けが,レジストリを直接いじらないとできないので,
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.tvpi]
@="tvpifile"
[HKEY_CLASSES_ROOT\.tvpid]
@="tvpifile"
[HKEY_CLASSES_ROOT\tvpifile]
@="iEPG ファイル"
[HKEY_CLASSES_ROOT\tvpifile\shell\open\command]
@="wscript.exe \"C:\\Program Files\\rd-iepg\\rd-iepg.js\" \"%1\""
view raw rd-iepg.reg hosted with ❤ by GitHub
を hoge.reg として保存して W クリックすれば関連付けできる.
(*.js スクリプトは C:\Program Files\rd-iepg\rd-iepg.js においてあるものと仮定)

いつも使い慣れている番組表サイトで予約できるので使いやすいヽ(´ー`)ノ

# RD-X9 とかでも使えるかどうかはわからんけど,たぶんつかえるんじゃ?

2010年2月6日土曜日

午前 3時 2分カート大会 2010シーズン Rd.1


 というわけで,午前 3時 2分カート大会 2010シーズン Rd.1 が開催されました.
 今回は久々の大盛況で,総勢 11人! というわけで 5+6人の 2グループで走行かぁ,と思っていたら,

係員「11人同時走行できますよ」
工エェェ(;゚Д゚)ェェエ工!?

 というわけで未曾有の 11台レースパック開催www

 ピットに並んだビレルの数はまるで大盛況ショッピングモールの駐車場状態! こんだけ多いと全車グリッドに並ぶだけで結構時間がかかる.当然後ろのほうのグリッドは路面に描かれてないのでチョー適当に停車.しかもこの大会の特殊ルールで,決勝はタイムの遅い順グリッドなので,スタート直後の 1コーナーのカヲス度は未体験ゾーン過ぎるwww まぁその辺は動画を見ていただければ雰囲気が伝わるのではないかと.

# なんか今設定されてるグレード 1基準タイムは以前よりすごく甘い気がするので,ライセンス取るなら今がチャンスの気がする…

2010年2月3日水曜日

ケンシロウ進数

# 完全な内輪ネタ
ケンシロウ進数にインスパイアされて「くちぷる進数」を発明したぞ!!

[sylphide ~]# cat pulu.pl
#!/usr/bin/perl -w
$_ = sprintf( '%b', $ARGV[ 0 ] );
s/1/ぷ/g;
s/0/る/g;
print "くち$_!!\n";
[sylphide ~]# ./pulu.pl 2
くちぷる!!
[sylphide ~]# ./pulu.pl 100
くちぷぷるるぷるる!!
[sylphide ~]# ./pulu.pl 123456789
くちぷぷぷるぷるぷぷるぷぷぷぷるるぷぷるぷるるるぷるぷるぷ!!
[sylphide ~]#

くっ,くだらねぇ…_| ̄|○

2010年2月2日火曜日

GPS タイム計測精度

 ちょっと気になったので,美浜サーキットでのラップタイム計測の精度を調べてみた.


 使用した計測器は以下の 3つ.
AMB…コース公式の計測器 (電波式?)
磁気…自作データロガーの,磁気センサーによるタイム計測
GPS…VSD for GPS の自動計測モードでのタイム計測

 で,各ラップのタイム差をグラフにしたのが上の図.

 公式タイムと GPS との差 (GPS-AMB) が 最大 0.03s ということで,意外と精度がよかったことが発覚.
 使用した GPS レシーバの PhotoMate887 の CEP が約 3m とどこかで見た気がするので,これが正しいと仮定すると,スタートラインを 100km/h で通過するときのタイム誤差は±0.108s になるから,このくらいの精度しか出ないと思って「『簡易』ラップタイム計測」と命名していたのだけど.GPS の相対位置の測位精度は結構高いということか.