今までなんとなく使ってきた “ripup” について説明します。
今回の説明
このシリーズは以下の順番で説明しています。今回の説明は「回路図作成」の部分になります。前回までは概要説明でしたが、今回から具体的な作業に入ります。
- EAGLE概要
EAGLEでできることを説明します。説明だけではつまらないのでサンプルプロジェクトを触ってみてどんな感じなのか実感してもらおうと思います。またEAGLEにはいくつかライセンス形態がありますので、それらについても説明します。サンプルを見るためEAGLEのインストールも行います。 - 作成する回路
この入門記事で作成するプリント基板の回路を説明します。回路は「MacでPICマイコン電子工作入門」で作成したものをベースにします。プリント基板にするときに元の回路を少し変更しますので、その背景などを説明します。 - プリント基板を発注するまでの作業流れ
EAGLEをインストールしてから最後にプリント基板を発注するまでのおおまかな作業の流れを説明します。この項目のあとの説明は、作業の流れに沿って説明していくことになりますので、全体像をつかんでいただければと思います。 - 回路図作成
EAGLEを使って回路図を作成します。回路は簡単ですが、必要となりそうな手順などいろいろ盛り込んで説明したいと思います。 - プリント基板パターン作成
EAGLEでは「ボード図」と呼んでいる、プリント基板のバターンを作成します。記事の中で詳しく説明しますが、EAGLEは無償でありながら自動配線機能を持っています。もちろん手動配線も可能です。このセクションでは、自動配線と手動配線の両方の手順でプリント基板のパターンを作成してみたいと思います。なお、複雑な回路になると自動配線で100%配線できないため、自動配線後、手動で手直しする方法なども説明します。また、プリント基板作成を業者に発注する場合、特有の注意点などもありますので、それらも合わせて説明します。 - プリント基板製造
この入門記事で作成したプリント基板を実際に業者に発注してみます。発注してから届くまで3〜4週間かかりますので、発注後、記事更新が遅くなりますがご了承ください。
ripupとは
今までコマンド入力ボックスに “ripup;” と入力してプリント基板上の接続関係を整理したり、配線済みのパターンを元に戻したり、という使い方をしてきました。次回以降の説明では、回路図に部品を追加したり、Autorouterで作成したパターン図を手動で変更する際に、この “ripup” を理解しておくことが重要になりますので、今回はripupについて説明します。
さらに、ripupを説明する前にコマンドについても理解を深めておきたいと思います。
コマンド操作
ボード図を作成する際に、ripupというコマンドを使いました。コマンドはコマンド入力ボックスにコマンドを入力してreturnキーを押せば実行されます。
またこのコマンド入力ボックスは電子回路図の編集ウインドウにもあります。
コマンドを説明するには電子回路図の方が説明しやすいので、電子回路図の編集ウインドウで説明します。
以下の電子回路図で抵抗R1を移動させたい場合どうするかというと、今までは、
まず、移動ボタンをクリックして、次に抵抗R1をクリックして移動させていましたよね。
この動作、実はコマンド操作もできるんです。それではその操作方法を確認しておきましょう。まず、STOPボタンを押してツールボタンが押されていない状態にしてください。
先ほどの抵抗R1を移動する場合、ツールボタンが何も押されていない状態であれば移動ボタンをクリックしましたよね。この「移動ボタンをクリックする」という操作に相当するコマンドが「move」コマンドです。それでは、ツールボタンが何も選択されていない状態で、コマンド入力ボックスに “move” と入力してください。コマンドは大文字でも小文字でも同じ意味になります。
すると、移動ボタンが、クリックしたときと同じ状態、つまり選択状態になったと思います。この状態で抵抗R1をクリックすれば移動できますよね。それではコマンドについてもう少し深く掘り下げてみます。
“move”コマンドを入力することと、移動ボタンをクリックすることは同じ意味であることが分かったと思います。ところで、”move”はコマンドというだけあってパラメータを指定することができます。例えば抵抗R1を移動させたい場合は、”move r1″と入力します。”move r1″を入力してリターンキーを押すと、今のマウスカーソル位置に抵抗がついてきたと思います。
動作を確認したらescキーを押してキャンセルしてください。ここまでの動きをよく考えると、マウス操作とコマンド操作は以下のように対応していることが分かります。
操作方法 | 操作指定 | パラメータ |
---|---|---|
マウス | ボタンをクリック | をクリック |
コマンド | move | r1 |
コマンドについて最後にもうひとつ。ripupコマンドは最後にセミコロン(;)を入力しましたよね。このセミコロンはこのコマンドの終わりを意味しています。では、”move;”と入力してみてください。何も起こりませんでしたよね。さらにコマンド入力後移動ボタンが押された状態になっていないことにも注意してください。これは、マウス操作に対応させると、移動ボタンをクリックして、何もせずに終わった、ということで、このような動作になります。では “move r1;” と入力してみてください。これも何も起きませんでしたよね。これもマウス操作に対応させると、移動ボタンをクリックして、抵抗R1を選択して、何もせずに終わった、ということでやはり何も起こらない、ということになります。ただ “ripup;”はmoveとは異なる意味になりますので、この後説明します。
このように今までマウス操作してきた内容は一通りコマンドが用意されています。コマンドはメニュー階層が深いところにあるメニューを選択するときに便利だったりしますが、コマンドが用意されているもっと決定的な理由があります。それは、これらのコマンドや他に用意されているコマンドを使ってユーザスクリプトが定義できるようになっています。このスクリプト(User Language Programsと呼んでいます)についてはこのシリーズの補足として説明する予定です。
ripup
ripupについて実際に操作してみて何をするものなのか確認してみましょう。移動ボタンの時はそれに対応するmoveコマンドがありましたよね。今までripupはコマンドで入力していましたが、これに対応するツールボタンはあるのでしょうか。実はここにあります。
ripupボタンがあるのに、なぜコマンド入力していたの?という疑問も出てくると思いますので、まずは順を追って明らかにしていきます。
この先の作業結果は保存しないようにしてください。
それではripupボタンをクリックして、適当な配線パターンをクリックしてみてください。
配線されていたパターンが接続関係を示す線(ネット)に戻りましたよね。ripupとは、パターンを元の接続線に戻す、という操作になります。では、すべてのパターン配線を元に戻したいときはどうすればいいでしょうか。ひとつは、ripupボタンをクリックしたあと、グループ選択ボタンを押して、すべてのパターンを選択、コンテキストメニューからRipup: Groupを選択する方法があります。これはちょっと面倒ですよね。そこでもうひとつのripupコマンドを使う方法があります。ripupコマンドは、パラメータがない場合、すべてのパターンをripupします。また”ripup”と入力しただけでは、ripupツールボタンが選択されるだけですので、ripupコマンドにパラメータがなく、明示的にコマンドの完了を示すためにセミコロン(;)をつけて、”ripup;”としたわけです。
ここまで説明したついで、ということで、Autorouterの仕組みについて説明しておきます。Autorouterは何か凄いアルゴリズムがあって、エイヤッ、って感じでパターン配線をするわけではないんです。どのようにパターン配線をしているかというと、配線をしてみて、ダメだったら、大丈夫そうなところまでripupして、さらに配線をしてみて、またダメになったらripupして、、、というのを何回も繰り返します。これを「ripup/retryアルゴリズム」と呼んでいるようです。それではその大変そうな様子をみてみましょう。
まず先ほどパターン1本をripupしたと思いますが、一度すべてripupしてください。コマンド入力ボックスに”ripup;”と入力するんでしたよね。
次にAutorouterボタンをクリックします。
Autorouterのパラメータ設定ダイアログが表示されますので、最初のシートのRouting Gridを1に設定してください。
Routing Gridを1に設定したら、OKボタンをクリックして自動配線をさせてみてください。
自動配線を始めますが、なんだか途中まで配線しては、ちゃぶ台返しして今までの配線をあきらめたりとかずいぶん苦労してますよね。自動配線はこんな感じで3歩進んでは2歩戻る、時には振出し近くまで戻る、というような人生の縮図のようなことをやっているわけです。僕のMacでは30秒ぐらいで自動配線が終わりました。最近のMacだともっと早いんですかね。
因に次回自動配線するときは、Routing Gridを5に戻すことを忘れないようにしてください。忘れそうな場合は、一度”ripup;”して、Autorouterで自動配線してみてください。
それでは次回は回路を追加します。