■先日PC制御の電源タップを作るぞ、と書いて以来、パーツを買ったりストックのパーツを確認したりなんなりしていたのですが、連休に入って一気に組み上げました。ないのは箱だけ。コンセプトはUSARTでコマンドを投げて、ソリッドステートリレーのスイッチを制御する。制御はPCから行うけど、ウェブサーバーから投入する。ウェブから電源スイッチを制御できるようにすることが目的。
プロセッサはATMERのATmega88を使う。用途としてはArduinoでも問題ないのだけど、それほど複雑なものでもないし、普通にCでコーディングしてしまおう。プログラムサイズとしてはもっと小さなものでも問題ないはず。ただ、拡張性は残しておきたくて、環境センサとしても使いたいとか、構想は膨らむものの、まずは電源タップのみとしてきっちり作っておきたい。
ソリッドステートリレーは秋月電子から。USB-USARTブリッジはマルツ電子から。ストリベリーリナックスでもブリッジ製品はあるけれど、高さがあるのと、ピン配置が使いづらい。USB-USARTブリッジは将来にはXBeeに置き換える予定。
ただ、まずは地道にLEDを点滅させるところから。AVRのカスタムプラットフォームを作るのは久しぶりだから、リハビリを兼ねて。LEDはATmegaをシンクで使っています。
今回は思い切って広い基板を使っています。上の写真で向かって左側にUSARTブリッジのモジュールを配置して、右側にスイッチ回路やセンサ類を配置する予定。LEDはインジケータ用。まずはAVRそのもののプログラミング確認用に使った。AVRそのもののプログラミング動作が確認できたらUSB-USARTブリッジを接続する。
ICソケットが余っているのは、ピンに合わせてソケットを買い忘れていたので。ブリッジはバスパワーモードで動かしているけど、ATmegaに給電はしておらず、外部のACアダプターから3.3V給電している。これは後でXbeeを使うときにどのみち外部給電が必要になるので。
ターミナルから文字列を投入してLEDを明滅させるようなプログラムを組む。LEDを明滅させることができれば、ソリッドステートリレーのスイッチングも同様にできる。
LEDに電流を流す代わりにソリッドステートリレーに電流を流すわけですが、LEDとは違い、ソースとして使っています。これは逆でも良かったかもしれない。ATmegaの初期状態はハイインピーダンスだから電源投入と同時にソリッドステートリレーがオンにはならないはずだけど、ハイサイドスイッチを構成してリレーを制御するのが無難かもしれない。ATmegaそのものをソースとして使うと、つなげるソリッドステートリレーを増やしていったときに供給限界に達してしまう。ハイサイドスイッチ版は次のバージョンで実装しようと思う。
それと、ヒートシンクのサイズも照明器具程度であればもうちょっと小さいもので大丈夫かもしれない。今回はだいぶ大きめ。
環境センサとしては、電流センサは実装しているので、あとはADコンバータにつないで電圧を読めばいいようにしている。そのあたりの細かい改良はこの初号モデル上で試そうと思っている。