特殊工作:充電式リューターの魔改造

久しぶりにちょっと木工細工をしようと思って、昔買った安物の充電式リューターがあったはずだと探し出してみたら、充電器を紛失していた上に、中をあけてみたらニッカドバッテリーが液漏れしていて、充電器があったとしてもこのままでは使えない状態でした。
液漏れリューターの中身
テスターで測ったところ、電圧もほぼゼロ状態でしたので完全に逝ってしまったようです。
潮吹き電池

さてどうしよう、ということで思いついたのが、潮を吹いてダメになっているニッカドバッテリー(単三サイズ×3本で3.6V)の替わりに、モバイルバッテリーの中身をリューターの中に組み込んでしまうことです。
今回はワゴンセールで特価498円で入手したエレコム製の旧型のモバイルバッテリーを使うことにしました。
ELECOMのモバイルバッテリーを開ける


今回使った道具:
・ホットナイフ HAKKO REDのコテ先をホットナイフに取り替えたもの
・はんだごて goot TQ-95
・鉛入りハンダ ダイソーの電子工作用
・ニッパー
・ラジオペンチ
・小型の半丸やすり
・ホットメルト(ホットボンド)
・プラスドライバー

今回使ったパーツ:
・安物のリューターとビットのセット 10年位前に秋葉原で2500円くらいだったかな
・モバイルバッテリー ELECOM DE-M01L-0810WH 3.7V/2200mAh
・プラ板少々 ブリスターパックの余り
・スポンジ 隙間風防止用スポンジテープの余り


幸いにしてこのリューターの中には十分なスペースがあるので、18650サイズのリチウムイオン電池を一本使っている小型のモバイルバッテリーであればなんとかなりそうです。
サイズはなんとか入りそう
ちなみにこのELECOMのモバイルバッテリーはUSBソケットに工夫がしてあって、コネクターを差し込むと板バネを兼ねた接点が押されて、昇圧回路に通電する仕組みになっています。
折角なので、今回はこのUSBソケットをそのまま生かす方向で魔改造します。
USBソケットがスイッチになっている

元々はACアダプターのソケットがあった部分の穴を、USBコネクターの大きさに合わせて四角く削りなおします。
ホットナイフとヤスリを使いました。へたくそな加工ですがまあ自分以外の人は使わないものなのでこれでよしとします。
基板の裏側にはバッテリーとの絶縁のために薄いプラ板をはさみました。固定はホットメルト(ホットボンド)を使いました。
バッテリーの下にはスポンジを敷いて、しっかり固定されるようにします。
USBソケット部分に合わせて穴を削る
充電用のmicroUSBソケットの部分も外からコネクターがさせるように大き目の穴を開けます。
これもまた見た目が悪いですがもう諦めます。
microUSBソケット部分の穴を開ける

モーターへの配線はバッテリーから直接になります。ヒューズなどの安全装置はつけていませんが、元からついてませんでしたしそれを踏襲します(おい)
バッテリーとモーターを配線しなおす

魔改造が完了しました。
モーターの回転速度も以前と同様で、トルクも落ちてはいないようで、無事にリューターとしての機能は果たしているようです。
そして、USBから充電が可能になりました。
USBから充電が可能に
もちろん、モバイルバッテリーとしての機能も生きていますので、画像のようにLEDライトを点灯させたりスマホを充電したりすることも可能です。
もちろんモバイルバッテリーの機能もある

今回の魔改造の問題点:
・バッテリーと充電回路とモーターへの回路は単純に並列になっているので、リューターとして使っている最中は、充電やモバイルバッテリーとしての使用は避けたほうが安全
・過電流に対するセーフティ(ヒューズ)がついていない
・加熱に対するセーフティがついていない
・過放電に対するセーフティがついていない
※今回の魔改造はリチウムイオンバッテリーを扱っており、取り扱いを間違えると火災や爆発の可能性があり大変危険です。知識のない方は絶対に真似しないでください。もちろん機器の保証もなくなりますし、この魔改造が元で事故や火災を起こしたりした場合は重大な責任を問われる可能性があります。

なお、この記事を参考にされたことによって起きた全ての事象について、私は一切の責任は負いません。[At Own Your Risk]
スポンサーサイト

テーマ : 電子工作
ジャンル : 趣味・実用

電子アクセサリのようなものに電源スイッチを増設

