Arduino(8) Felica読み取り
はじめに
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用のライブラリは以下からダウンロードできます。
「ドキュメント/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