[戻る]

ねんどろいど ドロッセル 自動的に「便利ね」mk2

2010年5月
ねんどろいど ドロッセル。目、光らせてますか?

前作「ねんどろいど ドロッセル 自動的に「便利ね」」では基板が台座の深さから
わずかにはみ出し、安定して置けなかったので作り直すことにしました。
どうせならと、マイコン(AVR)を使った新規設計です。

今回はねんどろいどファン(電子工作初心者と仮定)向けの詳細解説はしません。
興味がある人は、この記事を読んで頑張れそうならチャレンジしてみてください。
AVRに関する工作はライター(書き込み器。安いものは2000円程度)さえあれば
大体何とかなります。ライターの使い方を知ってもらわなければなりませんが。

【キーワード】
ねんどろいど、グッドスマイルカンパニー、ドロッセル、ファイアボール、便利ね、
AVR, ATtiny13A, アナログコンパレータ、フォトトランジスタ、照度センサ、TPS615

【関連リンク】
ねんどろいど ドロッセル …グッドスマイルカンパニー製品紹介ページ
ファイアボール …ディズニーチャンネル番組公式サイト
2010/06追記↓
ねんどろいど ドロッセル 「侵入者か!?」 …液晶画面にセリフ表示

ねんどろいど ドロッセル 自動的に「便利ね」mk2 デモ

ドロッセル 自動的に「便利ね」mk2 デモ(動画)ドロッセル 自動的に「便利ね」mk2 デモ

テスト用にLED_SHORT_TIME = 3秒、 LED_LONG_TIME = 10秒です。
実使用の点灯時間は数十分でも設定できます。
※LED_SHORT_TIME, LED_LONG_TIMEについては後述。

動画の流れ:
・待機状態→センサを暗くする(LED点灯)→すぐに明るくする→LED消灯(待機状態)。
・待機状態→センサを暗くする(LED点灯)→すぐに明るくする→LED消灯(待機状態)。2セット目。
・待機状態→センサを暗くする(LED点灯)→3秒以上経ってから明るくする→10秒後にLED消灯。
・待機状態→部屋の電気を消す(LED点灯)→10秒後にLED消灯→部屋を明るくする(待機状態)。
・待機状態→センサを暗くする(LED点灯)→すぐに明るくする→LED消灯(待機状態)。3セット目。

仕組みについて

555とマイコンの制御方法の違い ※図は実際の回路ではなく仕組みを説明するものです。

前作はタイマーIC 555を使いました。フォトトランジスタ(照度センサー)で発生した電流をトランジスタで増幅し、トリガーとなる小容量のコンデンサ(計時用の電解コンデンサの方ではない)を瞬間的に放電/充電させてワンショットタイマーを動作させました。一言で言うと電流制御のシステムです。オンかオフかというデジタル的な制御がやりにくいです。
スイッチと違い、ONとOFFとの中間と言える状態が出来てしまう。

トリガ用のコンデンサは常時充電状態にあります。タイマーを起動するには素早く大量に放電させる必要があり、そのためには電流を急激に大きく変化させなければなりません。微妙な明るさの変化に対してはコンデンサを狙い通りに放電させることができません。ここに、バランス調整的な制御の難しさがあります。感度を敏感にするのが難しい。


今回はマイコン(AVR)を使い、電圧でシステムを制御しています。
フォトトランジスタで発生するuA単位の微少な電流は、適当な大きさの抵抗を通してmV単位の電圧に変換することができます。AVRのアナログコンパレータで検出するには十分な大きさです。

A/Dコンバータで「何mVか」を測定する必要はありません。電圧が発生したかどうかが判定できればよいので、アナログコンパレータを利用します。何mV以上をもって電圧が発生したと認めるかという、オンかオフかの閾値も自由に設定できます。デジタル的な制御がやりやすいです。
一言で言うと、電流のアナログ的な変化を電圧で見てデジタル的に判定する回路ということ。

マイコンの動作内容
上記説明の通りです。フォトトランジスタ(照度センサー)で発生した電流を電圧に変換し、アナログコンパレータのAIN0へ入力します。AIN1へは電源電圧を半固定抵抗で分圧して入力し、AIN0との比較対象(電圧発生の判定の閾値)とします。
AIN1の電圧を変えることでセンサーの感度を調整することができます。

