読み込み中...
先行公開中:2026年11月から一部が有料になります(無料プランはそのまま使えます)。詳しく ›
読み込み中...
猫の自動給餌・健康監視システムに関する次の記述を読んで,設問に答えよ。
出典:令和7年度 秋期 応用情報技術者試験 午後 問7
G社は,猫の飼育に対応する自動給餌機と猫に装着するスマート首輪,及びスマートフォン(以下,スマホという)にインストールされた専用アプリケーションソフトウェア(以下,アプリという)から構成される,自動給餌・健康監視システム(以下,本システムという)の開発を行っている。自動給餌機は餌タンクに蓄えた餌を供給して猫の食事管理を行い,スマート首輪は猫の体調に関するデータの計測を行い,アプリは自動給餌機の状態の確認,設定及び操作を行う。本システムの構成を図1に,自動給餌機の主な構成要素を表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%である。
アプリの動作概要を次に示す。
自動給餌機の状態の確認,設定及び操作を行う。
スマート首輪から自動給餌機を経由して受信した体調データ,自動給餌機から受信した食べた餌の量を保存する。
食べた餌の量の履歴をグラフで表示する。
自動給餌機から餌タンクが空であることを受信すると,アプリの利用者に通知する。
受信した体調データの安静時体温及び安静時呼吸数の数値から,健康監視結果を判定する。判定は,毎日0:00から24時間の安静時呼吸数と安静時体温のデータ数から行う。正常な範囲のデータ数がどちらも95%以上の場合は“安全”,どちらか一つでも90%未満の場合は“危険”,それ以外は“警告”とする。
自動給餌機の制御部では,リアルタイムOSを使用する。自動給餌機の制御部の主なタスクの一覧を表2に示す。
| タスク名 | 機能概要 |
|---|---|
| メイン | ・自動給餌機の全体を制御する。 |
| 撮影 | ・カメラ起動の通知を受けると,カメラを起動し,60フレーム/秒,非圧縮で録画を開始する。 ・録画の開始から1秒ごとに1秒間の録画データをaタスクに通知する。 ・カメラ停止の通知を受けると,カメラを停止し録画を終了する。 |
| 給餌 | ・給餌実行の通知を受けると,餌の供給量を算出し,必要なパルス数を出力して,給餌機構を回転させ,餌の供給を行う。 ・餌の供給が終わると,ひずみセンサーの計測値からトレイ上の餌の量を算出して記録する。 ・食事完了の通知を受けると,①食べた餌の量を算出して記録する。 ・②餌タンクが空になったことを検知すると,無線LAN通信タスクを介してアプリに通知する。 |
| 猫検知 | ・猫が接近した通知を受けると,撮影タスクにカメラ起動を通知する。 ・カメラの録画データを受けると,猫がb一定時間いると判定した場合,撮影タスクにカメラ停止を通知後,給餌タスクに給餌実行を通知する。 ・猫が離れた通知を受けると,餌を供給していた場合,給餌タスクに食事完了を通知し,餌を供給していない場合,cタスクにdを通知する。 |
| 無線LAN通信 | ・アプリとの通信及びインターネットを介して時刻の取得を行う。 ・アプリに登録されている猫の画像,1回分の給餌量及び1日の給餌量を受信しメモリに保存する。 ・アプリに猫が食べた餌の量及び体調データを送信する。 |
| BLE通信 | ・スマート首輪の時刻を自動給餌機と同期する。 ・スマート首輪と通信し,10分ごとに体調データを受信する。 ・ビーコンを受信すると,猫との距離を測定する。一定距離内に接近した場合又は離れた場合に猫検知タスクに通知する。 |
ある4日間における,自動給餌機が受信した体調データとアプリが判定した健康監視結果を表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 |
注記 アプリと自動給餌機間でデータの欠損はないものとする。
表3中の e , f に入れる健康監視結果を答えよ。
0 字
読み込み中…
3日目に,データ受信率が100%未満になったのは,スマート首輪に原因があることが分かった。スマート首輪に発生した事象を20字以内で答えよ。ここで,スマート首輪,自動給餌機のいずれも電池切れ及び故障は発生していないものとする。
0 / 20 字
読み込み中…
1秒間録画が行われたときに,生成された録画データのサイズの最大値,最小値はそれぞれ何Mバイトか。答えは小数第1位を切り上げて,整数で求めよ。ここで,1Mバイトは1,000,000バイトとする。
0 字
読み込み中…
トレイ上に新たに10gの餌を供給したい。ステッピングモーターに与えるパルス数は幾つか。答えは整数で求めよ。
0 字
読み込み中…
表2中の a 〜 d に入れる適切な字句を答えよ。
0 字
読み込み中…
表2中の下線①の算出方法を40字以内で答えよ。
0 / 40 字
読み込み中…
表2中の下線②の判定の条件について,次の記述中の g に入れる適切な字句を15字以内で答えよ。 餌を供給した直後の g が算出した餌の供給量より少ない場合に,餌タンクが空であると判定する。
0 / 15 字
読み込み中…