道具考

Posted by ゆのじ on 3月 26th, 2009

かしめ工具

先日知人と「道具」について語ったことがあった。いろいろ便利なモノは世にあれど、「道具」になってるものは少ないよね、と。もちろんここでいう「道具」はその会話の上での狭義の「道具」であり、使用者の頭と腕次第で幅広く使えるモノ、といったニュアンスで会話をしていたのだが、つまり作成者が想定した目的にしか使えないモノだらけでしょーがないこった、という会話をしていたわけだ。逆に言えば使用者の教育レベルが上がらないと使えないモノが減ってるなぁという話。

もちろん、ほとんどの高度なモノは目的を達成するためにあるのであって、目的を達成するために道具について熟練しないといけないとなると主従逆転本末転倒、それこそどーしようもない。だから大抵の場合それでいい。だが、すべてそうなってしまうと、手になじんだ「道具」が全然なくて、それはなんだか刹那的で厭だなと思う。

なんでそんな話を今更というと、昨日なんとなくテレビを見ていて、時計師という職業の一片に触れたことでトリガーが引かれた感じ。テレビなので脚色はあろうが、時計師という仕事はまず仕事道具を作るところから始まるのだそう。ピンセットやドライバーから始まり、大きい工作道具も作ってしまうように見えた(これは特に番組中では語っていない。本筋じゃないし)。道具を作るというのは大事だな、と思うと同時にシナプス発火的に思い出したのは下のムービー。ハンドメイドの真空管を作っている人だそうな。この人もムービーを見る限り、相当数の自作ツールを使っている。

物作り屋、を名乗りたい身としては、こういった道具も本当に使いやすいものを使うべきなのだろうと思う。特にここのところ、ほしい道具のイメージがあってもモノがない、ということが多い。そこで「ないなら作れ」という発想が出てきていなかったのは怠惰でしかない。反省とともにやる気がわいた。

誤解を恐れず言うと、テレビ番組はほとんどはただ隙間を埋めるためだけに作られた、新聞を丸めた緩衝材のようなものだと思っている。そもそも毎日朝から深夜までの枠を新しい番組で埋めて、しかもクオリティの高い番組で埋めることなんてできやしないし意味もない。それでも隙間を埋めているのだからクオリティなんて高いわけがない、というのが持論だ。
だが、中にはこういった脳へのトリガになってくれる番組もある。特に今回のような話は自分から情報を取りに行ったのではなかなか得られないタイプのトリガだったわけで、そういう部分ではテレビ侮りがたしと言える。ペイパービューになって、どの番組も品質が高い内容、になってくれるとよりありがたいのだけれど。

追記:ちょっと表現改めました。

eagleでのライブラリ作成

Posted by ゆのじ on 3月 25th, 2009

基板CADのeagleでの作業は、まずライブラリを作ることから始まるといってもいい。既存のライブラリや他の人が作ったライブラリも便利ではあるのだが、それらを組み合わせて使うと統一感が失われる。統一感ぐらい、機能においては重要ではないことが多いのだが、1つでも「まぁいいか」で済ませてしまうと全体のクオリティも巻き込まれて下がってしまう。
しかし、自分でライブラリを作るといってもその中での統一感がなければ元も子もない。そのため、ある程度のルールを作ることが必須となる。一部標準ライブラリとの整合性がないため、誰にでも推奨できるものではないが、自分のためのまとめもかねてポストすることにする。ちなみに、R,C,Lは標準のものでたいてい十分なので今のところは標準のもの(rcl.lbr)を使っているが、Timpyで有名なchiakiさんのウェブサイトによれば、標準のフットプリントでは高密度実装の場合にはつらいとのこと。その場合はこれも自分で作ることになる。
ということであちらこちらの先人の知恵を集約して自分なりにルールを作って運用している。今回はそれについて。

ライブラリの作成は、まずPackage(部品のフットプリント)を作成するところからはじめる。Package作成時のルールは以下。

  • パッケージ名は標準的なメーカ指定パッケージ名+ピン数+ピッチ、とする。ピン数はそのパッケージで存在しうる最大桁の0フィクス、ピッチは同じパッケージにいくつかピッチがある場合(たとえばTSSOPなど)に括弧付けで記述する。TSSOP14(0.65)、のような感じになる。
  • パッケージは横長で配置し、左下から反時計回りにピン番号が進むように配置する。ただし4方向に足が出ている部品などはこの限りではない。
  • パッケージはtPlaceレイヤに部品のおおよその外形線を書く。外形線は16milで書き、1ピンは10milの線で書いた直径25milの円で明示する(DILパッケージのみ例外とし、1ピン側に円弧状のへこみをつけることで明示する)。表面実装の2ピンデバイスのように、外形とピンが一体化しているものに関しては、ピンを含めた外形線を作成する。
  • 名称(U1, IC1、R1)は、tNameレイヤにVector, 20%, 50milで記述する。
  • 値(ICならばIC名、LCRなどの場合は値)は、tValueレイヤに名称と同じフォントで記述する。ただしOLIMEXだとtValueはシルク印刷されないという話なので、OLIMEXで表示したい場合はtNameレイヤに書くなどすること。
  • 名称と値はパッケージ右下に下から上へ向けた方向で作成する。

