名称 | MIRS1903 ソフトウェア詳細設計書 |
---|---|
番号 | MIRS1903-SOFT-0002 |
版数 | 最終更新日 | 作成者 | 承認者 | 改訂記事 |
---|---|---|---|---|
A01 | 2019.12.13 | 芹澤正太郎・長井是親・村松岳志 | 初版 |
本ドキュメントはMIRS1903システム詳細設計書である。
Raspberry Pi 1台目の使用モジュールをFig.1に、2台目の使用モジュールをFig.2に示す。
Raspbery Piで使用するモジュール一覧を以下のTable.2に示す。
なお、本設計書ではディスプレイと接続された方のRaspberry Pi を2としてモジュールを定義した。
今回、新規に実装する関数についてのみ関数、引数を示した。それ以外の既存部分はMIRS4Gドキュメントに準じるものとする。
モジュール名 | 動作概要 | 関数 | 引数 | 戻り値 |
---|---|---|---|---|
pilot.c | 全体的な操作 | int main() | void | 0 or -1 |
request.c | Arduinoに指令を出す | void request_set_runmode(run_state_t state, int speed, int dist) | int speed, int dist | なし |
uss.c | 超音波センサを読み取る | |||
int uss_open_l() | なし | 0 or それ以外 | ||
int uss_open_r() | なし | 0 or それ以外 | ||
long uss_get_l() | なし | 測定値[cm] or -1 | ||
long uss_get_r() | なし | 測定値[cm] or -1 | ||
*snag.c | 障害物を検知したときの動作モジュール | int snag() | なし | 0 or 1 |
*camera_snag.c | カメラによる障害物検知の画像処理を行う | camera_snug() | なし | 0 or 1 |
モジュール名 | 概要 | 関数名 | 関数機能 | 引数 | 戻り値 |
---|---|---|---|---|---|
*camera_bumpy | カメラによる床のささくれの画像処理を行う | int camera() | 0 | 0 | 1(ささくれを検知)または0(ささくれを検知できなかった) |
*display.py | ディスプレイ表示を行う | ||||
_init_ | 表示フレームの設定 | parent | なし | ||
SetstartFrame | 画面表示 | なし | なし | ||
LengthSize | 縦幅入力 | なし | なし | ||
WidthSize | 横幅入力 | なし | なし | ||
StartBut | 開始処理 | なし | なし | ||
StopBut | 停止処理 | なし | なし | ||
*bumpy | 床のささくれを検知したときの動作モジュール | int bumpy() | なし | なし | なし |
Arduinoで使用するモジュール構成を以下のFig.2に示す。
Arduinoで使用するモジュール一覧を以下のTable.3に示す。
モジュール名 | 概要 | 関数名 | 引数 | 戻り値 |
---|---|---|---|---|
slave.ino | Raspberry Piとの通信、走行制御を行う | void slave() | なし | なし |
run_ctrl.ino | 走行制御を行う | |||
vel_ctrl.ino | 走行速度制御を行う | |||
distance.ino | 走行距離の測定を行う | |||
encoder.ino | エンコーダの読み取りを行う | |||
motor.ino | モータの制御を行う | |||
io.ino | ioピンの信号を取得する | |||
raspi.ino | Raspbey Pi との通信を行う |
動作フローチャートを以下に示す。
また、いかに走行動作、床のはがれ検知用モジュールの動作、障害物検知用モジュールの動作を示す。
wxPythonを用い、GUIを作成する。ディスプレイ表示プログラムのモジュール構成を以下に示す。
言語:Python(ver. 3.7.0)
GUIライブラリ:wxPython(ver. 4.0.7)
画面には体育館の縦横のサイズ入力が可能な欄と開始、停止ボタンを配置する。
ユーザーの入力はタッチパネルの動作を想定する。
画面のデザインを以下に示す。
各パートのドキュメントのリンクを以下に示す。