2014年12月11日木曜日

人感センサーライトVer.2の製作

毎回投稿が遅くなってしまい、申訳ありません。

また今回は、予告と異なる内容になりますことをお詫び申し上げます。


前回製作した「人感センサーライト」(以下「Ver.1」)において、まとまった台数を製作することとなり、Ver.1 の手作りを前提とした設計では、対応が難しくなってきました。

そこで、生産性を考慮した設計に変更するとともに、Ver.1 からの改善点を反映した「人感センサーライトVer.2」(以下「Ver.2」)を製作しました。


1、仕様(変更点)

製作台数が多くなると、特にユニバーサル基板の手配線では対応し切れなくなり、また、手作業ゆえのミスも多くなってきました。
そこで、今回は生産性を高めるために、プリント基板をカスタムで起こすことを決め、同時に作業品質の向上を求めることにします。

次に、Ver.1 のメインLEDに対して、予想通り「眩しい」との指摘があったと同時に、「真暗中で点光源が一個では心もとない」という意見も頂きました。
また、モニタLEDに関しても、「昼も光ったほうが、正しく動作していることが確認できて安心」という指摘がありました。

これらは、電子マスカットさまのオリジナル版(以下「オリジナル版」)から、変更(改悪!)した箇所ばかりであり、改めて、オリジナル版の完成度の高さを痛感します・・・

さらに、Ver.1 が「デカい」と敬遠されており、自身も、「拡張機能(AC100V制御を想定)は、電池でこれだけ光れば、当面不要かな・・・」と感じていたので、今回を機に、小さいケースに変更することにします。


上記より、以下の仕様を前提に、設計・製作を進めることにします。

(1) メイン基板をプリント基板化し、作業効率および品質を向上する。
(2) メインLEDおよびモニタLEDの発光品質を改善する。
(3) 筐体を小型化する。


2、設計

2.1 回路

1項の通り、オリジナル版に、より近づく(戻る!)回路構成となりました。
多数のジャンパー線を手配線する作業から開放されますので、無理に回路の簡略化に走る必要も無くなります。

以下に回路図を示します。


昼間もモニタLEDが光るためには、IC2の入力側に配置することになりますが、人感センサ(S1)の出力では、とても駆動できません。
結局オリジナル版のとおり、初段モノマルチ(IC1の半分)を使用して光らせることにしました。
これにより、モニタLEDは、オン時間が一定のパルス点灯となります。

R5は、選択対象で、モニタLEDが昼間も光らせたいときは「a」を、夜間だけでよいときは「b」を実装して、何れのニーズにも対応できるようにします。

D3(メインLED)は、機械的に散光させる方法も考えましたが、製作効率が低下して本末転倒となります。もとより、個数に対する具体的要望がありますので、迷う余地なく一個追加して、二個構成にしました。
また、眩しさを回避するために、LEDの種類を変更しました(次項を参照)。

2.2 部品

メインLED、抵抗の他は、Ver.1 と同等です。

メインLEDは、同じシリーズで「電球色」の品があり、同一条件で眩しさが軽減されると感じましたので、当該品に変更しました。

抵抗は、パターン設計が容易となる(端子間にパターンを何本も引ける 次項を参照)ため、一回り大きい1/4W品にしました。

2.3 基板

発注する業者を探した結果、国内業者で単価も安い、名古屋 大須のユニクラフトに依頼しました。
ただし、同社において単価メリットの大きい「50mm×50mm」サイズに収めるため、パターンを設計し直しました。

以下に、そのパターンを示します。


基板穴の間隔は、ユニバーサル基板と共締めできるように(3.3項を参照)、41mmにしました。

※ 発注するためのデータを出力するために、基板設計ソフトウエア「PCBE」を最新版(導入時点 0.58.6)にバージョンアップしました。これにより、描画色やライブラリ描画が異なっています。

※ データは、同社サイト内 「PCBEを使ったプリント基板設計 PCBE操作マニュアル」 に従って用意しました。

以下のような基板が、出来上がってきました。




3、製作

3.1 基板

メイン基板に、以下のように実装します。
当然ながら、どんどん実装できます。さすがはカスタム基板です・・・!



※ Ver.1と同様に、LEDとCdS(照度センサ)を、チューブでかさ上げします。
※ 調整用のピンヘッダー(SW1)は、実は、ほとんど使用する機会がなく、当面未実装としています。

