| 名称 | MIRS1905 ソフトウェア詳細設計書 |
|---|---|
| 番号 | MIRS1905-SOFT-0001 |
| 版数 | 最終更新日 | 作成者 | 承認者 | 改訂記事 |
|---|---|---|---|---|
| A04 | 2019/11/25 | 赤池 | 牛丸先生 | |
| A03 | 2019/11/12 | 赤池 | ||
| A02 | 2019/11/8 | 佐塚 | ||
| A01 | 2019/11/6 | 佐塚 | 初版 |
| 機能 | 目的 | 方法 | 記述言語 |
|---|---|---|---|
| 昇降機能 | 案内している駐車場が満車になり別の区画に車を案内しなければいけないとき表示板を切り替え、次に案内したい区画に促す | モータを用いて昇降を行い、制御にはArduinoを用いる | C言語 |
| 緊急停止機能 | 異常事態が発生したときに手動でボタンを押したら停止するようにする | 電源ボードから緊急停止ボタン用の配線を行い、緊急時にモータを止めるようにする | なし(アナログ回路) |
| 車認識機能 | カメラを用いて車を認識し何台来たかをカウントしていく。カウントした値はアプリと連携する | カメラ、機械学習を用いてRaspberryPiで制御を行い、認識したデータをWi-Fi経由でアプリと連携させる | Python |
| アプリ連携機能 | カメラで認識した車の台数をカウントの他通知などを行う | アプリケーション開発をする | Java script |
| バッテリー管理機能 | バッテリーの電圧が基準値に達しているかを確認する | Arduinoを用いて計測を行い、バッテリーの電圧が基準値に達していない場合は通知を行う | C言語 |
| 衝突防止機能 | 車との距離が一定の値より近づいたとき停止する | 超音波センサを用いて相手との距離を測り、制御にはRaspberryPiを用いる | C言語 |
| ライントレース機能 | 車を案内するときや、移動するときに用いる | フォトリフレクタを使用し、制御にはArduinoを用いる | C言語 |


| モジュール名 | 機能 | 関数名 | 説明 |
|---|---|---|---|
| pilot | プログラム全体を制御する | void main() | 引数、戻り値は共に無し |
| uss | 超音波センサの値を読み取る | long uss_get(int) | 引数は超音波センサの指定に使用 戻り値は測定値(cm) |
| 超音波センサをオープンにする | int uss_open() | 引数は無し 戻り値は成功"0"か失敗"それ以外の値" |
|
| run | 一台目の誘導を行う | void run_load() | 引数、戻り値は共に無し |
| 所定位置への移動 | void run_locate(int) | 引数は移動する区画の指定に使用 戻り値は無し |
|
| request | バッテリーの残量確認 | int request_get_batt(double *volt) | 引数voltは電圧(V) 戻り値は成功"0"か失敗"それ以外の値" |
| coop1 | カウントデータをアプリに送る | int coop_sent() | 引数はカウント用データ(進入"-1"か退出"+1") 戻り値は成功"0"か失敗"それ以外の値" |
| coop2 | Python⇔C言語間で通信する | char *coop_python(int,*char) | int引数は通信処理、*char引数はデータの格納に使用 戻り値は送信したデータ(+1か-1) |
| io | 昇降機構用のLED制御 | int io_led(int) | 引数は点灯させるLEDレーンの指定に使用 戻り値は点灯中"1"か消灯中"0" |
| モジュール名 | 機能 | 関数名 |
|---|---|---|
| camera_rec | カメラから取り込んだ映像に画像処理を実行し、動体検知を行う | conv2d_bn |
| inceptionV3 | ||
| preprocess_input | ||
| coop2 | Python⇔C言語間で通信する | coop_c |
| モジュール名 | 機能 | 関数名 | 説明 |
|---|---|---|---|
| slave | モードの追加 | void slave() | 引数、戻り値は共に無し |
| moter_board | 昇降機構用モータの制御を行う | void motor_board(int) | 引数は上昇か下降かの指定に使用 戻り値は無し |
| line_t | ライントレース走行の制御を行う | void line_t(int) | 引数は移動する区画の指定に使用 戻り値は無し |
| フォトリフレクタの値を読みとる | int line_fot_get(int) | 引数はフォトリフレクタの指定に使用 戻り値は成功"0"か失敗"それ以外の値" |


| 優先度(簡易テストから) | テスト名 | テスト内容 |
|---|---|---|
| 1 | 車認識テスト | 取り込んだカメラ映像から、車の通過を認識できるか |
| 2 | 移動テスト1 | 用意したライン上を逸れずに走行できるか |
| 3 | 移動テスト2 | 移動テスト1に加え、指定した距離、ルートの移動ができるか |
| 4 | アプリケーション連携テスト | サーバーにカウントデータを送信し、サーバー側から確認できるか |