2024年 春期 応用情報技術者試験 問7
業務用ホットコーヒーマシン
G社は、業務用ホットコーヒーマシン(以下、コーヒーマシンという)を開発している。コーヒーマシンの外観を図1に、コーヒーマシンの内部構成を図2に、コーヒーマシンの主な構成要素を表1に、それぞれ示す。

構成要素名 | 概要 |
---|---|
制御部 | ・コーヒーマシン全体の制御及び状態管理を行う。また、カップの有無やサイズ、カップが空かどうかを判定(以下、カップ判定という)するための画像認識を行う。 |
タッチパネル | ・制御部から指示された画面を表示する。 ・利用者がタッチした座標情報を制御部に通知する。 |
抽出部 | ・制御部から指示された分量のコーヒーを抽出し、コーヒー排出口から排出する。 |
ドア | ・開閉センサーをもち、開閉状態を0/1のデジタル信号で制御部に入力する。 ・ドアを閉じた状態でロックすることができるロック機構をもつ。ロック機構は、制御部からの指示でロック及びロック解除ができる。ロック及びロック解除に掛かる時間は無視できるほど小さいものとする。 |
カップ載置部 | ・コーヒー排出口から排出されたコーヒーを受けるカップを置く場所である。 |
カメラ | ・カップ載置部を撮影するカメラで、制御部からの指示で撮影を行い、制御部と共有するメモリに画像データを書き出す。 |
【カップ判定の仕様】
カップ判定は、利用者がドアを閉じた時に、カメラでカップ載置部を複数回撮影して行う。カップ判定の結果一覧を、表2に示す。
結果 | 概要 |
---|---|
カップなし | ・カップ載置部に何も置かれていないことを示す。 |
空カップあり | ・専用の紙カップが、空の状態でカップ載置部に置かれていることを示す。この結果には、カップのサイズ(大、中、小)が付加される。 |
カップあり | ・専用の紙カップが空でない状態でカップ載置部に置かれていることを示す。 |
障害物あり | ・専用の紙カップ以外の物がカップ載置部に置かれていることを示す。 |
【ドアの開閉状態の判定仕様】
ドアの開閉センサーは、ドアが完全に閉じているときは0、それ以外は1を出力する。非常に短い間隔で0と1とを交互に出力することがあるので、制御部のソフトウェアは入力された値を10ミリ秒間隔で読み出し、4回連続で同じ値が読み出されたらドアの開閉状態を確定する。
【コーヒーマシンの動作概要】
コーヒーマシンの動作概要を次に示す。
(1) 電源が入ると、初期化処理を行う。初期化処理が完了したら待機中となり、カップをカップ載置部に置くように促す画面をタッチパネルに表示する。
(2) 利用者がドアを開けて、購入したカップをカップ載置部に置く。
(3) 利用者がドアを閉じると、カップ判定を行う。
(4) カップ判定の結果が"空カップあり"となるので、カップのサイズを表す文字と、確認ボタンで構成される画面をタッチパネルに表示する。
(5) 利用者が確認ボタンにタッチすると、aし、カップのサイズに応じた分量のコーヒーを抽出してコーヒー排出口からカップに注ぎ込む。タッチパネルには、抽出中であることを示す画面を表示する。
(6) コーヒーの排出が終わると、ドアをロック解除し、タッチパネルにカップの引き取りを促す画面を表示する。
(7) 利用者がドアを開け、カップを引き取る。
(8) 利用者がドアを閉じると、カップ判定を行う。
(9) カップ判定の結果が"カップなし"となるので、待機中に戻る。
ここで、カップ判定中に利用者がドアを開けた場合は、カップ判定を中止し、利用者がドアを閉じるのを待つ。また、確認ボタンがタッチされる前に、利用者がドアを開けた場合は、カップ判定の結果を破棄して、利用者がドアを閉じるのを待つ。
カップ判定の結果が"カップあり"又は"障害物あり"の場合、カップ判定の結果に応じた適切な画面をタッチパネルに表示する。
【制御部のソフトウェア構成】
制御部のソフトウェアは、リアルタイムOSを用いて実装する。制御部の主なタスクの処理概要を表3に示す。
タスク名 | 処理概要 |
---|---|
メイン | ・コーヒーマシンの状態管理を行う。 |
カップ判定 | ・メインタスクから"判定"を受けると、カメラで複数回撮影を行い、得られた画像データを用いてカップ判定を行った後、結果を"判定結果"でメインタスクに通知する。判定に掛かる時間は、300ミリ秒以上500ミリ秒以下である。 ・カップ判定中にメインタスクから"中止"を受けると、5ミリ秒以内にカップ判定を中止して"中止完了"をメインタスクに通知する。カップ判定中以外で"中止"を受けたときは無視する。 |
抽出 | ・メインタスクから"抽出"を受けると、抽出部を起動して抽出を開始し、抽出部から抽出終了の受信まで待つ。 ・メインタスクから"画面表示"を受けると、指定された画面をタッチパネルに表示する。 ・利用者が確認ボタンに触れたことを検出すると、"確認"をメインタスクに通知する。 |
タッチパネル | ・メインタスクから"画面表示"を受けると、指定された画面をタッチパネルに表示する。 ・利用者が確認ボタンに触れたことを検出すると、"確認"をメインタスクに通知する。 |
ドア | ・開閉センサーの出力を10ミリ秒間隔で読み出し、確定したドアの開閉状態を保持する。 ・確定したドアの開閉状態が変化したら、"ドア開"又は"ドア閉"をメインタスクに通知する。 ・メインタスクから"ロック"又は"ロック解除"を受けると、ロック機構を操作して、ドアをロック又はロック解除する。 |