3.2 ケース

将来の拡張性を除外すれば、一回り小さい タカチSW-85 に充分収まります。
ケース加工も作業効率を上げる必要がありますので、トレーシングペーパーによる型紙を作成しました。
この型紙をSW-85 のフタ部に当てがい、千枚通しなどでポンチングします。


ポンチ点にドリルで穴あけします。


※ 穴径は、四隅ビス穴が 3.4mm、人感センサーが 11mm、モニタLEDが 4mm、他は6mmです。

3.3 組み立て

電池は交換時に大きな機械的ストレスがかかるので、支点となるケースに直接固定する必要があります。
よって、せっかくカスタム基板を起こしたのですが、Ver.1 と同じく、電池ボックスを一旦ユニバーサル基板に実装し、メイン基板と片側だけ共締めしました。


※ スペーサーは、左が 8mm+5mm+ワッシャー、右が、15mm です。


4、完成

動作確認を行い、ケース本体に嵌め込めば、完成です。





基板をカスタムで起こす作業は、個人では初めての経験でしたが、国内の業者に依頼したことと、当該業者が、使い慣れた「PCBE」のデータに対応していた(バージョンアップはしましたが)ため、至ってスムースに作業を進めることができました。

これにより製作効率が目立って向上し、当面の課題が解決したことは嬉しい限りです。


2014年7月2日水曜日

人感センサーライトの製作


夜間の玄関・廊下・トイレなどを通るときに、自動で点灯する「人感センサーライト」を製作し、自身以外に、実際に使用して頂くことになりました。

以下はその報告です。

※ 今回は、完成後の報告一回となりますことをご了承願います。


1、仕様

安全性・利便性・保守性を考慮して、以下の仕様で製作します。

(1) 設置場所を選ばず、漏電リスクなどの無い電池駆動とする。
(2) 薄暮でも点灯可能なように、感度調整ができるようにする。
(3) 電池交換が容易になるよう考慮する。
(4) 複数製作するため、性能を維持する範囲で、回路をできるだけ簡略化する。


2、設計

この種の製作情報は多数ありますが、その中でも、最も仕様に近い、「電子マスカット」さまの製作品(以下オリジナル品)を参考にして、設計しました。
マイコン1個でできないか検討しましたが、スリープから復帰させるための回路を追加すると、回路規模のメリットは無くなってしまい、結局オリジナル品の基本構成が最良との結論になりました。


2.1 回路

1(4)項の通りの事情により、回路を大幅に簡略化しています。その回路を以下に示します。



2.1.1 特記説明

オリジナル品の、初段モノマルチ(= モノステーブルマルチバイブレータ)は省略しました。

また、現場で感度調整を行い易いように、モニタLED (D2) をコンパレータ (IC1) 出力側に移動すると同時に、終段モノマルチ (IC2) を調整時に無効にできるジャンパピン (SW1) を追加しました。
※ これにより、モニタLEDを見ながら感度調整できるようになりますが、昼間は同LEDが点灯しなくなります。

さらに照明用LED (D3) 周辺は、DC-DCコンバータを省略し、電池から直接、LED一個を点灯しています(2.2項 LEDの記述を参照)。

回路定数が若干異なりますが、抵抗値に入手し易い値を使ったことと、ボリュームの調整範囲が狭くなる(クリチカルにならない)ようにしたためです。

2.1.2 消費電力

常時流れる電流は、電子マスカットさまのデータを流用させて頂くと、

170uA + 15uA + 4uA + 9.5uA = 198.5uA … ①

LEDの消費電流は、上記定数で約16.5mA で、仮に一日10分点灯と仮定すると、平均値は、

16.5mA × 10分 / (24時間 × 60分) = 114.6uA … ②

総消費電流は、①②より、198.5uA + 114.6uA = 313.1uA … ③

電池の容量を、仮に1200mAhとすると、③ より、

(1200 × 1000)uA / 313.1uA = 3832時間 = 160日

半年弱程度は持つことが期待できますので、この回路及び定数で製作を進めます。


2.2 部品

人感センサは、オリジナル品と同様、パナソニック電工のNaPiOnセンサ「AMN31111」を使用します。
本品は、各通販サイトで販売されています。また、同電工のサイトで直販もされています。

