Arduino向けFeliCa Plug 制御ライブラリの提供

2010年10月29日

本日は、FeliCa PlugArduinoに接続して制御するプログラムをビルドから実行するところまで紹介します。

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-シリアルアダプタを接続したものを使っています。

DSC00366

残念ながら 今のところFeliCa Plug 搭載 Arduino用シールドのようなものは存在しませんので、0.5mmピッチピンをなんとかArduinoに接続しなければいけませんが、慣れないハンダ付けするのには少し骨が折れます。

幸いスイッチサイエンスさんが「FeliCa Plug ピッチ変換基板」というハンダ付けせずにFeliCa Plugをブレッドボードに接続する基板を販売してくれています。

私はハンダ付けが苦手なので人に頼んで下の写真のようなものを作ってもらいました。

DSC00362

FeliCa Plug を以下の写真の向きに見て、左からGND, RFDET, SW, IRQ, SEL, DATA, SPICLK, VDD の順番でピンが配列されています。これらのピンをArduinoに接続していきます。

DSC00371

以下の「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.cppFeliCaPlug.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が点灯します。

DSC00370

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!”と表示されれば成功です。

plug-lcd

上記Flashアプリケーションのソースコードはこちらからダウンロードできます。

FeliCa Plug についてもっと深く知りたい人は、弊社のサイト内で仕様が公開されていますのでご覧ください。