package
以上のルールで作成すると、このようなイメージとなる。(これはSOIC08)

必要なPackageが作成できたら、今度はSymbol(回路図上の図記号)を作成する。Symbol作成時のルールは以下。

  • ピンはShort、ピン名もピン番号も基本的に明示する。Directionは必要に応じてI,I/O,Oにする。VCCはPwr、GNDはSupとする。
  • 外形線が必要なデバイスは、外形線を16milの線でSymbolsに書く。図記号のあるものは、細線を10mil、太線を16milとして作成する。
  • 名称は部品の左上、値は部品の左下に、それぞれNames, Valuesレイヤに作成する。こちらはProportional、8%、70milとする。 外形線と25milの隙間ができるように配置する。
  • VCCは上、 GNDは下に書くようにする。同一の電源が複数存在する場合、同じ名前はつけられないので、VCC@1というようにアットマークを挟んでピン番号を書く。こうすると同一ピンと見なされる。

symbol
以上のルールで作成するとこのようなイメージとなる。(これはRS485インタフェイスのIC)

これで必要なPackageとSymbolを準備したら、Deviceを作成する。Deviceの作成は、Symbolを配置して、対応しているPackageを読み込み、Connectすることで行う。SOICとDILのように複数Packageに対応している場合、Packageを読み込んだ後に「Rename」を行ってVariantを指定する。Variantは名称の末尾につくのでメーカ指定の名称にしておくといいだろう。Prefixは部品名の通番につく接頭字。ICの場合、ICxとする場合とUxとする場合があると思うが、私の場合はUxとしている(つまりPrefixにはUと指定)。

とまぁ、こんな感じでライブラリを作る。ファイル名は、自分の名前-メーカ名.lbrなどにしておくと紛らわしくない。ライブラリは財産なのでバックアップも忘れぬよう。

また何かあったら別のポストで書くことにする。

余談というかTIPS 1:部品の回転
そういえば、部品の回転、以前は90度単位だけだったような気がするのだが、今のバージョンだとrotate r30、とか入力してやると部品を30度だけ回したりということができるようになっている。便利だ。

余談というかTIPS 2:ピッチの違う部品の配線
これもどこかのページで教えていただいたこと、ピッチが違うものの配線(たとえば25milピッチの配線ルールの上で0.65mmピッチのICに配線)するときには、グリッドを25mil、Alt-Gridを0.65mmにしてやって、Altキーを押したり離したりして適宜やってやるときれいに配線できる。

秋月の8×2液晶

Posted by ゆのじ on 3月 21st, 2009

8文字2行キャラクタ液晶モジュール

先日秋月電子に行ったとき、8文字×2行キャラクタ表示液晶モジュールというこれまで取扱のなかったキャラクタ液晶が出ていたのでいくつか購入しておいた。そのままだと塩漬けになってしまってもったいないので、Arduinoのお勉強がてら火を入れてみることにした。

まず、Arduinoの勉強に使うということはほぼブレットボード的に使うことになるので、付属のピンソケットは上面に取り付けることにした。こうすると、液晶の左にピンソケットが来るように見たときのピンアサインは下記のようになる。

DB7 14 13 DB6
DB5 12 11 DB4
DB3 10 9 DB2
DB1 8 7 DB0
E 6 5 RW
RS 4 3 V0
Vdd 2 1 Vss

これで、4ピンIOモードで叩くならば、DB7~4、E、RW、RS、V0、Vdd、VssをArduinoに繋ぐだけで良い。使うライブラリはLiquidCrystal.hで、arduino-0013\hardware\libraries\LiquidCrystalにある。サンプルもそこにあるのでそれをさくっと読めば動かせる。

液晶モジュールwithArduino

この液晶の良いところは、まずは「美しい」ところに尽きると思う。これまでのなんだか間延びした感じのサイズと比べると大変にコンパクトな感じで、早速組み込んで使いたくなる。 色合いも電源OFF時はマリンブルー系の青、電源を入れると上の画像よりもっと鮮やかなセルリアンブルーのバックライトに白い文字が映える。
そして、よりうれしいのは「何も考えずにとりあえず3.3V単電源で動く」ということ。秋月のウェブでは5V単電源動作と書いてあるが、データシートには「Supply voltage for logic min2.7V max5.5V」と「Supply voltage for LCD drive min3.0V typ4.6V max6.5V」とある。typ4.6Vではあるが、3.3Vでも動作可能ということだ。早速試した(Vddを3.3Vにつなぎ替えて、V0をGND直結とした)ところ、問題なく表示されることを確認した。コントラストの調整幅が減るが、表示は可能で、試作レベルでちょいちょいと遊ぶにはこの一手間省けるところが大変ありがたい。

もちろん良いところがあれば悪いところもあるわけで、やはりバックライトがないと見えないというのは省電力アプリケーションには厳しい。データシートにあるTypで70mAというのは電池での長時間駆動をほぼ無視した値といえる。実際の所は秋月の紙に書いてあるとおり、裏面のR7に100Ω、R9直結にして3.3Vでも十分確認できるほど明るい。これでおよそ9.4mAほどであった。(それでもエネループ1本+DC/DCコンバータだとかいうアプリケーションには厳しそうだ)

参考まで。