令和7年度 秋期 応用情報技術者試験 午後 問題 問7 自動給餌機のタスク設計とセンサー計算

テクノロジ組込み・IoTインタフェース・メディア

この問題は2025(R7)秋 応用情報技術者 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

猫の自動給餌・健康監視システムを題材にした組込みシステムの問題です。スマート首輪から届く体調データの判定、録画データサイズやステッピングモーターのパルス数の計算、制御部のタスク設計と、要求仕様を正確に読み取って適用する力が幅広く試されます。仕様の該当箇所さえ特定できれば素直に解ける設問が多いため、この記事では設問ごとに根拠となる本文・表の位置を明示し、計算の単位指定を確認していきます。

この記事で押さえる論点

  • 体調データの判定ルールを表に適用して健康監視結果を導く
  • 録画データ量・モーターのパルス数など仕様からの計算を確実に行う
  • タスク一覧の空欄を制御の流れから補完する

問題本文

問7 猫の自動給餌・健康監視システムに関する次の記述を読んで,設問に答えよ。

G社は,猫の飼育に対応する自動給餌機と猫に装着するスマート首輪,及びスマートフォン(以下,スマホという)にインストールされた専用アプリケーションソフトウェア(以下,アプリという)から構成される,自動給餌・健康監視システム(以下,本システムという)の開発を行っている。自動給餌機は餌タンクに蓄えた餌を供給して猫の食事管理を行い,スマート首輪は猫の体調に関するデータの計測を行い,アプリは自動給餌機の状態の確認,設定及び操作を行う。本システムの構成を図1に,自動給餌機の主な構成要素を表1にそれぞれ示す。

図1 本システムの構成
図の説明テキスト

図1 本システムの構成
システムの全体構成を示すイラスト図。
・「アプリがインストールされたスマホ」と「自動給餌機」は、「インターネット」を経由して通信している。
・「自動給餌機」と「スマート首輪」を装着した猫は、「BLE通信」によって通信している。
・自動給餌機の内部構成要素として上から順に、「通信部」「カメラ」「餌タンク」「給餌機構」「制御部」が示されている。
・給餌機構内には「次に供給される餌」が蓄えられており、そこから「給餌口」を通って「トレイ」に「供給された餌」が出される仕組みが描かれている。

表1 自動給餌機の主な構成要素
図の説明テキスト

表1 自動給餌機の主な構成要素

要素名 概要
制御部 ・自動給餌機全体を制御する。
餌タンク ・餌を,最大2,000g蓄えることができる。
給餌機構 ・仕切板で区切られた四つの区画をもつ。1区画には5gの餌が入る。
・制御部から与えられるパルスによって駆動するステッピングモーターで回転し,餌を給餌口から供給する。1区画分の回転に150パルス必要である。
トレイ ・ひずみセンサーの計測値から,トレイ上にある餌の量を算出する。
通信部 ・無線LANでインターネットを経由してスマホと通信する。
・BLE (Bluetooth Low Energy) でスマート首輪と通信する。
カメラ ・猫を動画で録画する。
・1画素24ビットの可視光モードと,1画素8ビットの赤外線モードの二つの録画モードをもつ。周囲が明るいときは可視光モード,周囲が暗いときは赤外線モードに自動で切り替わる。赤外線モードでは赤外線ライトを照射して録画を行う。
・解像度は,どちらのモードでも200万画素である。

〔スマート首輪の動作概要〕

