Helve’s Python memo

Pythonを使った機械学習やデータ分析の備忘録

エンベデッドシステムスペシャリスト試験 2017年午後Iの計算問題解説

情報処理技術者試験の高度試験の1つである、エンベデッドシステムスペシャリスト試験 (ES) の2017年午後Iの計算問題を解説する。

目次

はじめに

このページでは解説のみ載せるため、問題文は以下のIPA情報処理推進機構)のページから取得されたい。
IPA 独立行政法人 情報処理推進機構:過去問題

今後、ESの他の過去問の解説も追加予定である。

問1(観光案内用ロボット)

設問1 (1)
LCDの表示データを情報サーバから取得し、表示バッファへの書き込みを完了する時間を求める。
表2の「表示コントローラ」の項より、LCDの表示は1画素が16ビットで、1画面が500,000画素である。
すなわち、1画面のデータは、
16[ビット]×500,000=8,000,000[ビット]=8[Mビット]
である。

問題文より、表示データをLANで転送する際の転送速度は40[Mビット/秒]なので、LANの転送時間は次の通り。
8[Mビット]/40[Mビット/秒]=0.2[秒]=200[ミリ秒]
また、LANコントローラから表示バッファへの転送速度は80[Mバイト/秒]であるから、転送時間は次の通り。
8[Mビット]/(80×8[Mビット/秒])=0.0125[秒]=12.5[ミリ秒]
したがって、解は、これらの転送時間の和の小数第二位を四捨五入し、
200+12.5=212.5[ミリ秒]
となる。

設問2 (1) (a)
ロボットの体を、モータの200度の位置で停止させるPWMのデューティ比を求める。
表3, 4より、モータの角度はデューティ比に比例して変化し、さらにデューティ比を0から1まで変化させると、0度から360度まで回転することが分かる。
よって、モータを200度の位置に停止させるデューティ比は、
200[度]/360[度] = 5/9
である。

設問2 (1) (b)
タイマを使用して、体をモータの200度に最も近い位置で停止させるタイマの設定値を求める。
また、このときの角度の誤差も求める。

表1より、PWM信号の周期は1ミリ秒で、あるアクティブHighである。
また、表2より、タイマは240kHzのクロックでカウントアップし、設定したHighの幅とタイマのカウンタが同じ値になると、出力はLowになる。
設定した周期とタイマのカウンタが同じ値になると、カウンタが0になり、出力はHighになる。

f:id:Helve:20190407115759p:plain

解答の方針として、まずタイマの設定周期を求めてから、Highの設定値を求める。
タイマの設定周期は、240[kHz]でカウントしたときに1[ミリ秒]になる回数であるから、
0.001[秒]×(240×10^3[Hz]) = 240
である。
次に、Highの設定値を求める。
モータを200度の位置に停止させるデューティ比は5/9であると、(a)で既に求めた。
よって、求めるHighの設定値は、整数であることに注意して、
240×(5/9) = 133.33... ≒ 133
である。

次に、角度の誤差を求める。
先程、Highの設定値を133.33...を四捨五入して133としたが、
切り捨てた0.33..., すなわち1/3に相当するデューティ比が角度の誤差になる。
したがって角度の誤差は、
360[度]×((1/3)/240)=0.5[度]
解は小数第3位を四捨五入して、0.50[度]である。

問2(カメラ付き防犯灯)

設問1 (2)
画像データの記憶に必要なフラッシュメモリの容量を計算する。
p. 8の下段より、カメラユニットは1秒間に4フレームの画像を撮影している。
また、p. 9の下段より、画像を圧縮して、6分間の画像を1つのファイルにして、フラッシュメモリに240時間保存することが分かる。
さらに、問題文より、1フレームの画像は1Mバイトで、圧縮すると元データの1%の容量になり、暗号化すると圧縮したデータから5%容量が増加することが分かる。

したがって、以下の通りに計算すると、回答が得られる。
1フレームの画像を圧縮すると、
1[Mバイト]×0.01=0.01[Mバイト]
であり、さらに暗号化すると、
0.01[Mバイト]×1.05=0.0105[Mバイト]
となる。
240時間に撮影されるフレーム数は、
(240×3600)[秒]×4[フレーム/秒]=3456000[フレーム]
である。
したがって、求めるフラッシュメモリの容量は、
0.0105[Mバイト/フレーム]×3456000[フレーム]=36288[Mバイト]
すなわち、36.288[Gバイト]。
解は小数点以下を切り上げて37[Gバイト]である。

問3(病院内資料配送システム)

設問1 (1)
配送車が通信点でやり取り可能なデータ量を求める。
p. 17の上段より、NFCの通信速度は400kビット/秒である。
また、通信可能領域に入ったことを検知するのに、10ミリ秒、通信準備が完了するのにさらに10ミリ秒掛かる。

問題文より、配送車は1メートル/秒で走行しており、通信点の前後4センチメートルで通信できる。
よって、配送車が通信可能な時間は、
0.08[m]÷1[m/s] = 0.08[s]
である。
さらに、通信できるまでに、10[ミリ秒]+10[ミリ秒]掛かるため、実際にデータをやり取りできるのは、
0.08-(0.01+0.01)=0.06[s]
となる。

NFCの通信速度は400kビット/秒であるから、通信されるデータ量は次の通り。
0.06[s]×400[kビット/秒]=24[kビット]
さらに、NFCは16バイトのデータを200ビットで通信するので、
実際にやり取りされるデータ量は、
24×10^3[ビット]×(16[バイト]/200[ビット])=1920[バイト]
となる。
すなわち、1.92[kバイト]の小数第二位を四捨五入して、解は1.9[kバイト]である。

※Adblockが有効の場合やモバイル版ページでは、シェアボタンをクリックできません