ユビキタスシステムアーキテクチャ 第8回 09,06,04 TA 山本純平 E-mail: [email protected] アウトライン • Sun SPOT紹介 – Sun SPOTとは? – 実装例 • インストールの確認 – ドライバのインストール – アップデート • Net Beansの使い方 – サンプルプログラム – 焼き込み方法 – 実行方法 • Sun SPOT演習 – – – – サンプルのDL サンプルの説明 照度,加速度の取得 自由にプログラム • タームプロジェクト – スライドの作成について • 課題 – なし! Sun SPOTとは? • 一言で言うと – Javaでプログラミング可能なセンサ端末 • センサ – 照度,加速度,温度センサ内蔵 – 8つのLED,2つのスイッチ – さらに実装することも可能 • Javaでのプログラミングが可能 – Ex)センサデータの送信間隔を変更 実装例 • 温度計 – 温度によってLEDの光り方が変化 • 暑いと赤,寒いと青 • 照度計 – 明るさによってLEDの光り方が変化 • 明るいと激しく光り,暗いと消灯 • Sun SPOTに温度センサを実装 – 皮膚温度と気温を同時に測定できる – ここでおもしろ話を1つ ドライバのインストール • Sun SPOT配布します • USBに接続してインストール – 自動的にインストールされるはず… 端末のアップデート • Sun SPOT managerを起動 Sun SPOTsを選択 Sun SPOTの認識を確認 Upgrade Net Beansの使い方 • サンプルプログラムの起動方法 • 焼き込み方 • 実行方法 サンプルの起動 • ファイル→プロジェクトを開く サンプルの起動 • サンプルコードの場所 – SunSPOT/sdk/Demos/AirText 焼き込み • AirTextを右クリック – Build Project + Deploy to Sun SPOT 実行方法 • プロジェクトを右クリックして実行 – コンソールにデータが表示されるようになる ここからが演習 • サンプルコード – 照度に応じてLEDの明るさが変わるアプリケー ション • http://www.ht.sfc.keio.ac.jp/~ju m-p/usa09s/StartApplication.java Java基礎 • コンソールに出力 – System.out.println(“hoge”); • 場合分け – if(条件A){ • System.out.println(“A”); – }else if(条件B) • 繰り返し – for(int i=0; i<5; i++){ • System.out.println(i); –} • 半永久的に繰り返す – While(true){ • System.out.println(“B”); • System.out.println(count + “回目”); • count++; –} –} インスタンスの作成 • LEDのインスタンス作成 – ITriColorLED[] leds = EDemoBoard.getInstance().getLEDs(); • 照度センサのインスタンス作成 – ILightSensor lightSensor = EDemoBoard.getInstance().getLightSensor(); 照度の取得とLEDの点灯 • 照度の取得 – lightValue = lightSensor.getAverageValue(); • LEDの点灯 – leds[i].setRGB(lightValue, lightValue, lightValue); – leds[i].setOn(); プログラミング演習 • 他のセンサデータも取得してみる – 気温センサ – 加速度センサ • 取得したセンサデータに応じてLEDを変化させ るプログラムを書いてみる – 色で表示される温度計 • Ex)寒いと青・暑いと赤 – 激しく動くとLEDが強く点灯,立ち止まると消灯 コンテクスト取得のコツ • 取得したいコンテクストの発見 – そりゃ当たり前 – Ex)歩行を取得したい場合 • センサの設置場所 – 人に付けるのか物に付けるのか – Ex) 鞄の中,靴,足,手,etc • 取得するセンサデータの選択 – Ex) 加速度,照度,温度, etc • センサデータの変化を取得 – Ex) 立ち止まってる時,走ってる時との違いを発見 気温センサ • インスタンスの作成 – ITemperatureInput tempSensor = EDemoBoard.getInstance().getADCTemperature(); • 気温データの取得 – tempSensor.getCelsius(); (double) 加速度センサ • インスタンスの作成 – Iaccelerometer3D accel = EDemoBoard.getInstance().getAccelerometer(); • 加速度データの取得 – accel.getAccel(); あとは自習! 自由にプログラム書いてみて タームプロジェクト スライドテンプレート TA 山本純平 E-mail: [email protected] システムのタイトル 〜忘れ物検知システム〜 グループ名 所属 氏名1 所属 氏名2 システム概要 • 忘れ物をユーザに警告してくれるシステム – 忘れ物を防止!! アウトライン • 背景と問題 – 忘れ物が本当にひどい – どうにか直したい • でも直らない – こっそり教えてほしい • システム提案 • アプローチ – センサの装着と忘れ物 検知 – メールでユーザに通知 • システム構成 • スケジュール – 忘れ物をこっそり通知 • 忘れ物検知 • こっそり通知 • コメント – 発表の流れがわかるよ うに 背景 • 一日に3回は忘れ物をする – もう自分じゃ直せない – メモを書いても,メモをなくすから意味がない • センサの小型化やタグの普及 – センサの高機能化と小型化 • Sun SPOT, u-part, etc • 照度,温度,加速度etc – 1つ1つのモノがsmart化 • コメント – この研究をやるにあたっての動機を書く 問題意識 • 自分自身の意思はあてにならない • 他人も使えない – お母さんはいっつも怒るしこれ以上頼めない • 忘れ物検知システムは普及してない – 周りに忘れ物したことがばれると恥ずかしい • コメント – 現在研究の目的が達成されていない理由を書く システム • 目的 – 忘れ物をなくす! – 周りに気づかれないようにこっそり伝える • 概要 – 忘れ物しそうになったら通知してくれる – 周りにばれないように シナリオ • 星くんはいっつも忘れ物する – もうなおらない,だってあほだもん • このシステムを導入 – 忘れ物した状態で外に出ようとすると警告 – こっそりと通知が来る – 何喰わぬ顔して忘れ物を取りに行く – クールに外出! • コメント – このシステムを利用してハッピーな物語を描く 機能要件 • 忘れ物を検知 – 鍵,財布,時計を対象 • こっそりと通知する – 他人にばれないように • コメント – システムを実現するために必要な機能を書く アプローチ • センサを使った忘れ物検知 – 振動センサを利用 • 靴と対象物に設置 – 外出時に対象物が振動していなかったら警告 • メールで通知 – 内容は他人にはばれない – 友達からメール来たかように装う • コメント – 機能要件を実現するための手法を述べる • =システムのウリ システム構成図 実装環境 • PC – Winows vista • 振動センサ – U-part • 携帯端末 – ユーザの携帯電話を使用 スケジュールと役割分担 山本担当 • 忘れ物検知モジュール • 6月中 – センサの設置 – センサデータの取得 – データの変化を確認 • 7月中 – 忘れ物判断アルゴリズム 星担当 • こっそり通知モジュール • 6月中 – メール送信モジュール • 7月中 – メアド登録インタフェース作成 スライド作成のコツ • 話の軸を通すこと – 流れがわかりやすいように – 問題意識からアプローチまで,筋を通す • イラストを多用する – 言葉で伝わりにくい部分をイラストや図で説明 – インパクト • おもしろおかしく説明 – イラスト,背景画像など
© Copyright 2024 ExpyDoc