2008年05月
ZERO3をサイクルコンピュータとして使う妄想その2。
つーかもはや妄想じゃなくなってきた。
金曜の夜に、秋月電子通販にDSUB9ピンのコネクタを注文したら日曜なのに届きますた…。
土日は発送業務してないんじゃなかったっけ?
まあ気にせずさっくり配線。
コネクタ部分のアップ。
20KΩの抵抗なかったから10KΩにしたよ!
まあ電流が2倍流れちゃうだけだから大したことないです。
適当に絶縁してからホットボンドでモリモリ固めちゃう。
あとはソフトですが…
めんどかったけどなんとかコア部分は完成。かな?
表示の更新を100msおきにしてみたけど早すぎるとかえって見づらいですね。
センサーの上で磁石をシャカシャカする分には期待通りの動作をしているように見える。
ケイデンスセンサーに1秒おきに磁石を通せばケイデンス60くらいが表示されるし、速度センサーに対して同様にすれば、タイヤ周長2096mm×1時間=7,545,600mm=7.546Km/hが表示されます。
推定ギア比の表示については実際に自転車に付けて走ってみないと試せないのでなんとも。
コア部分はクラス化してあるので、これをWindowsMobileに移植して期待通りに動けばバンザイ。
ただ、プログラム終了してもセンサー読み取りスレッドが終了してくれない。
なんでかっていうとWaitCommEventでシリアルポートの状態変化待ちをしている間、センサー読み取りスレッドがそこで止まってしまうのであります。
なんかよくわからんから使ってなかったオーバーラップドI/Oモードを使う必要が出てくるかも…。
センサー上をマグネットが通過すればプログラム終了するんですけどね。
あとはチャタリング対策を全然やってないんだけどこれでいいんだろうかという不安が。
まあ、なんというかもう書くこともあんまし無いんですけど(ぉ
鶴見川遡上→多摩川くだり→国道1号→鶴見川 いってきました。
走行ログはこちら。登戸からログが途切れてて川崎まで吹っ飛んでますが気にしないように(ぉ
なんか今日は多摩川に入ったあたりから膝がなんか変な感じでした。
無理しちゃマズイかなってことで六郷橋まで行く予定を国道1号までに変更。
鶴見川に戻ってきたところでクリートをまっすぐに変更してみたけど、結果から言うと悪化しました(ぉ
改めて考えてみると多摩川入る前に野猿街道でトラックの後ろについて交差点の地下を走ってしまったのがまずかったのかなあと。
やっぱムリはよくないですね。
明日はおとなしくしておきます。
本日の成果
走行距離:78.32Km
平均速度:22.6Km/h
消費カロリー:2,362Kcal
ペダル回転数:15,025
平均ケイデンス:76
しょぼい結果だ…w
いきなりですがW-ZERO3をサイクルコンピュータとして使えたら面白そうだなという妄想は以前からあったのでございます。
ただ、ZERO3とセンサー間のインタフェースが問題。
USBホストがあるので色々とやり方はあるかと思うわけですが…
パラレルかシリアルポートが原始的なのでやりやすいかなと。
で、手元にちょうどUSB→シリアル変換もあるし。
まずハード的なインタフェースですが。
シリアルポートはデータのやり取りを行う信号線のほかに、お互いの状況をやり取りするための信号線も何本か持ってます。
PC側からモデム側への信号:DTR (Data Terminal Ready), RTS(Request To Send)
モデム側からPC側への信号:DSR (Data Set Ready), CTS(Clear To Send), Ring, RLSD(Receive Line Signal Detect)
これらはWin32APIでビットのON/OFF状態を設定・取得できるくさいので是非使いたい。
で、RS-232Cの信号線の電圧って-10V/+10Vとかそんななんですよね…。
こうなると電池で作り出すのはちょっとめんどい。(9V電池2個使うという手はありますが)
なので、電源使わずにPC側からの出力をうまく使う方法はないか。
うーん。
テスタで測ってみたところ、CC-RD200のセンサーは磁石が近くにないときは絶縁状態、あるときは100Ω以下とかそんな感じでした。
なので、まあこうすればいいんじゃないかなとか。
RTSとDTRへはそれぞれプログラムから+10Vと-10Vを出すようにしておきます。
スイッチが入ってなければ20KΩの抵抗を介してDTRに繋がるのでCTSへはー10Vが供給される。
スイッチが入ればRTSとショートするので+10VがCTSに供給される。
ただしスイッチ入ってる間、抵抗に電流が流れるので電力消費しますね。
まあサイコンとして使うならセンサーを磁石が通過するなんて一瞬だし、20mWしか消費しませんけど。
というわけで実験。
まずは適当にテスト用ソフトを作成。
DTRとRTSはチェック入れると+10Vが出ます。
テスター繋いでおくと、画面でチェック入れたときにテスターから音が出ますw
なかなか愉快。
あとはDTR,RTSと、センサー入力として今回はDSRを選んで接続。
で、試してみたら、ちゃんとセンサーに磁石を近づけたときだけテストアプリのDSRのボタンがへこみましたよ!
というわけで、最大4ビットまでのON/OFFの入力が特別なハードウェアなしに可能そうなことが分かりました。
ただ、これ実際自転車に付けて走ったとして、ZERO3のCPU速度でパルスを取りこぼさないようにすることが可能かどうかが不安。
やるとしたらパルス計測用に優先度の高い別スレッド作ってWaitCommEventとかで拾うのがいいのかなと思っています。
あと、今回使ったシリアル変換ケーブルがZERO3で使えるか検証しておりません(だめじゃん)
某氏のおすすめ、PioneerのSE-CLX9です。
今まで使ってたのがSHURE E4cなわけですが、気が付くと右側が断線しかけてきてました。(被服破れてシールド剥き出し)
まだ使えるっちゃ使えるんですが早めに次のを用意しておこうということで(ぉ
で、このSE-CLX9ですが、イヤーホルダとイヤフォンチップを自分に合ったサイズに交換することでサイズピッタリに合わせられるんですな。
あと、ドライバから伸びるノズルを交換することで周波数特性をある程度変えられるんでございます。
インプレスの記事がそのへん詳しいです。
まあ、まずはデフォルト状態で試してみる。
…。
ぴったりハマりました(汗)
音質も、まあいいんじゃね?みたいな感じ。
このまま使っていいんじゃないだろうか…
と思ったけどせっかくなので少しいじってみることに。
まずはイヤーホルダとイヤフォンチップですが…
イヤーホルダを標準のMサイズからLサイズにしたところ、耳の奥までしっかり入らず、低音が明らかにスカスカに…。
Sだと奥まで入るけどちょっとした事で抜けてしまいそう。
で最終的には右耳がM、左耳がSということになりましたよ。
左耳はMでもうまく装着しないと浮いてしまう事があったので、Sにすることでしっかり入るようになりました。
イヤフォンチップはSだと若干耳の穴から浮いてしまう感じ。
LLだと明らかに入らないw
というわけで両方Mです。
で、次にノズルですが…。
音にクリアさが欲しかったので、まずは High Tune 1 にしてみた。
ていうか自分の耳が歳のせいで高音聞こえなくなってきてるだけのような気もするんですがね…。
ピアノを聴いても昔みたいな感じがしないような気がしているんでございますよ…。
で、High Tune 1にした結果ですが…
うーん、よくわかんね(ぉ
音のアタックっていうかエッジ?が若干クッキリしたような気はしないでもない。
ボーカルも明瞭になったような気がする。
でも2台用意して交互に突っ込んでみないと正確なところはわかりません。気のせいという可能性もあるw
あとは、聞いててなんか疲れるようになった気もする…。
まあ、当分この設定で使ってみましょう。
ノズルはイヤーホルダとイヤフォンチップとリングを外さないと交換できないからめんどいんですよ(ぉ
あとは遮音性能ですが、E4cと比べても遜色ないよーなきがする。
とはいえ、まだ通勤で使ってないので微妙なところですが。
ていうか明日は台風だから電車通勤だわ。使ってみよう(ぉ
タッチノイズ(コードに触ったときに聞こえてしまう音)も不安だったんですが、思った以上に小さい。イヤーホルダがドライバをしっかり耳に固定してるからかな、と思ったりします。
値段なりには働いてくれそうでよかった。
やっぱ耳に合わせて形状をカスタマイズできるのは予想以上によいですな。
ホームページはこちら。
http://www31.ocn.ne.jp/~yoshio2/
2ちゃん系掲示板に書き込むときのトリップは ◆GBrDo4K0i. を使用しています。
ヨシヲ