« 2009年7月 | トップページ | 2009年9月 »

2009年8月の3件の記事

2009年8月26日 (水)

Xbeeをテストしてみた

 LPCMプレーヤー2号機のプリント基板の制作が一段落した。Olimexに発注するXbee用の2ミリピッチの変換基板も簡単に出来た。あとはメールでブルガリアにファイルを送る手順を残すだけとなった。手が空いたので、ストロベリーリナックスでミニLCDと一緒に買ってあったXbeeを実際に動かすテストをすることにした。

なぜXbeeなのか(8/20/09)
 2.4GHz帯の電波を利用して機器同士を無線ネットワークでつなぐXbeeは前々から関心があり、あれこれ調べていた。こいつはユニークな形をした通信モジュールチップで、チップ同士で自律的なネットワークを組めるのが最大の特徴だ。ハードはシリアル通信機能(最大250kbps)だけでなく6チャンネルのADコンバーターまでついており、このチップひとつでリモートセンサーを構成できる。インテリジェントなのでスリープ機能を利用した省電力設計も出来る。工作心(ごころ)を刺激するICチップだ。Xbeebody

 当研究所では、電力ロガーの通信手段にしようとして購入した。Xbeeの基本的な到達距離は野外の見通しのあるところで100m、見通しのない室内で30mと言われている(900Mhz帯を使うXbee-Proという上位チップは1500mだそうだ)。

 電力ロガーは1年前、商用電源制御をLANでやったとき、レーザープリンターの電力量を調べるため、AC電流センサーを買ったときから計画しているものである。環境問題は最近の流行りで、IT業界もグリーンITなどとお先棒を担ぐ人たちもいて、当研究所は実は苦々しく思っているのだが、表向きは無関心でいるわけにはいかない。その手前、自宅の消費電力量くらい正確に把握しておく必要がある。

 配電盤が台所の裏と言う水気の多いところなので、センサーだけをそこに置きデータの蓄積や制御は別のところでやろうと考えた。制御・記録ボードを置く階が違うのでXbeeで届くか心配だったが、無線LANを使うほどおおげさなものでもないし、ここはやはり最近評判のXbeeを試してみたい。

 電子工作は、何でも良いから目的のあるものを作ることにしている。工作のためだけの工作というのはやっぱり何か空しい。無理なこじつけでも良いから大義名分が必要だと思っている。Xbeeを動かすだけでは物足りない。変なところに美学がある。それに目的があると、その対象技術の理解はないときより遥かに高まる。要件を満たそうと工夫するからだ。さらに、苦労して自分の作ったものが少しでも人の役に立ったり、面白かったと言ってもらえれば、もうこれ以上の満足はない。人間と言うのはひとりで生きていけないのだ。

 先日、「秩父山中 花のあとさき ムツばあさんのいない春」というNHKの番組を見て、えらく感動した。限界集落と呼ばれる過疎の秩父の山中でもう耕さなくなった段々畑に花の木を植え続けてこのあいだ亡くなった80才のおばあさんの淡々とした生活を記録しただけの番組なのだけど、おばあさんの顔が良い。誰かが花を見て喜んでくれることだけが目的なのだが、人生の生きがいなんてこんなものなのだろう。気持ちが純粋なのに心が洗われる。

