読者です 読者をやめる 読者になる 読者になる

ごはんにゃう

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

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

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

1.ブロック図


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

2.回路図


※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.ポカミス


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

3.実機





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



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

I2CでRTCとLCD

電子工作

I2Cって使ったことなかったのでやってみたかった。
RTCって自分でソフト書いたことなかったからやってみたかった。
LCDはおまけ。

1.回路図

※1 ArduinoUNOに接続。
※2 RTCは秋月のAQM0802A-RN-GBW
   →リアルタイムクロック(RTC)モジュール: 半導体 秋月電子通商 電子部品 ネット通販
   LCDはスイッチサイエンスのI2C接続の小型LCD搭載ボード(5V版)
   →I2C接続の小型LCD搭載ボード(5V版) - スイッチサイエンス
※3 RTCは電池つなげたりするんだけど、とりあえず動かしたかっただけなので付けていない。
※4 RTCモジュールのI2Cラインのプルアップ抵抗は付けていない。
※5 LCDのプルアップ抵抗だけ有効になってる(10K)
※6 LED1は定周期タイマ割り込みが効いてるかチェックしたかった。
   抵抗値高い気がする?エコですよエコ。

2.ソフト

RTCはこちらのライブラリをお借りし、いじって使いました。
arms22.blog91.fc2.com

LCDはスイッチサイエンスさんのを参考にしています。
mag.switch-science.com



※1 以下にまとめてUPしてあるので見てみたい方はどうぞ。
   http://sweet-potato.info//hatena_blog/I2C_test.zip

※2 RTCの初期値(6/10)は私の誕生日です(聞かれてない)
※3 "// int cnt_sens = 0;"って記述がI2C_test.inoに入ってますが、
   前回の記事の名残です。気にしないでください。
※4 C++Arduinoで初めて使ったので、ぽくない記述とかあると思います。
   Arduinoは使い始めて2か月くらいです(初心者アピール)

3.現物

このブレッドボード、小さくて好きです。

ATtiny85-20PUを使う

電子工作

焦電センサを使いたかったので、ATtiny85-20PUを使って人感センサ(LED光っちゃう)を作ってみた話。

1.回路図
 

 ※1 リセットスイッチはなくてもいいと思う。
 ※2 電池駆動したので、正しくは4.5V。
 ※3 ヒューズはポリスイッチ入れた。
 ※4 デジトラだいすき。
 ※5 回路図はKiCADで書いたよ。


2.ソフト
センサ検知したら30秒LEDを点灯させる。

※1 行番号出てうれしいマン(JUGEMの方読んでないと分からないネタ)
※2 HIGHとかLOWとか面倒だからいつもON、OFFにしてる。
※3 秒数書くのめんどくさいから。
※4 使った人感センサが30秒セットアップ時間設けろって言ってるから。
※5 delayで点灯時間決めてるけど、タイマ使った方がいいよね。


3.現物

初めはACアダプタで作ってたので、DCジャックが乗ってる。
そのあとやっぱり電池がいいってことになり、電池ケースにプラグを付けた。
一番初めに間違えて12VのACアダプタ接続しちゃったんだけど、それでも
壊れなかったパナソニック製センサすごいね(マイコンは乗ってなかった。いのちびろい)

あ、部品は以下のリスト通り。

No. 品名 メーカ 型番 値段 購入場所
1 焦電型赤外線センサ パナソニック EKMC1603111 500 秋月
2 マイコン Atmel ATtiny85-20PU 150 秋月
3 ポリスイッチ POLYTRONICS RLD60P050X 30 秋月
4 デジトラ 東芝 RN1201 10 秋月
5 LED 星和電機 SDPW50H0E0 150 ピカリ館
6 抵抗 タクマンとかKOAとか 千石
7 積セラ TDK 千石
8 プッシュスイッチ 秋月
9 DCジャック変換基板 師匠が作ったのを貰った


4.ATtiny85について
やり方はしなぷすさんのHPのこのページとかみるといいと思います。
www3.big.or.jp


私はこのArduinoブートローダ/スケッチライタキットを持ってるのでそれを使いました。
一つあると便利だよ。
www.switch-science.com


この記事と、ArduinoIDE Ver1.6.8ではATtinyサポートファイルのインクルード方法が
変わってたので少し書いておく。
(読めばわかるけど)


(1)High-Low Tech – Programming an ATtiny w/ Arduino 1.6 (or 1.0)の中央にある、URLをコピーする。


(2)ArduinoIDEの[ファイル]→[環境設定]で、赤枠内にURLを張り付ける。
 OKで閉じる。


(3)[ツール]→[マイコンボード]→[ボードマネージャ]を選択すると下のウィンドウが出てくる。
 一番下にattinyってのがあるのでインストールする。


(4)ATtinyを選ぶ


こんな感じ。

KiCADコンポーネントライブラリの優先順位

KiCAD

KiCAD使い始めて1か月くらい。
ようやくお友達になれた気がします。

久しぶり(5年ぶりくらい)の更新ですが、今回はKiCADで一番納得いかなくて
悩んだ項目について自分の中で納得できたので書いてみようかと。


KiCADについてくるコンポーネントライブラリに、atmelがあり、その中に
ATMEGA328P-Pが入ってると思います。
XTALの位置がデフォルトのものだとイヤだったので、下図のように変更したんですよ。

変更したコンポーネントはatmelライブラリ自体は変更せず、自作ライブラリの中に
同じ名前で保存しました。
何があったかおわかりだと思いますが、いくら変更したコンポーネントを指定しても、
atmelのコンポーネントが読み込まれちゃうのです。

これの解決策が、以下になります。

(1)設定からコンポーネントライブラリを開く


(2)自作ライブラリが一番下にあるので、それを一番上に持っていく。
 その後、OKをクリック。
 ※1 無い場合は読み込んでな。
 ※2 右にある「上へ」をクリックし続けると一番上に行くで。
 


これで、自分で修正したコンポーネントが表示されます。
これに気付くまですごい時間かかった。
調べても出てこなかったので、同じ思いをしている人向けに。

ぶっちゃけ、ユニークな名前に変更しちゃえばいいんですが。
私が使っているのは4.0.0-rc2なので、古いVer.でできるかは分かんないです。


※この記事は2016/4/14にJUGEMブログで公開していたものの移植です。

【追記 2016/9/29】
やっぱりユニークな名前に変更する方がいいかということで、
最近は名前を変更しています。
こういう方法があるよということで、記事自体はそのままにしておきますね。