Table1 モジュール構成
モジュール名 |
役割 |
動作概要 |
変更内容 |
関数 |
担当者 |
関数名 |
役割 |
引数 |
戻り値 |
司令塔(pilot) |
各モジュールの統合、全体の制御 |
デバイスのオープン・クローズ、現場急行、巡回、怪盗発見後の追跡動作を管理する |
既存のモジュール(pilot)を変更する |
int main() |
全体の制御を行う |
なし |
正常にプログラムを終了したら0、異常終了したら-1 |
川崎 |
現場急行(mirsak_goto_db) |
現場急行 |
スタートからDBまで急行する |
新規に作成する |
void mirsak_goto_db() |
現場急行を行う |
なし |
なし |
static void direction_gate(int dist,int dirfr) |
正体補正をするかどうかの判断を行う |
int dist:壁との距離、int dirfr:使用する超音波センサ(正面の超音波センサは1、右側は2) |
なし |
static void run_correction(int mode) |
直進時に壁に衝突したときの走行軌道の補正を行う |
int mode:一回目の直進では0、二回目の直進では1 |
なし |
巡回(mirsak_patrol) |
展示室の巡回 |
展示室を巡回し、怪盗機を発見したら捕獲モジュールを呼び出す |
新規に作成する |
void mirsak_patrol() |
巡回を行う |
なし |
なし |
確保(mirsak_catch) |
怪盗の確保 |
怪盗を確保する |
新規に作成する |
int mirsak_catch() |
怪盗機を確保する |
なし |
捕獲フラグ(捕獲成功:1、捕獲失敗:0) |
static float mirsak_catch_calc(float s,float x,float *a_array) |
怪盗確保時に使用する距離値と角度値を計算する |
float s:θの値[°]、float x:x[cm]の値、float *a_array:関数が返すα[°]、l[cm]、β[°]、x'[cm]の値を格納する配列 |
rの値[cm] |
画像認識(picture) |
怪盗機の発見 |
webカメラを使い怪盗機を発見する |
新規に作成する |
int picture_detect(int camnum,int *area) |
カメラで撮影し、撮影した画像の赤色の占める面積を計算する |
int camnum:カメラ番号(正面は0、左側は1)、int *area:赤色の面積 |
画像処理に成功:1、失敗:-1 |
川崎 |
赤外線計測(infrared) |
赤外線センサの確認 |
各赤外線センサの値を取得する |
IO Readモジュール(io)を参考に、新規に作成する |
int infrared_get(int *inred) |
8方向に設置された赤外線センサのON/OFFの値を読み取り、引数の配列に代入する |
int *inred:赤外線センサの値(要素数8の配列) |
取得に成功:1、失敗:-1 |
原 |
超音波計測(uss) |
超音波センサの確認 |
各超音波センサの値を所得する |
既存のモジュール(uss)を変更する(MIRS1403の超音波センサモジュールを参考に、ハードウェアの変更に対応する) |
int uss_get(int uss_port) |
超音波センサを使い、超音波センサとの距離を計測する |
int uss_port:センサ番号 |
計測距離[cm] |
志村 |
LED制御(led) |
LEDの制御 |
LEDを制御する |
新規に作成する |
void led_ctrl(int pattern) |
LEDを指定したパターンで発光させる |
int pattern:LEDの発光パターン |
なし |
志村 |
通信(server) |
サーバとの通信 |
サーバへデータを送信する |
新規に作成する |
int server_thief(int num) |
サーバから送信されてくるデータの読み取りおよびサーバーへの送信を行う(MIRSからサーバへの情報送信はSSHによるファイルコピーによって行われる) |
int num:送信する数字 |
送信に成功:1、失敗:-1 |
原 |