2013年01月一覧

雨センサー改良予定

 ベランダの雨センサーをSeedStudioのソーラーバッテリーのBreakoutに変更予定。そして、そのセンサーの電波を受けるのは同じくベランダにある気象台モジュール。気象台モジュールが暇こいてる時に雨センサーのプッシュデータを受けとっておき、濡れてるかどうかの判断をしておいて、部屋内のマスターコントローラから問い合わせがあったら答えるという形式に。

 やることは簡単ですね。この際なので、ベランダ気象台モジュールもユニバーサル基板にしちゃおうかな。XBeeが2つ載りますが、ハードシリアルが2つあるSanguino形式にするか、片方をソフトシリアルでまかなってATmega328pでやるかは要検討。

 いづれにせよ、楽しそう。


基板設計って結構たいへん

 昨日からやってるEagelでの基板設計。回路図自体はふにふにと書いていくだけなので簡単なのですけど。
 個々のパーツをベストな配置で設置し、ベストに配線するってのは慣れないと難しい。

 慌てて旧正月の長期休み前にFusionPCBへ発注するより、じっくり基板構成を練ったほうが良いと判断しました。動作テスト自体はブレッドボードでできるからね。


Eagle習得中

 朝から予定通りEagleの習得。あ、その前に昨晩やり残したPCA9685複数をi2c接続してのLED点灯はやっておきました。結果はOK、ちゃんと2つのi2cアドレスを認識できました。あとはマルツに電線を発注しておきました。もう電線は買わなくて良いかな。
 で、これまでEagleで書かれたschファイルを読むことは今までもあったけども、自分で書くのは初&Eagleアプリのインターフェイスになれるのに一苦労。あとパーツをライブラリから探したり、ライブラリに無いものは外部公開されてるライブラリファイルを探してインポートしたりで時間がかかりました。

20130112_01
 この形の回路図を書くのに4時間かかりました。Eagleで書くのに慣れてないから仕方ない。次からは早くなるはず、回路図だけは。

 そしてそれはその後の泥沼の序章にすぎないのだった。

 そのあと、基板設計をしてましたが、このサイズのパーツじゃここに収まらないとか、これはここじゃなきゃとか、これは配置が逆じゃんとかいろいろありまして。上の回路図でPCA9685からLED接続用のピンヘッダへ行く16本のラインがクロスしてるのも、実パーツの配置に合わせる為。また、基板上のスペース節約の為にPCA9685のi2cアドレスはジャンパ変更可能でなく固定にしたり。最初はSMDの抵抗をおいてたけど、裏面のパターンも使えるようにアキシャル抵抗を縦に配置する様に変更。1/6w抵抗なら高さもそれほどないからと。

20130112_02

 いまのところ基板サイズを100mm x 70mmにしてオートルータでこの程度。もう少し詰めていきます。初期設定でしか使わないATmega328Pの外部クロックのレゾネータのとこもピンソケットにしておくほうがサイズダウンできそうだ。
下の空いてる所は3V→3.3V昇圧回路とCR123Aを設置したい。オートルータの使い方が今市わかってないかも。配線できてないのにスルーホールが少なかったり、よくわからんな。

 明日はちょっと古札を納めに近場の神社に行ってきます。階上の騒音納めもお願いしておこう。親がちゃんとしてくれますように。


上の階のかかとおとし歩きの子供と放置する親

 相変わらず騒音まき散らしてます、上の方。

 こないだ注意しに行ったら、防音マットを敷いているとか言ってましたが、コードのようなものをひきづる音は聞こえるし、相変わらずお子様の走り回る音が天井から降ってきます。「防音マットを敷いた」という事象は何の根本の解決にもなっていなく、彼らの自己満足。この、「天井から音が降ってくる」というのが、コチラ的には非常に精神的に耐え難い。問題の発生元を断つわけには行かないので、さらに防音マットを敷き詰めてもらうしかないですかね。

 法律とか罰則とかなければ、足音の出し元を足音を立てられない状態にまでする(脚の骨を折るとかの脳を含めた生命維持に問題がない範囲で。足を砕くのが一番簡単で影響がすくなさそう。さすがに個人の存在をなくしてしまうまでは気が引けるしってそれは殺人ですからね。)のも有りなんでしょうが。近代文明国家なのでなぁ。親子含めて処分して自分は刑務所に入っても静かになるのかはわからんですし、むしろ静かじゃないかもしれないなぁ。そんなんしたらツレは寂しがるし。

 一番の問題点は集合住宅の設計時点が幼児の騒音対策されてないことですね。フローリングが流行ればフローリングにしてみたり。馬鹿じゃないかという感じ。施工主に受ければ良いので、住民の事は知ったことないって感じですねぇ。そんな事業者とはお付き合いしたくないです。


手はんだPCA9685のPWM動作確認

20130111_01

 帰宅後、昨日Arduino化したATmega328P(TQFP)のブレッドボードでPCA9685までi2cのラインを伸ばしてテスト。i2cのプルアップ抵抗はとりあえず10KΩで。普通に動作しました。LEDは白と青で電源も3.3VだしPWM動作ということで手抜きで抵抗なしの直付。
 できれば、PCA9685をi2cバスに2つ入れてのテストをしたいかな。あとでやろう。

【翌朝追記】
 PCA9685を2つ使った通信も動作確認できました。これで安心だ。
20130111_02


初SMDはんだ付け

20130110_01 20130110_02

 懸案だったTSSOPのPCA9685のはんだ付けをしました。フラックス塗って、gootのPX-2RT-2Cという平たいはんだ小手先を使用。何処かのHPでラジオペンチに爪楊枝を挟んで、外れないように輪ゴムをかけたものを治具としてチップの上に載せるというのを読んで真似してみた。
はんだを載せたコテを当てるとサーッとハンダが流れていきOKじゃん。左の画像をみると手前がいまいちに見えるけど意外と現物をみるとOKと言いたい状態。一気に28ピン完了。

 ついでにATmega328PのTQFPも。こちらはPCA9685より広い0.8mm間隔のピンだがスクエアの32ピン。こちらも難なく終了。Webだとハンダをブリッジするくらい多めに塗っておいて、吸い取り線で吸い取る例があるけども、そこまでしなくてもOKでした。全品テスターで導通と隣のピンとのショートをチェックしたけども、問題無かったです。フラックス最強!

 そしてその後ちとハマる。

 作ったATmega328P基板にArduinoのブートローダを焼こうとするのだが焼けない。AVRISPmk2を引っ張りだしてきても駄目。すったもんだしつつ、ひらめいた。クロックが外部の設定になってるのでは?16MHzのセラロックをクロックのピンに接続したら無事にISPで通信出来るようになった。焼いたあとでFuseを書き換えて内部8MHzクロックにしておいた。
 試しにFadeとかBlinkのdelayを替えたものを書き込んでみて安定動作を確認した。PCA9685との接続テストは明日帰宅後だな。

 で、うまく行ったら基板を起こすわけだけども、RGBLEDを10個ドライブすると40個の端子が必要になるわけで(吸い込みの元をまとめれば31本ですけどね。あとはチャーリープレクシングとか。)。端子をどう選ぼうかが基板設計の肝かも。各RGBLEDを2ワイヤでドライブできる様にしてみても良いけど、そこまでストイックではないかな。ちょっと実験してみても良いかな。PCA9685は無意味になるけどね。リース以外のイルミネーションとして使えば良いからやってみよう。今年は省電力乾電池でのLEDドライブをいろいろ楽しんでみよう。

 と、今年のマイコン遊びのメインテーマが決まったようです。まぁ、当然他のテーマもTPOでやります。