ArduinoでFlashAir制御の概要

最終更新: 2014/8

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本体とは独立した電源回路を持っているものの方が適しています。
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信号規格、などを理解しているとよいでしょう。