top of page
  • ahedgehogchase

Lesson10. 装置設計 §9. 装置組立キットはこう使うべし

キットの使い方は3通り ここで、僕がやりたいと思っているのは、これらの事柄の詳細を通して見ていくってことだ。 今回は僕たちが用意したキットの使い方について3通り示そう。もちろん、君たちはコレを使わなきゃならないという制限は受けない、でも、これらは装置を簡単に作ることを意図して開発されたものだ。 ①fab netを用いる方法 1つ目の方法は、単にモータ制御基板にシンプルなネットワークプロトコルであるfab netを用いる方法だ。 ②gestaltを用いる方法 gestaltはソフトウェアフレームワークなんだけれども、今回の課題を進めるための1つの方法としては、単にgestaltプログラムを書くという方法が挙げられる。 ③modsとgestaltを連携させて用いる方法 今回の課題を進めるために、Nadyaが作った新しいmodsフレームワークとgestaltのレイヤーを用いるという方法がある。僕たちが現在取り組んでいるのは、gestaltを完全にmods上で機能させるということだ。僕はこういうソフトウェアを頒布したい。

gestaltの使い方 教授:さて、Nadya。gestaltのみで用いる方法から始めて、その後、gestalt symについて話さないかい? ●pythonライブラリのダウンロード Nadya Peek:こんにちは。まず、github.com/nadya/pygestaltのリンクに飛んでください。これは、pythonライブラリで、gestaltを使うためのものです。このwebページは、http://mtm.cba.mit.eduからもリンクが貼ってあります。 教授:分かった。じゃあ、このページを見てみよう。このmodular machine that makeのページの…どこにリンクがあるのかな? Nadya Peek:ULINEの写真の下です。ここから最新のgestaltのライブラリをダウンロードすることができます。 教授:OK 。ここからこのライブラリをダウンロードできるね。 ●プロッタ Nadya Peek:で、gestaltライブラリのフォルダにあるexampleフォルダをクリックすると、装置を見ることができます。そして、装置の下側に、how to make almost anythingというフォルダがあります。そこには2つのファイルが例として置いてあります。そして、ここには… 教授:プロッタがどのように機能するか、じゃないかな? Nadya Peek:ええ。どのようにプロッタが機能するのか説明しましょう。 Nadya Peek:この3つのファイルを見てみると、ノードに関するコードがあります。これはノードの通信を扱うものです。このコードの機能の1つとしては、XYプロッタは086-005ノードと通信するというものごあります。086-005ノードっていうのは、皆さんも用いることができます。皆さんはノードのコードを変更する必要なんてありません。単純にコピーして何にでも使っていいんです。 Nadya Peek:これを然るべきところにコピーしたら、装置のファイル(xy_plotter.py)を見てみましょう。そうすれば、ここで、gestaltネットワーク内の仮想マシンのクラスで仮装マシンを定義しているのが分かると思います。 Nadya Peek:これは、最初の部分を読み込んでいるところです。 Nadya Peek:そして、この装置はfab netインターフェースを用いています。シリアルケーブル、つまりRS485を用いることができます。 ●混合ノード Nadya Peek:そして、ネットワークにいくつのノードがあるのかという観点で、コントローラを見てみれば、2つのノードが初期化されているのがお分かりだと思います。つまり、xノードとyノードですね。これらの2つのノードは混合されたノード中で相互に接続されます。このノードはxyノードと呼ばれます。 Nadya Peek:もしも、xノードとyノードの他にもノードを設けたい場合、ここでコントローラにノードを追加します。 つまり、xノードとyノードの他に、uノードでもbノードでも何でもいいので追加してください。 Nadya Peek:例えば、ホットワイヤカッターを作りたかったら、混合ノードを作らないといけません。一度に全ての軸を動かすことができるようにするのです。そして、個々のノードから混合ノードまで、全てがそこにあります。 ●ノードの定義とキネマティクス 教授:ノードはどうやって定義すれば良いんだい? Nadya Peek:そうですね。もし、まだノードを作成していないのであれば、どのようにキネマティクスを定義するのか、どのようにノードがコントローラを探すのかを知らないといけません。 教授:そうだね。しかし… Nadya Peek:ノードを定義するとき、このノードと通信するコントローラはどれか宣言することができます。そして、私たちの場合は、皆さんが使うこれらの全てがgestaltノードになるのです。それは、6005ノードです。これは、どのようなコントローラを用いても、お分かりになると思います。皆さんが、x軸ノードなy軸ノードを初期化したとき、208605を参照として通過します。 Nadya Peek:そして、キネマティクス的に…gestaltににキネマティクスチェーンを与えなければなりません。これは、皆さんのノードと密接に結びついています。この場合は… 教授:すまない。キネマティクスというのは、どのようにコマンドが物理的な空間とどのように関係するのかということだね?言い換えれば、デジタルとフィジカル(物理的な世界)のマッピングってことだ。 Nadya Peek:ええ。そして、皆さんがこういう事を一からやろうとすると、例えば、ステッピングモータは50ステップで動きますが、皆さんはこのコマンドを実行したときに装置がどの程度移動するのかということを知っておく必要はありません。 Nadya Peek:キネマティクスはこれらの関係を繋ぐものです。例えば50ステップというのは、装置がY軸を1cm移動させるのに相当します。そして、gestaltを用いている装置に対してキネマティクスを生成できるようにするには、もしくはキネマティックチェーンの中で装置を組み立てるには、どうすれば良いでしょう。 Nadya Peek:例えばステージを考えてみると、装置にはモータやリードスクリューがありますよね。もしも、ステッピングモータがちょうど一回転したら、ステージのプラットフォームはある一定量移動しますよね。この例の場合は、モータが一回転したたきの移動量は8mmです。これによって、リードスクリューのピッチがキネマティクスを規定するのとが、お分かりでしょう。

