2020年09月05日

CCDラインセンサ

今回はCCDラインセンサTCD1304(PDFリンク)を紹介します。CCDラインセンサはバーコードスキャナ等に搭載されるフォトダイオードアレイセンサでTCD1304の場合は1x3648の解像度で光の強度を取り込むことができます。バーコードスキャナ以外の用途としてはプリズムと組み合わせて自作の分光スペクトル測定装置を作る例があるようです。

TCD1304_1.JPG

一般的なイメージセンサの場合、画素が多く、ArduinoやSTM32マイコン等で処理できなくはありませんが、メモリや処理能力が制限される中で複雑な処理が難しいです。一方、CCDラインセンサは画素が1x3648でマイコンでも十分処理が可能です。また、接続インタフェースはタイミング信号に合わせてアナログで各画素が出力されるため、同様に扱いやすいです。

Arduinoを使ってTCD1304を試食してみました。

TCD1304_2.JPG

TCD1304で取り込んだ各画素の光強度をエクセルの条件付き書式で色付けしてみました。
横軸が各画素、縦軸が時間経過です。光の強い左側が反応していることが分かります。

TCD1304_3.JPG

こちらの例のようにきれいなオブジェクト検出になっておらず、光の強さと露光時間の調整が必要なようです。TCD1304は画素の検出部が30mmと長いため、分光スペクトル測定装置の他、高分解能なラインセンサや位置センサ等、いろいろマイコンと組み合わせて応用できそうなセンサだと思いました。接続インタフェースが特殊なため、SPIやI2Cといった汎用シリアルで通信できる変換基板を作成しようかと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年08月15日

AC電流センサ基板

今回は非接触(電流を検出したいケーブルを加工しない)電流センサ基板について紹介します。一般的にAC電流を検出するためにはシャント抵抗を挟んで電圧差を増幅させるか、片側をクランプ式の電流センサ(CT)を挟んで電流を検知する方法があります。他にはロゴスキーコイルを用いた方法などがあります。

その中でもクランプ式電流センサ(CT)は構造が容易で非接触(電流を検出したいケーブルを加工しない)で電流を検出できることから電流センサとして多く使用されています。クランプ式電流センサ(CT)は理論的には片側の電源ケーブルのみをクランプする必要があります。電源ケーブル2本をクランプすると180度位相が互いに打ち消すため、近接した2本の電源ケーブルから電流を検出することはできません。分電盤などでは片側のみをクランプすることが容易であっても多くの家庭用電源ケーブルは2本合わせて1つの束となってるため、ケーブルを加工しない限り、片側のみをクランプすることが難しい場合が多いと思います。

sensor.jpg


家庭用電源ケーブルの多くは被覆で覆われている中で2本平行に並んでいるため、ミクロでみると個々に磁界が発生しています。この2つの磁界の差を利用して、近接したホール素子で磁界を検出することで非接触かつ、多くの家庭用電源ケーブルで検出可能な電流センサ基板を設計してみました。

accs0.JPG


この電流センサ基板は電源ケーブルの2本の線から発生する磁界を2つの近接して配置したホールセンサで検出します。検出した磁界の差を増幅してピークをホールドさせることで電源ケーブルの電流を電圧として出力します。電源ケーブルの2本の線に対するホールセンサの位置や電源ケーブルの被覆厚によって検出できる電流の範囲は異なりますが、電流センサ基板上のゲインを調整することで100Vの場合、数10w〜1kw程度までの電流を検出することが可能なことが確認できました(照明とエアコン、ドライヤーで検証)。

accs.JPG

電流の絶対値を知りたい場合にはクランプ式電流センサの方が優れます。一方で電流が既知の場合や大まかに電流の変化を知りたい場合には市販の電源ケーブルを加工せずに使用可能なため、電流センサ基板は使いやすいと思います。

なお、磁界変化をピークホールドさせるため、急激な電流変化や微小な電流変化の検出はできません。また、同じ電流であっても電源ケーブルの種類や取り付け位置によっても磁界の大きさが変化し、出力も合わせて変化します。電源ケーブルと電流センサ基板の取り付け位置は固定させる必要があります。

センサ位置やゲイン調整の検証をして問題なければ、諸情報を公開したいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年07月25日

CO2センサ

混み具合や換気状態を監視する用途としても昨今、CO2センサが注目されています。

