すっかりドールやらガレキばっかりいじっていたので、電子工作のリハビリの一環で最近ガチャポンで発売されたまどマギグッズであるソウルジェムライトを原作風に改造してみました。まぁ、いわゆるまず電子工作で初心者が手はじめにやるLEDチカチカですw
制御マイコンはソウルジェムライトの小さな空間に納めるためAtmelのATtiny45VのSOP版を使いました(千石電商で購入)。そんなわけで、久しぶりのJTAGICEmk2やらを引っ張り出して、AVRの開発環境も未インストール状態だったのでインストールしてみましたが、最新版のATMEL Studio ver.6ってVisual studio 2010ベースなんですね。いつの間に・・・・^^; すっかり浦島太郎です。以前のはEclipseベースでデバッグでもイライラしっぱなしでしたが、これは滅茶苦茶快適でいいですねw
プログラムは→SoulGemLedControl.zipに。
中身はこんな感じ。とりあえずSOPでぎりぎり入ります。MLFパッケージ版だともっと余裕があるとは思いますが・・。
本当はジャンク箱に入っていた加速度センサーも組み込むつもりでしたが、配線するため線を曲げたときにパッドを引っ張ってはがしてしまって\(^o^)/オワタ 0.4mmの単線UEWでやってたもんだから、線が堅くて曲げるときにパッドに力がかかってしまったのが敗因。やっぱり最近半田付けをほとんどやってなかっただけにダメですね。うーん。
というわけで、回路図には加速度センサーの残骸が残ってますが、LEDだけの場合は点線四角以外になります。プログラムにもADCの設定の残骸がありますが未テストです。ちなみに加速度センサーは千石電商で300円で手に入る安いものです。ただ、電源電圧がMax3.6Vですから、レギュレータで電源電圧を変換する必要はあります。
電源電圧はソウルジェムに使っている電池がアルカリボタン電池のLR41(1.5V)×3なので4.5Vなのですが、大体新品は1.5Vを微妙に超えています。実際、実測4.76VでしたのでMaxで4.8Vぐらいの電源は入るものとしておきます。LEDはVf=1.8Vのものを使いましたから、ATtinyの1ポートの絶対最大定格 40mAの範囲に収まる程度でドライブしています。今回は無難に30mAを目指して100Ωで電流制限です(4.8-1.8=3.0V,3.0V÷30mA=100Ω)。青色や青色を変換して点灯する白色、紫色などはVfは3.0Vに近いので、この電流制限抵抗はちょっとこれより低めです。
点灯はTimer1をPWMとして使ってここで光量を調整して、Timer0のオーバーフロー割り込みで定期的にPWMの比較一致値を変更して順繰りに変えて言ってます。使ったATTinyのエラッタかわかりませんが、COM1B1,COM1B0=11に設定すると、まぜかOC1BにPWM出力されません。10設定にすると動くので謎です。11のモードは、10のモードとOC1Bの出力論理が変わるだけのはずなんだけど違ったかな?
あと、動作をAVR simulatorで確認しようと思ったら、シミュレータだとタイマー割り込みが正常に動かないっぽいですね・・。最初、コードに誤りがあるものと思ってみてたら、間違いがどうしても見つからないので、実機に焼いてみたらすんなり動いたという。昔っからこんなもんだったっけかな?
そんなわけで、完成品はこんな感じで。
ソウルジェムライト点滅改造 with ATtiny
結構適当に作っていますが雰囲気は出ているかと(自画自賛w)。ちなみに動画は初めてPentax K-5の動画機能を使って撮影してみましたが、意外にうまく撮影できるもんですね。無駄にズームとかして遊んでしまったりw
でも春にはソウルジェムライト2という点滅するバージョンが出るみたいですので、あまり意味ないかも? ただ、おそらく自動点滅タイプのLEDにするだけだと思いますので、無駄にはならない・・かな?
主にドールや電子工作関連を中心にしたブログです。