Xbeeにも沢山の種類がある(8/23/09)
 それはとにかくXbeeである。ウェブには沢山の応用記事が出ている。Xbeeでラジコンをやったり、ペットにこれを乗せて所在確認をしたり、ロボットの操縦などに使ったり様々な応用例を見ることが出来る。

 しかし、こうした応用例は殆どが1対1の通信機能を使っているだけで、本来の、Xbee同士の通信ネットワークを構成する応用例が殆どない。Xbeeの最大の特徴であるネットワークの高度な機能とは大きな隔たりがある。その差が違いすぎてどうも良く理解できない。それにセンサーとしてのADコンバーターやデジタルI/Oの使い方が良くわからない。

 もういちど基本的なところから調べてみて、大きな思い違いがあることがわかった。世間で言われる多数のXbeeモジュールが会話し合ってネットワークを形成するシステムは、Zigbeeネットワークと呼ばれ、Xbeeハードウエアとは別のプロダクトであるということである。これには高いライセンス費用を払って、そのソフトを導入しなければならない。

 しかも、今市販されている一番安価なモジュールではZigbeeネットワークを構成できない。市販されているXbeeが何故OEM版と呼ばれているのか何となく理解できた。それでも最近のシリーズ2ではOKになったし、Zigbeeライセンスをとらなくてもメッシュ型のネットワークを組める独自のソフトウエアをいくつかの会社が発表しているようで、この世界も変動が激しいようである。

 今度のアプリケーションは、もちろんこんな大規模なシステムではなく、1対1の通信に使うだけなのだが、どうせ組み込むのなら、単なるシリアル通信の手段でなく、ネットワークと行かなくても、徹底した省電力仕様にするとか、操作性の良いロガーにするとか、何か工夫をしてみたい。調べたところでは、Xbeeの省電力機能は定期的なsleep機能しかなさそうだが、この機能だけでは管理が大変だ。センサー側をXbeeだけにするのでなく、RTCを組み込んだCPUチップを載せて全体を管理するという方法も考えられる。

 こうした仕様をあれこれ考えるのがまた楽しい。技術的可能性、自分の能力、要求仕様とのバランスを考えながら、少しづつ具体的にしていく。これが電子工作の醍醐味だ。Xbee_test

あっけなくループバックテストに成功(8/25/09)
 Xbeeの動作テストは変換基板が出来てからと考えていたが、具体的な設計を考え始めると気持ちが高まってきて待ちきれなくなり、バラックで2つのXbeeモジュールのセットを組み、ループバックテストをしてみることにした。 そもそも測ろうとしている台所の配電盤とPCルームとのあいだで通信が出来なければ話にならない。

 配線は至極簡単で、親側はブレッドボードのUSB-UARTモジュールに送信(DO)と受信(DI)線をつなぐだけ。子機はもっと簡単で送受信ピンをジャンパーするだけである。あとはそれぞれVccとGND、親側はUSB-UARTモジュール(秋月)から出ている3.3VがVccで、子機は名刺入れのケースに電池フォルダーに入れた単三電池2つがVccである。

 ATコマンドのインターフェースを持っているというので、TeraTermを立ち上げて、まず親機だけでテストする。昔懐かしい+++でコマンドモードに入るというモデムのATインターフェースだ。問題なく動いた。

 サイトの解説によれば、自分のところのアドレスを指定し、送信アドレスを相手のアドレスにすると、1対1の通信が成立すると言うので、一方を1111他方を2222としてそれぞれセットアップしようとした。

 +++の有効時間が短くコマンドを立て続けに入れていかないと、いちいち+++を入れる必要があって忙しい。ところがそのうち、+++に反応しなくなった。電源は入っているし、ターミナルもおかしくない。始めはもうこわれたのかと少し心配したが、どうもあまり何度も+++でコマンドモードにすると暫くお休みするという仕様があったような気がする。Ws000003

 ターミナルモードのセットアップでは効率が悪いので、サイトの解説どおり、開発元からX-CTUというユーティリティをダウンロードする。最近は、このX-CTUの解説をしてくれているサイトがいくつかあるのでセットアップは容易である。自アWs000002ドレスと送信相手アドレスをユーティリティで定義する。このユーティリティにはループバックテストをするアプリケーションも付いている。