[はじめに]
先日「電子アクセサリのようなものシリーズ「ルビーダイス」作ってみた」で製作したアクセサリのような何かですが、設計を失敗したというかなんというか、電池が減りやすいという欠点がありました。
プログラムを変更して使わないときにはスリープするようにすれば何とかなりそうですが、レジンで固めてしまったので、もうどうにもなりません(笑)
物理的に電源を入れたり切ったりできる超小型のスイッチがあればいいのですが入手が面倒だったため、FETとコンデンサと抵抗を使ってタイマースイッチを無理やり後付してみました。


[回路図と解説]
追加電源スイッチ回路図
簡単な回路なので手書きです。プッシュボタンを押すとコンデンサに充電されてMOSFETがON状態になります。
その後プッシュボタンを離すと、コンデンサから抵抗を通じて徐々に放電されていくので、MOSFETのゲート電圧が下がっていきます。
MOSFETのゲート電圧が閾値を下回ると電源がOFFになります。
厳密には閾値付近ではリニアな動作をするため、ONでもOFFでもない中途半端な状態を通過しますがこの回路の目的では無視できます。

MOSFETはできるだけ低いゲート電圧で動作するタイプを使用しなくてはなりません。
今回は手持ちの中からIRLML6344TRPBFTR(長いよ!)を使います。
このMOSFETはSOT-23のパッケージでVg(th)ゲート閾値電圧がMaxで1.1Vと低く、Vgs=2.5Vのとき37mΩとON抵抗も低いのでこの目的には向いていると思われます。

CとRの値を大きくすると、ボタンを離した後のON持続時間が長くなります。今回の場合、約25秒間ON状態になっていました。厳密にはON状態とはいっても、2.9V程度からだんだんと供給電圧が落ちていき、1.8Vくらいのとき本体が停止しました。

なお、Rを大きくしすぎるとFETのゲートがノイズを拾って誤動作をする懸念がありますので、510kΩ程度までが良いと思われます。ノイズを防止するにはRを100kΩ以下にするのがいいですが、その場合動作時間が短くなる分、Cを大きくしなくてはならなくなります。

追加スイッチ基板
スイッチ基板は配置場所を考えて小さく切り取ります。ちょうどランド2列分になりました。
追加スイッチの配線
配線はUEW線でおこないました。マイナス端子となっている銅箔テープを一旦カッターで切り離して回路を割り込ませています。
追加スイッチの配置
基板をCR1220の横のスペースに配置しました。
追加スイッチの固定
基板を2液混合型のエポキシで固定しました。見た目とかでっぱりとかもう諦めました。

[あとがき]
こういう超小型の工作をするときには特に電池の消耗のことも忘れずに慎重に設計しましょう(笑)

テーマ : 電子工作
ジャンル : 趣味・実用

電子アクセサリのようなものシリーズ「サファイアダイス」作ってみた

先日試作した電子アクセサリのようなものシリーズ「ルビーダイス」の製作において得られた反省点をふまえ、家族からリクエストがあった青色LEDを使用した「サファイアダイス」を製作してみました。



[変更点]

1.青色LEDのVfに対応するため、電源電圧を上げる
青色LEDのVfは3V~3.6V程度であることが多く、今回使用する青色チップLEDはVf=2.8~2.9Vなので電源として電圧が3VのCR1220やCR2032ひとつでは不十分です。
しかし、昇圧回路を組み込むにはスペースが不十分であることから、薄型16mmのリチウム電池CR2016を2枚重ねて直列で使用、電源電圧6Vとします。組み込むフレームには電池に合わせて丸型の大きめのものを使いました。
PIC10F322のVddの最大定格は本来5.5Vなので、シリコンダイオードなどで0.5V程度降圧すべきですが、実際の使用では問題がなかったので今回は省略してしまいました。
電流制限抵抗には330Ωを使いました。(6-3)[V]/(330+330)[Ω]=0.004[A] 1セグメントにおよそ4mA、LED一つあたり2mAを流す計算になります。ただしD1だけは330Ωを直列に一つ追加し、(6-3)[V]/(330+330+330)[Ω]=0.003[A]、3mA流しています(ちょうど良い値のチップ抵抗がなかったもんで)。

