🎃

Arduino(8) Felica読み取り

2021/08/24に公開

はじめに

Felicaカードの読み取り機能を追加しようと思います。なぜならRC-S620/Sというものが手元にあったからです。

RC-S620/Sとは

こんなやつ

Felicaカードをあてると反応してくれて、カード番号(IDm)を取得出来る。
RC-S620/SはArduinoに接続するための変換基板(FFC-6)が必要みたいです。

配線

FFC-6

pin 内容 詳細
1 Vdd 電源(3.3V)
2 RxD 通信(受信)
3 TxD 通信(送信)
4 GND 電源
5 Reserve テスト出力端子
6 GND 電源
基板にはとくにpin番号の記載が無いので、どっちが1なのかが不明ですが、上記はFFC-6の記載が見える状態で左から1番として記載しています。
Arduinoとの接続は以下。赤線が今回追加分です。
前回からMEGA基板を使用しているので、今回はMEGA基板上のTX/RXを使用します。
Arduino側のTxD/RxDとFFC-6側のTX1/RX1が逆になるので気をつけて。
ピンアサインに関しては、SONYさんのページに詳しく記載されています。以下のリンクにある「FelicaLinkユーザーズマニュアル」内に記載があります。
https://www.sony.co.jp/Products/felica/business/tech-support/#Port
法人のお客さまじゃないんだけど、見るだけなら問題ないですよね。

ライブラリのインストール

RC-S620/S用のライブラリは以下からダウンロードできます。
http://blog.felicalauncher.com/sdk_for_air/?page_id=2699
ここからダウンロードしたファイルを
「ドキュメント/Arduino/libraries」に解凍して下さい。
これでArduino環境からスケッチ例からサンプルが読み出せるようになります。

サンプルの動作確認

スケッチ例のにある「FelicaPush」を見てます。
このままビルドしてもエラーが出ちゃいます。
fatal error: Wprogram.h: No such file directory
Arduino1.0から「Wprogram.h」ファイルの名前が改名されたようです。正しくは「Arduino.h」なので、先ほど解凍したフォルダ内の「RCS620S.cpp」ファイル内の最初の方にあるファイル名を変更する事。

#include "Wprogram.h"

上記は古い記載

#include "Arduino.h"

これに書き換える

もう一つ、今回ArduinoMEGAを使用しているのですが、サンプルはArduinoUno対応なので、使用しているシリアルポートが違います。このポート名称を変更する必要があります。
やはり「RCS620S.cpp」ファイルで、「Serial」という文言を検索して、「Serial1」として下さい。たとえば、312行目にある

Serial.write(data, len);

以下の様に書き換える

Serial1.write(data, len);

変更した箇所は、下の方に固まって4か所ほどありました。

FelicaPushの実装も1カ所修正が必要です。
setup関数内の21行目にある

Serial.begin(115200);

もSerial1とする必要があります。

Serial1.begin(115200);

FelicaPush実装側の修正を忘れて、長時間悩んだのは良い思い出。

動作確認

FelicaPush実装の確認には、LEDが必要です。
今回はPIN13にLEDを接続して確認用としました。
実行にて、LEDが点滅し、Felica対応のスマホを近づけると、点灯が長くなります。
反応している様ですが、これで動作確認になっているのか?

残件

次回はFelicaPushを参考に、LCDにIDを表示するって実装を行います。

Discussion