nRF54L15にFuel Gaugeを実装してみました!

こんにちは。加賀デバイスのNordic Teamです。 バッテリー駆動の製品では残量表示が重要になります。しかし、バッテリー電圧は温度、負荷条件、劣化状態などによって変化するため、電圧だけでは正確な残量を把握できません。そこで活用されるのがFuel Gauge(残量推定機能)です。 Fuel Gaugeはバッテリーの電圧、電流、温度などの情報をもとに、残量(State of Charge)や劣化状態(State of Health)を推定します。Nordic製SoCと組み合わせることで、nRF Connect SDKからFuel Gaugeアルゴリズムをそのまま利用できます。これはホストSoCとPMICのみで動作します。 nRF Connect SDKの説明はnRF Connect SDK 環境構築方法(V3.0.0編)をご覧ください。 今回のコラムでは、nPM1304 EKでバッテリーモデルを作成し、nRF54L15 DKへ組み込み、Fuel Gaugeの動作を確認してみました。 PMICを使用したFuel Gaugeは、nPM PowerUPというPCツールを用いることで簡単に評価・開発できます。このPCツールではコード不要でバッテリーモデルを生成できるため、今回はnPM PowerUPを活用して進めていきます。 ◢◤実機検証 ここからは実際にバッテリーモデルを作成し、バッテリー残量の取得を行います。 ステップ1:バッテリーモデルの作成(nPM1304 EK)ステップ2:バッテリーモデルの組み込み(nRF54L15 DK) 必要なものは下の表にある通りです。ステップ1ではnRF54L15 DKは不要です。 ハードウェア ソフトウェア nPM1304 EK nPM PowerUP nRF54L15 DK nPM1300 and nPM1304: Fuel gauge 評価対象バッテリー(nPM1304 EK同梱) ◢◤ソフトウェアの準備 まずはnPM PowerUPをインストールします。Nordic製品の開発用ツールをインストール・管理して起動するための統合デスクトップアプリにnRF Connect for Desktopというものがあります。nRF…

【連載:現場目線で選ぶイメージセンサ 第4回】 動く被写体が歪むのはなぜ?「ローリング」と「グローバル」シャッター方式の選択基準