まず、これでテスト開始。おおう、始まった、始まった。

 速度をデフォルトの9600bpsから38400kbpsに上げたが、全くエラーはない。調子に乗って居間に通ずる階段の上に持っていく。うむ、扉を閉めたせいか、200回に一回(99.5%)程度タイムアウトになる。さらに次の部屋へ。エラー率は変わらない。いよいよ居間を通り越して、目的の台所の裏の配電盤の横に置く。何だ、エラー率は逆に少なくなった(99.8% 500回に一回)。

 室内では見通し30mというが、木造建築の遮蔽物は電波を透過する様だ。配電盤との直線距離は天井と床板を通して、階段の上より短いからだ。

 調子に乗って、さらに階段を登り、2階にループバックモジュールを上げる。さすがにWs000000エラーが多くなる。それでも階段のすぐ上は下の階と見通しがあるので、96%ぐらいは行く。欲張って、更に奥の寝室まで測ってみる。ここからは天井、床板を2重に経由することになる。予測は当たって、ここで突然通信が切れた。電波が階段を通じて飛んでいくとしてその距離はそろそろ20m近くになる。しかし予想以上の到達距離である。

 実験の結果は上々だ。通信距離の不安は全くなくなった。これからのアプリケーションが楽しみになってきた。課題は、電力ロガーのアプリケーション要件を満足させて、いかに省電力でXbeeを動かすかである。今考えている要件は、10秒に一回程度のサンプリング、親側からのロギング開始指示、終了指示、単三電池2本で一年以上、Xbee以外の部品点数を最小限にすること、などである。

 興味がつきない。当面の目的は電力ロガーだが、Xbeeを使いこなせるようになれば色々なことが出来そうで楽しい。今まで偉そうなことは言っているが、本当は役に立つことは二の次で、アマチュアの企画の最大の動機は「面白そう」なことである。

| | コメント (3) | トラックバック (0)

2009年8月19日 (水)

CADソフト EAGLEにはまる

 およそ2 週間ぶりのブログの書き込みである。お盆より一足早く一家で¥1000の高速を利用して車で関西に帰省し墓参りをしてきた。みんな行ったことがないというので帰りに足を伸ばして国宝の姫路城を見に行き東京へ戻ったら、姫路の近くの町で大水が出て沢山の人が亡くなられ、東名高速は帰ってきた次の日に地震で不通になった。間一髪で危機を逃れるアクションスターの気分である(家族は災害を残してきたと気にしているが)。

 そんなことで電子工作は少しお休みしていた。それでも帰ってきてから、またCADソフトにすっかりのめりこんでいた。前記事のタイトルは「EAGLEの落とし穴」で、こんどのタイトルは「EAGLEにはまる」である。ソフトや電子工作の世界で「はまる」というと、このあいだのように落とし穴やバグにつかまって中々問題が解決しないときに使うが、もうひとつの意味として「ゲームにはまる」というように夢中になる時にも使う。

 まさしく今度のEAGLEは2つの意味ではまっている。考えてみたら、これまで鉛筆と消しゴムで紙が真っ黒になるほど苦労して描いていたアートワークがPC上で自由に出来るのだ。下手なゲームよりよほど面白い。

 色々癖はあるが、まともに買えばスタンダードのライセンス版で10万円近くするCADソフトである。さすがに良く出来ている。エラーチェックを厳密にやってくれるのが安心である。Lite版ながら、非営利の目的なら無料で解放してくれるCadSoft社の太っ腹に感心する。事業用のLite版は49ドルである。安い(日本では少し高く1万円前後)。しかしこれは巧妙なマーケッティングである。学生に無料で使わせれば仕事に入った時このソフトの導入を提案する可能性は極めて高い。

 ソフトも使い慣れてくると、癖のある部分も、じゃじゃ馬を乗りこなして得意になるように、使いこなしている快感につながるから人間と言うのは不思議なものである。毎晩遅くまで奮闘した結果、やっとのことでLPCMプレーヤー2号機の基板は、Olimexに発注できるレベルに達した。以下はその作業記録である。818lpcm