2.消費電力を減らすため、PICをスリープさせる
前回の回路ではRA3ピンをI/Oとして使い、プログラムは走らせたままでボタンの入力をチェックしていましたが、その分何も表示していないときにも電池をそれなりに消費してしまいます。
スリープ機能を使うとき、スリープからの復帰方法をどうするか考えなければなりませんが、PICの場合は外部割込み線であるINT入力のエッジを使う方法があります。しかし、10F322のINT入力はRA2と同じピンが割り当てられているので今回は使うことが出来ません。→勘違いでした。IOCを使えば、入力に割り当てたピンの状態変化割り込みを使うことで、どのI/Oピンでもスリープからの復帰が可能、でした
そこで、RA3をMCLRとして使い、ボタンを押すとハードウェアリセットして再起動することでスリープを脱するようにします。→IOCを使えばわざわざリセットする必要もなかったわけですね…お恥ずかしい

[9/18追記]
コメントでご指摘をいただきました。
スリープからの復帰はINT入力ピンでなくてもIOC(interrupt on change:入力ピンの状態変化をトリガーとする割り込み)を使えば可能です。IOCの仕様について勘違いをしていました。

[回路図]
サファイアダイス回路図
「ルビーダイス」の回路との違いは制限抵抗の値と電源電圧くらいですが、大人の都合でLEDの極性が逆になってしまいました。また、LEDを実際の基板上の配置に合わせて書きました。


[部品等]
前回のルビーダイスと同様です。
異なる点は、チップLEDが青色タイプになり、電流制限抵抗が330Ωになったこと、丸型のアクセサリフレームを使ったこと、CR2032用のバッテリーホルダーを使ったことくらいです。


[製作]
まず、フレームに合わせて基板をカットします。今回使うフレームは直径30mmの円形なので、基板に直接あてて細いマーカーでラインを引きます。
基板をフレームにあわせてカット(1)
今回ははさみで切りました。少し曲がりますが妥協。
基板をフレームにあわせてカット(2)
基板をフレームにあわせてカット(3)
基板をフレームにあわせてカット(4)

電池ホルダーの位置を合わせます。電池を挿入しやすいように、入れる側を少し広めに開けておく必要があります。
電池ホルダーを位置あわせ
電池ホルダーの爪が通る2mmφの穴を開けます。
電池ホルダー固定用穴
電池ホルダーの爪を折り曲げて固定します。
電池ホルダーの爪を曲げて固定

前回と同様、銅箔テープをマイナスの電極にします。
銅箔テープを電極にする
なお、電池の挿入と取り出しを容易にするため、電池ホルダーの上部1/3をカットしてしまいます。
銅箔テープを電極にする
※ここで注意※
今回はCR2016を二枚重ねて直列として使いますが、重ねたCR2016のうち基板側になるほうのプラス極が電池ホルダーの側面の金属部分に接触してしまうとショートしてしまうことになるので、電池の側面に接触する可能性がある部分を絶縁しておく必要があります。
電池ホルダーを基板の穴に取り付ける前に、細く切ったセロテープやビニールテープで巻くか、手ごろなサイズの熱収縮チューブがあれば差し込んで収縮させておきます。(実はこのことにはホルダーを取り付けた後で気づいたので、難儀しました)

前回同様、配線を進めていきます。
はんだづけ
ICSP用の配線を引き出します。
ICSP配線を引き出す
プログラムを書き込み、動作を確認します。
プログラムを書き込む
基板が完成しました。画像はCR2016が2枚重ねて入っている様子です。前述のとおり、電池ホルダーの絶縁に気をつけてください。
基板完成

フレームに入れて、レジンを流す準備のために位置決めをします。今回は100円玉1枚の厚みで浮かすとちょうど良い位置になりました。
レジンを流し込む準備
レジンを慎重に流し込み、紫外線ランプで硬化させます。
基板の裏側にも染み出してきますので、十分注意してください。裏側から紫外線をあてて硬化させるのも忘れずに。
レジンを硬化させる

完成したものに、カニカンと呼ばれるタイプのキーホルダーをつけてみました。
左側が前回製作した「ルビーダイス」です。100円硬貨との比較で大きさを把握してください。
表側
裏側の様子です。CR2032のホルダーに厚みがあるので、フレームの深さよりも後ろに出っ張ってしまいました。
裏側の様子

[反省点など]
反省点というか今後の展望としては…
 ・電池が厚みがあり、少しフレームをはみ出してしまう(やはり昇圧回路方式にしなくてはいけないのかも)
 ・レジンに着色して、よりアクセサリーらしくしよう
 ・空いたスペースに装飾を入れて、よりアクセサリーらしくしよう
 ・やっぱり専用基板作りたい(配線がめんどい)
といったところでしょうか。もし、専用基板を作って量産のめどが立ったら、どっかのイベントで配布なんてことも考えておりますが、いつになるかは…


[ソースコードと操作の説明]
ボタンを押して離すとLEDのダイスの目が高速でカウントを始め、しばらくするとゆっくりになって1から6までのいずれかの目を表示して停止した後、数回点滅して出目の確定を知らせます。
確定した出目を数秒間表示した後、6・5・4・3・2・1の目を順にカウントダウン表示するデモ表示を行った後に、スリープ(省電力待機)します。
どの状態からでもボタンを押すとハードウェアリセットされるので、すぐにダイスの目のカウントが始まります。(今回は自動デモモードは搭載されていません)

なお、このソースコード並びに製作記事を参考にされたことによる全ての事象について、私は一切の責任は負いません。[At Own Your Risk]

ソースコードの表示にはGitHub:Gistを利用しています。

続きを読む

テーマ : 電子工作
ジャンル : 趣味・実用

電子アクセサリのようなものシリーズ「ルビーダイス」作ってみた

[はじめに]
Makerムーブメントのひとつとして、電子工作を手芸品や装飾品に組み合わせるというものが流行しているようで、通販やイベントなどでもそれなりに人気があるようなので、私も触発されて製作してみることししました。

イベントや通販で市販されている作品を見ると、電子的な機能にはさほど凝ったものは多くなく、形状の芸術性を重視したり、電子部品を機能ではなく色やデザインのためのパーツとして見立てたものが多いようです。
個人的には、せっかく電池を使うものですので、単にLEDが点灯するというだけではどうも芸がないと感じてしまうので、何かしらインタラクティブな機能を載せたくなってしまうのが電子工作古参兵(老害ともいう)としてのプライドだったりもします。

というわけで今回は以下のような要点を決めて試作してみました。
・100円ショップのアクセサリ部品とレジンを使う
・超小型にするため、米粒PIC10F322を使用してみる
・LEDの表示に意味をもたせる→電子サイコロ機能をつける

赤く光るLEDが綺麗だったので、名づけて「ルビーダイス」(…われながら…恥ずかしいな…)



[回路図と解説]
ルビーダイス回路図
今回はSOT-23、6ピンパッケージのPIC10F322T-I/OTというI/O数が少ないMCUを使うので、7個のLEDを点灯させるために少々工夫が必要になります。
スイッチに1ピン使用するので、実際に使用できるI/Oは3ピンとなりますが、最近のワンチップマイコンのデジタルI/Oは"H"と"L"の出力の他、入力モードに指定してやると電流が流れないハイインピーダンス状態"Z"にすることができるため、H/L/ZとLEDの極性を組み合わせてやることでピン数が少なくても多数のLEDを制御できます。

ピン2本なら2つ、3本なら最大6つ、4本なら最大12個のLEDを制御できますが、もちろん、同じピンに繋がっている逆向きのLED同士を同時に点灯させることはできません。
しかし点灯するLEDを高速で切り替えて、いわゆるダイナミック表示させることで見た目には全部のLEDの点滅が可能です。

また、サイコロの目は7つの点があるので7個のLEDを制御するように思えますが、実際には4つのセグメントの組み合わせだけで1から6までを表示できますので、制御用のピンは3本で済みます。

《9/6追記》
microchip社の提供しているアプリケーションノート(英語)に、少ないピン数でLEDを複数表示する方法の解説があります。



[部品の紹介と工作]

・MCU:PIC10F322T-I/OT
米粒PIC10F322
SOT-23サイズ6Pパッケージの超小型のPICです。メモリーが少ないのであまり複雑なことは出来ませんが、何せ小さいので色々な場所にこっそり仕込むことができるカワイイ奴です。

・基板:SMDプロトタイピングガラスユニバーサル基板(0.3mm厚)Cタイプ
パターンがSOT-23の足のピッチにぴったりで、0.3mmの薄さが加工と狭い場所への組み込みに便利です。