コンパレータは、消費電流が少ないCMOSオペアンプを転用します。入出力電圧が 0V ~ Vdd まで対応するために、「レールtoレール」型を選ぶ必要があります。

CdS(= 硫化カドミウム)センサは、暗抵抗1MΩの品を使用しました。

モノマルチは、一般的なCMOSモノマルチである、「74HC123」を使用します。リトリガブルなので、センサが反応するたびに発生パルスが延長します。これにより、センサ近辺に人がいる限り、点灯し続ける状態が保証されます。

LEDは、パワーLEDは大げさだし…と思っていた矢先に見つけた、秋月電子の4.8mm 3チップ白色LEDを使用してみました。


2.3 基板レイアウト

複数台製作と言っても数台なので、今回もユニバーサル基板に手組みします。
例によって、ICB-86基板のパターンを活用しました。

パターン図を以下に示します。


※ ピンク矢印一箇所のみ、パターンカットします。


3、製作

3.1 基板

パターン図に従って、以下のように実装しました。
各LED・CdSセンサは、ケース表面に位置させるために、チューブでかさ上げします。



裏面の状況は以下の通りです。



3.2 ケース

ケースは、保守性の良い、「嵌め込み式」のタカチ SWシリーズを使用しました。
将来の拡張性(ACリレーなど追加)を考慮して、大きめの SW-125 を選んでいます。

電池交換を考慮して、フタの方に実装します。
以下のように、ビス・センサ・LEDそしてボリューム用の穴を開けます。




3.3 組み立て

SW-125のフタ部に以下のように実装すると、フタを外して容易に電池が交換できます。
電池ボックスを、もう一枚の基板にビス止めして、SW-125のフタ部に取り付けます。



この状態で動作確認を行い、ケース本体に嵌め込めば完成です。




4、完成

3チップ内蔵LEDの明るさは絶大で、一個でも廊下周辺を照らすことができます。
直視すると目が痛い位なので、LEDを下向きに実装するバージョンを用意したほうが良いかも知れません。
また、消費電流をもう少し許容するなら、LEDの定格近くまで電流を流し、散光キャップなどを装着すれば、もっと面として明るさが確保できるかも知れません。



最後に、本製作の参考とさせて頂きました 電子マスカットさまに、この場を借りて御礼申し上げます。

次回は、キットを活用した電源を予定しています。

2014年5月22日木曜日

Ni-MH充電器の製作(10終)


10 組み立て

ようやく… となりますが、最終段階となる、組み立てと最終確認に入ります。


10.1 基板組み

コントローラ基板と、DC-DCコンバータ基板を組み合わせ、リード線で結線します。

コントローラ基板には操作部品があるので「上」に、DC-DCコンバータ基板は大型部品があるので「下」に配置しなければなりません。
よって、長さの異なる樹脂ナットを使って、以下のように階段状に組み合わせました。


樹脂ナットは、向かって右の一番長いものが 30mm、中央のDC-DCコンバータ基板側が 20mm、マイコン基板側が 8mm です。

基板組み裏面(はんだ面)の状態は、以下の通りです。



この状態で、動作確認しておきます。




10.2 ケース加工

基板二枚が丁度収まるポリケース※を用意して、基板固定用・端子用・ボタン押下用の穴を開けます。
※100円ショップに各種あります。

大きな穴は、以下のようなステップドリル(通称「竹の子ドリル」)が非常に便利です。



10.3 取り付け・最終確認

加工したケースに、電源用のDCジャックと、電池接続用のターミナルを取り付けて、最後に基板組みを取り付けます。

ようやく完成となりました…




11 総括と反省点

マイコンでアナログ回路を実現することは試行錯誤の連続であり、製作が順調に進むことはありませんでした。

さらに、言い訳となり申訳ありませんが、この作業に専念できなかったために問題解決に手間取るなか、数々不手際が露呈してしまい、この規模にして、完成まで一年以上も経過することとなりました。

一方で、AVRマイコンのADコンバータとPWM機能を利用して、簡易ではありますが、DC-DCコンバータを実現できたことが最大の収穫となりました。


以上で、今回のテーマを終わります。最後までお読み頂きまして誠にありがとうございました。

2014年4月30日水曜日

Ni-MH充電器の製作(9)


前回少し話しましたように、古い電池で充電が不十分と思われる現象があり、その改善を検討していましたが、さらに大きな問題が埋もれており、検討し直す事態となりました。

