iPadとNFC/FeliCaリーダ・ライタをつなげてみる
iPadなどのiOSは、標準でFeliCaやNFC(ディバイス)には対応しておらず、もちろん、独自ドライバを組み込むこともできません。では、絶対に繋げられないかというと、そういうわけでもありません。
少し前にテストを兼ねてデモを作ったのですが、別案件で機材を流用する必要が出てきたので、環境を潰す前にせっかくなので参考までにご紹介。
こんな感じで繋げられます。
写真では、読み取った(モバイル)FeliCaのIDmをiPadのノートに出力しています。
(ガラケーのLEDが電波を受け点滅しているのがわかります)
■やり方の概要
機材としては、FeliCa/NFCリーダーライタとしてPasori(RC-S330)を使います。また、マイコンとしてArduino (Uno R3)を利用します。
Pasoriのドライバは当然のことながらiOSには搭載されていませんし、先述した通りカスタムドライバも提供することはできません。ではどうするかといいますと、PasoriにiOSが標準で対応しているディバイスのふりをさせ、強引につなげてしまいます。
具体的には、PasoriをHID Keyboard(USBキーボード)として認識させて、Pasoriが読み取ったデータをキーボード入力データに変換してiPadに送り込みます。この方法を利用すればPasoriに限らず、どのようなディバイスのデータもiPadに送り込むことができますので、テクニックとして覚えておくと何かと便利です。
変換(偽装)はどんな方法で実装してもいいのですが、実用性を考慮して今回はArduino(Arduinoはこちらをご覧下さい)を利用しました。なんと、Arduino用のドライバがSONYさんから提供されています(素敵)。
それらを組み合わせると、IDmを読み取る仕組みは簡単につくれます。もちろん、Arduino上のソフトの実装次第で、FeliCaやNFCを利用しただいたいのアプリ(いわゆるFeliCa鍵を利用しないもの)は作れます。
よかったらみなさんも挑戦してみてください。時間ができたら、環境やコード、参考にさせていただいたサイト等についてもう少し詳細に説明できればと思っております。
今日のところは「こんなふうにしたらできるぞ!」というご紹介ということで。。。
とりあえず使用した機材のメモ。
- 1)iPad Retina 16GB
- 2)Pasori(RC-S330。余談ですが380はダメみたい。。。)
- 3)Arduino Uno R3
- 4)USB ホストコントローラ(Pasoriを繋げるため)
ではでは。