本システムは AIN0 > AIN1 のとき「明るい」、AIN0 < AIN1 のとき「暗い」、と判定します。
AIN1を大きくしておけば(ただしAIN0よりは小さく)、周囲を少し暗くしただけで
「明るい」(AIN0 > AIN1)から「暗い」(AIN0 < AIN1)に変化します。つまり感度が敏感になります。

AIN1を小さくすると、AVRはほぼいつでも「明るい」(AIN0 > AIN1)と判定していることになります。
「暗い」と判定させるにはAIN0をうんと小さくしなければなりません。周囲をハッキリと暗くしなければならないということで、つまり感度が鈍感になります(少し暗くした程度では「暗い」と判定されない)。

消費電力を削減する工夫
本システムの電源はボタン電池です(LR41が2個)。電源スイッチをONにしっぱなしで使います。
そのため、なるべく消費電力が小さくなるよう、マイコンの動作を工夫します。
まず動作クロックを下げます。本システムは150kHzで動作しています。
次に動作間隔。マイコンは一瞬も途切れることなくセンサーの反応を見張らなければならないわけではありません。間欠的な動作でよいので、スリープモードで消費電力を削減します。
その他、マイコン内の不要な機能を切り離して少しでも消費電力を削減します。

そしてフォトトランジスタにも常時電流を流しておく必要はありません。マイコンのスリープが明けたらフォトトランジスタに電流を流し、明るい/暗いを判定したら、次のスリープに入る前に電流を止めます。スリープ中はアナログコンパレータ機能への電力供給さえも止めます。

以上の工夫で電池は結構長持ちするんじゃないかと期待していますが、どうなるでしょうね。
もちろん、面白がって頻繁にLEDを点灯させていたら減りは早いです。

LEDの点灯動作
前作(555を使用)は光を遮ってLEDを点灯させると、一定時間が経過するまで点灯し続けました。
本システム(マイコンを使用)は動作が異なります。
本システムには LED_SHORT_TIME, LED_LONG_TIME という2つの時間設定があります。
フォトトランジスタに当たる光を遮ってLEDが点灯したあと、
(1) LED_SHORT_TIME秒経過する前に明るくすればLEDは消灯します。
(2) 遮ったままLED_SHORT_TIME秒経過すると、LED_LONG_TIME秒間点灯してから消灯します。
  このときは途中で明るくしても、LED_LONG_TIME秒経過するまでLEDは消灯しません。

【例】 LED_SHORT_TIME = 3秒、 LED_LONG_TIME = 10秒の場合(このページ先頭の動画)
フォトトランジスタに手をかざして暗くするとLEDが点灯します。
3秒未満で手をどければLEDは消灯します。
3秒以上手をかざすと、LEDは残り7秒間点灯し続けます。
この状態に入ったら、手をどけてもどけなくてもLEDは合計10秒間点灯し、その後、消灯します。

(1)の動作は、本システムの前を不意に横切ったり、たまたま影が当たったときに点灯したLEDが、すぐ消えるようにするための点灯モードです。
(2)の動作は前作同様、適度に長時間点灯させることが目的の点灯モードです。
例えば ねんどろいどの写真撮影を楽しむユーザーが、ドロッセルのライト点灯状態を撮影しようとするときに、(2)の動作をさせます。撮影前にしばらく手をかざす。
前作の記事で書いた寝室で枕元を照らすような使い方は、自動的に(2)の動作になります。
動画で部屋を真っ暗にした状態が、この使い方を想定した例です。

LED_SHORT_TIME, LED_LONG_TIMEの設定
何か回路的に、スイッチやボリュームで設定するわけではありません。
下記で公開しているプログラムのソースファイルで、次の2行を任意の値に書き換えます。
そのソースファイルをビルドし、できたhexファイルをAVRに書き込みます。
//LED点灯時間
#define LED_SHORT_TIME 5  //(sec)
#define LED_LONG_TIME 60 //(sec)
・LED_SHORT_TIMEは1秒以上、LED_LONG_TIMEは3600秒(1時間)以下にすること。
・LED_LONG_TIMEはLED_SHORT_TIMEより大きい値にすること(同値はダメ)。

