FlashAirで遊ぶ — Lチカ編

FlashAirでLチカをやってみよう。

用意するもの:

FlashAir W-03 8GB

FlashAir W-03 8GB

SDカードDIP化モジュール(J1短絡済み)

秋月のSDカードスロットDIP化モジュールでFlashAirのPIOを使う場合に気になることとしては、

  1. DAT1/DAT2 がピンヘッダとして外に出てないこと
  2. CMD/DATn がプルアップされていること

がある。前者については、モジュールの基板上にランドがあってそこから DAT1/DAT2 を引き出せるようだ。(ここの記述およびここの参考技術資料の写真を見た感じ、SD_Card V1.1と刻印されている版はそういうランドがないみたいだが、現在のSD_Card V1.2と刻印されている版はランドがある。)SD-DIP-board

手元に3.3Vの電源がなかったので、モジュールに実装されている3.3Vレギュレーターを使うようにする。J1を短絡させ、5Vの電源を与える。

ブレッドボードで適当にLEDを使った回路を組む。LEDはCMDにつないだ。(CMDはプルアップされているため、この状態で電源を入れるとLEDが鈍く光る)

ブレッドボードで試作した回路

ブレッドボードで試作した回路

このLEDをブラウザから制御するためのHTMLファイルとLuaスクリプトを適当に書く。

Lchika.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Lチカ</title>
  </head>
  <body>
    <form action="Lchika.lua" method="GET">
      <button type="submit" name="light" value="on">ON</button>
      <button type="submit" name="light" value="off">OFF</button>
    </form>
  </body>
</html>

Lchika.lua:

print[[
HTTP/1.1 303 See Other
Location: Lchika.html

]]
local arg = ...
local light = arg:match("light=(%a+)")
local LED_PIN = 0x01 -- CMD
if light == "on" then
  fa.pio(LED_PIN, 0x01)
  print "ON"
else
  fa.pio(LED_PIN, 0x00)
  print "OFF"
end

ブラウザで http://flashair.local/Lchika.html を開いてON/OFFボタンを押すと Lchika.lua?light=on または Lchika.lua?light=off に飛ぶ。Lchika.lua ではLEDのピンを制御して、 Lchika.html にリダイレクトする。Luaスクリプトでクエリ文字列(今回は light=on/off)を受け取る方法については、前回の記事を参照。

ブラウザで Lchika.html を開いたところ

LED点灯状態

LED点灯状態

LED消灯状態

LED消灯状態

JavaScriptを使ってXHRとか使えばページ遷移なしでできるけど、まあ。

ちなみに、今回のような単純な端子の制御をブラウザからやりたいのであれば、自分でLuaスクリプトを書かなくても command.cgi を使えばできそうだ。


FlashAirで遊ぶ — Lチカ編」への1件のフィードバック

  1. ピンバック: FlashAirで遊ぶ — SPIでIOボードを制御 | 雑記帳

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です