正確なスケールに感動する(8/13/09)
 お盆の帰省を挟んだ作業の結果、2号機の基板設計は予定したすべての部品を載せて配線率が100%になり、配線が終了した。 まだ自分で作った部品のサイズが正確かどうか最終的に確認する必要があるが、電源ソケット代わりのUSBミニジャック、電池とスイッチの接続に使うピンヘッダー、3端子レギュレーターなど残していた部品も全て載った。

 コツがだいぶわかってきた。最初から自動配線にしないことである。VccやGNDなど引き回しの多い配線やアナログ線など、重要な配線は手動で前にすませておく。このあと自動配線を指示すると、基板上下の配線をつなぐビアを開けながらコンピューターが勝手に配線してくれる。

 ここでもEAGLE特有の操作性が悩ませる。エラー状況のデータはエラーリストをクリアしただけでは更新されない。DRC(デザインルールチェック)ボタンで必ずもう一度チェック処理を最初からしなおす必要がある。考えてみたら当たり前のことなのだが、最初は何度配線の位置を変えても、エラーリストからエラーがなくならず頭を抱えていた。

 さらに部品の緒元は、部品を載せた後、変更できる部分と出来ない部分がある。容量や抵抗値は自由に変えられるし、シルク印刷の線の巾などはボードエディターで変更できるが、パッケージの形を変更するのは部品エディターまで戻る必要がある。パッケージデータを変えた後、updateコマンドで基板エディターのところまで変更してくれるのは嬉しいが、時々前のデータが残っていたり(tNameが2重になる)、ひとつのシンボルデータに何種類もパッケージがある部品(コンデンサーなど)は、変更した部品とは別の部品までパッケージが変わってしまったりして一筋縄ではいかない。

 抵抗をすべて縦置きにしてスペースを稼ぎ、コンデンサーをノギスで測りなおして正確な小さなパッケージデータにしたりして、部品をつめ、間を配線していく。基板の端やドリル穴の近くは配線禁止区域が思ったより広くなかなか許してもらえない。Lpcm2

 何とかNo Errorになったので、出来た基板を印刷する。スケールは1。実際の部品を印刷した実体図の上に載せてみる。おおお、正確だ。これは素晴らしい。表面実装のSDカードソケットとUSBミニジャックのピンがピタリと納まっている。感動ものである。2連ボリュウムのピッチ違いもこれで確認できた。部品エディターを開いて、ピッチを正確な2ミリピッチにする。ミリとmil(1/1000インチ)の換算がややこしい。印刷を切り抜いてケースに入れる。ちゃんとサイズが合っている。1号機と並べてみると、そのコンパクトさが実感できる。12

 LCDパネルがケースと、さらにLCDのピンヘッダーが裏の電池フォルダーとぶつかることがわかった。細かく位置調整して、LCDパネルをボードに合わせる。少し位置を変えるだけであちこちがclearanceエラーになるのでそう簡単ではない。しかしEAGLEにだいぶ慣れてきて、変更が早くなった。ときどきripupコマンドが動きすぎて全部の配線をはがしてしまい、面食らうが、これもripupするところを慎重に選べば必要なところだけはがれてくれる。

  3回、ファイルをセーブしてスナップショットを作りながら、微調整する。ほぼ望みの配置と配線を終えた。それにしても、このアートワークは際限がない。やり始めると時間のたつのを完全に忘れて夢中になってしまう。配線も良く見ると自動配線は無駄が多い。電源やアナログの部分の結線は太くしたいし、ビアを少なくする方法が見つかることもある。見るたびに不満なところが出てくる。きりがない。

  最初はとんでもなく遠い道に見えたが、何とかなるものである。印刷した実体図を見て感慨にふける。2層でも結構な配線量だ(48×74ミリ  パッド数132 ドリル数156)。手配線では苦労しただろう。あとはOlimexへの注文のための処理を残すだけとなった。

