からくりブログ

株式会社からくり社員のブログです

【FlashAir】GPIO機能を試す その4

今回も前回に引き続き、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の勉強をしたいと思います。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>