UDP通信を使ってScratchと連携します.
ブロードキャストを使用しているため,IPアドレスの指定が不要です.
遠隔センサープロトコルを用いているため,Scratchからの許可が必要です.
詳しくはこちらをご覧ください.
関連項目:Lua: ScratchとAirioPlayを使って猫コントローラ
ブロードキャストを使用しているため,IPアドレスの指定が不要です.
遠隔センサープロトコルを用いているため,Scratchからの許可が必要です.
詳しくはこちらをご覧ください.
遠隔センサとは - おまけ程度のツール置き場 https://sites.google.com/site/gpsnmeajp/scratch/yu...
関連項目:Lua: ScratchとAirioPlayを使って猫コントローラ
WTFPLです。
--IPアドレス文字列から32bitIPアドレス数値に変換 function ipadr2ipnum(ipadr) local ip_itr = string.gmatch(ipadr, "%d+") local ip = 0 for i=1,4 do ip = bit32.lshift(ip,8) ip = bit32.bor(ip,tonumber(ip_itr())) end return ip end --32bitIPアドレス数値からIPアドレス文字列に変換 function ipnum2ipadr(ipnum) local ipadr="" for i=1,4 do ipadr = tostring(bit32.band(ipnum,0xFF)) .. "." .. ipadr ipnum = bit32.rshift(ipnum,8) end return string.sub(ipadr,0,-2) end --Scartchへ変数を設定する function ScratchSetValue(ip,var,value) fa.udp(broadcast_adr,42001,"message","sensor-update \""..var.."\" \""..value.."\"") end --Scartchへメッセージを送信する function ScratchSendMessage(ip,msg) fa.udp(broadcast_adr,42001,"message","broadcast \""..msg.."\"") end --サンプル-- --現在のFlashAirのIPアドレスとサブネットマスクを取得し、数値に変換 ip,sub,gate = fa.ip() ip_num = ipadr2ipnum(ip) sub_num = ipadr2ipnum(sub) --ブロードキャストアドレスを計算し、文字列に戻す broadcast_num = bit32.bor(ip_num,bit32.bnot(sub_num)) broadcast_adr = ipnum2ipadr(broadcast_num) --ブロードキャストして受信可能なすべてのScratchへ変数を設定 ScratchSetValue(broadcast_adr,"Hello","This is message from FlashAir!") --ブロードキャストして受信可能なすべてのScratchへメッセージ送信 ScratchSendMessage(broadcast_adr,"Run Function") print("OK")
コメントをかく