goma プロジェクト

goma開発日誌 1 「考古学した」

投稿日:

gomaとは、大学に奪われたオートロックを取り戻し、快適な施解錠を実現することが目的のプロジェクトです。ひらけゴマってな。

男もすなる開発日誌といふものを云々という感じで、今回から開発日誌をつけます。

開発をやりなおした

このシステムは一年くらい前から開発してたんですけど、開発者がぼくしかいなかったり、そのぼくが忙しかったりでだいぶ放置していました。進捗としては電子工作ド素人だったので echo でLチカして目がやられるなどしたんですがそれくらい。

じゃあ読んでる人も目をつぶそう。ぼくもやったんだからさ。

Lチカをしたひと

そうこうしているうちに一年経ってしまったのが幸か不幸か、最近プロジェクトメンバーが増えて開発の機運が高まってきました。新メンバーの参入により、電子工作石器時代のこのプロジェクトに文明の光が明るく灯り、ついでにぼくのボロボロ設計は光に霞んで消えて無くなり、今日から開発日誌をつけ始めても自然な位まっさらなスタートを迎えたのです。

発掘した

ある日、某研究室の奥地、かつて先代が何か作業していたらしいが当時を知るラボメンでもわからない先カンブリア時代の地層から古代兵器を発掘しました。

ステッピングモーター、回転を認識するスイッチ、いかにも鍵回すぜという感じに作られたアクリル板、ラズパイ。……これは、施解錠するやつでは?

どうもステッピングモーターが壊れているらしく、FeliCaを受け付けてくれはするものの、一向に鍵は回りませんでした。が、工作技術も経験もないぼくのため、参考にとっておくことにします。

設計を概観する

目下作ろうとしているオートロックはこのような感じ。

  • FeliCaを使う
  • サーボで鍵を回す

よくある設計なのですが、 FeliCaを使った認証はそんなに安全ではない こと、発掘した先行研究(と呼ぶのかは知らない)を見る限り 装置を安価・簡単に作れるわけではない こと、 メンテナンスが技術者がいないとできないこと が問題として挙げられました。

ソフトウェアをなんとかする

まず、FeliCaを使った認証ですが、カードそのものを(Enterpriseな方法含めて)コピーされたらおしまいなので、おしまいにならないようにする手段を考えるところからはじめました。

認証方法としては、ひとまず書き込み可能な領域にワンタイムキーを書き込むこととします。これに加え、読み込むことのできない領域がどのセクタにあるかをカードの特定に利用するようにします。これで、鍵がわりのカードを複製するには、空のカードにgoma用のデータをコピーするだけでなく、カードがSuicaならSuicaらしきデータが、AimeならAimeらしきデータが含まれていないとならなくなります。この状態でもまだ読み込むことのできない領域を作り出すことができる環境では鍵を取られてしまうため、「いま鍵をあけましたか?」とアクティビティの確認を取らせるようにして、鍵の剽窃対策を行います。

ほかにも、ユーザー情報の管理方法は簡単とはいえGoogle SpreadSheet / Google App Scriptを使うのはセキュリティ的にどうなのか?とか、Slackのアプリにすればフロントエンドを作らず、しかもユーザビリティの高いアプリになるのでは?という案などが上がりました。

一人だと上がらなかった案がポンポン上がってきて、すごいな、と思う反面、一年間も何をやっていたのかと自分で思って悲しくなります。何をやっていたかでいえば金銭に困って倉庫でひたすら箱を運ぶ、社会の歯車的仕事に従事していたとしか言いようがないのがまた悲しい。今日も残高3000円とかなのを思い出してより悲しい。何の話?

ハードウェアをなんとかする

発掘されたシステムでは、ステッピングモーター、鍵の開閉を検知するスイッチ、ドアの開閉を検知するスイッチ、ドアを解錠するスイッチ(と思われる)、FeliCaのリーダー/ライターで構成されていました。

このステッピングモーターが曲者らしく、定格12Vなのに12Vで回すと壊れやすくなるらしい。定格とは?

ステッピングモーター・カタコンベ

研究室には似たようなモーターがごろごろ転がってカタコンベを形成していたんですが、もしかするとモーターの死と解錠の便利さとの戦いを繰り広げていたのかもしれないですね。あれ、考古学か?

そうした反省を経て、新しく目をつけたパーツはこれら。

  • FeliCa リーダー/ライター
  • サーボモーター(SG92R)
  • チルトセンサー/傾斜センサー
  • 磁気センサー

モーターは耐久性が(例のステッピングモーターよりは)まともなものとし、鍵の開閉をチルトセンサーで、ドアの開閉を磁気センサーで読み取ることで、オートロックをやっていくことにします。パーツが小さく、感圧スイッチと違って設置位置が比較的自由なので、回路も小型・簡潔にできるのでは?という考えからです。簡潔になると「パーツが壊れてもこれ買ってここにつければいいよ」みたいなドキュメントベースの運用ができて、故障しても人に任せられるし、配線を忘れて修理が全然できないとかの悲しい事件を起こさずにすむのでは?という野望があります。

というわけで、いつか秋月に行くか通販します。

まとめ

考古学した。

-goma, プロジェクト
-

Copyright© ソフトウェア工房 , 2019 All Rights Reserved Powered by AFFINGER5.