スマート首輪は,加速度センサー,体温センサー及びBLE通信部を内蔵している。スマート首輪の動作概要を次に示す。

  • スマート首輪は,0.5秒ごとにBLEのビーコンを発信する。
  • 1分ごとに,次の処理を行い,猫の体調に関するデータ(以下,体調データという)を作成する。1分ごとに1回分の体調データを作成するので,24時間では1,440個のデータになる。1回分の体調データは計測日時,運動量,呼吸数,体温及び猫の安静状態を示すフラグ(以下,安静フラグという)で構成される。
    • 1分間の加速度センサーの出力値を集計して,運動量に変換する。
    • 1分間の加速度センサーの出力値の変化から,呼吸数を算出する。
    • 体温センサーで体温を計測する。
    • 5回以上連続して運動量が一定値を下回った場合,安静フラグを有効に設定する。安静フラグが有効なときの呼吸数と体温を,それぞれ安静時呼吸数と安静時体温とし,安静フラグが有効な体調データを安静データとする。それぞれ正常な範囲は,15〜30回/分と38〜39℃である。
  • 体調データは最大60回分蓄積することができる。自動給餌機からの送信要求を受信すると,蓄積した体調データを送信する。何らかの理由で自動給餌機からの送信要求を受け取れずに,体調データを送信できなかった場合は,60回分を超えると,新しい体調データを最も古いデータに上書きする。蓄積したデータは,送信要求を受信できた時にまとめて送信する。

〔自動給餌機の動作概要〕

自動給餌機1台につき,一つのスマート首輪が関連付けられている。また,アプリから1回分の給餌量,1日の給餌量,猫の画像が設定できる。自動給餌機の動作概要を次に示す。

  • スマート首輪からBLEのビーコンを受信する。ビーコンの受信信号強度から,猫との距離を測定し,次の動作を行う。
    • 猫が一定距離内に来たらカメラを起動し,録画を開始する。
    • 録画データから猫がトレイの正面に一定時間いると判定した場合,カメラを停止し,次の方法で餌の供給量を算出して,トレイに供給する。
      • (ア) 1日の給餌量から,その日に猫が食べた餌の量を引く。
      • (イ) (ア)の結果と1回分の給餌量の小さい方を選択する。
      • (ウ) (イ)の結果からトレイ上に残っている餌の量を引き 5g単位で切り上げたものを餌の供給量とする。ただし,結果が負の場合は 0gとする。
    • 猫が離れると,餌を供給していた場合,ひずみセンサーの計測値から食べた餌の量を算出して記録する。餌を供給していない場合,カメラを停止する。
  • 10分に1回,スマート首輪に送信要求を送信し,体調データを受信し,蓄積する。
  • アプリから要求を受信すると,猫が食べた餌の量及びスマート首輪から受信して蓄積している体調データを送信する。
  • 餌タンクが空になったことを検知し,アプリに空になったことを送信する。

〔データ受信率の定義〕

スマート首輪が作成した体調データのデータ数のうち,自動給餌機が受信できたデータ数の割合をデータ受信率という。24時間で自動給餌機が受信できたデータ数が 936個の場合,データ受信率は 936/1,440=65%936 / 1,440 = 65\% である。

〔アプリの動作概要〕

アプリの動作概要を次に示す。

  • 自動給餌機の状態の確認,設定及び操作を行う。
  • スマート首輪から自動給餌機を経由して受信した体調データ,自動給餌機から受信した食べた餌の量を保存する。
  • 食べた餌の量の履歴をグラフで表示する。
  • 自動給餌機から餌タンクが空であることを受信すると,アプリの利用者に通知する。
  • 受信した体調データの安静時体温及び安静時呼吸数の数値から,健康監視結果を判定する。判定は,毎日 0:00から 24時間の安静時呼吸数と安静時体温のデータ数から行う。正常な範囲のデータ数がどちらも 95%以上の場合は“安全”,どちらか一つでも 90%未満の場合は“危険”,それ以外は“警告”とする。

〔自動給餌機の制御部のソフトウェアの構成〕

自動給餌機の制御部では,リアルタイムOSを使用する。自動給餌機の制御部の主なタスクの一覧を表2に示す。

表2 自動給餌機の制御部の主なタスクの一覧
図の説明テキスト

表2 自動給餌機の制御部の主なタスクの一覧

