mfiler4という2画面ファイラがある。
Windowsであふという2画面ファイラを使ったことのある人もいるかと思うが、あれを参考にしたらしく、見た目キーバインディングなど共通点が沢山ある。
mfiler4のすごいところは内部にxyzshという独自シェルを持っていて、そのシェルスクリプトによって強力にカスタマイズできる点。(なんとオブジェクト指向もできるらしい)
さて,燃料計の無いズーマーに燃料計付きのデジタルメーターを付けたいという話でしたが,
今日ついにSP武川のマルチ汎用メーターが届きました.
なんと,フロント部分のボルトが硬すぎて,手持ちの工具では緩めることができませんでした.
そこで,レンチセットを購入.使ってみて気づきましたが,これすっごい便利です.
めっちゃ楽に力を込めて外すことができました.
ここで友人K氏に助けを依頼し,
友人とバンバン取り外しにかかります.
前回も説明したとおり,ズーマー純正のフューエルセンダはアレです.1L以下になった場合のみ反応します.
前回の記事で説明したとおり,AF57のフロートセンサと入れ替え作業を行います.
これがズーマー純正のフューエルセンダ.シンプル…
バンバン取り外していきます.スターウォーズのロボットみたいな奴が現れます.
もう素っ裸です.初めてこいつの真の姿を見た….
ケーブル類がかなり奥まった部分に格納されているため,電気系統をいじりたければ前のパネルを外す必要があります.
さっそく,メータの説明書にしたがってバンバン配線をしていきます.
基本的には,純正メータに接続されている端子を付け替えるだけです.
ただ,純正メータはカプラで接続されているので,これをキボシに張り替える作業が大変でした.
別にカプラ,キボシどっちでも良いと思うんですけど,今回はメータに合わせてキボシに変更しちゃいました.
カプラは全て根本で切断です.(この時友人はひたすら「パイプカット!!パイプカット!!」と叫んでいました.)
追記: 基本、線は切断しない方がいいです。細長い棒でカプラの端子を押しながら引き抜くことで切らずに付け替えられます。
いや,多分もっといい方法あるので各自がんばりましょう.
電源,アース,速度メータ,RPMメータ,などを取り付けた時点で,一度キーをIGNITIONまで回してみます.
うまく行きましたね.まだ燃料計には接続していないので非表示です.
交換したフューエルセンダからもともと存在するフューエルセンダのカプラを切断(ダメ)し,そこにまさかのハンダ付けしました. (黄色を青/白へ,緑をアース(緑)へ接続します.)
ハンダ付けのゴリ押し感大好きです.(ダメ)
いつガソリンが爆発するか怖かったけどね.
このままだと,燃料警告灯に接続されているだけなので,新メータの燃料計端子,黄色の端子に先ほどハンダ付けした端子を接続します.
中々長いケーブルが必要になります.注意です.
そしてデジタルメータにて510 Ωの抵抗値を設定することで,正常に燃料の表示が行えました.
その他の設定項目は少し曖昧だったので,みなさん適当に設定してください…
スイッチをオンにした瞬間,一回警告灯が光るのがちょっと怖い.
燃料警告灯もう要らないので切断して別のメッセージにしようかな?
ホンダのZOOMER,愛好者も多い点で原付の中では珍しいバイクなのだが,実は1つ大きな問題点がある.
燃料計がない.
なんと,5L入るタンクが残り1Lになった時点でランプが点灯するだけ,という遠出したい時など,かなり怖い仕組みなのだ.
実際,何度もガス欠に見舞われてガソリンスタンドまで押して歩いた…(しんどかった.)
慣れてくると,オドメータと燃費(km/L)で計算できるようになってくるのだが,給油する度にメータの値をメモるのも面倒.
そこで,燃料計をつけるついでに,多機能メータに総取替えすることにした.
2006年製のキャブ車,ZOOMERの白です.(中古なので,以前の持ち主がフレームを赤に交換した模様)
走行距離14000kmでございます.まだまだ乗ります.
本当にアレだと思うのだが,まず純正の燃料センサー自体が燃料の残量を測ることができない.
1L未満になった時のみ,抵抗値が変化する?(この辺は詳しく調べてない)ようなセンサーらしいのだ.
そこで,一般的には専用の燃料計キット(参考:Amazon.co.jp: キタコ(KITACO) フュエルメーターキット ズーマー 752-1125200: 車&バイク)を使用してセンサーまるごと取り換え,メーターを追加する.
しかし,今回はせっかくなので純正スピードメータも取り外し,汎用多機能スピードメータに取り替えてしまうことにした.
そのためには,まずは燃料の残量に応じて抵抗値の変わるまともなフューエルセンダを入手する必要がある.
基本的にホンダの原付バイクはAF56(Dio)~AF58(ZOOMER)まで共通の形状らしい.
よって,AF56, AF57のフューエルセンダを流用することが出来るらしい.
というわけで,AF57(スマートDio Z4)の中古ガソリンタンクをポチりました.
きったねぇ…
ヤフオクで1500円です….
栓が伸びてる蓋部分を押さえて,グリっと回します.
左方向にしかまわらんかった.
少しだけ力が入ります.
こんなんで上の蓋が外れます.
ニュルッとセンサーが出てきます.
新しいタンクに入れる際,サビなどが付着しているとタンクに良くないので,今のうちにフキフキしときましょう.
ちゃんと動くのかどうか,テストも兼ねて簡単な回路に接続してみます.
センサのフロート(黒い部分)の動きに合わせてLEDの明るさが変化しているのが確認できました.
また, 電圧,電流を測定することで最大510Ωの可変抵抗であることもわかりました.
次回,スペシャルパーツ武川 スクエアLCD S&Tメーター SQLST1 05-05-0006が届き次第,交換作業を始めようと思います.
YAUC 2015
会津大学と宇都宮大学の合同発表会.宇都宮大学,UU-KISS(宇都宮大学感性情報科学研究会,韓国の6人グループではない)主催.
2015/12/19日(土).
グーグルでChrome開発に関わった及川卓也氏が「Qiita」開発元Incrementsの14人目の社員に | TechCrunch Japan
及川卓也さんが,ご自身の経験から大学生へのメッセージを発表された.
Capo: 1
A E F#m C#m
夕暮れの道を 並んで歩く
D A D E
酔いにまかせて 次の店まで
A E F#m C#m
口をすべらせ 君の瞳が曇る
D A D E
そんなつもりじゃ なかったんだけれど
A E F#m C#m
愛してるなんて 言い訳 みたいだね
D A D E
君がいないと まるでダメなのに
A E F#m C#m
そばにいて欲しい なんて かっこわるいね
D A D E
飲みすぎただけさ 気に留めないで
A E Em
それでも夜は星をつれて なんでもない顔して 旅に誘うよ
D Dm A F#m
トランクの中には 四つ葉のクローバー
D E A
この風が吹くならば
D E A
君と歩いてゆける
D E A
この風が吹くならば
D E F#m
いつの日も何度でも
D E A
君と歩いて行ける
よくわからないタイトルになってしまった。
#module mainScreen id, text
#modinit int screenId
screen screenId, 640, 480
button gosub "テスト", *button_click@mainScreen
text = "Hello World!!"
return
#modcfunc get_text
return text
*button_click
// mes text とはできない
mes get_text(thismod) // しかし、これも当然エラー
return
#global
こんな感じのコードを動かしたい。
そこで、若干無理矢理ではあるがマクロで真っ黒な黒魔術を使うことにした。
#module mainScreen id, text
#define global new_mainScreen(%1, %2) %tnew_mainScreen \
if 0 : *%i {\
_thismod@mainScreen = %1 :\
gosub *button_click@mainScreen :\
return } :\
%i@mainScreen = *%p1 :\
newmod %1, mainScreen, %2, %o %o0
#modinit int screenId, var dispatcher
screen screenId, 640, 480
button gosub "テスト", dispatcher
text = "Hello World!!"
return
#modcfunc get_text
return text
*button_click
mes get_text(_thismod@mainScreen) // 参照できる
return
#global
new_mainScreenマクロにより、button命令で分岐すると自動的に_thismod変数へモジュール変数が代入されるようになる。
ただこのままだと、全てのボタンの処理が同じになってしまうため、それぞれのボタンに対して別々の処理を割り当てられるよう、以下のように書き換えた。
#module mainScreen id, text, events
#define global new_mainScreen(%1, %2) %tnew_mainScreen \
if 0 : *%i {\
_thismod@mainScreen = %1 :\
gosub *button_click@mainScreen :\
return } :\
%i@mainScreen = *%p1 :\
newmod %1, mainScreen, %2, %o@mainScreen %o0
#define ctype register_event(%1) %tregister_event \
events(%1) = *%i :\
if 0 : *%o
#modinit int screenId, var dispatcher
dimtype events, vartype("label"), 64
screen screenId, 640, 480
button gosub "mes", dispatcher
register_event(stat) {
mes get_text(_thismod@mainScreen)
return
}
button gosub "dialog", dispatcher
register_event(stat) {
dialog get_text(_thismod@mainScreen)
return
}
text = "Hello World!!"
return
#modcfunc get_text
return text
#modfunc dispatch int objid
gosub events(objid)
return
*button_click
dispatch _thismod@mainScreen, stat
return
#global
new_mainScreen main, 0
events変数にオブジェクトIDに対応する処理を登録していく。そして、button_clickラベルにおいてそれぞれの処理を呼び出す関数dispatchを実行する。
何かもっといい方法があったらコメントしてください。