ArduinoでFlashAir制御の概要

FlashAirをSDメモリカードホスト機器から制御して、 無線LANのON/OFFやAPモード・STAモードの切り替え、 あるいはHTTP通信を行うことができます。 手ごろなマイコンボードとして人気の高い Arduino と組み合わせて、 FlashAirを制御してみましょう。


iSDIO

iSDIOは、SDメモリカードの規格団体であるSDアソシエーションによって定められた、 FlashAirのような拡張機能付きSDメモリカードをSDメモリカードホスト機器からコントロールするための規格です。

より正確には、iSDIOとはコマンドやりとりの手順を定めたプロトコルであり、 コマンドの種類や引数などの詳細は、拡張機能の種類(アプリケーション)ごとに、 補遺(Addendum)で定められます。

たとえば、FlashAirは無線LAN内蔵カード向けの「Wireless LAN Addendum」に準拠しています。

iSDIOの仕様書は、一部が簡易版仕様書 (Simplified Specification) として公開されており、 Simplifed Specifications - SD Associationからダウンロードできます。


Arduino

Arduinoは、製品プロトタイピングなどの用途でとても人気のあるマイコンボードです。 オープンハードウェアプラットフォームを謳って、設計や回路図が公開されており、 ユーザーがクローンを製造したり、改造して独自のArduino互換ボードを作ることが容易です。

Arduinoについては、 公式サイトをご覧ください。


準備

1. 開発環境の準備

本チュートリアルでは、作成したプログラムをArduino本体に書き込んで実行し、 ログや無線LANの状態を確認していきます。 下記の機器が必要です。

Arduino Uno R3

Arduino本体です。 Arduinoには様々なモデルがあり、CPU速度、メモリ容量、I/O数などに違いがあります。 本チュートリアルでは特に断りがない場合、Uno R3という最も基本的なモデルを使います。

Arduino IDE 1.0.5とPC

Arduino用プログラムの編集、コンパイル、書き込みは、Arduino IDEを使います。 こちらからダウンロードしてインストールしましょう。
開発環境を動かすPC環境には、WindowsまたはMacが利用できます。 本チュートリアルでは、Windows版を使用して説明しています。 詳細はArduino IDEのドキュメントを参照してください。

Seeed Studio SD Card Shield v4

Arduino Uno R3にはSDメモリカードスロットがありませんので、オプションボードを利用します。 本チュートリアルでは、Seeed Studio SD Card Shield V4を使用します。 FlashAirは無線LAN機能の分通常のSDメモリカードよりも電力を必要とするので、このボードのように、Arduino本体とは独立した電源回路を持っているものの方が適しています。
SeeeduinoStorage for FlashAirを使用するのもお勧めです。

USB 2.0 ケーブル(Bコネクタが通常サイズのもの)

ArduinoとPCをつなぐケーブルです。 電源供給、プログラムの書き込み、UART通信に使用します。 Arduino側となるBコネクタが通常サイズのものを用意してください。スマホ向けによく使われるマイクロBや、ミニBは使えません。

FlashAir

家電量販店やネット通販で購入できます。 手持ちのFlashAirを使う場合は、保存されているデータをバックアップしておきましょう。

2. 開発をよりスムーズにするために

###FlashAirの動作確認方法 FlashAirが動作していることを確認する方法があると便利です。
APモードのときは、スマートフォンの無線LAN設定画面のSSID一覧で、 FlashAirが正しく機能しているかを確認できます。
STAモードの場合はSSID一覧では確認できませんが、 ルータの画面でIPアドレスが割り当てられたことを確認する方法があります。 お使いのルータの、ログや状態を確認する方法を予習しておきましょう。


開発に必要な知識

Arduino用語について

Arduinoでは独特の用語を使うことがあります。

スケッチ
プログラムのことです。
シールド
オプションボードのことです。

電子工作用語について

FlashAirの制御は、SDメモリカードとの電気的な信号で行います。 そのため、SDメモリカード規格、SPI信号規格、などを理解しているとよいでしょう。