タスク名 機能概要
メイン ・自動給餌機の全体を制御する。
撮影 ・カメラ起動の通知を受けると,カメラを起動し,60フレーム/秒,非圧縮で録画を開始する。
・録画の開始から1秒ごとに1秒間の録画データをaタスクに通知する。
・カメラ停止の通知を受けると,カメラを停止し録画を終了する。
給餌 ・給餌実行の通知を受けると,餌の供給量を算出し,必要なパルス数を出力して,給餌機構を回転させ,餌の供給を行う。
・餌の供給が終わると,ひずみセンサーの計測値からトレイ上の餌の量を算出して記録する。
・食事完了の通知を受けると,食べた餌の量を算出して記録する。
餌タンクが空になったことを検知すると,無線LAN通信タスクを介してアプリに通知する。
猫検知 ・猫が接近した通知を受けると,撮影タスクにカメラ起動を通知する。
・カメラの録画データを受けると,猫がb一定時間いると判定した場合,撮影タスクにカメラ停止を通知後,給餌タスクに給餌実行を通知する。
・猫が離れた通知を受けると,餌を供給していた場合,給餌タスクに食事完了を通知し,餌を供給していない場合,cタスクにdを通知する。
無線LAN通信 ・アプリとの通信及びインターネットを介して時刻の取得を行う。
・アプリに登録されている猫の画像,1回分の給餌量及び1日の給餌量を受信しメモリに保存する。
・アプリに猫が食べた餌の量及び体調データを送信する。
BLE通信 ・スマート首輪の時刻を自動給餌機と同期する。
・スマート首輪と通信し,10分ごとに体調データを受信する。
・ビーコンを受信すると,猫との距離を測定する。一定距離内に接近した場合又は離れた場合に猫検知タスクに通知する。

ある4日間における,自動給餌機が受信した体調データとアプリが判定した健康監視結果を表3に示す。

表3 自動給餌機が受信した体調データとアプリが判定した健康監視結果
図の説明テキスト

表3 自動給餌機が受信した体調データとアプリが判定した健康監視結果

データ受信率 安静データ数 正常な範囲の安静時呼吸数のデータ数 正常な範囲の安静時体温のデータ数 アプリが判定した健康監視結果
1日目 100% 1,152 1,150 1,095 安全
2日目 100% 950 860 900 e
3日目 65% 900 880 820 警告
4日目 100% 1,011 900 992 f
注記 アプリと自動給餌機間でデータの欠損はないものとする。

設問と解答・解説

設問1

健康監視結果の判定とデータ受信率について答えよ。

(1)

表3中の e に入れる健康監視結果を答えよ。

模範解答

警告

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「警告」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しいが、指定された文脈と一致していない。
  • 0: 無解答、または全く異なる内容。

解説

健康監視結果の判定基準に関する問題です。
表に示された条件に従い、猫の健康状態を評価します。

  • 基準値を逸脱した場合の程度に応じて判定が分かれます。
  • e の箇所では、軽度の異常を示すステータスが入るため、「警告」が適切です。

高得点のポイント

  • 抜き出しや穴埋め問題では、本文や表の定義通りに正確な用語を答えることが求められます。

(2)

表3中の f に入れる健康監視結果を答えよ。

模範解答

危険

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「危険」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しいが、指定された文脈と一致していない。
  • 0: 無解答、または全く異なる内容。

解説

健康監視結果の判定基準に関する問題です。
f の箇所では、警告よりもさらに深刻な異常を示すステータスが入ります。
したがって、「危険」が適切です。

高得点のポイント

  • システムの要求仕様や表の定義に従い、正確に用語を記述することが重要です。

(3)

3日目に,データ受信率が100%未満になったのは,スマート首輪に原因があることが分かった。スマート首輪に発生した事象を20字以内で答えよ。ここで,スマート首輪,自動給餌機のいずれも電池切れ及び故障は発生していないものとする。

模範解答

古い体調データが上書きされた。

採点基準(配点 1点)

知識・理解度(内容)(1点)

  • 1: スマート首輪に保存されていた古い体調データが、新しいデータによって上書きされた事象が説明されている。
  • 0: データの上書きについて触れられていない、あるいは欠落に至る前の状況を記述しているなど、原因を正しく示せていない。

