2014-09 << 2014-10 >> 2014-11

2014-10-29 (水)

肉食べる日だったけど,モツ鍋食べた.

IMG_20141029_214230.jpg

2014-10-25 (土)

昨日寝たのが遅かったので夕方まで寝る.12時間くらい寝た.

飲み会的なやつ.

2014-10-24 (金)

Pebble届いた. https://getpebble.com/

IMG_20141026_215718.jpg

なんかベルトが3本もあるのだけど,買う時に何かクリックしすぎたのかな...

メモ Tiny13.

IMG_20141027_141005.jpg

2014-10-21 (火)

*BLEタグのボタンが押されたことをアプリから検出する

2014-10-10 の続き.BLEタグ→スマホへの通知を試しておきたかったので.

BSHSBTPT01BKの商品説明を読むと,ボタンを押すとiPhoneが鳴るそうです.iPhone持ってないのでわからないですが,おそらくBLEのNotifyをアプリで受け取っているのだと想像出来ます.消費電力から考えても,SPPでコネクション張って待ち受けてるなんてことは無いはず.

これをAndroidでもやりたいので,少し調べてみる.

BLEデバイスがどんな機能を持っているかは,GATT(Generic Attribute Profile)で調べられる.(iPhoneでもAndroidでもdiscoverServicesというメソッドが用意されている)

ServiceのUUIDが取得できるので,あとはUUIDからサービス探すときは,https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspxをみると良い.

UUIDの最初の4バイトがServiceの種類を表している.

たとえば,BSHSBTPT01BKの例だと,

  • Generic Access(1800) デバイス名取得したり
  • Link Loss(1803) 接続が切れたときの挙動を設定する
  • Immediate Alert(1802) アラーム鳴らしたり
  • Tx Power(1804) BLEの送信のパワー
  • Battery Service(180f) バッテリーの状態

みたいなサービスがある.

あとは,Serviceスの下に,データをやり取りするCharacteristicsがぶら下がっている.

……そして,ボタンの状態を取れそうなサービスが無い.

GATTで取得できないサービスある可能性もあるけれど,iPhoneのCore Bluetooth APIでアプリ作ったりしてることを考えると,普通にCharacteristicsを見えるようにしておく気がする.

とりあえず,Notify受け取れそうなCharacteristicsが Battery Power State(00002a1a)くらいしか無いのでそいつに対して,setCharacteristicNotificationしたらNotifyが来た.

1バイト目に 0/1でボタンが押されてるかどうかが入ってる.2バイト目はよくわからず.

Androidだと,onCharacteristicChangedとかいうメソッド名だけど,値が変わっていなくてもデバイスからデータが来ればとりあえず呼ばれているように見える.

なぜPower State?と思ったけど,確かに,電源ボタンでもあるし,あっているような気もするけれど...?

ほかのBLEタグも同じな気がしないでもないので,これが普通なのかもしれない.

2014-10-19 (日)

*ICPC 2014 アジア地区予選に行ってきました

昨年からドワンゴもスポンサーやってるので行ってきました.

今年はオリンピック青少年センターです.2007年に参加者として出た時と同じ場所.

IMG_20141019_183451.jpg

ICPCなので,とりあえず風船の写真.

やっぱ東大強いなあ.信大の後輩は国内予選で落ちてしまったっぽい.残念.

2014-10-18 (土)

ここのことろ体の調子が悪い...

月曜日の夜に熱出て,その後も微熱+頭痛がずっと続いている感じ.喉が痛い気がするのはオフィスが乾燥してるからな気がする.

2014-10-14 (火)

風邪引いたので会社休んで一日寝る.20時間くらい寝ていた.薬飲んで寝てたら熱は下ったけど,とてもだるい...

2014-10-13 (月)

休みだけど午前中は仕事する.午後は出かけたけど,急に体調悪くなって急いで家に帰る...案の定熱があったのでとりあえず寝る.

2014-10-12 (日)

昼までysaotomeのところでダラダラ過ごしてから帰る.

2014-10-11 (土)

Unity.

鍋.

IMG_20141011_211819.jpg

2014-10-10 (金)

また台風来るのか.

WebGLとかBluetooth LEとかいじったりする日.たぶん2つは全く関係ない.

*BLEタグ BSHSBTPT01BK

iBUFFALOのBSHSBTPT01BKを買った.

前から財布に突っ込んでたやつが壊れたので,今度はこれに変えることにした.iPhone4S専用とか書かれているけど,Androidで使います.

本当はモジュールだけ買ってきて使いたいのだけど,キットとして売られてるのは高いし,モジュール単体で1000円くらいでファームウェアの開発キットまで買うとそこそこの値段になるので,市販品を分解するのが一番やすくなってしまう.

とりあえずケースはツメで引っかかってるだけなので,簡単に分解できる(薄くしたいので基板だけにして使う...)

IMG_20141011_035335.jpg

回路構成は,LBT-VRU01と同じくCSR1000が使われている.安いBLEはみんなこれなのかもしれない.フラッシュメモリはWinbondの25x20で2Mbitっぽい.前のやつよりシンプルだな.

デバッグしてくださいと言わんばかりにSPIを繋ぐパターンが見えるのも気になるので,あとでどうにかしよう.

ServiceとCharacteristic一覧.

 s:00001800-0000-1000-8000-00805f9b34fb
   c:00002a00-0000-1000-8000-00805f9b34fb
   c:00002a01-0000-1000-8000-00805f9b34fb
   c:00002a04-0000-1000-8000-00805f9b34fb
 s:00001803-0000-1000-8000-00805f9b34fb
   c:00002a06-0000-1000-8000-00805f9b34fb
 s:00001802-0000-1000-8000-00805f9b34fb
   c:00002a06-0000-1000-8000-00805f9b34fb
 s:00001804-0000-1000-8000-00805f9b34fb
   c:00002a07-0000-1000-8000-00805f9b34fb
 s:0000180f-0000-1000-8000-00805f9b34fb
   c:00002a19-0000-1000-8000-00805f9b34fb

適当にデータ送ってみた感じだと,1802(Immediate Alert)に1を書き込むとバイプレーションで2を書き込むと音が鳴る.バイブレーションはアラームと分かれてるっぽい.ただ,3(GATTでは未定義)を書き込んだからといって両方動作するわけでは無かった.

まだちゃんと使ってないけど,接続直後にDiscover servicesに応答しないことがあるような気がする(?).

でも,アラームもバイブレーションも厚みの都合で一旦外す.

あとは,切断後に自動OFFされるまでの時間が長い気がするので,そこはよさ気.

2014-10-09 (木)

ここ3日くらい体調悪いな...

2014-10-06 (月)

IMG_20141006_133328.jpg

今日から仕事する場所ちょっとだけ変わった.先週までいたビルが真正面に見えるけど.

台風が過ぎたせいでとても空が青い.

2014-10-05 (日)

雨.

2014-10-04 (土)

WebGL色々遊んで見てるけど,Extension使うとIEのサポートがイマイチだな.安心して使えるのは,OES_standard_derivativesくらいか.

http://dench.flatlib.jp/opengl/webglextensions

2014-10-03 (金)

オフィスのデスクの引っ越しとか.ダンボール大分増えた.会社にものを置きすぎだな.

2014-10-01 (水)

KADOKAWA dwango