式で書くとこうなります→ 1 <= LED_SHORT_TIME < LED_LONG_TIME <= 3600

プログラムはこちら→ダウンロード PhTrCtrler_v100.zip
AVRに書き込むhexファイル。デフォルトでは LED_SHORT_TIME = 5秒、LED_LONG_TIME = 60秒。
ヒューズビットの設定は同梱したソースファイルの先頭に記述してあります。

点灯時間は最長3600秒と説明しましたが、本当は9時間(32400秒)まで設定できます。
長すぎて実際に設定するのは無意味です。

台座部を作る

回路図

頭部の配線カット処理と改造内容は、
前作「ねんどろいど ドロッセル 自動的に「便利ね」」と全く同じです。
違うのは台座部だけです。


工作のポイント


何をおいても「薄く作ること」。それで「なんちゃって表面実装」で行くことに。
配線図の青線はハンダ配線。赤線はリード線の切れ端。オレンジ線と緑線は被服線。
被服線には単芯で細めの耐熱線を使います。
入り組んだ箇所のハンダ付け作業なので、ハンダごての熱で被服が溶けないように。

半固定抵抗はなるべく高さが低いものを使います。足を伸ばしてハンダ付け。写真に写っているタイプは裏面に金属部分が見えているので、ショート防止のため下に隠れるランドを径2mmのドリル/ピンバイスで座ぐります(ランドを削り取る)。
半固定抵抗の2番ピン(真ん中の足)を伸ばしたら根元から折れてしまった。リード線を継ぎ足して修復。

AVRを基板にハンダ付けしてしまうとプログラムの書き換え時に困ります。
かといってICソケットを使うと台座の深さに収まりません。
そこでAVRの足を伸ばし、ICソケットを2つに割り、両側から挟み込んでセットするようにします。
こうすると薄いままAVRの取り外しが自由になります。
可動する方のICソケット片と被服線の接点は収縮チューブで補強します。また、この部分の被服線は多芯線にします。柔らかい線なら両端の接点に掛かる負荷が軽減されるからです。

フォトトランジスタも基板に直接ハンダ付けせず、長さを調節したり別のフォトトランジスタに取り替えられるよう、ソケットを使った方がよいです。
ソケットを瞬間接着剤で基板に固定して足をハンダ付けします。このとき足と基板の隙間が大きいので、あらかじめ基板側にハンダを盛っておくのがコツです。

…ということで出来上がったのが写真の物です。
写真・左はフォトトランジスタとAVRを外した状態。
写真・中はそれらを装着した状態。念のため言っておきますが、こちらがウラ面です。
写真・右はオモテ面。部品のリード線は基板とツライチでカットしてあるので、のっぺり平面です。
これがやりたかったのです。


前作と実質的な部分の大きさを比較。
幅・奥行きが1ライン分増減して、結局同じような大きさです。
ICソケットで幅を取っていますね。


頭部を作る

前作「ねんどろいど ドロッセル 自動的に「便利ね」」で作った物から変更はありません。
何もいじらずそのまま使います。詳しくはリンク先の記事を見てください。



完成

基板は台座の深さに収まり、台座が床から浮き上がっていません!


台座先頭の穴は前作の名残です。今回製作した基板を使うなら穴を空ける必要はありません。センサーの感度が結構調節できるので、台座のプラスチック越しでも十分反応します。



AVRにプログラムを書き込む
台座部の工作中、または完成後にプログラムを変更した場合、新しいhexファイルをAVRに書き込まなければなりません。AVRの足は平たく伸ばしてあります。これにプログラムを書き込むにはブレッドボードとICクリップを使います。
VCC, SCK, MISO, MOSI側をブレッドボードに挿し、RESET, GNDはICクリップでブレッドボードに接続します。別途ICソケットを加工して専用治具を作ってもよいです。