一般的なCO2の検出方式としてはNDIR(Non Dispersive Infrared)方式とMOX(Metal Oxide)方式の2種類があります。精度面ではNDIRの方がMOXよりも優れています。MOXは空気中の有機物を検出することで間接的にCO2を推定するため、直接CO2濃度を光学的に検出するNDIRに比べて精度では劣ります。一方でNDIRは光学機構を備えるため、コストがMOXに比べると高く、大きさも比較的大きくなります。一方、MOXは半導体素子として構成されるため、非常に小さく、コストも安い特徴があります。

今回はMOXのセンサを紹介します。MOXセンサとして有名なセンサは下記の通りです。

・AMS製 CCS811 (生産終了)

AMS製は最近、生産終了のようでメーカのサイトからも情報が消えていました。Arduino等で簡単に使いたい場合はSGP30の方が情報が豊富でおすすめです。ただ、個体差なのか、値のドリフトが大きく少し不満がありました。最近、改良版のファームが発表され、さらに精度が上がったということでIDT製ZMOD4410を試してみました。

残念ながらZMOD4410のレジスタ情報が非公開であり、IDTのサイトからユーザー登録して取得する必要があります。また、CO2換算処理アルゴリズムについても非公開でバイナリファイルとして配布されているため、Arduino IDE等では使用できません。バイナリファイル(libファイルやaファイル)を組み込むことができる開発環境が必須です。今回はSTM32F303KとSW4STM32を使用しました。

試しの基板としてZMOD4410とHS3001を組み合わせた環境センサを作成してみました。温度、湿度、TVOC、CO2等を測定することが可能です。

env-sen.jpg


実際に使用してみたところ、換気直後は400ppm以下(下限400ppmでそれ以下は測定できない)となり、夜部屋を閉め切った寝室では朝方にかけて800ppm以上となり、換気をすると400ppm以下に収まることが確認できました。以前の改良前のZMOD4410 - 1st GenではSGP30同様に値のドリフトが多少気になりましたが、ZMOD4410 - 2st Genでは学習にニューラルネットワークが適用された変換アルゴリズムでドリフトが低減したように感じました。


zmod_test.jpg


ZMOD4410はバイナリファイル(libファイルやaファイル)を組み込むことができる開発環境が必要で、データシートも公開されていません。さらに変換アルゴリズムライブラリのコードサイズやメモリ使用量が大きく、敷居が高いセンサです。今後はI2CでArduino等からも簡単に扱うことができるZMOD4410専用の変換基板も開発してみたいと思います。また、ZMOD4410、SGP30、NDIRとの同時計測で比較してみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年06月20日

RMD Servo Motor

今回は海外で話題になっているRMD Servo Motorについて紹介します。

RMD Servo Motorはブラシレスモータ本体、磁気エンコーダ(12bit以上、4096/回転)、モータ制御ドライバ、RS485orCAN通信ドライバが一体になったモータで電源と通信線だけでモータを制御することができます。ここまでは普通のプロポサーボモータ等と同じような仕様ですが、位置制御、速度制御に加えてトルク制御(電流制御)が可能です。トルク制御に対応したドライバ一体のブラシレス小型モータはほとんどありません。一部のプロポサーボモータはトルク制限(トルク制御でない)に対応していますが、トルク制御とは違います。ちょっと残念なのはトルク制御はオープンループな点ですが...電流センサを内蔵してフィードバックしてほしい気もします。

なお、各制御系の制御周期はオープンループトルク制御32kHz、クローズド速度制御4kHz、クローズド位置制御2kHzとなっており、32bitマイコンを搭載したメリットを存分に活かす仕様です。専用のソフトウェアで制御ゲインの他、モータIDや動作テストをすることができます。モータIDを書き換えることでRS485ラインorCAN通信ラインに最大32台のモータを同時に接続することができます。



今回はRMD Servo Motorの中でも最も小さいRMD-S-24を試食してみました。購入はAliexpressで行いました。

IMG_0089.JPG

設定ソフトウェアRMDconfigを用いて設定や動作確認を行いました。PCとの接続はUSB-RS485変換ケーブルが手元になかったため、LTC485AE-FT2232を用いて接続しました。配線は下記の通りです。ポイントはTXDEN出力があるシリアルICを選択する点とRMDへモータ電源のVCCとは別に制御系と通信系の電源となる5Vも外部から供給が必要な点です。

rmd_con.jpg

モータ電源とは別に5V電源の供給が必要なことに気づかず、通信できない問題に時間を要してしまいました。5V電源を供給するとRMDモータ内部の基板の緑LEDが点灯し、無事通信とモータ制御できることが確認できました。


RMD Servo Motorは様々な出力の種類が用意されており、最も小さいRMD-S-24では4000円前後(送料別)となっています。プロポサーボモータに比べると高いものの、12bit以上の高精度な磁気エンコーダを搭載して制御系も一折実装されており、安価な産業機器のサーボモータレベルの機能でこの価格は驚きです。時間を見つけて次はArduinoやSTM32マイコン等から制御してみたいと思います。

posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年05月23日

電流センサアンプ

今回はコンパレータ内蔵電流センサアンプINA303を紹介します。電流センサアンプはシャント抵抗の微小な電位差を増幅して電圧出力するためのアンプです。電流センサアンプを使用するメリットとしてTIのサイトでも紹介されていますが、下記のようなメリットが挙げられます。

・「小型化、部品点数の削減」
  ディスクリートでシャント抵抗から電流値を電圧に変換するためにはオペアンプや抵抗等の増幅回路が必要です。正負(バイポーラ)で電流検知する場合は正負電源が必要な場合もあります。電流センサアンプを使用するとゲインが固定されている一方でチップ単体で実現できます。また、電流センサアンプは電源電圧範囲を超える入力電圧をシャント抵抗の電圧として入力可能なため、正負電源が不要です。VCC/2を中立の0Aとして、負側の電流もオフセットさせて電圧出力させることができるため、そのままマイコンのADC等で取り込むことが可能です。

・「高精度化」
 オペアンプや抵抗等の増幅回路が削減できるため、部品による差がなくなります。また、電流センサアンプはシャント抵抗の電圧差の増幅に特化しているため、温度ドリフトが少なく、増幅率が高精度に固定されています。

・「設計工数の削減」
 小型化、部品点数の削減により、設計工数の削減が可能です。ハイサイド、ローサイドの電流検知回路によって回路を設計し直す必要もありません。電流センサアンプの多くはハイサイド、ローサイド両方ともそのまま使用することができます。


このように電流センサアンプは非常に便利です。単機能の電流センサアンプはINA181等をよく利用しています。今回、紹介する電流センサアンプINA303はアンプ機能に加えて、コンパレータを内蔵しています。電流を検知する場合、通常の電流変化の他、異常な電流を検知する場合もあります。コンパレータ内蔵の電流センサアンプはそのような場合のニーズを満たすICとなっています。

具体的にはINA303に閾値を入力することで異常な電流(電流センサアンプから見ればシャント抵抗の電圧差)が検知された場合にIOでアラートを出すことができます。また、アラート出力を保持することも可能です。通常、コンパレータを使用しない場合、異常な電流が発生したかどうか、電流センサアンプのアナログ値を高サンプリング周期で監視する必要があります。コンパレータはアナログ回路で構成されているため、高サンプリングな監視と同等です。コンパレータ内蔵電流センサアンプを使用すれば、マイコン側からは高サンプリングで監視する必要がなくなります。異常のアラートIOをマイコンの外部割込みに設定すれば異常があった場合にイベントを走らせることが可能です。サンプリング周期や監視周期を高くできない場合にも異常な電流を取り逃すことなく検知することができます。

コンパレータ内蔵の電流センサアンプはTIから数種類販売されています。中でも2つコンパレータが搭載されているデュアルコンパレータタイプは例えば、正側の過電流、負側の過電流の両方を検出(ウインドウコンパレータ)したり、異常電流と警報電流の2段階で異常を検出(2つの制限超過アラート)のタイプがあります。ウインドウコンパレータと2つの制限超過アラートの違いが分かりづらいと思ったのでINA303のデータシートから違いの図を抜粋してみました。


INA302_INA303_compare.jpg
INA303データシートP.21から抜粋。
左がINA302の2つの制限超過アラートタイプ、右がINA303のウインドウコンパレータタイプです。アラート部分にピンクor赤の色を付けています。

デュアルコンパレータの場合、1つのコンパレータは閾値の超過でアラートを出力しますが、もう片方をどう出力するかで2つのタイプ(制限超過アラートタイプ、ウインドウコンパレータタイプ)があります。正側の電流監視の場合はコンパレータ1つもしくは2つの制限超過アラートタイプが適当です。正負の両側を監視する場合はウインドウコンパレータタイプが適当です。

例えば、DCモータの過電流検知をする場合、正回転、負回転で電流の方向が正負両側の異常電流を検出するため、ウインドウコンパレータタイプが適当です。もし、異常電流だけでなく、警報機能も持たせたい場合はウインドウコンパレータタイプをもう1つ使用して低い閾値を設定することで実現できます。

便利なデュアルコンパレータ搭載の電流センサアンプを評価しやすいように可変抵抗とアラートLED等を実装して電流センサアンプモジュールを設計してみました。

cs.jpg

検証を進めて問題なければ、どこかで販売を開始したいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする