| 名称 | MIRS2104詳細設計書(ソフト) |
| 番号 | MIRS2104-SOFT-0004 |
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
| A03 | 2021.11.8 | 尾崎優太・浅野悠也 | 香川先生 | 第3版 |
| 機能名 | 目的 | 詳細 | 記述言語 |
|---|---|---|---|
| 音声出力機能 | 子供を案内するため | 音声で子供に話しかけ、横断歩道をわたる。子供が接近したことを検知したら動作する。 | Python |
| 握手検知機能 | 子供と手をつないでいることを認識するため | タッチセンサを用いて子供がロボットに取り付けられている手を握っていることを検知し動作する。 | C |
| 横断機能 | 子供と同時に横断するため | 直進する。 | C |
| 子供接近検知機能 | 子供が接近を検知するため | カメラ若しくはセンサを用いて、ロボットに子供の接近を検知させ、接近を検知押したら音声を出力する。 | C,Python |
| 遠隔操作機能 | スマートフォンで特定の操作を遠隔で行うため | LINE APIを用いて遠隔でMIRSに発進、停止等の操作を行えるようにする。 | Python |
Arduinoのモジュール構成をFig.1に示す。水色のモジュールについては新規で作成を行う。また、Fig.1のモジュールの詳細をTab.2に示す。
Arduinoのソフトウェアは、標準プログラムをベースとして、走行系のプログラムを記述する。
Fig.1 Arduinoモジュール図
Tab.2 Arduinoモジュール詳細
| モジュール名称 | 用途 |
|---|---|
| ino_control.ino(新規作成) | RaspberryPiとの通信を行う |
| emergency.ino(新規作成) | 非常停止用動作プログラム。LINE APIからの非常停止指示に基づき停止動作を行う。同時に運営者に緊急停止の事実の通知を行う。 |
| run_ctrl.ino | 走行系制御 |
| vel_ctrl.ino | 速度制御 |
| motor.ino | モータ制御 |
| distance.ino | 距離計測 |
| encorder.ino | エンコーダ読み取りモジュール |
| io.ino | I/Oポートの操作 |
RaspberryPiには、C言語モジュールによる実装を主とし、Python言語モジュールを補助的に利用する。
RaspberryPiのモジュール構成をFig.2に示す。水色のモジュールについては新規で作成を行う。また、Fig.2のモジュールの詳細をTab.3に示す。
RaspberryPiのC言語の利用法として、原則としてC言語を利用し、センサーを制御する。そのうえで、PythonやArduinoとの通信も行う。
Fig.2 C言語モジュール図
Tab.3 C言語モジュール詳細
| モジュール名称 | 用途 |
|---|---|
| py_con.py(新規作成) | 初期設定および、全体の動作を司る |
| python.c(新規作成) | Pythonプログラムを通信を行う |
| c_request.c | Arduinoに命令を送る |
| aruduino.c | Arduinoに命令を送る |
| uss.c | 超音波センサの読み取り |
| get_image.c | 画像撮影を行う |
RaspberryPiのモジュール図をFig3に、その詳細をTab.4に示す。
Pythonを利用しないと、効率的な制御ができない場合のみ、Pythonを利用する。主に、LINEAPIやスピーカーの制御に利用する。
Fig.3 Python言語モジュール図
Tab.4 Python言語モジュール詳細
| モジュール名称 | 用途 |
|---|---|
| py_con.py(新規作成) | 初期設定および、全体の動作を司る |
| line.py(新規作成) | LINEの送受信を行う |
| speaker.py(新規作成) | スピーカーの制御を行う |
| py_request.py(新規作成) | Arduinoに命令を出す |
| iden.py(新規作成) | 横断歩道上の識別を行う |
Fig.4 全体の動作に関するフローチャート
Fig.5 走行動作に関するフローチャート
Fig.6 腕部動作に関するフローチャート
各パートのリンクを以下に示す。
MIRS2104詳細設計書(エレキ)
MIRS2104詳細設計書(ソフト)
MIRS2104詳細設計書(メカニクス)
MIRS2104詳細設計書(メカニクス/アーム)
MIRS2104詳細設計書(メカニクス)/フレーム)