条件を網羅してテストした積もりが、非常に御粗末な状況になっており、毎回申訳ありません。

以下は、前回に続く顛末の報告です。

9 残問題の処置

9.1 顕在問題の対処

いろいろな電池で実験を行ううちに、特に古い電池において、充電が終止電圧に達せず、すぐ終了してしまう現象が発生しました。

電圧の推移を調べると、充電開始後ほどなく、終止電圧 1.38V※ に達して充電終了し、終了後の電圧は、1.1V 程度しかありません。
この状況から、古い電池は内部抵抗が高く、充電電流による電圧降下(吸い込んでいるから、充電電圧は上昇)で、充電完了しないのに終止電圧に達していると考えました。

※ 実際は、この電圧も正確ではありませんでした(次項を参照)。

今回の終止電圧は、回路やプログラムの誤差を考慮して決めましたが、誤差を終止電圧に転嫁することは、本来適切ではありませんでした。
よって、誤差をもう少し追い込んで、終止電圧を本来の 1.4V まで引き上げることにします。

電圧検出に影響する要素として、以下が存在します。

回路面では・・・
・電圧検出用抵抗(R15 ・ R16)
・ADC の Vref( = AVcc)

プログラム面では・・・
・ADC分解能
・電圧の計算・比較

まず回路面において、マルチメータで実測して、誤差がどの位か確認します。

回路要素規格値実測値誤差
R151kΩ998Ω0.2%
R16470Ω470Ω0%
Vref(=AVcc)5.00V5.04V0.8%

この実測値に合わせて、プログラムの定数値を修正します。


次にプログラム面ですが、ADCの分解能は、10ビット固定であり、変換誤差 eADC は、

eADC = (1 / 1024) × 100% = 0.1%

また、電圧の計算は、6.2.2項の通り、10ビットデータで計算していますので、

D(VBatt) = 1024 / 5V × 1.4V = 286.72

これを四捨五入して 287 と定数宣言すれば、誤差 eVbatt は、

eVbatt = 286.72 / 289 × 100% = 0.1%

プログラム面の変換誤差も追い込むに越したことはありませんが、これはADCが10ビットである限り避けられませんので、回路定数のみ反映し、終止電圧を1.4Vに修正してみます。


今度は、充電が終了しません・・・上記の誤差など論外となる問題が内在していました。


9.2 潜在問題の検討・対処

充電が終了した電池の温度がかなり高くなっています(手で触って、熱く感じる)。

当初は、これも電池の加齢が原因ではと考えましたが、比較のため、新しい電池を購入して充電したところ、1.38V で終了せず、1.47V 付近!まで充電が続く状況となりました(当然この電池も熱くなる)。

もはや電池の問題ではなく、電圧検出に重大な問題が存在するようです。

まず回路面は、前項で確認しましたので問題無い筈です。
次に、プログラム面を探って行きます。

ADCの分解能は、10ビット固定であり、以下が守られていれば、10ビット値が正しく読めています。

ADMUXレジスタのADLARビットを操作せず、変換結果が左揃えになっていない。
・変換結果を、ADCWレジスタを使用して読んでいる。

上記は正しく設定されています。

また、変換結果の変換式は、D = 1024/Vref で計算されており、その誤差に前項計算値 0.1% を見込んでも、当然問題はありません。

続いて、検出電圧の計算を調べます。

電圧検出の計算箇所を抜粋してみます。

#define R_15 998

#define R_16 470

//(中略)

uDataI = ADC_GetData(1); // get current(ADC1)

uDataV = ADC_GetData(0); // get voltage(ADC0)

uint16_t uDataB = (uint16_t)(1 + R_15 / R_16) * uDataV - UdataI;


R15・R16 を宣言して、6.2.2項の通り計算していますが、宣言が整数値のため、R15/R16 の計算も整数のままです

本来なら、 R15 / R16 は 2.12 ですが、現状では少数点切捨てで 2 と計算されています。
誤差は6%に及びます。

原因は確定しましたので、少数点が正しく計算できるように、抵抗値が浮動少数点計算されるように、宣言と計算を以下の通り修正します。

#define R_15 998.0F

#define R_16 470.0F

//(中略)

uint16_t uDataB = (uint16_t)(1.0F + R_15 / R_16) * uDataV - UdataI;