・チップLED:赤色2012サイズ
寸法:2.0x1.25mm、順電圧(VF):1.8-1.9V、順方向電流:20mAというごく普通のチップLEDです。

・チップ抵抗:2012サイズ47Ω×3、33kΩ×1
LEDひとつあたりに約5mAを流す計算で47Ωにしましたが、十分な明るさがあったので電池寿命を持たせたければ68Ωやいっそ100Ωでもいいかもしれません。(D1だけ10mA流れてしまう回路になっているのは大人の事情です)

・リチウムコイン電池:CR1220
フレームに入る大きさと厚みで選ぶとこれしかありませんでした。残念ながら100円ショップには扱いがない場合がありますがホームセンターや電気店で買うとちょっと高いです。Amazonで10個入りを買いました。
フレームを削る手間を惜しまなければ、CR1616やCR1620も使えるでしょう。こちらは100円ショップでも扱っている場合が多いです。

・UEW線:直径0.12mm
普段は0.2mmを使っているのですが、今回はかなり細かいので0.12mmを使用してみました。

・面実装タイプタクトスイッチ:超薄型押しボタンスイッチ
見た目がステンレスでかっこいいのと、高さを低く抑えたいのでこれをつかいました。しかし秋月ではもう在庫限りですね。

レジン液:100円ショップで買える奴でいいです。

銅箔テープ:後述します

ゼムクリップ:後述します




アクセサリーフレーム
100円ショップで売っているレジン細工用のアクセサリー部品、ペンダントトップ用のフレームです。今回は四角い方を使います
フレームに合わせて基板を切る
フレームに合わせて基板を切ります。
フレームに合わせて基板を切る(表)
フレームに合わせて基板を切る(裏)
0.3mmと薄いので、はさみでも簡単に切れますが、はさみだと曲がったり歪んでしまうのできちんと定規を当ててカッターで切ります。(でもちょっと曲がったよ…気にしない気にしない)

ハンダ付け(1)
部品をハンダ付けしていきます。
配線する:ICD用の線を引き出しておく
豆粒PICを取り付けたあたりで、先にICD(PICKit)用にVdd/Vss/ICDCLK/ICDDAT/Vppからの配線を引き出しておきます。
配線する:LEDへの配線
一番面倒なのがLEDの配線です。対角線上に同じセグメントがあってそれを並列に配線するのでかなり混雑してしまいますが、根気良くやります。いいはんだごてとコテ先を使うと楽に出来ます。

配線する:ICD用のコネクタ
PICKit用にピンヘッダをつけておきます。
LEDサイコロ表示動作確認
ソフトをコーディングし、サイコロの目が正しく表示されることを確認します。
※今回はI/O線をICD端子と共有してしまっているので、PICKitを接続したままだとうっすらと点灯したままになるセグメントがあります。
電源を通すくぼみ
基板の隅を三角やすりかカッターでけずって電源用の線を通すくぼみをつくります。
電池ホルダー作成(1)
裏側には電池を取り付けますが、この薄さに収まる電池ホルダーは市販されていません(基板に金具を直接つけるタイプのがあることはあるけど入手が面倒くさかった)ので、自作します。
《9/6追記》
後になってaitendoでCR1220用の金具が売られているのを発見しました…。今後はこれを使おうっと。(AliExpressとかebayとかはまだ使ったことがないんですw)
銅箔テープ108円
マイナス極は銅箔テープを使います。ダイソーの場合、銅箔テープは工作用品ではなく園芸用品売り場にありました。
電池ホルダー作成(2)
銅箔テープをコイン電池よりもやや小さいサイズ、そして少しリードタブを出してやるようにカットして基板の裏にはりつけ、回路のVssからの線をはんだ付けします。銅箔テープの糊が溶けて臭いですので換気はわすれずに。
小さいゼムクリップを写真のように半分に切り、切り取った端を2つともヘアピン状に折曲げて、ヘアピンが通る部分をあらかじめ削っておいた基板に挟み、はんだ付けして仮固定します。このゼムクリップははんだ付けができる材質でしたが、はんだが乗らない材質のものもあると思うので要注意です。
また、今回使った基板は裏面がレジストされているので絶縁されていますが、レジストの下はベタアースになっており、基板の端っこを削った部分の絶縁を考慮すべきです(今回は後から気づいたけどまあ動いてるからいいやという後の祭り)