最初はStopMaskエラーが900以上(8/17/09)
 出来た、出来たと得意になっていた鼻は、しかし次の作業ステップで簡単にへし折られた。Olimexに発注する制限事項をこのウェブサイト(ここは詳しくておすすめ)でチェックし、所定のレイヤーを指定したところ、何とStopMaskエラーというのが917個もあらわれたのである。

 レジストを塗らないハンダ面にシルク印刷をしているよというエラーなのだが、標準ライブラリの部品はほとんどが元からそうなっている。こちらで置いた部品名などがパッドにかぶっているところはむしろ少ない。部品ライブラリを全部直さなくてはならない。すぐに何とかなるものではない。気の遠くなる話だ。あわててウェブに助けを請う。

 ウェブには余り情報はなかったが、EAGLEのバージョン5からの問題なのだそうだ。単にシルク印刷がそこにされないだけで、Olimexがこれで発注を拒否したり追加料金をとったりすることはないように思われるが、確証はない。

 しかし、エラーがあるままOlimexに発注するのは何となく気分が悪い。幸い、Olimexは8月一杯休みをとるので発注できるのは9月になってからだ。ひとつひとつの部品ライブラリのシルク印刷の部分を直して行く必要があるが、時間はたっぷりある。それにこういう手仕事は嫌いではない。

 今日も真夏の炎天下でテニスをして体はばてているのだが、気がついてみると、PCの前で、コツコツ、部品をとりだしてはシルク印刷のレイヤーを分解してエラーを無くす作業をしている。 標準ライブラリに入っているパッケージの中には既にStopMaskエラーを考慮したシルク(tPlace)になっていてパッドを横切るラインはtDocuという別のレイヤーになっているパッケージがあったりして混乱する。どうも混在しているようだ。

 しかも部品ライブラリとOlimex指定ルールの実際の基板とではStopMaskの大きさが違うので部品エディターの段階では確認できない。ひとつ部品を更新しては、実際のボードエディターでエラーをチェックしていかなければならない。結構大変である。

 それでも、部品をとりかえてはDRC(デザインルールチェック)をかけ、少しづつでもエラーが少なくなっていくのを確認していくのは楽しみなものである。それに、この作業の過程でレイヤーの構造がかなり理解できた。tDocuとtPlaceの2つのレイヤーを持っている部品は、始めこれが何のためかさっぱりわからなかったのだが、この作業のおかげで完全にその目的が理解できた。

 要領がわかってくると作業のスピードは速くなる。 900あまりと言う気の遠くなるエラー数は、2日余りで100前後に減らすことが出来、今日(8/17)、遂に0になった。万歳! これで安心してOlimexに基板制作を発注することが出来る。

 調子に乗って、このあいだからの懸案、Xbeeの2ミリピッチの変換基板もついでに作ってOlimexに発注することにする。160×100のOlimexの発注基板は、4分割して3枚をLPCMプレーヤー基板、残りの1枚を2分割して、Xbeeのピッチ変換基板2枚にする予定だ。

| | コメント (4) | トラックバック (0)

2009年8月 6日 (木)

