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信号規格、などを理解しているとよいでしょう。