名称 MIRS2104基本設計書(ソフト)
番号 MIRS2104-DSGN-0004

版数 最終更新日 作成 承認 改訂記事
A02 2021.10.04 浅野悠也・尾崎優太 香川先生 第2版

目次



1.ドキュメント概要

本ドキュメントは、CiDerプロジェクトのソフトウェア基本設計者である。

2.基本設計

Tab.1に基本設計に関する表を示す。
Tab.1 基本設計
機能名 目的 詳細
音声出力機能 子供を案内するため 音声で子供に話しかけ、横断歩道をわたる。子供が接近したことを検知したら動作する。
握手検知機能 子供と手をつないでいることを認識するため タッチセンサを用いて子供がロボットに取り付けられている手を握っていることを検知し動作する。
横断機能 子供と同時に横断するため 直進する。
登下校記録機能 保護者に対して子供が安全に登下校していることを通知するため ICカードリーダーを用いて子供の登下校を記録し、保護者に通知メールを送る。
横断行動評価機能 車の接近状況から子供の横断を評価するため 車の位置及び子供の横断の情報から、子供の横断を評価する。
子供接近検知機能 子供が接近を検知するため カメラ若しくはセンサを用いて、ロボットに子供の接近を検知させ、接近を検知押したら音声を出力する。
接近検知機能 人や障害物が接近した際に動作を停止するため 超音波センサを用いて人や障害物を検知し停止する。
緊急停止機能 問題発生時に緊急停止するため 緊急停止ボタン押下検知時にすべての動作を停止する。スマートフォンからの遠隔操作も可能にする。
遠隔操作機能 スマートフォンで特定の操作を遠隔で行う LINE APIを用いて遠隔でMIRSに発進、停止等の操作を行えるようにする。

3.LINE APIについて

Tab.2にLINE APIに関する表を示す。
Tab.2 LINE APIに関する表
機能名 目的 詳細
スタート MIRSを待機状態にする 子供が接近するまでMIRSを待機させる。
ストップ MIRSをその場で停止させる MIRSをその場で停止させる。スタートにより再始動する。
緊急停止 MIRSの全動作を強制的に止める MIRSと通信したまま全動作を強制的に終了させる。MIRSを再起動することにより再使用が可能になる。
手動操作 MIRSを特定の操作可能な状態にする 直進、回転などの標準プログラムの動作を遠隔で使用可能にする。
状況表示 MIRSの動作状態を画面に表示する MIRSの動作状況をスマートフォンに表示する。

4.動作フローチャート

Fig.1に動作フローチャートを示す。

Fig.1 動作フローチャート

5.モジュールの構成

   5.1Arduinoモジュール構成

   Arduinoのモジュール構成をFig.2に示す。水色のモジュールについては新規で作成を行う。また、Fig.2のモジュールの詳細をTab.3に示す。

Fig.2 モジュール図

Tab.3 モジュール詳細

モジュール名称 用途
ino_control.ino(新規作成) RaspberryPiとの通信を行う
emergency.ino(新規作成) 非常停止用動作プログラム。LINE APIからの非常停止指示に基づき停止動作を行う
run_ctrl.ino 走行系制御
vel_ctrl.ino 速度制御
motor.ino モータ制御
distance.ino 距離計測
encorder.ino エンコーダ読み取りモジュール
io.ino I/Oポートの操作

   5.2 Raspberry Pi モジュール構成

   RaspberryPiには、C言語モジュールによる実装を主とし、Python言語モジュールを補助的に利用する。

      5.2.1 C言語モジュール作成

      RaspberryPiのモジュール構成をFig.3に示す。水色のモジュールについては新規で作成を行う。また、Fig.3のモジュールの詳細をTab.4に示す。

Fig.3 モジュール図

Tab.4 モジュール詳細

モジュール名称 用途
py_con.py(新規作成) 初期設定および、全体の動作を司る
python.c(新規作成) Pythonプログラムを通信を行う
c_request.c Arduinoに命令を送る
aruduino.c Arduinoに命令を送る
uss.c 超音波センサの読み取り
get_image.c 画像撮影を行う

      5.2.2 Python言語モジュール作成

      RaspberryPiのモジュール構成をFig.4に示す。水色のモジュールについては新規で作成を行う。また、Fig.4のモジュールの詳細をTab.5に示す。

Fig.4 モジュール図

Tab.5 モジュール詳細

モジュール名称 用途
py_con.py(新規作成) 初期設定および、全体の動作を司る
line.py(新規作成) LINEの送受信を行う
speaker.py(新規作成) スピーカーの制御を行う
py_request.py(新規作成) Arduinoに命令を出す
iccard.py(新規作成) ICカードリーダーの制御を行う
iden.py(新規作成) 横断歩道上の識別を行う

6.各パートへのリンク

各パートのリンクを以下に示す。
基本設計書(全体)
基本設計書(エレキ)
基本設計書(ソフト)
基本設計書(ハード)





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