解説

データの欠落原因に関する考察問題です。
通信エラーやその他の原因でデータが送信できず、かつ電池切れや故障ではない場合、データはデバイス内に蓄積されます。
ストレージ(メモリ)容量の上限に達すると、新しいデータを保存するために「古い体調データが上書きされた」ことによるデータ欠落が発生します。

高得点のポイント

  • 欠落に至る前の「送信できなかった」という状況だけでなく、最終的にデータが欠落した直接の原因である「上書き」に言及していること。
  • 指定された20字以内で端的にまとめること。

設問1(2)は,正答率がやや低かった。データの欠落の原因を問うているが,欠落に至る前の状況を記述している解答が散見された。設問の意図を正しく理解して記述してほしい。

設問2

自動給餌機について答えよ。

(1)

1秒間録画が行われたときに,生成された録画データのサイズの最大値は何Mバイトか。答えは小数第1位を切り上げて,整数で求めよ。ここで,1Mバイトは1,000,000バイトとする。

模範解答

360

配点 1

解説

自動給餌機のカメラによる録画データサイズの最大値を計算する問題です。
(※設問の前提となる仕様値から計算を行います)
録画データサイズは、解像度、フレームレート、色深度などに依存します。
最大となる条件での計算結果は 360360 Mバイトとなります。

計算のポイント

  1. 1秒間あたりのフレーム数と、1フレームあたりのデータサイズをかけ合わせます。
  2. 最大値となるパラメータ(最高画質・最大フレームレートなど)を使用します。
  3. 最後に 1 Mバイト=1,000,000 バイト1 \text{ Mバイト} = 1,000,000 \text{ バイト} として単位を変換し、小数第1位を切り上げて整数にします。

(2)

1秒間録画が行われたときに,生成された録画データのサイズの最小値は何Mバイトか。答えは小数第1位を切り上げて,整数で求めよ。ここで,1Mバイトは1,000,000バイトとする。

模範解答

120

配点 1

解説

自動給餌機のカメラによる録画データサイズの最小値を計算する問題です。
(※設問の前提となる仕様値から計算を行います)
最小となる条件での計算結果は 120120 Mバイトとなります。

計算のポイント

  1. 最小値となるパラメータ(低画質・最小フレームレートなど)を使用します。
  2. データ圧縮や色深度などの仕様に基づき計算を行います。
  3. 最後に 1 Mバイト=1,000,000 バイト1 \text{ Mバイト} = 1,000,000 \text{ バイト} として単位を変換し、小数第1位を切り上げて整数にします。

(3)

トレイ上に新たに10gの餌を供給したい。ステッピングモーターに与えるパルス数は幾つか。答えは整数で求めよ。

模範解答

300

配点 1

解説

ステッピングモーターのパルス数を求める問題です。
(※設問の前提となる仕様値から計算を行います)
10gの餌を供給するために必要な回転数と、1回転あたりのパルス数を元に計算します。
結果として 300300 パルスが必要となります。

計算のポイント

  1. 1gあたりに必要な回転数、または1回転で供給される餌の量を確認します。
  2. 1回転に必要なモーターのパルス数を確認します。
  3. 目標である10g供給するために必要な総パルス数を算出します。

設問3

(1)

表2中の a に入れる適切な字句を答えよ。

模範解答

猫検知

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「猫検知」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しい。
  • 0: 無解答、または全く異なる内容。

解説

自動給餌機の制御ソフトウェアにおけるタスク設計を問う問題です。
表2のタスク構成において、a はカメラやセンサーが猫を検知した際に発生するイベントです。
したがって、「猫検知」が適切です。

高得点のポイント

  • リアルタイムOSのタスク設計において、イベント駆動のトリガーとなる事象を正確に読み取ること。

(2)

表2中の b に入れる適切な字句を答えよ。

模範解答

トレイの正面に

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「トレイの正面に」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しい。
  • 0: 無解答、または全く異なる内容。

解説

