センサー・アクチュエータ

センサー

物理量を電気信号に変える素子。

概要

センサーは、物理的・化学的・生物的な現象(物理量)を電気信号に変換する素子・デバイスです。温度・圧力・加速度・光・音・磁気・湿度・ガス濃度など、人間の五感に対応するあらゆる量を「測定可能な電気量(電圧・電流・抵抗・容量など)」に置き換えます。

組み込みシステムにおいては、センサーは外界と電子回路をつなぐ「入口」として機能します。マイコン(MCU)SoCはセンサー出力をデジタル化することで、環境に応じた処理・制御を実現します。ADC(A/D変換器)を通じてアナログ値を読み取る場合と、センサー自体がI2CSPIUARTなどのデジタルインターフェースを持つ場合があります。

センサーの普及はIoT(Internet of Things)を根底から支えており、スマートファクトリー・スマートホーム・自動車・医療・農業など、あらゆる産業でセンサーデータの収集・分析が不可欠になっています。

歴史・背景

センサーの起源は古く、温度計(1592年頃、ガリレオによる空気温度計)や気圧計(1643年、トリチェリ)まで遡ることができます。しかしこれらは機械的・視覚的な計測器であり、電気信号への変換は19世紀以降に始まります。

1821年にゼーベックが熱電効果を発見し、熱電対(熱電式温度センサー)の原理が確立されました。1880年にキュリー兄弟がピエゾ電気効果(圧電効果)を発見し、圧力センサー・加速度センサーの基礎が生まれました。

20世紀後半には半導体技術の発展により、シリコンを使ったMEMS(Micro Electro Mechanical Systems)センサーが実用化されました。1990年代にはエアバッグ用加速度センサーが量産され、2000年代にはスマートフォン向けの超小型・低消費電力センサーが急速に普及しました。現在では1個のセンサーチップに加速度・ジャイロ・磁気・気圧などを統合したIMU(慣性計測装置)も一般的になっています。

センサーの価格は過去30年で劇的に下がり、例えば加速度センサーは1980年代には数万円だったものが、現在では数十円〜数百円で入手できます。この価格革命がIoTデバイスの爆発的普及を支えています。

技術仕様

センサーの分類

センサーは検出対象・動作原理・出力形式などさまざまな軸で分類できます。

検出対象による分類

カテゴリ代表的センサー主な用途
力学量加速度、ジャイロ、圧力、歪み姿勢制御、衝突検知、気象
熱量温度、熱流束、熱電対環境モニタリング、機器保護
電磁量電流、電圧、磁気電力計測、位置検出
光量照度、赤外線、紫外線、イメージセンサー照明制御、カメラ、リモコン
音波マイクロフォン、超音波音声入力、測距
化学量ガス、pH、湿度空気品質、食品管理
生体量心拍、血中酸素、脳波ウェアラブル、医療

出力形式による分類

出力形式特徴
アナログ電圧シンプル・ADC必要熱電対、フォトダイオード
アナログ電流(4〜20mA)ノイズに強い・長距離向き産業用圧力センサー
デジタル(I2C/SPI)高精度・直接MCU接続BME280、MPU-6050
デジタル(UART/RS485)長距離・マルチドロップ産業用センサー
PWM周波数/デューティで値表現一部のCO2センサー
周波数周波数で値表現電磁流量計

主要な性能指標

指標説明
感度(Sensitivity)入力変化量に対する出力変化量の比(例:10mV/°C)
分解能(Resolution)検出できる最小変化量
精度(Accuracy)真値との最大誤差(絶対精度)
再現性(Repeatability)同じ条件での測定値のばらつき
レンジ(Range)測定可能な最小〜最大値
応答速度(Response Time)物理量変化に対する出力の追従時間
オフセット(Offset)ゼロ点からのずれ
ドリフト(Drift)時間経過による特性変化
消費電力動作時・スリープ時の電流
動作温度範囲正常動作が保証される温度

センサーの電気的特性

アナログセンサーの出力はしばしば非線形であり、正確な測定のためにキャリブレーション(校正)が必要です。また、センサー出力は通常非常に微弱(数mV〜数十mV)なため、増幅回路(アンプ)やフィルタ回路が必要になる場合があります。

