Twitter制御班
実験の概要 Twitterから様々な制御を実現 例: ドアの開閉(情報実験2の制作物を応用) 照明の消灯 室温の取得 など ドアの開閉(情報実験2の制作物を応用) 照明の消灯 室温の取得 など これらをTwitterBot, HSP, USBI/O, 電子回路を 用いて実現する。
ソフトウェア担当(Twitter Bot) メンバー 玉城幸一朗 ソフトウェア担当(Twitter Bot) 宜保浩司 ハードウェア担当(基盤・PIC) 堀川敦弘 入出力担当(USB/IO・HSP)
全体図(PCからの制御のみ)
全体図(基盤から入力を得る場合)
担当
TwitterBot
Botの機能 Replyの取得 Textの文字列検索 Replyを返信する Friendlistによるフィルタ Friendlistを更新
Replayの取得 Replyとは指定したアカウントにメッセージを送ること <twitter.Status object at 0x101fbd0> このようなreplyのstatus情報を受けることができる。これからユーザ名、text、idなどを取得できる。
文字列の検索 Botで指定した文字列を含むReplyに反応す る。 今回は実行したい命令をReplayしてもらう 例:Reply[Open The Door!!] [Door]に反応してドアの開錠を実行
Replyの返信 先程取得した情報から送信元へreplyを返す 返信するときは頭に@user名をつけると replyとして認識される 例 User: @Bot うへぇへぇ Door (Door.exe実行) Bot: @User うへぇへぇDoor [Door]
Friendlistの更新 FriendlistとFollowerlistを比較し、差分を新 たに登録しなおす。 例: Friedlist['donotwork', 'Evhemarry', 'tyamako', 'kamiokande'] 比較↑↓ Followerlist['donotwork', 'kamiokande', 'tyamako', 'Evhemarry', 'Draisine'] =NewFriend['Draisine']
Friendlistの登録 新規ユーザは初めに登録を行う 今回は簡単にBotへ「yes」という文字列の入っ たReplyを送信することで完了する。 例: 送信@Bot yes!yes!!yes!!! 受信@User yes!yes!!yes!!! [Registration!]
Friendlistによるフィルタ Friendlistの登録によってReplyによる実行を 判断する BotのFriendlistに登録のないuserからの Replyは無視する。
実際に動かしてみたいと思います
入出力 HSPとUSB/IO
入出力担当のJob 環境構築 HW担当とSW担当からそれぞれの仕様と実装 したい機能を聞いて、方法を模索し、それを実 現するためにHWとSWの仲介をしている .exeFileをHSPにて作成する。
環境構築 Linux、Mac、仮想環境、など様々な環境を 試してみた結果、USB/IOのドライバなどの 都合上Windowsで開発を行うことに。 USB/IOのドライバ、HSP、python、 simplejson、pythonTwitter等の環境を準備し た。
実行ファイルの作成 HSPを用いてUSB/IOを制御する。 入出力はUSB/IOの12本のポートを 用いて行われる この実行ファイルはPython Botから 呼び出させれて起動する。
LEDを制御する実行ファイル 実行すると赤枠で囲んだLEDのポート 全てに電圧がかかる実行ファイルと、 実行すると全てのポートの出力を初期 化する実行ファイルを作成した。 この実行ファイルを、PCから基板に命 令を出す処理のサンプルとした。
ボタンを制御する実行ファイル ボタンを押された回数をコマンドラインへ投げ るプログラムを作成した。 「押して、離すまで」を1回と数えているので 、押しっぱなしなどがあっても間違いなく数を カウントできる。 この実行ファイルを、基板からPCへ情報を渡 すサンプルとした。
ドアを開閉する実行ファイル 情報工学実験Ⅱの「携帯電話による施錠制御」 を参考に今回の実験にマッチするように終了条 件などを調整した。 動作自体は以前と同様に「解除し、その後ドア の開閉を監視し、5秒以上ドアが開けられると ブザーを鳴らす。ドアが閉じられると施錠しブ ザーが鳴っていればそれを止める。」というも のである。
人数を返す実行ファイル 実行されるとPICに現在部屋の 中に居る人数を問い合わせる。
電子回路部
作業内容 Twitter制御における電子回路の利用案を発案 利用案に基づきPICプログラミング センサを組み合わせた電子回路の設計・制作 HSPプログラム、USB-IO部との協調・連動
USB-IO/電子回路群間構成案(1) USB-IOの4ポートを出力(命令)用ポートとし て、残り8ポートを入力用として使用。 USB-IO→デコードPICへ命令が渡され、デコー ドPICで実行できるものは実行、その他は別の 回路へ指示。 基本的に別の回路は温度計測回路や在室人数管 理回路など返り値を取るもの。
USB-IO/電子回路群間構成案(2)
USB-IO/電子回路群間構成案(3) 命令案リスト(4bit:ただし最大7命令) ドア解錠(施錠は自動) ライト点灯 ライト消灯 温度取得命令(温度計測回路は別) 在室人数取得命令(在室人数計測回路は別)
命令デコード回路用 PICプログラムの作成(1) USB-IOの出力が4ポートしかない ⇒4bit,15通り使う そのままでは回路を動かせないのでデコーダが 必要 ⇒命令デコードPICの作成
命令デコード回路用 PICプログラムの作成(2)
室内人数管理回路用 PICプログラムの作成(1) 室内人数を把握する方法:出入口でカウント 2個のセンサを使い、人が通った方向を検知 通った方向により人数変数を加算または減算 回路は独立して動作し続け、要求があるときだ けその時点での値(人数)を8bit出力
室内人数管理回路用 PICプログラムの作成(2)
室内人数管理回路用 PICプログラムの作成(3)
室内人数管理回路 電子回路設計・基板制作(1) PIC16F84A用の基本的な回路を設計 入力RA0,RA1,RA4、出力RB0~RB7 RA0,RA1にそれぞれセンサを接続 センサにはフォトインタラプタを使用 センサの基板は切り離してドアの上部に設置
室内人数管理回路 電子回路設計・基板制作(2)
室内人数管理回路のデモ
この実験テーマの展望 自宅や職場などの電気設備の”手軽な”遠隔操作 ⇒各電気設備の対応が必要 遠隔地の情報を”手軽に”取得 帰宅前にエアコンをつける・風呂を沸かす等 ⇒各電気設備の対応が必要 遠隔地の情報を”手軽に”取得 室温・人数・騒音・臭い ⇒専用のセンサが必要 防犯・監視・異常検知 ⇒Webカメラなど BOTが仲介することによる半自動制御 ⇒手間の軽減、機能の追加変更削除等が容易