Arduino向けFeliCa Plug 制御ライブラリの提供
2010年10月29日本日は、FeliCa PlugをArduinoに接続して制御するプログラムをビルドから実行するところまで紹介します。
FlashやAIRは全く関係ないですが・・・。
FeliCa Plugについてはこちらの製品情報ページをご覧ください。
前準備
Arduino用のソフトウェアのことをスケッチと呼び、スケッチの開発には「Arduino Software」という開発環境が必要です。Arduinoで開発したことのある人は既にコンピューターにインストールされているはずですが、初めての方は以下のサイトからダウンロードしてインストールしてください。
Arduinoのすばらしいところは世界中の開発者がデバイス用のライブラリを公開していることですね。そこで、私たちも今回Arduino用の「FeliCa Plug 制御ライブラリ」というものを公開します。以下のリンクからダウンロードしてください。
ダウンロードしたzipファイルを解凍すると以下のファイルとフォルダが生成されます。
- FeliCaPlug.cpp
- FeliCaPlug.h
- FeliCaPlug-sjis.txt
- examples
接続方法
FeliCa Plug とArduino を接続するときに注意する点があります。ひとつは電圧、もうひとつはピッチです。
FeliCa Plug の電源電圧は1.8~3.7Vで可変ですが、Arduinoの中で最も標準的なArduino Duemilanove の供給電源とI/Oは5Vなので、そのまま接続すると故障の原因になります。電圧レベル変換を行うか、Arduino Pro などの3.3V対応のArduinoを使用してください。私は「Arduino Pro 328 3.3V 8MHz」にUSB-シリアルアダプタを接続したものを使っています。
残念ながら 今のところFeliCa Plug 搭載 Arduino用シールドのようなものは存在しませんので、0.5mmピッチピンをなんとかArduinoに接続しなければいけませんが、慣れないハンダ付けするのには少し骨が折れます。
幸いスイッチサイエンスさんが「FeliCa Plug ピッチ変換基板」というハンダ付けせずにFeliCa Plugをブレッドボードに接続する基板を販売してくれています。
- FeliCa Plug ピッチ変換基板(フラットケーブル付き)
私はハンダ付けが苦手なので人に頼んで下の写真のようなものを作ってもらいました。
FeliCa Plug を以下の写真の向きに見て、左からGND, RFDET, SW, IRQ, SEL, DATA, SPICLK, VDD の順番でピンが配列されています。これらのピンをArduinoに接続していきます。
以下の「FeliCa Plug ピン」 -「Arduino ピン」の組み合わせで接続してください。
- GND – GND
- RFDET – 3
- SW – 9
- IRQ – 2
- SEL – 10
- DATA – 11
- SPICLK – 12
- VDD – VCC
これで接続は完了です。
FeliCa Plug 制御ライブラリのインストール
FeliCa Plug 制御ライブラリをArduino Softwareにインストールして、使えるようにするのは簡単です。まず、以下の場所に”FeliCaPlug”という名前のフォルダを作成してください。
- Windows
(Arduino Softwareの解凍先)\libraries\FeliCaPlug\
- Mac (/Applications以下にArduino Softwareをインストールした場合)
/Applications/Arduino.app/Contents/Resources/Java/libraries
次に、今作った“FeliCaPlug”というフォルダのFeliCa Plugライブラリを解凍して生成されたFeliCaPlug.cppとFeliCaPlug.hをコピーしてください。
FeliCaPlugFB exampleの実行
FeliCaPlugFBはArduinoに接続したFeliCa Plugをリーダー/ライターにかざすと、LEDを点灯させるという簡単なプログラムです。もしLEDが手元にあればArduinoの13ピンに接続してください。もしLEDを接続しなければ、Arduino基板上の小さいLEDが点灯します。
FeliCa Plug 制御ライブラリのzipに含まれるexamples\FeliCaPlugLCD\FeliCaPlugFB.pde をArduino Software で開いて、”Upload”ボタンを押せば自動的にビルドされUSBで接続されたArduinoにロードされます。
ここでリーダー/ライターにかざすとLEDが点灯するはずですが、リーダー/ライターから搬送波が出力していなければもちろん反応しません。USB を接続するだけでは搬送波は出力されないので、何らかのアプリケーションを動作させる必要があります。基本的にFeliCaを使用するアプリケーションだったら搬送波を出すはずなので何でも良いです。このブログ上で公開されているコンテスト作品やFeliCaランチャーでも反応するはずです。
搬送波が出力されているリーダー/ライターにFeliCa Plugをかざすと、以下のようにLEDが点灯します。
LCDに”Hello, World!”
「FeliCa Plug 制御ライブラリ」のサンプルの中の「FeliCaPlugType3LCD」というサンプルを使うと、FeliCa Plugへ書き込んだ文字列をArduinoに接続するLCDに表示させることができます。
Arduinoに接続するLCDが別途必要です。Arduino SDK標準の「LiquidCrystal Library」に対応するものならばなんでも構いません。
ここでは、「SC1602BSLB」という16×2行のLCDを使用しています。ピンの接続方法についてはArduinoスケッチを確認してください。接続できたら、FeliCa Plugをリーダー/ライターにかざして、Flashアプリケーションに表示されるボタンを押します。
LCDに”Hello, World!”と表示されれば成功です。
上記Flashアプリケーションのソースコードはこちらからダウンロードできます。
FeliCa Plug についてもっと深く知りたい人は、弊社のサイト内で仕様が公開されていますのでご覧ください。