典型的なアナログセンサー回路:
センサー → 増幅回路(オペアンプ)→ ローパスフィルタ → ADC → MCU

動作原理

センサーが物理量を電気信号に変換する主な物理現象は以下の通りです。

主要な変換原理

圧電効果(Piezoelectric Effect) 水晶・PZT(チタン酸ジルコン酸鉛)などの結晶に力を加えると電荷が発生する現象。加速度センサー、マイクロフォン、超音波センサーに利用。逆に電圧をかけると変形する逆圧電効果もアクチュエータに使われます。

静電容量変化(Capacitive) 機械的変位によりコンデンサの電極間距離や面積が変化し、静電容量が変わる現象。MEMS加速度センサー・ジャイロ・タッチパネルに利用。高感度・低消費電力。

抵抗変化(Piezoresistive / Resistive) 力・温度・光などにより素材の電気抵抗が変化する現象。圧力センサー(シリコンダイアフラム)、RTD(抵抗温度計)、フォトレジスタに利用。

ホール効果(Hall Effect) 電流が流れる半導体に磁界が垂直に印加されると、電流・磁界の両方に垂直な方向に電圧が発生する現象。磁気センサー、電流センサー、エンコーダに利用。

熱電効果(Thermoelectric / Seebeck Effect) 異種金属の接合部に温度差があると起電力が発生する現象。熱電対温度センサーの基礎。

光電効果(Photoelectric Effect) 光(フォトン)のエネルギーにより電子が放出または励起される現象。フォトダイオード、CCD・CMOSイメージセンサー、太陽電池に利用。

MEMSセンサーの構造

現代の小型センサーの多くはMEMS(Micro Electro Mechanical Systems)技術で製造されます。シリコンウェハ上にフォトリソグラフィーと化学エッチングで微細な機械構造(梁、錘、ダイアフラムなど)を作り込み、集積回路と一体化します。

MEMSジャイロスコープの動作原理(コリオリ力):
  振動する質量体が回転すると、振動方向に垂直なコリオリ力が発生
  F = 2m(v × ω)
  この変位を静電容量変化として検出

用途・ユースケース

産業・製造

工場の設備監視に温度・振動・電流センサーが使われ、予知保全(Predictive Maintenance)を実現します。MQTTなどのプロトコルでクラウドに送信し、機械学習による異常検知と組み合わせることが一般的です。

自動車

エンジン制御(O2センサー、スロットルセンサー、ノックセンサー)、エアバッグ(加速度センサー)、ABS(車輪速センサー)、自動運転(LiDAR、レーダー、カメラ)など、1台の自動車に数十〜数百個のセンサーが搭載されています。CAN busで各センサーが接続されます。

医療・ヘルスケア

体温計、血圧計、パルスオキシメーター、心電図、血糖センサーなど。非侵襲的な生体計測技術の発展により、ウェアラブルデバイスでの常時モニタリングが可能になっています。

スマートホーム・ビル管理

温湿度センサー・照度センサー・人感センサー(PIRセンサー)・CO2センサーをZigBeeBLEWi-Fiで接続し、空調・照明・セキュリティを自動制御します。

ロボティクス・ドローン

IMU(加速度計+ジャイロ)による姿勢推定、超音波・ToFセンサーによる障害物検知、GPS/GNSSによる位置特定を組み合わせ、自律移動を実現します。センサーフュージョンが不可欠な分野です。

農業IoT

土壌水分センサー・気象センサー・葉面積センサーなどを圃場に配置し、LoRaWANSigfoxで遠隔監視。スマート農業・精密農業の基盤技術です。

実装・開発のポイント

アナログセンサーの読み取り

// STM32 HAL でADC経由でアナログセンサーを読み取る例
#include "stm32f4xx_hal.h"

extern ADC_HandleTypeDef hadc1;

float read_sensor_voltage(void) {
    HAL_ADC_Start(&hadc1);
    HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
    uint32_t raw = HAL_ADC_GetValue(&hadc1);
    HAL_ADC_Stop(&hadc1);
    
    // 12bit ADC, Vref=3.3V の場合
    float voltage = (float)raw * 3.3f / 4095.0f;
    return voltage;
}