998F などの表記では、AVR Studio ではコンパイルエラーとなりました。

この対策により、ようやく 1.4V で充電終了するようになりました。


9.3 お詫びと反省点

このような問題は、本来テストの初期で検出できて当然ですが、今回以下の理由で検出できませんでした。

・電圧の監視をアナログテスタの10Vレンジで行っていた。
・充電中に適切な観察をしていなかった。

電圧の検出に10mVオーダーの誤差が求められるので、精密な測定器を用いるのは当然のことで、また、データロガーなどを用いて、電圧及び時間の経過を正しく把握するのも当然のことですが、手持ちにアナログテスタしか無く、上記を怠っていたのです。

しかも、9.2項の問題を内包しながら、9.1項のように充電がすぐ終了する現象の発生は起こり得ず、実験過程に疑義すら生じています。
※ 実際に、9.1項の問題は、9.1項の時点に回路・プログラムを戻して実験しても、再現しません。

正確に、客観的かつ定量的な実験を行わなければ、品質を確保することはできません。

今後は、最低限の備えとしてマルチメータを用意し、以降の実験を行うものとし、データロガーは予算が付き次第導入することにします。


次回の予定

全く手つかずである、ケース加工や組み立てを行う予定です。


2014年2月28日金曜日

Ni-MH充電器の製作(8)

毎度遅くなってしまい申訳ありません。

今回は、製作そのものが二転三転しました。顛末は以下の通りです。


8 コントローラ部 基板実装(訂正・続き)

8.2 回路・部品の変更

前回 8.1項において「最終版」としておきながら、誠に申訳ありませんが、変更点が発生しています。

・三端子レギュレータが大きすぎて実装に支障があり、より小型の500mAクラスのLDO(低入力対応型)に変更することとしました。これにより、入力側コンデンサ C1 の値を0.1uF ⇒ 1uF に変更し、出力側に電解コンデンサ 22uF を追加しました(何れも発振止め)。

※ 入手の都合で、ルネサス uPC2905B を使用しましたが、他メーカの品を使用するときは、発振止めのコンデンサは、該品データシートに従って見直す必要があります。

・電源投入直後に一瞬、DC-DCコンバータから電圧が出力される現象があり、この対策として、Q1 のゲートに 10kΩ を追加しました。この抵抗は、AVRのポートが出力に設定されるまでの期間、Q1を明示的にオフしておく作用があり、Q1が動作中にスイッチングを高速化する目的はありませんので、小さい値である必要は、ありません。

上記を反映した回路図を、以下に示します。



8.3 パターンの変更

前項内容を、基板パターンに反映します。
同時に、以下の修正を行う必要がありました。
Q1の上下が逆。さらに、正しく実装しようとすると、AVR と干渉するので、逆にした上で右に移動
・ジャンパ線が、メッキ線に変更可能であったので変更

何れも拙速な検討による、単ミスでした・・・

上記を反映したパターン図を、以下に示します。
※白線の外形が、変更部品です。



8.4 実装

LEDは何も考えずに5mmの抵抗内蔵型を用意していましたが、実装の時点に及んでLED同士が干渉する事実が発覚(!)しました。

今さら実装をやり直す訳にも行かず、3mmで抵抗内蔵の品が無いか探したところ、Digi-Key で三種類ほどが三色用意されていたので、至急調達しました。
Digi-Key は海外の業者ですが、住所・氏名・使用目的を英語で記述する以外は、日本語で注文可能です。また支払いも国内の銀行に振り込む方法があるので、容易に注文することができました。

以下のように梱包されて送られて来ました。



入手できたLEDを含み、実装したコントローラ基板の写真を、以下に示します。



コネクタを実装する予定でしたが、スイッチに合わせて基板高さを抑える必要があるので、リード線直付けに変更し、実装していません。
三端子レギュレータも、同様の理由で、横に寝かせて実装しています(なので、一般的な7805は大きすぎたのです)。
LEDとスイッチを、向きを揃えて実装するのは、かなり大変です。交換を考慮しなければ、前もって接着剤などで固定したほうが、遥かに効率的と思います。


一年近く要して、ようやく基板二枚とも完成しました。


次回の予定

充電特性において、得に古い電池の場合、要改善点が発生していますので、当該項目の検討を行い、できれば組み立てまで進みたいと思います。