名称 MIRS2004ソフトウェア詳細設計書
番号 MIRS2004-SOFT-0002

版数 最終更新日 作成 承認 改訂記事
A01 2021.01.27 佐藤恭理、中村伸哉 香川先生 初版

目次

1.はじめに
2.基本機能
3.モジュール構成
4.フローチャート
5.LCD表示案
6.アプリケーションのインターフェース案
7.各パートへのリンク



1.はじめに

本ドキュメントはMIRS2004の詳細設計書、ソフトウェアについてのドキュメントである。


2.基本機能

基本機能をtab.1に示す。

tab.1 基本機能

機能 目的 方法 記述言語
ボール検知機能 ボール回収を実現するため カメラを用いてボールを画像認識する Python
ベルトコンベア機能 ボールを回収、格納するため モータを用いて軸を回転させ、ベルトコンベアを起動させる C言語
衝突回避機能 人といった障害物に衝突する事故を防ぐため 超音波センサを用いて、人などの大きな物体を衝突前に検知し、後退する C言語
ディスプレイ表示機能 ディスプレイをつけ、MIRSに表情を表示させるため RaspberryPiにつなげて、電源投入時から表示させる Python
アプリケーション連携機能 ユーザにMIRSの動作開始や停止といった最低限の制御を行わせることにより、ユーザ体験を向上させるため アプリケーション開発をする JavaScript

3.モジュール構成

各機能実現のためのモジュール構成を以下に示す。

3.1Arduinoモジュール構成

Arduinoのモジュール構成図をfig.1に示す。
また、fig.1の新規追加、または変更を行ったモジュールの詳細をtab.2に示す。

fig.1 Arduinoモジュール構成図


tab.2 Arduino新規、変更モジュール

モジュール名 概要 関数名 備考
slave 各種の処理の実行を行う void slave() 引数、戻り値は共に特になし
motor_conveyor コンベアを動かすためのモーターの制御を行う void motor_conveyor_open()
void conv_ctrl_execute()
void conv_ctrl_set(conv_state_t conv_state)
void conv_ctrl_get(conv_state_t *conv_state)
コンベアのステータスを引数とする

3.2RaspberryPiモジュール構成

RaspberrPiにはメイン処理用のC言語プログラムと画像認識用の Pythonプログラムを実装する。それぞれのモジュール構成を以下に示す。

3.2.1C言語モジュール構成

C言語プログラムのモジュール構成図をfig.2に示す。
また、fig.2のモジュールの詳細をtab.3に示す。

fig.2 C言語モジュール構成図


tab.3 C言語新規、変更モジュール

モジュール名 概要 関数名 備考
pilot_tb テニスボール回収用の全体的な操作を行う int main() 引数、戻り値は共に特になし
pilot_tt 卓球ボール回収用の全体的な操作を行う int main() 引数、戻り値は共に特になし
stop 実行中の動作を停止する int stop() 引数、戻り値は共に特になし
C_send Pythonと通信を行う void C_send(int mode) int型の変数を引数とする
deg pythonと通信を行い、最も近いボールとの角度を測定する int deg(int *p) int型の変数を引数とする
request Arduinoへ命令を送る void request_set_convmode(conv_state_t conv_state)
int request_get_convmode(conv_state_t *conv_state)
コンベアのステータスを引数、戻り値とする

3.2.2Pythonモジュール構成

Pythonプログラムのモジュール構成図をfig.3に示す。
また、fig.3のモジュールの詳細をtab.4に示す。

fig.3 pythonモジュール構成図


tab.4 python新規モジュール

モジュール名 概要 関数名 備考
py_recv C言語と通信を行う py_recv() int型の変数を戻り値とする
face 卓球ボール回収用の初期操作を行う change() 引数、戻り値は共に特になし
deg 画像認識を行い、最も近いボールとの角度を測定する 関数なし 引数、戻り値は共に特になし

4.フローチャート

動作フローチャートをfig.4に示す

flowchart

fig.4 フローチャート


5.LCD表示案

MIRS機体正面に設置したLCDモニターにTkinterを用いて表情を表示する。表示する表情をfig.5、fig.6に示す。

fig.5 MIRS表情"smile"


fig.6 MIRS表情"warning"


6.アプリケーションのインターフェース案

iOSアプリまたはWebアプリケーションとして実装する。実装予定のUIをfig.7に示す。
また、プロトタイプをAdobe XDにて示す。

prototype

fig.7 UIプロトタイプ


7.別パートへのリンク

MIRS2004 詳細設計書(メカニクス)
MIRS2004 詳細設計書(エレクトロニクス)




MIRS2004ドキュメント管理台帳へ