OSCの展示でも定番になりつつあるICカードの残高チェッカーですが、環境再構築とか基板の作り変えとかスクリプトとか諸々をアップデートしました。
環境再構築
まず、本体を自宅のカーテン用のRaspberry Pi Model Aとチェンジ。初代RSケースもわざわざ展示する感じでなくなってきたのと、PiBowケースの方がGPIOをいじりやすいので。
SDカードはMicroSDと小型変換アダプタに置き換え。MicroSDカードは以前買ったけどうまく使えず初期不良かと放り投げていたADATAのClass10の16GBを採用。どうも、RPi2ではちょいちょい相性が出るらしく、RPi1だとうまく使えたりするらしいです。しかも、インストール後は何事もなかったようにRPi2で動いたりする。なぞい。
Raspberry Pi • View topic - Brand new RPi2 wont boot
それはさておき、最新の環境をインストールして、libusbとかlibpafeとかをインストール。この手順もよく忘れたり手でやるのがだるかったりするので、Ansible playbook化しておきました。この後で紹介するスクリプトのダウンロードと自動起動化までやってくれます。lcd-icreader.ymlをいい感じにしてください。
スクリプト自体はこちら。
ストロベリー・リナックスのSB1602BWかスイッチサイエンスのI2C LCDを使って、Felica系カードの残高を表示するスクリプト。OSCのデモとかで使用中。 · GitHub
基板の作り変え
以前作った基板はケーブルで伸ばして、スタンドに括りつけていました。
ただ、これだとOSC展示機材運搬箱(Ejectコンテナ)に入れるとかさばるのと、準備と片付けが手間になるので、GPIOポートに直接させるようにしました。ちょうど2年目にしてリニューアルですね。
LCDモジュールだけはずさないとダメでしたが、本体・PaSoRiも含めてタッパーに納められるようになりました。SDカードは先述の通り本体につけっぱなしになったので、こんどからは準備も片付けもすっきり簡単にできますし、Ejectコンテナの中身整理も楽になります。
スクリプトのアップデート
わりと色々いじりました。
- waonの残高表示の改良(履歴がないカードがunknownになっていた)。履歴ではなく残高のブロックを見るようにした
- nanacoも履歴ではなく残高のブロックを見るようにした
- 以下のポイントの表示に対応
- 東急のるレージ名誉駅長PASMOのみ、PASMOを判別できるようになった
- 残高表示の時の表記を「(カード名) balance:」から「(カード名) ザンダカ:」に、「XXX yen」から「¥XXX」に変更してみた(カタカナとか円記号も出るんだなー!)
- 最新のWiringPiモジュールに合わせて関数を変更
残高表示の改良とポイントの表示は以下のサイトが大変参考になりました。ありがとうございます。
WiringPiモジュールは、メンテされているようでされておらず(Issueのコメントを見るに、作者はわりと見てはいるらしいけど忙しいらしい)、ドキュメントも古いままで軽くビビりましたなど。いつの間に関数名変わってたんだろ。本当はI2CもWiringPiを使ってみようとしたものの、説明とサンプル不足で断念。