名称 | MIRS1702ソフトウェア詳細設計書 |
---|---|
番号 | MIRS1702-SOFT-0001 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A02 | 2017.12.22 | 杉山、塚本 | 牛丸 | 初版 |
本ドキュメントはMIRS1702におけるソフトウェアの詳細設計書について記述したものである。
arduinoとRaspberryPiのモジュール構成図をfig1,fig2に示す。
fig1:RaspberryPiのモジュール構成図
fig2:arduinoのモジュール構成図
新規モジュールは青ブロック、または黒の太線で示す。
新規モジュール一覧をtable1,table2に示す。
モジュール名 | 機能 | 新規・変更関数名 | 戻り値 |
---|---|---|---|
uss | 6つの超音波センサの値を取得する。 6つの超音波センサの値を渡す。 | uss_get() uss_get_val() | なし int型 |
display | ディスプレイからの入力をチェックする。 | display_check() | int型 |
run | 走行モジュールの初期化 走行の制御 | run_init() run_run() | なし なし |
route | 走行体の次の行動を渡す。 入力より、目的地までの最短ルートを探索する。 | route_get_next() route_find_route(int destination) | int型 なし |
compass | コンパスをオープンする。 コンパスの測定値を取得する。 | compass_open() compass_get() | int なし |
gps | 位置情報を取得する。 | gps_get_val() | int型 |
request | arduinoがオープンされたかチェックする。 | request_check_connection() | int型 |
main | プログラム全体を制御する。(会話・走行) | main_run() | なし |
talk | 走行体の動作によって適当な会話を行う。 | talk_run(int state) | なし |
speaker | 入力より、適当な音声ファイルを再生する。 | speaker_read(int sound) | なし |
microphone | マイクの音声を録音し、テキストに起こす。 | microphone_read() | char text |
モジュール名 | 機能 | 新規・変更関数名 | 戻り値 |
---|---|---|---|
advanced | 高度センサをオープンする。 温度を取得する。 気圧を取得する。 | ms5607_opne() ms5607_temp() ms5607_pres() | なし double型 double型 |
arduinoにturn値を指定する通信項目を追加した。
既存モジュールに関してはMIRSMG4 ドキュメント管理台帳を参照。
・走行時の行動フローチャートをfig3以下に示す。
fig3:走行時の行動フローチャート
・ブロックごとの行動フローチャートをfig4に示す。
fig4:ブロックごとの行動フローチャート
以下にスレッドの構成を示す。
RaspberryPi
・メインスレッド
・超音波計測スレッド
・会話機能スレッド
・廊下直進テスト:壁との距離から走行体の位置を修正し、道の真ん中を走行できるようにする。
・曲がり角走行テスト:チェックポイントである曲がり角にきた時正しく曲がることができるようにする。
・経路探索テスト:入力された行き先までの道を探索できるかテストする。
・インターフェイスからの入力テスト:ユーザーからの入力でいきたい場所への経路が出力できるかをテストする。
・会話テスト:ユーザーと会話ができるかテストする。
・案内テスト:実際に学校内の案内をさせ、目的地にたどり着けるかテストする。
<関数・変数について>
関数はすべて小文字で書き、最初にモジュール名を書く。二単語以上のときはアンダーバー(_)でつなぐ。
変数名は小文字で書き、二単語以上のときは二単語目の頭の文字を大文字にする。
<バージョン管理について>
バージョン管理は新しい機能を追加するごとにそのバージョンのバックアップをとり、バージョンの数字を上げていく。
また、足した機能をテキストファイルにまとめていく。