今回も前回に引き続き、FlashAirのGPIO機能を試してみたいと思います。
【CQ出版社のInterface 2016年8月号 第1章】で紹介されているので記事を参考に試していきます。
今回は前回予告した通り「実験3:スタンドアローンでLuaスクリプト記述指定でI/O」に再チャレンジしてみます。
使用する機器は前回と同じなので省かせていただきます。
手順
1.FlashAirのCONFIG設定
2.Luaスクリプト記述
3.機器の接続
4.実行
では手順に沿って進めていきます。
1.FlashAirのCONFIG設定
FlashAirをPCに接続しCONFIGファイルを編集します。
今回はFlashAir起動時にスクリプトを実行させます。
GPIOを制御するため「IF_MODE=1」も忘れないように記述します。
以下を追記します。
IF_MODE=1 LUA_RUN_SCRIPT=/boot.lua
2.Luaスクリプト記述
FlashAirをPCに接続しLuaスクリプトを記述します。
仕様は以下のようにします。
・LEDを1秒周期で赤→青→緑の順で点灯させる
・Switchの状態がHighの場合、LED制御を繰り返す
・Switchの状態がLowの場合、LED制御を終了する
-- 点灯時間を1秒にする slp=1000 while true do -- Sleep値に従いLEDを赤→青→緑の順で点灯させる fa.pio(0x02, 0x02) sleep(slp) fa.pio(0x04, 0x04) sleep(slp) fa.pio(0x08, 0x08) sleep(slp) -- Switchの状態取得 s, indata = fa.pio(0x02, 0x00) sw = bit32.band(indata, 0x01) -- Switchの状態がLowならループから抜ける if sw == 0 then break end end
ファイル名を boot.luaとし保存します。
3.機器の接続
FlashAirとAirioとモバイルバッテリーを接続し通電する。
FlashAirをAirioに挿す。
Airioをモバイルバッテリーに挿す。
4.実行
AirioのスイッチをHigh側に倒します。
モバイルバッテリーの電源をONにすることによりLuaスクリプトが実行されます。
仕様どおりLEDが赤→青→緑の順で1秒間隔で切り替わっていきます。
スイッチをLow側に倒します。
LEDが消灯しました。
はいっ。仕様どおり動きました。
前回、失敗したと思ってましたが実は起動が遅かっただけでした。
LEDが点灯するまでに10秒近くかかっているようです。
今回はここまでとします。
これで 紹介されている実験は全て行いGPIOを確認できました。
評価ボード次第で色々なことができそうですね!
また機会があればFlashAirの勉強をしたいと思います。