ユニットの完成
なんやかんやでコイン電池の固定が出来て、基板ユニットが完成です。
言葉で書くと簡単ですが、電池の押さえ金具についてはトライアンドエラーを何度か繰り返しました。やっぱり専用の電池ホルダー金具を入手した方がいいですね…。
フレームに仮組
フレームに仮組みします。

レジンを流して紫外線を照射
しっかりフレームの中に納まるよう調整したら、表側からレジンを流し込みます。このときタクトスイッチの可動部分に液がかからないように注意しつつ、レジン液の厚みが十分保たれるように均しながらやりましょう(ええ、失敗しましたよ。ボタンは押せるけど、少しレジンが薄い場所ができちゃいました)
完成(表側)
表側の硬化が終わったら、忘れずに裏側からのレジン塗布と硬化も行います。
完成(裏側)
今回は裏側にもレジンがほどよく染み出してくれて、追加の塗布は必要ありませんでした(これ以上染み出てたら逆にヤバかった)ので、このまま硬化させて完成としました。


[感想、反省点など]
・配線作業が大変だったし、美しさの点からもやっぱり専用基板を作ってやったほうがいいよね
・きちんとした電池ホルダーと裏ぶたをつけたい

[余談]
余談ですが、実は今回初めて「温度調節はんだごて」と「鉛フリーはんだ」を使いました。

温調こてはHAKKOのFX600という一番簡易型で値段も安いものですが、これは想像以上に快適です。
コテ先が温まるのも早いし、ハンダ付けする対象物の熱容量に合わせて加熱を即時で制御してくれるので、細かい部品のはんだづけが大変楽でした。初心者にもオススメです。

身に着けるアクセサリーということで、鉛フリーはんだを使ってみたのですが、やはり鉛入りのはんだとはだいぶ使用感が異なります。鉛はんだはうまくつけられたときに表面がつやをもって丸くなるのでよくわかりますが、鉛フリーはんだでは表面が曇ったままなので判別がつけづらいです。
ただ、温調こてのおかげで「つけづらくて不快」というようなことはありませんでした。つかった鉛フリーはんだがHAKKOの純正品なのがよかったのかもしれませんが。
鉛フリーはんだではコテ先の劣化がかなり早い、という脅し文句を聞いていたのですが、数日の使用では特におかしなことは起きていません。コテ先ケミカルも買おうかとは思っていますが。


[ソースコードと操作の説明]
動作モードが2つあり、電源投入時にはダイスモードになっています。
何も表示されていない状態でボタンを押すと、LEDのダイスの目が高速でカウントを始め、しばらくするとゆっくりになって1から6までのいずれかの目を表示して停止します。約5秒間表示したあと、表示が消えます。
デモモードでは、ボタンを押さなくても自動的にダイスの目がカウントを初め、ゆっくりになって停止、3秒後に再びカウント開始、を繰り返します。
デモモードとダイスモードの切り替えは、ダイスの目が停止して表示された後、表示が消える瞬間にボタンが押しっぱなしにしてあると切り替わります。

なお、このソースコード並びに製作記事を参考にされたことによる全ての事象について、私は一切の責任は負いません。[At Own Your Risk]

ソースコードの表示にはGitHub:Gistを利用しています。

続きを読む

テーマ : 電子工作
ジャンル : 趣味・実用

「ぼくのかんがえたさいきょうのデジタルインベーダーゲーム」Arduino版

先日公開した「ぼくのかんがえたさいきょうのデジタルインベーダーゲーム」ですが、PICマイコンを使ったことと、ハンダ付けする場所が多かったりして「夏休みの工作」としてはちょっとハードルが高くなってしまったような気がするので、今更ですがArduino+ブレッドボードで作って見ました。
電卓ゲームArduino版

実は自分はArduinoIDEでまともなアプリケーションを開発するのは初めてで、ArduinoIDEの文化にはちょっと違和感がありました。
・ライブラリへの依存度が高く、また割り込みタイマーハードウェアの競合など暗黙の了解が多い
・性能を出しきるような完成度の高いアプリを作ろうと思うと、結局自分でハードウェアを叩いたりしなくてはならない。
・IDEのバージョン変更が結構頻繁で、しかもフォルダ構成など表に出ない部分での変更が多いので、ネット上の古い情報が役立たないことがある(これはまあどのマイコンでも同じようなもんですが)

