software_development」カテゴリーアーカイブ

FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた – その1

FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみている。

とりあえず、一定時間毎に、時間と、SSIDとRSSIを記録するというのを作ってみた。
ログを取ったあと、そのログを解析して、無線AP情報から緯度経度を推定するサービスと連動させて移動の軌跡を出せるかなあ、とか考えている。

コードはLua言語で書いた。FlashAir W-04で動かしている。
test.luaというファイル名でFlashAirのSDカードストレージのルートフォルダーに入れる。

local file = io.open("/log.txt", "a")
file:write("WiFi SSID Logging data\r\n")
file:write("---\r\n")
file:close()
fa.SetCurrentTime(0x2821,0)
hh=0
mm=0
ss=0
sleep(100)
while true do
	file = io.open("/log.txt", "a")
	file:write("time , "..hh..","..mm..","..ss.."\r\n")
	count = fa.Scan()
	for i=0, (count-1), 1 do
		ssid, other = fa.GetScanInfo(i)
		if ssid ~= "" then
			file:write("SSID,"..ssid.."\r\n")
			for key, val in pairs(other) do
				if key=="RSSI" then
					file:write(" RSSI,"..val.."\r\n")
				end
			end
		end
	end
	file:write("---\r\n")
	file:close()
	fat_time = lfs.attributes("/log.txt")
	hh = bit32.band (bit32.rshift(fat_time.modification, 11),0x1F);
	mm = bit32.band (bit32.rshift(fat_time.modification, 5),0x3F);
	ss = bit32.band (fat_time.modification,0x1F)*2;
	sleep(1000*30)
end

続きを読む

Connect(); Japan 2018 (名古屋サテライト会場)に行ってきた

Connect(); Japan 2018 (名古屋サテライト会場)に行ってきた。

MicrosoftのConnect();という.NETやAzureなどのクラウド関係の新技術の発表イベントが、先日アメリカで開催されたのを受けて日本でその振り返り会のような忘年会イベントをやるということらしい。
東京、大阪だけでなく、名古屋でもサテライト会場でイベントが開催されるというので行ってみた。

続きを読む

メガネ形の簡易AR HMDを作ってみる (その6 LEDのマトリクス基板を左右に増やした)

メガネ形の簡易AR HMDを作ってみる、という話の続き。

片目だけLED表示するのでは見づらいということが分かってきたので、LED表示部を両目に増やす改造をして、作り直してみた。

続きを読む

久しぶりにWiiリモコンhackを弄っている – WiiリモコンとWindows PCのペアリング問題について

久しぶりにWiiリモコンhackを弄っている。

Wiiリモコンを分解して、IRセンサーを取り外して残った基板をBluetooth→I2C変換用のモジュールとして利用するというhackだ。

Wiiリモコンhackには1つ問題があり、Windows PCとWiiリモコンをBluetoothでペアリングする手順でトラブってしまうケースが多いということだ。
続きを読む

micro:bitのmicroPythonのi2c.writeの書き方 (TMP102温度センサのモード変更)

micro:bitに接続したTMP102温度センサのモード変更をやってみようとして、microPythonのi2c.writeの書き方でちょっと戸惑ってしまった。
自分がmicroPythonやPythonに不慣れというのもあるが。

TMP102で普通に気温とかの温度を計測するには、TMP102の電源投入後のデフォルトの計測モードのまま使えばよいのでモード変更の必要はない。
その場合、このようなプログラムのコードで計測ができる。

i2c.init(freq=10000, sda=pin20, scl=pin19)
addr = 0x49
i2c.write(addr, b'\x00')
data1, data2 = i2c.read(addr, 2)

続きを読む