IPA センサー・アクチュエーター・マイコン制御 — 頻出論点と過去問

頻出論点

1. この分野は何か

温度計の値を読む、モーターを回す、スイッチの押下を拾うといった、マイコンが外の世界とやり取りする部分を扱います。部品がどんな原理で測り、どう動かすかという知識と、クロックやレジスタの仕様から待ち時間や設定値を桁まで正しく導く計算とが、同じ分野の中で組み合わさっています。

2. 実際の出題のされ方

IoTの装置の図や説明を見て、どれが測る部品でどれが動かす部品かを答えさせるのが、センサーとアクチュエーターの基本の問い方です。この形の問題は、ITパスポートに繰り返し出ています。GPSの電波が届きにくいビルの谷間などで測位精度を高めるために併用する衛星の仕組みを選ぶ問題も出ています。

センサーの測定原理やマイコン周辺機能の制御方法が、応用情報技術者の午前では問われます。先進運転支援システム(ADAS)のセンサーの特徴、ドップラー効果で測れる生体情報、体温の測定に向く素子を選ぶ問題があります。産業機器の制御に使うPLC、ウォッチドッグタイマの役割、アクチュエーターの定義(高度試験の午前Iにも同じ問題)を選ぶ問題も出ています。また、4つのスイッチ素子から成るHブリッジ回路でDCモーターを逆転させる制御信号の組合せ、他のLEDの状態を変えずに特定のLEDだけを点灯させるポートの書込み値、スイッチが放された状態から押された状態への変化を検出する論理式が問われています。計算問題では、分周されたクロックで動くダウンカウンターの割込み発生時間、回転センサーのパルス周期のカウント数から求めるモーターの回転数、動作時と待機時の電流から平均電流を一定以下にする待機時間の算出(高度試験の午前Iでも出題)が出ています。

エンベデッドシステムスペシャリストの午前IIでは、レジスタの仕様表を読んで値を決める計算や、モーターの制御方式の説明まで出ています。IMU(慣性計測装置)の説明や応用事例、DCモーターのPWM制御の方法を選ぶ問題のほか、0からカウントを始めるインターバルタイマーで指定時間ごとに割込みを発生させるコンペアレジスタの設定値、許容誤差5%以内で目標のシリアル通信速度を得るためのクロック周波数、I2C接続でビットシフトと最下位ビット(LSB)の指定から読み込まれるセンサーデータを特定する問題が出題されています。

3. 学習のポイント

機器の構成要素と各種センサーの違いを決めるのは、信号がどちらへ流れるかという向きと、測るのに使う物理的な原理です。

  • センサーとアクチュエーター: 制御の流れの入口で、現実の量を読み取って信号にするのがセンサー、出口で、コンピュータの指令を受けて物を動かすのがアクチュエーターです。同じ装置の中でも、測る部品と動かす部品とでは信号の向きが逆になります。
  • センサーの原理と用途: 温度変化で電気抵抗が大きく変わる半導体素子であるサーミスタは体温などの温度測定に使われます。波の発生源と観測者の相対速度で周波数が変化するドップラー効果は、赤血球からの反射波の周波数変化を測る血流量の測定に応用されます。また、IMUは加速度と角速度をまとめて測る装置で、物の傾きや向きの変化をとらえられます。
  • 車載・測位のセンサー: ミリ波レーダーは雨や霧に左右されにくい代わりに、色を見分けることはできません。LiDARは、光を当てて返ってくるまでの時間から距離を測る動作を、向きを変えながら繰り返し、周りの物の位置と形を点の集まりとしてとらえます。準天頂衛星は、日本付近の真上に近い位置に長くとどまる軌道を回る衛星で、GPSと組み合わせると、高い建物の間でも測位に使える衛星が増えます。
  • モーター制御とPLC: DCモーターの正転・逆転を切り替えるHブリッジ回路では、電源からモーターの端子を通ってグラウンドへ電流が流れるよう対角線上のスイッチ素子を導通させます。DCモーターのPWM制御では、オンの時間の割合を変えて、モーターに加わる平均の電圧を上げ下げします。PLCは、配線したリレー回路で組んでいた順序制御を、プログラムに置き換えて実行する装置で、プログラムはリレー回路に似た図(ラダー図)で書くのが一般的です。

マイコンのタイマーや通信速度、消費電流の計算は、単位(MHz\text{MHz} と μs\mu\text{s}、mA\text{mA} と μA\mu\text{A} など)をそろえて段階的に式を立てます。

  • クロック分周とタイマー: システムクロック周波数 ff を NN 分周すると、タイマーに入るクロックは f/Nf / N になり、1カウントの周期は T=N/fT = N / f となります。ダウンカウンターに初期値 CC をセットしたときは C×TC \times T で0になって割込みが発生します。一方、0からカウントアップしてコンペアレジスタの値と一致したときに割込みを発生させ0に戻るインターバルタイマーでは、必要なカウント数が MM 回ならコンペアレジスタには M−1M - 1 を設定します。
  • シリアル通信の分周比と間欠動作: 分周比が2のべき乗に限られる場合は、候補のクロック周波数ごとに、目標の通信速度に最も近くなる分周比を選び、そのときのずれが許容範囲に入るかを比べます。また、動作時間 tactt_{\text{act}}(電流 IactI_{\text{act}})と待機時間 tsleept_{\text{sleep}}(電流 IsleepI_{\text{sleep}})を繰り返す間欠動作では、1サイクルの平均電流を Iact×tact+Isleep×tsleeptact+tsleep\frac{I_{\text{act}} \times t_{\text{act}} + I_{\text{sleep}} \times t_{\text{sleep}}}{t_{\text{act}} + t_{\text{sleep}}} で表し、目標の平均電流以下となる待機時間を求めます。

スイッチの押下検出や通信アドレスの指定は、2進数の各ビットの値と位置に着目します。

  • スイッチの立上り検出: スイッチが押された瞬間(立上り)を拾うには、今回の読み取り値が1で、かつ前回の読み取り値が0であることを同時に満たす条件、つまり今回の値と、前回の値の否定との論理積を使います。
  • I2Cのアドレス指定: I2Cでは、7ビットのアドレスの後ろに、読み出しか書き込みかを表す1ビットを付けた8ビットを送ります。送られた8ビットの値から元のアドレスを知るには、その1ビットを除いた上位7ビットを取り出します。

4. 間違えやすいところ

回転センサーのパルス周期からモーターの回転数を求める問題では、1秒あたりのパルス数を求めたあとに、モーター1回転あたりのパルス数で割るべきところを掛けてしまう誤答肢がありました。掛けた値では、1回転で複数回のパルスが出るのに、回転数のほうがパルス数より多いという逆の関係になります。

汎用入出力ポートの特定のビットに接続されたLEDだけを他のLEDの状態を変えずに点灯させる問題では、対象ビットのみを1にした値との論理積(AND)をとる誤答肢がありました。論理積をとると0のビットの位置がすべて0にクリアされ、他のLEDが消灯してしまいます。

ウォッチドッグタイマの機能を問う問題では、異常を見つけたらマスカブル割込みで知らせるとする誤答肢がありました。マスカブル割込みはプログラムの側で受け付けを止められるので、暴走したプログラムが割込みを禁止したままだと、知らせが届かないおそれがあります。

センサー・アクチュエーター・マイコン制御の理解度チェック

センサー・アクチュエーター・マイコン制御の過去問一覧

センサー・アクチュエーター・マイコン制御の用語

組込み・IoTのほかの論点

IoT システム・通信36問 組込み開発・安全設計16問