概要
センサーは、物理的・化学的・生物的な現象(物理量)を電気信号に変換する素子・デバイスです。温度・圧力・加速度・光・音・磁気・湿度・ガス濃度など、人間の五感に対応するあらゆる量を「測定可能な電気量(電圧・電流・抵抗・容量など)」に置き換えます。
組み込みシステムにおいては、センサーは外界と電子回路をつなぐ「入口」として機能します。マイコン(MCU)やSoCはセンサー出力をデジタル化することで、環境に応じた処理・制御を実現します。ADC(A/D変換器)を通じてアナログ値を読み取る場合と、センサー自体がI2C・SPI・UARTなどのデジタルインターフェースを持つ場合があります。
センサーの普及は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センサーをZigBee・BLE・Wi-Fiで接続し、空調・照明・セキュリティを自動制御します。
ロボティクス・ドローン
IMU(加速度計+ジャイロ)による姿勢推定、超音波・ToFセンサーによる障害物検知、GPS/GNSSによる位置特定を組み合わせ、自律移動を実現します。センサーフュージョンが不可欠な分野です。
農業IoT
土壌水分センサー・気象センサー・葉面積センサーなどを圃場に配置し、LoRaWANやSigfoxで遠隔監視。スマート農業・精密農業の基盤技術です。
実装・開発のポイント
アナログセンサーの読み取り
// 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);
}
ノイズ対策
センサー信号はノイズの影響を受けやすいため、以下の対策が重要です。
- ハードウェアフィルタ: センサー出力にRCローパスフィルタを追加
- デカップリングコンデンサ: センサー電源ピン近傍に100nF + 10µFを配置
- 差動入力: 長距離配線では差動伝送(4〜20mA)を使用
- シールドケーブル: EMI環境では静電シールド付きケーブルを使用
- ソフトウェアフィルタ: 移動平均・メディアンフィルタ・カルマンフィルタ
移動平均フィルタの実装例
#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〜数秒) |
| 設置自由度 | 低い(配線制約) | 高い |
| 電源 | ケーブルから供給可能 | 電池・エナジーハーベスト |
| メンテナンス | 電池不要 | 電池交換・充電が必要 |
| 産業用途 | Modbus・CAN・RS-485 | LoRaWAN・Zigbee |