OMNIVISION Technologies, Inc.(オムニビジョン・テクノロジーズ) はじめに 第4回:動く被写体が歪むのはなぜ?「ローリング」と「グローバル」シャッター方式の選択基準 ■はじめにこんにちは。加賀デバイスのOMNIVISION Teamです。前回の第3回コラムでは、センサの出力フォーマット(RAWとYUV)の違いや、それに伴うデモザイク処理の負荷、そしてISPをどこに配置するかというシステム設計の分岐点について解説しました。今回はOMNIVISION社のスペック表(OMNIVISION Image Sensor Product)にある『Shutter Type』の項目にフォーカスし、「ローリングシャッター(Rolling Shutter)」と「グローバルシャッター(Global Shutter)」の決定的な違いと、現場での選び方について解説します。 ■ 2つのシャッター方式:仕組みの違いと「読み取りエラー」の理由「工場で高速搬送される製品のロット印字やバーコードをカメラで読み取ろうとしたら、文字が斜めに歪んでしまい、画像処理でのエラー(NG)が多発した」「移動体の画像認識(AI)において、被写体が変形してしまい認識率が下がってしまった」・・・・こうした産業用カメラやセンシングデバイスの開発において、非常に厄介な問題となるのがシャッター方式に起因する「動体歪み」です。 センサが光を受光するシャッター方式には、大きく分けて以下の2つがあります。 1. ローリングシャッター(Rolling Shutter)画素のライン(行)ごとに、上から下へと順番に時差を設けて露光・読み出しを行う方式です。 仕組み上、画面の「一番上のライン」と「一番下のライン」が露光されるタイミングに、わずかな「時間差」が生じます。そのため、露光中に被写体やカメラ自体が高速で移動すると、下のラインに行くほど移動した後の位置が記録され、結果として画像全体が斜めに歪んでしまいます。この歪みが、画像処理システムやAIにおける認識エラーの直接的な原因となります。 2. グローバルシャッター(Global Shutter)すべての画素(全画面)を「完全に同じタイミング」で一斉に露光・読み出しを行う方式です。 画素ごとの露光時間差が存在しないため、どれだけ高速で移動する被写体であっても歪むことなく、その一瞬の姿を正しく切り取ることができます。 図1に各シャッターの露光タイミングのイメージ、図2に移動している被写体撮影時の歪のイメージを示します。 図1:各シャッターの露光タイミングイメージ 図2:移動体撮影時の歪イメージ ■ 【現場目線の重要ポイント】LED同期発光における「省電力・低発熱」の壁 ローリングとグローバルの比較として「動体歪みの有無」は基本ですが、実はシステム設計、特に「赤外線LEDなどのアクティブ照明と連動させるシステム」において、さらに決定的な違いが存在します。それがLEDの同期発光(パルス点灯)効率です。 FA(ファクトリーオートメーション)の検査ライン、車載のDMS(ドライバーモニタリングシステム)、スマートホームの顔認証などでは、暗所での認識精度を高めるため、また一定の光環境を担保するために、センサの露光に合わせてLED照明を当てる設計が一般的です。この時、どちらのシャッター方式を採用するかで、以下の図3のようにLEDの発光期間(消費電力と発熱)が劇的に変わります。 図3:各シャッターのLED発光期間イメージ ・ローリングシャッターの場合:LEDは「ほぼつきっぱなし」にするしかないローリングシャッターはラインごとに露光タイミングがずれているため、画面全体を均一に明るく写すためには、「最初のラインが露光を開始してから、最後のラインの露光が終了するまで」の全期間、LEDを点灯し続けなければなりません。 例えば、1ラインあたりの露光時間自体は「1ミリ秒」と短く設定していても、画面全体の走査に「33ミリ秒(30fps時)」かかる場合、LEDはほぼ33ミリ秒間点灯し続ける必要があります。これでは消費電力が跳ね上がり、LEDの発熱がシステム全体の熱設計(筐体の密閉性など)を苦しめ、LED自体の寿命を縮める原因になります。 ・グローバルシャッターの場合:一瞬の「パルス点灯」で済むグローバルシャッターは全画素が一斉に露光するため、「露光している間だけ」LEDをピンポイントで光らせれば(パルス点灯)、画面全体に均一な照明を当てることができます。 点灯時間は、ローリングシャッターに比べて数十分の一にまで圧縮されます。 このLED同期パルス点灯により、グローバルシャッターには単に「歪まない」だけでなく、システム設計において以下のような巨大なメリットをもたらします。 圧倒的な省電力化:バッテリー駆動のセキュリティデバイスや、車載システム(DMSなど)において消費電力を削減できます。 LEDの発熱抑制:消費電力が少なくなることはLEDの発熱も少なくなることを意味します。そのため、筐体を小型化(ファンレス化、密閉化)しやすくなる、熱対策部品を削減できる等のメリットが生まれます。また、特に車載製品などで重要視される動作温度範囲に対しても圧倒的に有利となります。 外乱光(太陽光など)への強さ:一瞬だけLEDを非常に強く光らせる(瞬間的な光量を稼ぐ)ことで、太陽光や他の照明環境などの不要な背景光をかき消し、検出したいパターンだけをクリアに浮き上がらせることができます。 ■ メリット・デメリットのトレードオフこれまでご説明した内容以外にも、グローバルシャッターには特有の特徴があります。それは、全画素が一斉に露光を終えた後、データを順次読み出すまでの間、画素内に電荷(データ)を一時的に蓄えておく「メモリ領域(電荷保持部)」が必要になる点です。この領域を物理的に内蔵する分、画素の内部設計が複雑になります。その結果、ローリングシャッターと比較して画素サイズが大きくなりやすく、仮に同じ画素サイズで比較した場合は感度の面でやや不利になります。また、こうした製造上のハードルから、一般的にコストも上昇します。 ここまでの内容を表にまとめました。2つの方式はまさにトレードオフの関係にあることがわかります。 項目 ローリングシャッター グローバルシャッター 動体歪み(画像認識への影響) 発生する(アルゴリズム誤判定要因) 発生しない(正確な形状認識可能) 画素サイズ 小さくしやすい(高画素化に有利) 大きくなりやすい(電荷保持部必要) 感度・ノイズ 有利(画素構造がシンプルで受光面が広い) やや不利(電荷保持部への光漏れ対策等が必要)…