デジタルセンサー(I2C)の読み取り

// I2C デジタルセンサーからレジスタを読む汎用関数
HAL_StatusTypeDef sensor_read_reg(uint8_t dev_addr, uint8_t reg, 
                                   uint8_t *data, uint8_t len) {
    // アドレスは7bitシフト
    return HAL_I2C_Mem_Read(&hi2c1, dev_addr << 1, reg,
                             I2C_MEMADD_SIZE_8BIT, data, len, 100);
}

ノイズ対策

センサー信号はノイズの影響を受けやすいため、以下の対策が重要です。

  1. ハードウェアフィルタ: センサー出力にRCローパスフィルタを追加
  2. デカップリングコンデンサ: センサー電源ピン近傍に100nF + 10µFを配置
  3. 差動入力: 長距離配線では差動伝送(4〜20mA)を使用
  4. シールドケーブル: EMI環境では静電シールド付きケーブルを使用
  5. ソフトウェアフィルタ: 移動平均・メディアンフィルタ・カルマンフィルタ

移動平均フィルタの実装例

#define FILTER_SIZE 8

typedef struct {
    int32_t buf[FILTER_SIZE];
    uint8_t idx;
    int32_t sum;
} MovingAvgFilter;

int32_t moving_avg_update(MovingAvgFilter *f, int32_t new_val) {
    f->sum -= f->buf[f->idx];
    f->buf[f->idx] = new_val;
    f->sum += new_val;
    f->idx = (f->idx + 1) % FILTER_SIZE;
    return f->sum / FILTER_SIZE;
}

キャリブレーション

センサーは製造ばらつき・経時変化・温度依存性があるため、使用前のキャリブレーションが重要です。

  • オフセットキャリブレーション: ゼロ点のずれを補正
  • ゲインキャリブレーション: スケールファクターを補正
  • 温度補償: 温度係数に基づいて読み取り値を補正
  • 2点キャリブレーション: 2つの既知点から線形補正
# 2点キャリブレーション(Python例)
def calibrate_two_point(raw, raw_low, raw_high, actual_low, actual_high):
    """
    raw_low -> actual_low
    raw_high -> actual_high
    の対応から線形補正を行う
    """
    slope = (actual_high - actual_low) / (raw_high - raw_low)
    offset = actual_low - slope * raw_low
    return slope * raw + offset

省電力設計

IoTデバイスでは電池寿命が重要です。センサーの消費電力を最小化するために:

  • インターバル計測: 必要な頻度だけセンサーを起動し、それ以外はスリープ
  • ワンショットモード: 計測完了後に自動でパワーダウンするモードを利用
  • センサーの電源制御: MCUのGPIO出力でセンサーの電源自体をON/OFF

他技術との比較

センサーとトランスデューサーの違い

「センサー」と「トランスデューサー」は混用されることがありますが、厳密には:

用語意味
トランスデューサーエネルギー形態を変換するあらゆるデバイス(センサー+アクチュエータを包含)
センサー物理量を電気信号に変換するデバイス(入力側)
アクチュエータ電気信号を物理量(動き・力)に変換するデバイス(出力側)

アナログセンサー vs デジタルセンサー

比較項目アナログセンサーデジタルセンサー
出力電圧・電流(連続値)デジタルバス(I2C/SPI/UART)
ADCの要否MCU内蔵ADCが必要不要(センサー内蔵)
ノイズ耐性低い(配線長に影響)高い(デジタル伝送)
実装の容易さシンプルな回路プロトコル実装が必要
精度ADCの分解能に依存センサー内部の高精度ADC
コスト安価やや高価
代表例LM35(温度)、OPアンプ出力BME280(温湿度気圧)、MPU-6050(IMU)

有線センサー vs ワイヤレスセンサー

比較項目有線センサーワイヤレスセンサー
接続ケーブル配線BLE・ZigBee・LoRaWANなど
遅延極めて低いプロトコルによる(数ms〜数秒)
設置自由度低い(配線制約)高い
電源ケーブルから供給可能電池・エナジーハーベスト
メンテナンス電池不要電池交換・充電が必要
産業用途ModbusCANRS-485LoRaWANZigbee

関連用語

参考リンク