パジェロミニで自己診断

停車中なんとなく2WD↔4WD切り替えスイッチを触ったら突然ABS警告灯がついて以降消えなくなった。バッテリー外してみてもだめ。

パジェロミニでダイアグ

こんな時のために車にはダイアグ(Diagnosis)という機能がついていてどこに異常があるのかざっくり解るのだ。ただし最近の車はコンピュータを繋がないと何も見れなかったりするらしい。パジェロミニの場合はメーター内の警告灯が特定のパターンで点滅して故障箇所を特定できるという仕組み。

うちのパジェロミニは2002年式H58A、4気筒ターボ5MT仕様。 まず50cmくらいの適当な配線を用意して、診断カプラにブッ刺します。(下の図の1番) f:id:pu2x:20190317163741p:plain 診断(OBD)のカプラは運転席の左足の上らへんにあるよ。

そうしたら適当な場所でアースを取る。俺はキーシリンダーに差し込んだ。

それとあともう一つ、ボンネットを開けてABSアクチュエータ付近にあるABSのバルブリレー?のカプラを抜く。これをやっとかないとABS警告灯が点滅しない。f:id:pu2x:20190317164506j:plain

んでイグニッションONすると警告灯が点滅しはじめる。このとき長い点滅が10の位を、短い点滅が1の位を表す故障コードとなる。

f:id:pu2x:20190317165910p:plain 判明した故障コードを照らし合わせて故障箇所を特定する。

うちのパジェロミニの場合、4個中不明が2個、2個がリアのスピードセンサー不良らしい。 ま、正確にやろうとしたらサービスマニュアルが無いとどうにもならないんですけどね。。

参考

syuuri2012.web.fc2.com

MacBookAir(2011)のSSDを換装する

今年で8年目に突入するMacBookAirを騙し騙し使ってたものの遂にストレージを完全に読まなくなったためSSDの換装を決意した。

MacBookSSD事情

MacBookAir(Proも?)は独自規格のSSDが載ってるため換装は基本的に不可!・・・が、M.2のSSDMac用に変換する怪しいアダプタを噛ますと使えるとのこと。

買ったもの

アダプタはこれ。

MacBookの年式によって使うべきアダプタが異なるので注意。あとこのアダプタは切り欠きが微妙に大きくてSSDが嵌らないのでカッターとかで加工が必要。

で肝心のSSDはこれを使った。

最初ろくに調べもせずにM.2のSSDなら何でも使えるのかなーと思って一番速いやつを買ったら全く認識しなかった。M.2というのはあくまで物理的な形状の規格で、M.2にもSATAとかPCIeとかいろいろあるらしい。2011のMacBookAirで使えるのはSATAのほう。

ドキドキしながらパソコンの裏蓋あけてアダプタつけたSSD刺してリカバリーモードからディスクユーティリティ立ち上げたら無事認識された。よかった。

i3からurxvtを立ち上げると日本語がちゃんと表示されない問題

i3でmod+Enterでターミナル(urxvt)を立ち上げると日本語がちゃんと出ない。でもすでに立ち上がってるurxvtからurxvtを起動するとちゃんと表示される。で結構悩んだ末urxvtの起動時点でロケールが正しくセットされてないことが判明。

適当なファイルに

#!/usr/bin/zsh
LANG=ja_JP.UTF8 urxvt

と書き込んで、i3のコンフィグファイルにbindsym $mod+Return exec /home/user/bin/start_terminalとするとうまくいった。

urxvtのデーモンを使ってる場合はデーモンの方に環境変数を渡してやる必要があるので注意。

でも普通こんなん必要ないよね?俺がロケールの設定間違えてんのかな?

Magichome(magichue)のPythonライブラリを書きました

http://pu2x.hatenablog.com/entry/2018/05/17/172532

の時に買った中華スマートライト、Magichue(またはMagichome)をPythonから触るライブラリを作りました。

GitHub - namacha/python-magichue: Control Magic Hue in Python.

だいたいREADMEの通りです!

スマートロックを自作しました

Raspberry Piサーボモーターを使ってスマートロックを作ってみました。

買ったもの

構成

f:id:pu2x:20180828205109j:plain ぱっと見はこんな感じ。いろいろむき出しで雑だけど逆にカッコいいよね?そのうちちゃんとするから…そのうち。

リードスイッチはドアの開閉検知用とドアノブが捻られたのを検知する用にそれぞれ一つずつ設置してあります。

鍵の認証についてですが、最初は先駆者の方々同様NFCリーダを設置してSuicaとかIC学生証を鍵にするようにしました。ただ実際やってみるとドアの前に立って、財布からカードを取り出して、リーダにカードをかざすって流れが想像以上に面倒くさいんですね。これだったら普通の鍵でも変わらねえじゃんと。

そこでドアにくっついてるRaspberry Piに携帯が近づいたら解錠されるようにしてみました。ドアノブを捻ったタイミングであるMACアドレスをもつBluetoothバイスが近くにいれば解錠という仕組みです。(ただこれには問題があります。詳しくは後述)こうすると本当にハンズフリーで勝手に鍵が開くので結構未来っぽいです。

ついでにhomebridgeのプラグインを書いてスマホからも鍵の開け閉め+αをできるようにしました。 f:id:pu2x:20180828214610j:plain

機構部