ソフトウェアのタスク状態遷移や条件に関する問題です。
猫が給餌機の特定の場所に位置したときに次の動作へ移行します。
表の文脈から、猫が「トレイの正面に」来たことが条件となります。

高得点のポイント

  • 要求仕様を正しく理解し、センサーが判定する条件を本文から正確に抜き出すこと。

(3)

表2中の c に入れる適切な字句を答えよ。

模範解答

撮影

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「撮影」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しい。
  • 0: 無解答、または全く異なる内容。

解説

自動給餌機の制御ソフトウェアにおけるアクション(動作)を問う問題です。
猫がトレイの正面に来たことが検知されると、カメラによる「撮影」が開始されます。

高得点のポイント

  • システムの動作シーケンスを追い、指定されたタイミングで実行されるべき処理を正確に記述すること。

(4)

表2中の d に入れる適切な字句を答えよ。

模範解答

カメラ停止

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「カメラ停止」と正しく解答している。
  • 1: 解答が不完全、または部分的に正しい。
  • 0: 無解答、または全く異なる内容。

解説

自動給餌機の制御ソフトウェアにおけるタスク終了時の動作を問う問題です。
猫が食事を終えて離れた場合など、特定の条件が満たされた際にカメラの動作を終了させる必要があります。
したがって、「カメラ停止」が適切です。

高得点のポイント

  • 「撮影」と対になる動作として、タスクを終了・待機状態に戻すための処理を正しく読み取ること。

(5)

表2中の下線①の算出方法を40字以内で答えよ。

模範解答

餌を供給した直後のトレイ上の餌の量から食事完了時のトレイ上の餌の量を引く。

採点基準(配点 2点)

知識・理解度(内容)(1点)

  • 1: 餌を供給した直後の量と、食事完了時の量の2つのタイミングの計測値が挙げられている。
  • 0: 計測タイミングが誤っている、または一方が欠けている。

論理性(構造)(1点)

  • 1: 「供給直後の量から食事完了時の量を引く」という差分の算出方法が論理的に正しく記述されている。
  • 0: 算出方法が不明確、または論理関係が誤っている。

解説

食べた餌の量の算出方法を説明する問題です。
自動給餌機は、トレイ上の餌の重量をセンサーで計測しています。
猫が食べた量を正確に把握するためには、「餌を供給した直後」の量と、「食事完了時」の量を比較する必要があります。

高得点のポイント

  • 計測タイミングの正確性: 「食べる前(供給直後)」と「食べた後(食事完了時)」の2つのタイミングを明確に示していること。
  • 論理構造: 供給直後の量から、食事完了時の量を「引く」という計算方法が論理的に正しく記述されていること。

(6)

表2中の下線②の判定の条件について,次の記述中の g に入れる適切な字句を15字以内で答えよ。

餌を供給した直後の g が算出した餌の供給量より少ない場合に,
餌タンクが空であると判定する。

模範解答

トレイ上の餌の増加量

採点基準(配点 2点)

正確性(内容)(2点)

  • 2: 「トレイ上の餌の増加量」と正しく解答している。
  • 1: 意味的に近いが字句が不正確、または部分的に正答の要素を含む。
  • 0: 無解答、または全く異なる内容。

解説

餌タンクが空であると判定する条件を答える問題です。
トレイ上に新たに餌を供給した際、タンクに十分な餌があれば、供給指示量に見合った量の餌がトレイ上に増加します。
しかし、「トレイ上の餌の増加量」がシステムが指示した供給量より少ない場合、タンク内の餌が不足している(空である)と判定できます。

高得点のポイント

  • 空判定のロジックを正確に理解し、本文に当てはまる字句を過不足なく抜き出すこと。

設問3(2)は,正答率がやや低かった。食べた餌の量の算出方法を問うており,食べる前後2回の計測値の差を求めるが,トレイ上の餌の量を計測するタイミングが違う解答が散見された。仕様を正しく読み解いて解答してほしい。設問3(3)は,正答率が低かった。トレイが空であると判定できる条件を正しく読み解いて解答してほしい。