CADソフト EAGLEの落としあな

 この一週間、暇さえあればEAGLEと格闘していた。きのうやっと充電回路分を除いたLPCMプレーヤー2号機の自動配線のところまで進み、少し目鼻がついてきたので、忘れないうちにこれまでの作業記録を残しておくことにする。自動配線の達成率は最初50%を割っていたが、昨日の段階で83%まで上がった。いやそれにしてもプリント基板の道は遠い。

 この世界は、これまでとは、また全く違う世界である。ガーバーデータ、CAMプロセッサー、ネットリスト、ドリルデータなどという耳慣れない単語が続出する。熱心に説明されていることが何故重要なのか読んでいて理解できない。同じ電子工作の世界なのにまた右も左もわからない状態に放り込まれる。

 恐らく職業でこの世界に飛び込めば、どこかに特化し、これほど混乱することはないのかもしれないが、こちらはアマチュアである。AVRから始まってアナログオペアンプ、ARM、JTAG、FPGA、組み込みLinuxなど、興味に任せて色々なところに手を出しすぎている。好奇心の強さでは人に負けないつもりだが、同じ電子工作、組み込みコンピューターの世界と言ってもその余りの違いにただ驚くばかりである。

 プリント基板技術はこれらの世界のまさしく基盤を支えるものだけど、これはこれで世界が全く違うし、奥が深い(ネットでは精密加工や工作技術の人のサイトが多い)。今、世の中に溢れている携帯電話、パソコンなどの電子機器のプリント基板は16層が当たり前に使われていると言う。気の遠くなるような技術だが、アマチュアでも4層まで作る人がいる。こちらは2層で精一杯だが、それでも知らなければならないことが膨大にある。

 プリント基板の制作はAVRマイコンを触り始めたころから横目でちらちら眺めていたが、ChaNさんから教わったUEW線の手配線が思いのほか調子が良いので手を出す機会がなかった。しかし、手配線では同じものを複数作るのはきついし、師匠のように汎用基板上に0.5ミリピッチの表面実装ICをすべてUEW線で半田付けしてしまうと言うような芸術的レベルにはとても届かない。それに何と言ってもプリント基板に実装された電子機器は美しい。見ているだけでわくわくしてくる。

 先月、複数台の基板を作らなければならないことになって、ついに参考書を買ってCADソフトの定番EAGLEの勉強をし始めた。すでにいくつかCADソフトを使っていたので簡単そうに見えたが、実際の部品のライブラリを作り始めて早々に頓挫した。とんでもなく難しいのである。

 悪戦苦闘の結果、回路図から自動配線が出来るまでになった。作業的には少し一段落したので、ここでこれまでに経験したEAGLEの落とし穴とその解決法について整理しておくことにする。アマゾンで酷評されていた(自分はそれほどでもないと思うが)最初に買った参考書は、結局、落とし穴からの脱出には殆ど役に立たなかった。Eagle

 ただ、これから述べるEAGLEの落とし穴とは、あくまでもCADの素人がEAGLEを使うに当たって、はまりこんだ問題点であり、ソフトそのものの問題点ではないことをあらかじめお断りしておく。CADソフトの歴史は古く、多くの経験、実績によって現在の姿があるわけで、経験者から見れば、がた老AVR研究所のあげる問題点は的外れな指摘かもしれないからである。しかし、知らなければ、殆どの人がはまることになることは確信する。なお、対象はEAGLEの最新バージョン5.6.0の話である。

回路図の操作は簡単だが、部品エディターはとても癖があって難しい(7/30/09)

 EAGLEの中で部品は、回路図を作る時に使うシンボルデータと、その外観とピン配置を規定して、基板に部品を配置し、配線するときのためのパッケージデータ、それにこの2つを組み合わせたディバイスデータに分かれる。同じ仕様で外観だけ違う部品があるので、この構造はとても合理的だ。回路図で部品と部品をつなぐ配線操作も難しくない。部品を動かすと配線した線がちゃんとついてくる。フリーのCADソフトに較べれば確かにレベルが高い。ここまでは快調だった。

 部品データを収容するライブラリが用意されている。しかし、部品ライブラリが巨大で探すのが大変である。日本でおなじみの部品が中々見つからない。検索機能が用意されているが、正規表現的に厳密なのでなかなかヒットしない。(例えば、SOT23-5を検索するとき、両側に*をつけて *SOT23-5*としないと、SOT23-5を含むテキストにあたらない)。

 ここにない部品は、自分でこれまでのデータを組み合わせたりして作ることになるが、この部品エディターが難物なのである。エディターの操作性もあるが、一番の原因は、ライブラリの構造からくるものである。