一番肝心な部分ですが、Qiita@undo0530さんの機構を丸パクリ参考にさせていただきました。ありがとうございます。 qiita.com 今の所サーボモータダンボールと養生テープのガバ固定なのでたまにちゃんと鍵が動かないことがありますね。3Dプリンタでちゃんとした土台をつくれるといいんだけどね…。

ソフト側

サーボモータの制御はservoblasterを。デーモンを起動するときにservod --p1pins=15のようにサーボ制御に使うピンを指定してやらないとRaspberry PiのGPIOピンの入出力が全部効かなくなるので注意です。 鍵システムはPythonで雑に書きました。

ラズパイ上に室内のスマート家電全体を管理するWebAPIを立てておき、スマート電球とかスマートロックは全てAPI越しに操作するようにしました。こうすることで全てのスマート家電の操作のログを取ることができます。

ちなみに、WebAPIの名前は"maid"にした。メイドです。どうでもいいですね。

動作

家を出るとき

室内のボタンを押すと解錠されて、ドアを開けて外に出て、更にドアを閉めるとロックされるようになってます。ついでにそのタイミングで廊下の電気も消えます。

IMG_5156 from au s on Vimeo.

帰宅時

スマホを持って(スマートフォン中毒の私がスマホを持たずに外出することはありえない)ドアノブを捻ると鍵が開き、廊下の電気がつきます。

IMG_5158.TRIM from au s on Vimeo.

ちなみに自分が外出中に誰かがドアノブを捻るとSlackに警告が飛んできます。まあ警告されたところでどうしようもないんすけどね。 f:id:pu2x:20180828213056j:plain

いろいろ

このスマートロックはBluetoothMACアドレスで認証しているため、任意のデバイスでBluetoothMACを書き換えれば容易に鍵を開けられるでしょう(というか実際やってみたら開いちゃった)。そのためもういくつか認証ファクターを増やす必要がありそうです。ただまあ泥棒にとってはスマートロックをハックするより鍵穴をハック(ピッキング)するほうが楽でしょうね。

あと物理鍵を持っていないときに不具合で鍵が開かなくなると部屋に入れなくなるという普通ありえない事態が起こります!気をつけましょう!

もう4ヶ月くらい自作スマートロックを使ってますが慣れれば普通に快適です。もう鍵を出して〜閉めて〜開けて〜なんてできないっすねぇ。

後は友人に"3日間だけ有効な鍵を渡す"なんかも簡単に実現できるのもいいところですね。

追記

最初に使ってたサーボモーターが1年弱経ったところで壊れたので同じメーカーのSG5010というサーボに交換ついでに固定方法もすこし改善した。

ローカルに自作のモジュールをインストールする

忘れないうちにメモ。

import site
site.getusersitepackages()

で出てきたディレクトリ(なければ作る)にブチ込むとimportできるようになる。

走行中に車のバッテリーが上がるとこうなる

先日(半年くらい前)買ったアルトですが、納車までに一悶着あったので記録しておく。
当初は地元で仮ナンバーを取得し(車検切れの車輌のため)、自宅から60km程の所でクルマを引き取り、さらにそのまま軽検協(軽自動車のユーザー車検うけるとこ)に行ってナンバー取得、という算段であった。

当日

仮ナンバーは車検の切れた車輌を移動するため必要な最低限の日数分しか使えないため、クルマを引き取った当日になんとしても車検を通す必要があった。さらに時間の制約もあるので首都高で移動することに。
クルマを引き取り、15分位走らせてるところでまず異変に気づいたのが、「エアコンから出てくる風が猛烈に臭い」こと。なんというか生ゴミが焦げたようなヤな臭い。ただ古い車だしそんなもんかなと気にも止めず。というか教習車以来のMT車でそれどころではなかった。
マニュアル操作にもなんとか慣れてきて首都高も道を間違えることなく目的地の軽検協まで30分。あと5分ほどで料金所から下道に降りる地点、長いトンネルで突如それはやってきた。
・急にカーステの音声が消える
・灯火類が見えないほど暗くなる(ウインカー含めて)
・最初にSRS警告灯が灯り、次いでバッテリー警告灯が灯る
アクセルを踏んでも全く加速しない
パワーステアリングが効かなくなる
ブレーキがめっちゃ重くなる
これらがほぼ同時に起きた。(実際にはもっと前から前兆はあったのに気づかなかっただけかもしれませんが。)
その時点でようやく「このままだと完全に車が止まる」事に気づくが、運悪く追い越し車線を走行していたためすぐには左端に寄れず(ウインカーつかないからなおさら)、車に慣性が働かなくなるギリギリ手前でなんとか路肩の白線の内側に停められた。
不幸中の幸いか、異変が起きる1分くらい前に道路公団のパトロールカー(黄色くてゴツいアレ)を追い越してたので緊急停車してから程なくパトロールカーが来てくれたため後ろから追突されるという最悪の事態は避けられた。
その後は車内でそのまま1時間ほど待ち、道路公団のレッカー車で一般道まで運んでもらった。

原因

結局原因は発電電圧不足によるバッテリー上がりだった。
後から見たところ指定のサイズより大きいファンベルトが付いてたのがいけなかったらしく、微量に発電はしてるおかげでバッテリー警告灯は付かないものの確実にバッテリーが減っていって、完全に放電したタイミングで警告灯がついたと思われる。

教訓

古い車には電圧計を付けよう!