ごはんにゃう

設定した時間がきたら猫にご飯をあげたいなって。

以前、「技術書典」というイベントで
途中経過を本にしたのですが、それが完売してしまったので抜粋してご紹介。

ちなみにこれが表紙だった。結構ふざけてる感じが好き。

1.ブロック図

[:W400]
※1 マイコンにスイッチとLCDとRTCがのってるだけ。
※2 モータは今のところサーボでいいかなと。

2.回路図

[:W400]
※1 本で乗せた回路図には、リセットスイッチのプルアップにダイオード
   載っていなかったんだけど、必要だよなと追加。
※2 マイコンはATmega328P-PUにArduinoブートローダを書き込んで使用。
   Arduino基板を使わなかった理由は、コスト削減のため。
※3 電源はUSBのモバイルバッテリから取れるようにと、USB(micro B)にした。
   フレームグランド(FG)はシグナルグランド(SG)とショートしたかったり
   したくなかったりする時があるので、お仕事で試作設計するときも0Ω抵抗で
   ショートできるようにしています。
   が、その昔、SGとFG間パターンが狭く、雷サージ試験でショートしデバイス
   破壊してしまったことがありました。悲しい思い出。
   製品になる場合、USBなど人が触る箇所は静電気(ESD)対策も必要になります。
   (この回路では考慮してないです)
※4 LCDとRTCの電源は簡易的に抵抗で分圧する方法になっています。
   何故ならLCDモジュール基板内にそれが入っていたから。
   RTCとLCDなんて消費電流はたかが知れているので問題なし。
   SDカード等、電流喰うものはきちんとレギュレータ等で3.3Vを
   作った方が良いですよね。
※5 ソフトの書き込みはFTDIのUSBシリアル変換基板を使うので、ここには
   ヘッダのみ実装しました。
   回路図にはB6B-XH-Aって書いてあるとおり、始めはコネクタにしようと
   思っていました。手持ち在庫がなかったので泣く泣くヘッダピンに変更
   しています。電圧が外に出る場合、ヘッダピンにはしない方が好きです。
   ショートの可能性がぐっと増えるので。
※6 もう少し小さい電池にすればよかったと後悔。2032でかすぎ。
※7 USBシリアル基板からも給電できるのですが、そうするとUSBシリアルから
   ポリスイッチ通らずに基板内に5V入るんですよ。良くないね。
   でも使っているUSBシリアル基板内にポリスイッチ入っていたから
   良しとしました(自分のなかで)

2-2.ポカミス

[:W400]
※ATmega328P-PUの28ピンはSCLなのに、ネット名をSDAにしてしまい、
 バラック作って動かしたときにI2Cが動かなくて悩んだのです。
 ネット名は書く派なのですが、こういう間違いは初めてで動揺しました。
 回路図を書いた自分を殴りたい。

3.実機


[:W400]

[:W400]
※特筆すべきところは何にもないですが。
 しいて言えば、サーボの逆起対策用ダイオード位置、これはどうなのかな。
 (サーボのコネクタをすっかり忘れてて空いてるところに実装したためにこうなった)



ソフトは全然進んでいないので、そのうち。