・ライブラリからパーツを抜き出すことが難しい
 ライブラリはひとつのファイルで構成されているので、部品データはファイルとして物理的に分離できない。それぞれの部品データが物理的なファイルに分かれていれば、ライブラリの管理はとても楽になるが、それが出来ないため、一旦新しい空のライブラリを作った後、そこへデータをcopyする形をとらなければならない。そのとき、必ずターゲットのライブラリを部品(ライブラリ)エディターで開いておかないとcopyは出来ない。ここでまずはまる。

 新しい部品データを作るとき、いちから作ることは殆どない。既存のシンボルやパッケージデータを流用することが多い。しかし、あとで色々編集できるようにとディバイスデータの形で既存の部品を自分のライブラリに持ってくるとえらい目にあう。ディバイスデータについてくるシンボルデータは簡単に消去したり編集できないからだ。パッケージデータとつながってディバイスを形成しているため、ちょっと操作をするとすぐ文句を言われて先に進めない。第一、エディターは、ディバイスデータを開いた時はシンボルとパッケージのピン接続をする以外ほとんど何も出来ない。

 それではシンボルデータだけ持ってこようとすると、これが出来ない。EAGLEのコントロールパネルでライブラリを開きコピー(copy to library)できるのは、ディバイスデータと、パッケージデータだけなのである。

 既存のシンボルデータを複製して新しい部品のシンボルにするには、まず、既存のデータの入っているライブラリをエディターで開き、欲しいシンボルデータをペーストバッファーに入れた後、別のターゲットのライブラリでエディターを開き直し、newで新しい名前を定義して空のシンボルデータを作って、そこへペーストするという回りくどい方法をとる必要がある。

 この方法と下の操作をこのウェブで教えられて、始めて部品ライブラリの操作が自由に出来るようになった。それまでは全く手も足も出なかった。

・カット&ペーストとはコピー&ペーストのこと
 EAGLEの操作は、GUIと言っても少しコンセプトが古く、「オブジェクトを決める」「それに対する操作を選ぶ」「実行する」という順ではなく、コマンドアイコンを先にクリックして操作の種類を決めたあと、次にその対象を選ぶという、これまでのキャラクタディスプレイのコマンドフォーマットを踏襲した形になっている。

 慣れればそう問題ではないが、それより一番の問題は、カット&ペーストである。EAGLEのコピーコマンドは、単に回路図上で同じオブジェクトを増やすだけで、ペーストバッファーにデータは入らない。ペーストバッファーに入れるためにはカットする必要がある。EAGLEではカットしても原データはなくならない。カット&ペーストではなく、コピー&ペーストである。これを知らなくて何度「ペーストバッファーが空だよ」と怒られたことか。

 ある部品のデータを別の部品に複製するには、まずコピーしたいシンボルまたはパッケージデータを開き、持って行きたい部分をグループ設定してから、その範囲内(ハイライトされる)で、カットコマンドを実行し(グループの上を一回クリックする。このとき画面は全く変化しない)、次にターゲットの部品を開き直し(前の画面はなくなる)、そこでペーストコマンドをクリック(実行)すると始めてさっきコピーした部品がカーソルとともに画面にあらわれる。部品エディターが複数のウィンドウを開けないためである。この操作は知っていなければ手品に近い操作である。

・簡単に消去が出来ない
 ディバイスデータは、シンボルデータとパッケージデータで構成されるので、前にも書いたようにディバイスデータを簡単に変更することはできない。シンボルデータだけを消すことは出来ない。一旦ディバイスを開き、回路図上のピン(シンボルデータ内)と実際のパッケージのピンとの対応を全て切らないとディバイスデータに使われているシンボルデータは消す(変更する)ことが出来ない。

 パッケージデータもディバイスデータとつながっているので消去しようとすると怒られる。パッケージは色々な部品(ディバイス)に使われているので、ライブラリを大きくすると大変である。しかも、ライブラリ上の部品データを消去するには、アイコンやメニューにコマンドがなくULPと言われるユーザープログラムをテキストコマンドエリアから入力する必要がある。恐らくEAGLEはテキストコマンドで操作するインターフェースから進化してきたCADなのだろう。その性格が色濃く残っている。

・位置決めが難しい
 オブジェクトの移動がグリッド単位でしかできない。グリッドを細かくすれば、その単位で移動できるが、今度はグリッドが細かくなりすぎて、これを数えるのが難しい。配線図のときは良いが、正確な位置決めが必要なパッケージデータの編集ではこれが非常にネックになる。さらに、一旦細かい位置で位置ぎめしてしまうとグリッドを大きくしたとき、大きくしたグリッド単位でしか動いてくれない(Altキーを押したまま動かすとある程度自由に動かせることがあとでわかった)。
