自作電子小物/太陽電池式誘導灯0.6
自作電子小物/太陽電池式誘導灯0.6
Solar guide lamp V0.6
2009年6月3日水曜日
「太陽電池式誘導灯」は、ソーラーガーデンライトのようなもので「ほたる」光りするのが特徴です。 2009年版となるバージョン0.6は、PIR(焦電型赤外線センサ)が標準機能となる以外は、外部仕様に大きな変更はありません。変わったのは内部的な所で、色々な種類の小型太陽電池を使える様に、Buck-boost型MPPT方式を実装しました。マイコンにTexas Instruments社のMSP430F2013を使用し、ソフトウエアはC言語にてコーディングしています。
<機能/特徴>
■小型・製作容易で数が揃えやすい
■曇りが続いても安定して点灯する
留意点: 3ヶ月を越えて暗所に放置すると過放電してバッテリーがダメになります。外部で充電しないかぎり復活もしません。
<仕様>
名称:Solar guide lamp V0.6
分類:太陽電池式小型誘導灯
充電時間: 直射日光で4時間/日以上※1
点灯開始条件:
暗くなった時:
点灯時間:4時間で自動停止、明るくなると停止
点灯パターン:「ホタル」発光、約3秒周期、発光量は3%〜50%で変化
人が近づいた時:「ホタル」発光が停止してから、明るくなるまで。 PIRで検知。
点灯時間:1分間
点灯パターン: 連続点灯 、発光量は100%
点灯色: 8色、温度により決定 (0~3℃:赤, 4~7: オレンジ, 8~11:黄, 12~15:緑, 16~19:ライム, 20~23:白, 24~27:水色, 28~31:青, 32~35:赤, 36~38:オレンジ...)
無日照点灯:1週間程度※2(満充電後)
無日照限界:3ヶ月程度※2(限界後は蓄電池の交換が必要)
基板外形:R1基板 幅73mm、奥行16mm、高さ10mm
R2基板 幅47mm、奥行28mm、高さ10mm
R3基板 幅36mm、奥行38mm、高さ10mm
R4基板 幅74mm、奥行17mm、高さ10mm
蓄電池: ニッケル水素電池 1.2V 0.8Ah/本以上 × 3本、出来るだけ自己放電の少ないもの
太陽電池:100〜330mW 解放電圧が0.5〜5V(C1の耐圧を上げればmax10Vまで可)
製作費:約2000円ぐらい
※1 設計値、使用する太陽電池パネル次第
※2 設計値、使用する蓄電池次第
<構成・方式>
■前提
本バージョンを作製する発端となったのは、小型の太陽電池が入手しにくくなってきたためです。太陽電池が決まってから設計を開始するのは何かと面倒なため、仕様にあまり左右されないような「小物」にするのが、今回の作製目標です。もちろん、出来るだけ安く・単純にという大前提もあります。
前バージョンの事は全て忘れて、0から考え直したつもりです。
■蓄電系
蓄電はどう考えても、コスト重視ではNiMH二次電池しか選択の余地がないように思います。
電力変換しつつ効率的に蓄電池へ電力を転送するには、やはりDC-DCコンバータしかないのではないでしょうか?他に電力変換の方法を知らないので仕方しかたありません(知っているとも言えませんが)。具体的な方式では降圧(Buck / Step down)型、昇圧 (Boost / Step up) 型など、幾つかの構成があるようです。入力と出力電圧の範囲に制約のない「Buck-Boost」型だと、柔軟に対応でき、今回の要件にぴったりです。ただ、一般的に変換効率を出しにくいようです。そこで、どの程度になる物か、簡単な実験で確認しましたが~80%程度ま出ましたので、許容範囲と考え、この方式で行く事にします。これで、太陽電池と蓄電池の電圧関係に悩まなくて済みます。
誤解していたのですが、名前からBuck-Boostは降圧と昇圧を組み合わせたもので、部品数が多い物だと思い込んで検討すらしていませんでした。しかし、BuckBoost型にも色々あり、少ない部品数で実現できる回路もあります。一般的には負電圧発生のための回路ですが、入力電圧より大きくも小さくも出来る能力を持っています。ただし変換効率では不利な方式との事でした。実際、回路シミュレータLTspiceとブレッドボードで実験を行い、行けそうな感触を得ました。昇圧型では、回路の巧妙さに関心したが、逆極性Buck-boost型ではコイルでバケツリレーをするという思いもつかない方法にも、電子回路の面白さを感じます。
/
実装を考えると、このような目的(低電圧入力の充電機能)に使えるICは見つけられませんでした。部品数に捕われず、時間をかければ、汎用部品で設計できるとは思いますが、比較的複雑な制御を要しますので、やはりマイコンの出番が適当だと考えました。
問題が一つあり、蓄電池の電圧が下がりマイコンのコントロールが失われると自立起動出来なくなる事です。もっとも、過放電近い状態では蓄電池自体が痛んでいる可能性が高く、太陽電池の電力を利用して起動できたとしても、またすぐ機能停止してしまうでしょう。と言う事で、今回は割り切ってしまい、何も策は講じませんでした。
このような比較的小型の機器では、制御のオーバヘッドは大きくなってしまい、実用にならない可能性が高いと考えました。そこでBuck-boostのゲート制御に使えるマイコン等を、調査・実験して判断します。
・Microchip社 PIC12/16: 低電力(1mA未満)でPWM出力できないようなので使うのは難しい。
・Cypress社 PSoC: デジタルブロックを32KHzクロック(スリープでも止まらない)で動かすことで、低電力で32KHzのPFMを発生できるのですが、duty=50%固定なのでBoost範囲が限られます。アナログブロックでPWM生成する手も考えられますが、アナログブロックは意外と電力を使うので不可。また、A/Dコンバータの消費電力量が比較的大きいので、節電対策を極めたとしても、全体の効率はあまり良くないかもしれません。
・TI社 MSP430F2xx: クロックを使い分けられ自由度が高い上、全体的に低消費電力が低いので期待大。ブレッドボードで確認してみると、50KHzのPWMを発生させた場合、消費電流は600μA。これなら何とか行けます。
その他にも気になるデバイスがありますが、とりあえずMSP430で進めます。
/
DC-DCコンバータの制御は、出力側の電力を最大になるように動かします。つまり、MPPT方式です。電力値を得る為に電流値を測定しなければならないのが、ちょっと面倒です。大抵の太陽電池は、開放電圧の7・8割が最大点になっている事実を利用し電圧値だけで制御する方法もあります。実際、太陽電池の特性を計測してみると、まあ大体そうなっているようです。(前バージョンの追記参照)
■メイン電源の選択
電力ロスを最小にする為、最大の負荷であるLEDを光らすのに必要な最低限の蓄電池セル数で設定します。青/緑LEDはVfが約3.4Vなので、3セル以上必要です。切りが悪いですが、最低の3本とします。設計基礎値をtyp=3.6V, min=3.3V, max=4.5Vと考えます。
■LED駆動方式
制限抵抗式としました。定電流制御すれば、ばらつきを抑える事はできるでしょうが、並べて比べなければ解らない程の物だと感じます。今回の場合、単独での発光なので、こだわる必要はないと考えました。
インダクタ/キャパシタを使用した電力変換型のLEDドライバICを使用すれば、定電流制御と高効率の両方を得られ理想的です。今回は、制限抵抗でもバッテリとLEDのVf値が近いので大きなロスにはならないはずです。
本バージョンでも、電力削減のためPWM駆動・ホタル光りさせます。
<回路図>
■蓄電部
左上が蓄電部で、典型的な逆極性Buck-boost回路です。太陽電池への逆圧で効率が低下してしまうかもしれません。
コイル/コンデンサ値はマイコンで出力出来るPWM周波数〜100KHzの条件から設定。出来る限り小さい値にしたかったのですが、無理して難しくなっては困るので... 実測データを最下部の追加情報に付けます。
電流検出用のR1は、ハイサイド側に付けると電圧と電流の両方を2本のピンでマイコンに取り込めますが、マイコンの電圧レンジに合うように分圧しなければならなりません。ここでは、単純な方でピン数不足ではないので、抵抗値は電力ロスを少なくする為には出来るだけ小さいほうが良いのですが、0.1Ω/0.1mAの条件では10μVを読み込まなければならず、ちょっと厳しいです。
R2は、A/D変換器の仕様でVss付近がダメなので底上げの目的です。←そんな事はありませんでしたが保険です。
各部品は電力変換効率に影響するので、質の高い物にしたい所です。
■発光部
発光デバイスは、私的に実績のあるパラライトEP204Kにします。広放射角、体感光度が満足出来るのと、2年間直射日光にさらされても問題なく使えているのが選択の理由です。
MSP430F2013の出力ポートは、20mAの駆動能力はないのでトランジスタ等を使う必要があります。ベース電流が勿体ないので、PNP型にしたり挿入位置を変えたい所ですがマイコンの電源電圧が低いので適用不可です。FETという手もありますが、部品代が高くつのと、発光時の全体電力を考えれば微々たるものなので簡単に考えて問題なさそうです。気休めですが、増幅率hFEの大きいGRランクを選び、ベース電流を少なく出来る様にしました。
制限抵抗は、この値で損失約5%なので良しとします。
■制御部
マイコンは、基本設計の段階でMSP430を使用する事に決めましたが、具体的なデバイスの選定は一番安く入手出来るMSP430F2013にします。これは、外付け部品なしに電流測定に使えるA/Dコンバータブロック(SD16)を持っているため、MPPTを電圧値で制御する方式にする必要はなくなります。これで、より正確に最大点で稼働させる事ができます。開発環境はUSBスティック形の開発ツールeZ430-F2013でお安く済みます。ワイヤを引き出せば、プログラム書き込み器として使えるだけでなく、実際の基板でリアルタイム実行まで出来てしまうとは、素晴しいコストパフォーマンスです。(私はMac上のPCエミュレータParallelsでWindowsXP動かして開発していますが、eZ430-F2013と相性が悪く使えませんでした。eZ430-RF2500では問題ないようです。ParallelsDesktopBuild3214,XP HomeEdition,2009.1.1時点)
バッテリー電圧を取り込むA4+/P1.1ポートは最大10Vを計測できる様にする為1:20で分圧しなければなりません。データシートに当てはめると全体を30KΩ以下にする必要があるように思われますが、これだと常時バッテリーから120μA/3.6Vのバイアス電流が流れてしまいます。これは多すぎるので何とかしなけばなりません。計測時のみ電流を流す手段もあります。本当に30KΩ以下なのか実測してみると、必ずしもそうでは無い様です。データシートの読み違えかもしれません。
■PIR部
実はMSP430に注目していたのはアンプが付いたA/Dコンバータを持っているので、PIRを安く実装出来そうだからです。これまでは安く見積もっても1000円程度のコストアップが必要でしたが、かなり圧縮できると思われます。嬉しい事に、TIがアプリケーションノートで公開してくれています。 詳しくは「slaa283 Ultra-low Power Motion Detection using the MSP430F2013」を参照願います。
R19,C11は電源変動・ノイズをキャンセルする目的なので、ケースによって要・不要が変わってくるようです。
■その他
マイコンのための電源は、1.8~3.6V/約1mAを用意すれば良いので、バッテリー電圧から1.2V程度降圧するだけの簡単な物(シリコンダイオード等)でも良いようです。ところが、PIR部が電源変動に敏感なため、ボルテージレギュレータを使い安定化させる必要が出ました。TOREXのXP62FPのような自己消費が極小の物なら何でもOKです。出力電圧は終止電圧−ドロップ電圧と考えました。
前バージョンに比べ、かなり複雑に部品数も大幅増になってしまいました。もっと単純にしたかったのですが...
<部品表>
100μFのコンデンサも耐圧16V~のものを用意しなければならなかったのですが、6.3V品しかなかったので、仕様の方を変更します。ニッケル水素電池は、できるだけ自己放電率が少なく充放電サイクル数が多い物としてGP社の Recyko+を選択してみました。小型太陽電池はとにかく安いものを物色していますが、なかなか良い物は見つかりませんね。100mWクラスなら大抵は大丈夫なはずなんですが。開放電圧0.5V以下のものでも、ソフトウエア内の昼/夜判定値を修正すれば対応できます。
前バージョン1300円に対し、1900円なので+600円の約1.5倍の部品代となってしまいました。ただ、PIRを使う条件では逆に-400円安くなる計算です。
<ソースコード>
C言語にてコード化しております。2KBのコードエリアはあっという間に無くなり、大した事はできませんでしたので、読むのは難しくないと思います。
■MPPT制御
・基本処理
DC-DCコンバータ部へ供給するPWMデューティ値を変える事で、動作点を変える事が出来ますので、バッテリへの充電電圧・電流値を計測してデューティ値反映させる処理を繰り返す事で、電力が最大になる様に制御します。
・動作点探索
良く知られている「山登り法」は、以前別の小物でやっていた事がありましたので、最初はそのソースコードをそのまま持ってきました。これでは、「すこしづつ制御点を変え、山を少し越えた所で最大位置を知る」という方法をとっており、普通はこれでうまく機能します。
・複数山対策
しかしながら、今回の回路では山が複数出来てしまうという特性が出ており、最大点を見つけられない事態が発生しました。(最下部の参考情報を参照して下さい)対応策として、
①回路を改善して複数山を解消する
②複数山でも追従出来るようにする
の2方法ありますが、①の原因を追及する時間が惜しかったので、まずは②の策を考える事にしました。
フルスキャンすれば確実なのですが、すごく時間がかかります。そこで、表探索の手法でよく使われる2分割探索法(バイナリサーチ)に似たロジックを作りました。3点計測し、そこに山があるようだったら絞り込み、なければ計測範囲を半分づつ移動させていく方法です。あらゆるケースに対応出来る訳ではありませんが、なだらかな山の形になっていれば対応できるはずです。また一度山を極めた後は、変動に対応できるように、ずりずりと山を追いかけ続け、自信がなくなる(急激な変化がある)と再度山を探索します。なお、この2分割探索の方法は動作点を激しく移動させるので、駆動回路の余裕を十分にとる必要があります。電力系のアプリケーションへの適用は難しいと思います。
■LED点灯制御
前バージョン同様、ソフトウエアPWMでの実装です。発光量の直線性がイマイチの様に感じた為、ガンマ補正を行えるように全面的に書きなおしました。低域・高域での光り方が人間の目で見て、より自然になったと思います。不満が出たらメモリテーブルを変更するだけで簡単に変更も出来ます。PWM分解能は1024ですが32レベルにインデックスする手法を使っています。
当初、発光色が気温と連動すれば役に立つかなと思い、MSP430のSD16モジュール内蔵の温度センサを利用し色を決定していました。しばらく使用してみた所、いかにも機械的で単純・意外とつまらないと感じ始めたたため、元の蓄電池の電圧で決定する仕様に戻しました。(そもそも人間には、教えてもらわなくとも判るものなので、ありがたみが薄い事に最初から気づくべきでした)一応ソースコードには残しています。
■省電力
いつものパターンで節電対策を行います。①一番多い部分を発見しそこを削減。②スリープする。③クロックを下げる。目標はスタンバイ時40uAです。
まずは、対策前の消費電流を計測すると、日中600uA、夜発光時770uA+Trベース電流70uA×3=980uA、朝待ち(スタンバイ)時510uAでした。
①特に際立って消費している部分は見つけられませんでした。ただ、この構成で一番高速で動作する、つまり電力が使われると思われる部分であるTIMER_A(PWM)モジュールは未使用時切り離すようにしました。②MSP430にはスリープモードが何種類もあり、ちょっとコードをいじるだけで、すぐ対策出来ました。結果は、日中は150uAに、夜間発光時は変わらず、朝待ち時は6.3uA(目標達成)に。③PWM出力のために、DCOを8MHzに設定していましたが、1MHzに減速させても、50KHzなら何とか(かなり精度が落ちる)出力できるので変更しました。日中は100uAに、夜間発光時は360uA(ベース電流除く)まで、削減できましたが、劇的な節電にはなりませんね。なお、CPUクロックは減らしても大差なかったので、1MHzのまま。
<ダウンロード>
一応、関連ファイルを公開します。
EAGLE5.6プロジェクトファイル+関連ファイル :
R2基板 R2基板.zip (500KB Macアーカイブ)
R3基板 PCB-R3.zip (364KB Macアーカイブ)
R4基板 PCB-R4.zip (340KB Macアーカイブ)
IEWプロジェクトファイル : sgl0601.zip (112KB)
バージョン:0.6.1
リリース日:2009.6.3
ライセンス: フリーソフトウエア(GPL v3)、TIのアプリケーションノート情報が含まれています
作成者:富樫豊彦 tog001@nifty.com
開発環境:
CadSoft Computer EAGLE 5.6 Light Edition for Mac
IAR Systems Embedded Workbench for MSP430 V4.11B / C言語(無料評価版で可)
Smart RF Flash Programmer 1.5
eZ430-RF2500
<性能検証>
■MPPT追従状況
充電中の太陽電池電圧を測定。
太陽電池:ETM250-1.5V
蓄電池:Recyko+ 85AAAHCB(単四0.82Ah)×3
場所:東向きベランダ設置水平、2009.06.04曇り(V0.5比較の測定と抱き合わせ)
結果: 太陽電池の開放電圧1.5Vに対し、1.2V付近(約80%)をキープ出来ているので大丈夫そう。
■電力変換効率
入力/出力の電圧・電流を測定し、電力効率を計算。
太陽電池:東名電子4セル用
蓄電池:終止電圧まで放電したもの(Recyko+, 数回使用済み)
結果:80%台を期待していたが、やはりこの程度。見直ししたいです。
−−太陽電池−− −−蓄電池−−− 変換
電圧 電流 電力 電圧 電流 電力 効率
V mA mW V mA mW %
4.88 19 92.7 3.80 19 72.2 78
4.93 20 98.6 3.80 20 76.0 77
5.94 18 106.9 3.80 18 68.4 64
5.89 14 82.5 3.80 17 64.6 78
3.64 22 80.1 3.80 15 57.0 71
3.50 21 73.5 3.80 14 53.2 72
■充電性能
前バージョンより性能がアップもしくは同等となっているか、比較のため実測してみました。
できるだけ同一条件にして発電量を比較します。計測方法は、双方に同じ種類の太陽電池パネルを取り付け、放電状態等を同一条件にした蓄電池を用意。同時に日中充電させ、夕方発光開始前までに蓄電池を取り外し、蓄電量を計測します。蓄電量測定は「簡易バッテリー残容量計」を使用。
太陽電池:ETM250-1.5V
蓄電池:V0.5=eneloop HR-3UTG(単三2Ah)×1
V0.6=Recyko+ 85AAAHCB(単四0.82Ah)×3
新品の物を終止電圧まで放電したもの
場所:東向きベランダ上に並べて設置(直射日光は午前中のみ、電線の影が当たる場合あり)
結果:
日付 天候 V0.5 V0.6 改善率 備考
2009.06.02 晴れ 358mWh 370mWh 103% V0.6側を少し光らせてしまったので条件は悪い
2009.06.03 曇り 337mWh 313mWh 93%
2009.06.04 曇り 258mWh 214mWh 83% 追加
2009.06.09 快晴 351mWh 407mWh 116% 追加 午前中のみ
2009.06.10 薄曇り 262mWh 213mWh 81% 追加 午前中のみ
2009.06.12 曇時晴 371mWh 230mWh 62% 追加
2009.06.15 曇時晴 341mWh 379mWh 111% 追加
2009.06.17 曇時晴 214mWh 220Wh 102% 追加 午前中のみ
2009.06.18 曇り 68mWh 63Wh 92% 追加 午前中のみ
2009.06.25 曇/晴 269mWh 324Wh 120% 追加 午前中のみ
2009.06.26 晴れ 320mWh 432Wh 135% 追加 午前中のみ
2009.06.27 薄曇り 296mWh 378Wh 127% 追加 午前中のみ
2009.06.28 薄曇り 307mWh 383Wh 124% 追加 午前中のみ
2009.06.29 曇時晴 303mWh 380Wh 125% 追加 午前中のみ
合計 4.1Wh 4.3Wh 105%
低照度時は改善/見直しが必要です。
細長型は前バージョンで使った形ですが、取り回しが良かったので、同じ様にしました。大きさは一回り大きくなっています。片面銅箔パターンで両面は部品に実装する形です。
今回も、PCB設計ソフトウエアのEAGLEを利用し、自動配線で楽をしました。
1枚の生基板から、出来るだけたくさんの基板を取りたいので、連続配置したプリントを出すのに、EAGLEの出力をPDFにして表計算ソフト上に張り付けレイアウトする方法をとりました。以前は力技で、1枚のフィルムにちょっとずつ位置をずらしなから何回も印刷を繰り返す方法をとっていましたので、時間がかかっていました。
部品が間に合わなかったり、したため空中配線している所もあります。
自信がなかったのですが、PIRフルネルレンズを発光するように見せようと思い、LEDとPIRセンサをワザと近づけるレイアウトにしましたが、心配した通り、実際光った所を見るとイマイチでした。また、PIRにノイズが入ってしまいます。かなり後悔しています。
今度はスタンド/ポール形での使用を考え、単四電池ボックスの裏に取付けられるサイズで基板を作ってみました。
これは、片面銅箔パターンで部品も片面に実装する形ですが、LED,MSP430の下にもチップ部品をレイアウトしている2階建て式です。
チップ部品のハンダ付けにも大分慣れましたが、それでもやり始める時は気合いが必要で、以前のように気楽にシュッシュッという訳には行きません。
写真ではまだSIIのボルテージレギュレータを付けていません。今回購入先の三共社は、小売りをするような所ではないのでしょうが、安価に購入できとても助かります。
ISPでのプログラム書き込みに慣れてしまうと、ICソケットが無駄に思えてきます。ちょっと考えましたが、今回はハンダ直づけにしてしまいました。
<ケース>
■最初の外装
R2基板用のポール形のケースで、約5cm角の四角柱です。正四角にしたかったため、太陽電池は約45度に傾けて配置し、側面一方向のみが点灯します。
2番面の写真の左側が中身で、右側の透明な方が外側になります。中身の方は、発砲スチロールを母材とし太陽電池・電池ボックス・基板の各コンポーネントを固定すると共に、断熱の意味もあります。加工もし易いです。外側は、透明のアクリル板を曲げて筒を作り天板を接着した簡単なものです。磨りガラスのような加工になっているように見えますが、これは「つや消し」塗料を塗っただけで材料が違う訳ではありません。
これを地面に立てた角材の上にセットする想定です。
首の所をカットし、太陽電池の受光方向と発光方向を変えます。
透明アクリルなのですが、このような形では発電効率が落ちました。太陽電池とアクリル板は密着した方が良いと思われます。
角が青くなっているように写っていますが、背後で青発光しているためです。実際は、LEDの紫色の光りがアクリル板に導光され、ほのかに発光しているようで良い感じです。正面の光り方をもう少し柔らかくし、方向も広げたいと感じた次第です。
■もう一つの外装
やはり、どの方向からでも点灯を確認できる方が使いやすいと考え、別に、ポール形で上部を発光させるタイプを作製。
太陽電池を側面に配置し、R3基板を使用。
側面配置のため発電量不足が懸念されますので、しばらく実地運用。
一日毎の状態を写しました。どんどん元気になっていきましたので、太陽電池の側面配置も心配なさそうです。
<参考情報>
■PWM周波数・duty別出力電流
本DC−DCコンバータで、PWM駆動条件をリニアに変化させた時の実測結果です。dutyは%ではなく、MSP430内で使っているPWMタイマのコンペア値です。右端を100%と見て下さい。
共通条件:太陽電池ETM250-1.5V、インダクタ100μH、キャパシタ100μF、晴天時の太陽光で計測
■太陽電池・duty別出力電流
何種類かの太陽電池で実測してみたものです。
共通条件:PWM周波数100KHz、インダクタ100μH、キャパシタ100μF、晴天時の太陽光で計測
<関連>
<あとがき>
2015.6.29 長期使用している状況での体感をしたためます。
ホタル光の仕方は、スムーズで違和感無いと思います。以前は急にに明るくなったり、デジタル的な段々変化する様が鼻についていました。
日照に対する反応は、正直な反応で生物/植物のようです。曇りの日が続くと発光色が赤方向に変わって行くのが見て取れます。逆に、天気が続くと青方向に変わって行く様は面白いと感じられます。2個体での観察結果ですが、部品による個体差も少ないようです。とても満足のいく小物に仕上がったと思います。
ですが、やはり最大の欠点としてバッテリが完全に無くなったら、復活する事がないと言う事です。私の設置条件では、2年に1回冬を越す事出来ませんでした。(山形で午前中のみの日射)
やはり、太陽電池からエネルギーが供給されれば、復帰できる設計にするべきだと考えます。
富樫 豊彦 tog001@nifty.com
Solar guide lamp, compact size and low cost boards, day battery charge, night light on effect “firefly”.
Version 0.6