動作確認と調整
本システムを部屋の窓際に置くのか、奥の棚に置くのか、また照明との位置関係はどうか、などによって感度を決めることになります。
机の上や棚の中など場所を決めたら、センサー(フォトトランジスタ)が光源(窓の光や部屋の照明)の方を向くようにして置きます。フィギュアを正面に向けたまま、センサーを曲げて光源の方を向かせてもよいです。そうすると光を遮るときの反応方向に違和感がありますが。

頭部の電源スイッチをONにし、フィギュアに当たる光を手、または身体で遮ってLEDを点灯させてください。センサーからどのくらい離れたところで遮ったら反応しましたか?
センサーが反応する距離(感度)は調節できます。

半固定抵抗を左へ回すと感度は鈍くなります
センサーの間近で光を遮らないとLEDが点灯しません(ハッキリと暗くしないと反応しない)。
半固定抵抗を右へ回すと感度は鋭くなります
センサーから1mくらい離れたところで光を遮ってもLEDが点灯します(少し暗くなれば反応する)。
回しすぎるとLEDが点灯しっぱなしになるので注意。

センサーの感度は周囲の明るさにも影響されます。昼間と夜間では感度が違います。
特に夕方、特徴的な現象が起こります。昼の明るさから夜の暗さへ移り変わる微妙な時間帯なので、センサーも明るい/暗いの判定が揺らぎ、LEDが勝手に点いたり消えたりします。
しかし1分もすれば「暗い」の判定で落ち着きます。そうなったら手をかざしてもLEDは点灯しません。センサーにとっては「暗い」の判定が継続している状態なので、部屋の電気を点けて明るくしてください。
窓の光が当たる場所に置いた場合、明け方にも同様の現象が起こります。

改造のヒント(一応)
A/Dコンバータを使うようにして、20回分(10秒)くらい明るさをサンプリングして平均を取って、今回の値と比較して、とハード/ソフトとも改造すれば点滅現象は解消できます。昼と夜の感度の差も補正できそうな気がします。が、そこまでやらなくても…と思います。もはや別のシステム。

部品について

フォトトランジスタ
今回はTOSHIBAのTPS615を使いました。もちろん前回のNJL7502Lも使えます。
NJL7502Lは足の長い方がコレクタで、直感的にLED同様に見ることができましたが、TPS615は逆で足の短い方がコレクタです。間違えて挿して「回路が動かない!」とあわてないよう注意。

抵抗
フォトトランジスタで発生するuA単位の微少な電流を、アナログコンパレータで楽に扱える大きさの電圧に変換するための抵抗です。数百kΩで数十mVが取り出せます。これくらいは欲しいところ。
部品一覧には100kΩを挙げましたが、これで十分です。

半固定抵抗
なるべく背が低いものを使います。耐久性が低いので頻繁に回転させるとすぐに緩くなって壊れます。サーメットトリマ(箱形で樹脂が流し込んである半固定抵抗)は耐久性がありますが、背が高いので足を残して裏面を削る必要があります。

単なる分圧抵抗として使うので値は何でもよいです。例えば省電力化のため(電流を小さくするため)数百kΩで。部品一覧には100kΩを挙げましたが、実際の工作では500kΩを使いました。

ICソケット
2つに割ってAVRを挟みます。今回の製作物の場合、差し込みやすさの点で丸ピンより平ピンの方が使いやすいです。足が折れやすいので加工に注意。予備があった方がよいかもしれません。

ピンソケット
フォトトランジスタを挿す2ピンのソケットを用意します。丸ピンICソケットと同じ穴の大きさのもので。


ねんどろいど ドロッセル 自動的に「便利ね」mk2 部品一覧 (回路図はここをクリック
部品名 部品番号 個数 参考価格/備考
AVR(マイコン) U1 ATtiny13A 1 120円(秋月電子
フォトトランジスタ Q1 TPS615 1 50円(千石電商
抵抗 R1 100kΩ [黒茶黄金] 3 1個5円/100個100円
半固定抵抗 VR1 100kΩ [104] 1 30円〜60円
積層セラミックコンデンサ C1 0.1uF [104] 1 10個100円


納得のいくものが出来ました。満足です。
実はこの製作には続きがあります。
「mk3」ではありませんが、また名セリフ(?)に因んだ工作内容です。



[戻る]
inserted by FC2 system