(中略)

教授:Ilanの博士論文にはgestaltに関して、非常によくまとめてある。 Nadyaはgestaltを扱い始めるために有用な数多くの例を挙げてくれたけれども、ここで僕が説明した概要に関する内容に戻ろう。 僕が説明したような動作に関する全てのステップはキネマティクスのようなものを通して、加速や減速のプロファイルにマッピングされなければならない。モータを制御するコントローラのネットワークへのパケット通信のスケジュールを決めながらね。 そして、このシンプルなラインは現実を作り出すためのフードの中の全ての多くの物を取り出す。 Nadya Peek:例えばmodsを用いずにgestaltを用いるのに、皆さんが想像できる方法はこのような感じです。例えば、grasshopperやRhinoなどにpythonとしてgestaltをインポートすることができれば、皆さんの直接Rhinoからネットワークを呼び出すことができます。 Nadya Peek:そして、次の方法も想像できると思います。それは、Rihnoから送信したい調整事項を設定して直接装置に実行させるということです。もしくは、自分自身のちょっとしたインターフェースを例えばpythonなどで書いてやって、動作を生成するということもできます。数年前にpythonベースのプログラムを書いて、彼らの思う通りに装置を動かせるようにしていた人達が何人かいました。 教授:しかし、それは優秀な人達のやり方だね。ここで、僕は入門者でも使える方法を示したい。 確かにgestaltは仮想的な装置を記述するための普遍的なフレームワークで、素晴らしいものだ。しかし、2つの問題点を改善する必要があり、僕はmodsプロジェクトに着手した。 ひとつ目のの問題点は、gestaltプログラムを一旦作っても、装置が何をしているのかを理解するためのインターフェースを別途作る必要がある点だ。そして、もうひとつの問題点は再構築が難しい点だ。 今お見せしているのは、全てgestaltプログラムに実装されているモジュールだ。これらが何を行なっているのかを理解するのが困難だ。そしてこれらを構成することも容易ではない。だから、modsの思想はこれらを可視化してやる事だ。 ( つづく ) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。          

閲覧数:7回0件のコメント

最新記事

すべて表示

Lesson 13. 出力デバイス §7. オーディオ

●オーディオ 次はオーディオについてだ。 これはインベントリにリストアップされている40セントの小型スピーカーだ。諸君はこれを用いて音を作ることができる。そうするためには、僕たちはここで電流のスイッチングを始めなくちゃならない。 つまり、それは僕らがMOSFETトランジスタを取り扱うということを意味する。 MOSFETのパフォーマンスは本当に素晴らしいものだ。技術者たちがしのぎを削って開発してきた

Lesson 13. 出力デバイス §6. 動画出力

●動画出力 次は動画についてだ。 この例では、テレビにテストパターンを表示させている。つまり、この例は動画の波形の生成以上のことは何にもしちゃいない。そうなんだけれども、僕はテストパターンをテレビに動画のアウトプットとして表示している。 何をやっているか説明しよう。これが基本的な波形だ。ビデオには多くのスタンダードが存在する。最もシンプルなものは、モノクロのものだ。そして、非常に特殊なタイミングと

Lesson 13. §5. 液晶ディスプレイ

●液晶ディスプレイ さて、3つ目の出力デバイスは非常に有用なものだ。 液晶ディスプレイ(LCD)だ。そして、これが液晶ディスプレイだ。ここにテキストを送っている例をお見せしよう。 このデバイスは非常に携帯性に優れている。だって、こうすりゃ諸君らのプロジェクトでもさ、文字を出力できるコンピュータを使わずして文書を表示できるんだからね。 でも、そうするにはどうすりゃ良いんだろう? これは16×2文字の

bottom of page