2vr
 この問題の解決は、位置(mark)コマンドを活用することである。markコマンドで基準点にマークを置き、そのあとはメニューバーの下の情報エリアに表示される座標を読み取っていくと正確な位置にオブジェクトを置くことができる。もちろんそのときはグリッドを細かくしておかなければ望みのところには止まってくれない。

つながっているように見えても接続されていない(8/3/09)
 部品エディターにやっと慣れて、ライブラリにない部品の登録が進んだ。SDカードスロットや、2連の可変抵抗器、DAコンバータなどである。秋月などで売られている基板用ステレオフォンジャックは、標準ライブラリの中にたまたま同じものを見つけた。

 con-lumberg.lbrというライブラリにある1503_09という部品がそれで、外形はともかくフットプリント(基板上のピンの位置)が全く同じだったのでこれを使う。

 電池の充電回路部を除いた(入るかどうかわからないため)回路図が完成した。ミニLCDの部品データはピンヘッダーですませる。いよいよ基板配線である。ボードエディターを開く。おおお、ratsnestという黄色い空中配線でつながれた部品が画面の隅にひとかたまりになって並んだ。部品の移動は回路図エディターと全く同様の操作なので楽だ。部品を所定の位置に運ぶ、配線も同時に動いてくる。素晴らしい。おやあ、2連可変抵抗器の大きさが大分違うぞ。どうもmilとmmの換算を間違えたらしい。
A8042098
 もう一度部品エディターまで戻って、実体をノギスで測り直し、正確な外形に修正する。ついでにSDカードスロットもヒロセのサイトから実体図のPDFを落とし測りなおす。EAGLEのすごいところは、変更した部品を回路図で更新すると、ボードエディターの外形まで替わっていることだ。何度も測りなおしたが、このへんは実際に基板を発注する時に、もう一度確認しておく必要があるだろう。部品ライブラリとしての公開は、ちゃんとした基板になってからでないと危ない。

 想定した基板サイズ(48×74ミリ)上に部品を載せていく。うーむ、少し厳しい。そうか抵抗やコンデンサーが実体より少し大きすぎるようだ(パッケージを良い加減に選んだ)。これを直せば入るかもしれない。それより気になるのは、ratsnestになっていない(未配線)部品が多いことである。念のためERCコマンドでエラーを見てみる。Sdcard

 何と言うことだ、100近いエラーが出て、ratsnestのないところはすべてunconnectedになっている。EAGLEの鉄則は「基板エディターでは変えない。すべて回路図から修正する」なので、回路図エディターを確認する。ちゃんと配線されている。しかし、ネットを確認するコマンドを入れると、確かに色が変わらず配線されていない。拡大してみてもちゃんとピンと配線はつながっている。

 良くわからない。サイトによると「wireは使うなnetで配線せよ」とあるのでnetでつなぎなおすが変わらない。原因を考えあぐねていたとき、たまたまmoveコマンドで部品を移動させたとき、つながっていないところは配線が切れて離れることを発見した。これだ。

 接合は厳密に座標が合わないと実行されないようだ。それを試すのは、マウスで部品をつかんで動かしてみる。何度か動かしているうちに接合がされる。これは良い方法をみつけた。

 overlapしているという警告も、この方法で原因を見つけることができる。配線は終端でどうしても余分なクリックをして枝が出来ていることが多いが微小なのでなかなか見つけられない。これも部品を移動させると、その枝が拡大されて一目瞭然になる。拡大されたところで不要な枝を消去すると警告はなくなる。Eagle_2

 このノウハウを見つけてからは早かった。100近くあったエラーは、ピンの未配線や、Vccに違う名前(Vddなど)のピンを配線していることの警告だけになり、ratsnestもすべての部品に出るようになった。

 自動配線を試してみる。何回かコンピューターが試行錯誤したあと自動配線が終了する。うむ、達成率は83%とこれまでより格段に上がった。そりゃそうだ2割近い配線が未配線だったのだ。

| | コメント (9) | トラックバック (0)

« 2009年7月 | トップページ | 2009年9月 »