しかし、Arduinoは現時点では情報量が多く、何よりも格安でマイコン電子工作を始めるための土台として確実だと思います。
何かしたいと思うことをすぐさま実現できるようにArduino用には各種の拡張シールドをコネクタに挿し、ライブラリをダウンロードしてスケッチをコピペするだけで使える準備が出来ているのですから、手書きで回路図を描いたり部品をバラで集めてはんだごてでちまちまやって、アセンブラで頭をひねらせていた古い世代の自分からすれば、うらやましい時代になりました。


[回路図というか接続図]
電卓ゲームArduino版配線図


[主な部品]
・Arduino本体aitendo びんぼうでいいの
今回は激安の互換品を使いましたが、もちろん本家のArduinoでもいいし、互換ボードでもかまいません。ATmega168以上の8bit AVRが搭載されているArduino互換ボードなら多分動くでしょう。もし初めてならば、ハンダ付けなどの必要が無い純正品のほうがいいかも。
・7セグメントLEDモジュールaitendo 4桁7セグLED表示器 [ZDS4-G369SRB-7.7]×2個
今回は激安品を使いましたが、合計8桁分のダイナミック表示用、カソードコモンの7セグメントLEDモジュールがあれば、配線次第で使えます。
アノードコモンタイプでも使うことが出来ますが、ピン出力の論理を反転(セグメント出力は1でオンから0でオン、桁出力は0でオンから1でオン)するようにスケッチの変更が必要です。
・圧電サウンダ
圧電スピーカーとも呼ばれるもので、発振機を内蔵しているブザーではなくて、ただの発音素子のほうです。今回はArduinoのピンから直接駆動するので、インピーダンスの小さいダイナミックスピーカーは使えません。
・カーボン抵抗1/4W 1kΩ×8
普通のリードタイプの抵抗器です。
・プッシュスイッチ×3
PIC版ではロータリーエンコーダを使いましたが、入手性を考えて普通の押しボタンでUP/DOWNということにしました。ブレッドボードに挿せるタイプのタクトスイッチを使えば、ハンダ付けも不要です。


[解説のようなもの]
今回はブレッドボードを使いました。LEDへの配線数が多くて地道な作業になります。
電卓ゲームArduino版ブレッドボード
小さいボードしか持って居なかった上にケーブルが短いので混雑しています。画像はあまり参考にしないでください(笑)

電源は5V、ATmega328PのI/Oに流せる電流は1ピンあたり40mAなので、1セグメントあたり最大でも5mAに抑える必要があります。
今回使用したLEDはVf=約1.8V、3mA程度で十分な明るさがあるので、電流制限抵抗は(5V-1.8V)/3mA = 1066Ωとなりますが、近い値で手持ちのなかから1kΩとしました。
もし青色や白色のLEDで動作させたい場合には、Vf=3.5Vとして計算、(5V-3.5)/3mA = 500Ωとなりますので、抵抗を470Ωから560Ω程度に変更します。お使いになるLEDのスペックシートをよく読んで、電流を流し過ぎないように注意してください。


[スケッチ]
ArduinoIDEは1.0系の1.0.5-r2を使いましたが、恐らく最新のArduinoIDE(1.6.x)でも動作するのではないかと思います。
割り込み処理をするために当初はMsTimer2ライブラリを使っていましたが、サウンド発生用のtone関数がTimer2で競合してしまうため、TimerOneライブラリを使って割り込み処理をかけるようにしました。

tone関数を使って音階を奏でているのですが、どうもノイジーな音になってしまっています。恐らく割り込み処理の優先度の関係?でそうなるのでしょうが、ライブラリの内部でどう処理されているのかは勉強不足で把握しておりませんので、現状はこれで勘弁してください。

ゲームのルールや内容については「ぼくのかんがえたさいきょうのデジタルインベーダーゲーム」を参照してください。

なお、このスケッチ並びに製作記事を参考にされたことによる全ての事象について、私は一切の責任は負いません。[At Own Your Risk]

ソースコードの表示にはGitHub:Gistを利用しています。

テーマ : 電子工作
ジャンル : 趣味・実用

最近の記事
プロフィール

Bonezine

Author:Bonezine
狭い視野で浅はかな発想と奇異な日常を語ります。本気にしちゃだめだよ。

最近のコメント
月別アーカイブ
カテゴリー
最近のトラックバック
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる