名称 MIRS2105ソフト詳細設計
番号 MIRS2105-SOFT-0001
現在時刻


版数 最終更新日 作成 承認 改訂記事
A02 2022.2.21 武藏 奏汰、望月 優輝 香川先生 第2版

目次

1.はじめに
2.担当メンバー
3.機能概要
4.機能設計
5.各モジュールとの関係
6.動作フロー
7.追加機能の実装方法
8.各パートへのリンク

 

1.ドキュメント概要

本ドキュメントはPhotoKENプロジェクトに関するソフトウェア基本設計についてまとめたものである


2.担当メンバー

MIRS2105のソフトウェア担当メンバーを以下に示す

武藏、望月


3.機能概要

実現したい製品機能をTable1に示す。

table 1 必要機能

機能 目的 方法 使用言語
画像認識 人の存在、位置情報を取得するため OpenCVを使用してカメラの映像から人を判別 python
追尾機能 家族の姿をカメラの撮影範囲内に保つため 常時カメラを起動し、画像認識で捉えた人の顔が撮影範囲の中央に来るように
頭部やカメラの角度を変更する
python,c言語(カメラ機能はpython,駆動系はC言語)
写真撮影機能 家庭での楽しい一瞬を思い出に残す 画像認識により笑顔を認識し、写真を撮影する。
またユーザーに選択してもらい、好きなタイミングで写真を撮影する
python
表情認識機能 家族での楽しい瞬間を捉え、写真撮影機能でメモリに残すため Raspberry PiとOpenCVによる画像認識で人の表情(笑顔)を判別する。
笑顔を認識次第撮影
python
撮影写真送信機能 撮影した写真をすぐ見える、保存できるようにするため 撮影した写真を、LINEAPI,もしくはgoogleによるメール機能を通して
ユーザーの個人アカウントに送信する。
python
衝突回避機能 追尾などの移動時に障害物への衝突を回避するため 超音波センサを使用し、常に前方の障害物との距離を計測、
一定距離に近づいたら衝突回避の動作をさせる
C言語
画面表示機能 子供が笑顔になるためのゲームを表示、
また撮影した写真をスライドショーにして表示
ラズパイディスプレイ(7インチ)を接続、ラズパイの機能であるautostartを使用し
作成したwebブラウザを表示
そこからユーザ操作に対応した動作へ移行
python,html,css,javascript

4.機能設計

以下に各端末に必要な機能を以下に示す。

Raspberry Piに必要な機能

Arduinoに必要な機能


5.各モジュールとの関係

製品機能の基本設計を示したものをfig1,fig2に示す。
また、各モジュールの内容をtable2,table3に示す。

fig1 モジュール構図(Raspberry Pi)

fig2 モジュール構図(Arduino)



table2 モジュール内容(Raspberry Pi)

モジュール名 概要
arduino Arduinoとのシリアル通信
start 初期設定
select 次の動作の候補を表示、選択後、担当モジュールへ移動
request Arduinoへの動作指令
detect 人の検知(常時バックグラウンドで起動)
capture 写真撮影、保存
botton タッチセンサの読み取り、タッチ後captureに移動
game selectよりゲーム選択時動作、ゲームを行う
(デモ機能はかくれんぼ?じゃんけん?)
avoid 超音波センサによる前方の障害物検知、回避
tracking 追尾機能
rotate 頭部回転機能
stop 通常停止、緊急停止を含めたモジュール

table3 モジュール内容(Arduino)

モジュール名 概要
raspberry Raspberry piとのシリアル通信
run_ctrl 走行制御
rotate_motor モータ制御(頭部回転機構)
gimbal_motor モータ制御(ジンバル機構)
encoder エンコーダの読み取り
io 各デバイスのピン設定、状態の取得

6.動作フロー

ソフト面における実際の動作をフローチャートにまとめたものをfig3に示す


fig.3 動作フロー

7.追加機能の実装方法

今回photoKenに対し、標準機から追加する機能についての実装方法をまとめたものをtable4に示す。


table4 新規機能と実装方法

機能 実装方法 使用言語
画像認識 画像認識実装方法 python
追尾機能 追尾機能実装方法 python,c言語(カメラ機能はpython,駆動系はC言語)
写真撮影機能 写真撮影機能実装方法 python
表情認識機能 表情認識実装方法 python
撮影写真送信機能 撮影写真送信機能実装方法 python
C言語、pythonからそれぞれの言語を呼び出す 関数呼び出し実装方法 C言語
画面表示機能 画面表示機能実装方法 python,html,css,javascript

8.各パートへのリンク

各パートごとの詳細設計のリンクを以下に示す


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